Storyboard Suite + JSON deliver rich data to embedded UIs

Communicating between a Storyboard application and external sources is straightforward and flexible. Storyboard provides a number of connectivity options ranging from its native SBIO API for system engineers, to JSON (JavaScript Object Notation) for more web-centric programmers.

JSON with Storyboard

JSON is a great option to use with Storyboard because of how closely it resembles Lua. They are both lightweight for use in embedded applications, simple for humans to read and write, and easy for machines to parse and generate.

Using the Lua JSON module makes it easy to encode/decode incoming/outgoing JSON strings to Lua tables, which can then be parsed and used within the Storyboard application.

Example of JSON String Decoded

The following Lua example demonstrates how an incoming JSON string is decoded, and how the “message” data is used as the alarm text and the “timeout” data is used to dismiss the alarm dialog box after a certain amount of time has passed.

local json = require "dkjson"

function cb_alarm_show(mapargs)
	local ev = mapargs.context_event_data
	local json_data = ev["json"]
	local data = {}
	
	local json_table = json.decode(json_data)
	if (json_table == nil) then
		return nil
	end
	
	local alarm = json_table

	-- text message
	data["alarm_l.alarm_c.txt"] = alarm["message"] 
	gre.set_data(data)
	
	-- make sure the layer is visible
	data = {}
	data["hidden"] = 0
	gre.set_layer_attrs_global("alarm_l", data) 
	
	-- if timout isn't 0 set up a timeout callback
	if alarm["timeout"] ~= 0 then
		gre.timer_set_timeout(cb_alarm_hide, alarm["timeout"])
	end
end

Not only can JSON be a solution for local system communication, but also for transmitting data remotely over the Internet. Simply adding the Lua Socket and Lua JSON modules enables Storyboard applications to communicate over the Internet, enabling engineers to easily create IoT (Internet of Things) applications.

Below is a an example of a Storyboard application requesting weather data from the Internet.

http = require("socket.http")
require('json')

function cb_get_weather(mapargs) 
local v, b, c, h
local City = "Ottawa,CA"
local url_current
string.format("http://api.openweathermap.org/data/2.5/weather?q=%s&units=metric",City)

  	local data = {}
  
   	b, c, h = http.request(url_current)
   	v = json.decode(b)
   
   	data["Layer.temp.text"] = math.floor(v.main.temp)
   	gre.set_data(data)
end

These examples quickly highlight JSON communication. Another option is SBIO, which we will cover in another blog post. Stay tuned!

RTC Magazine Article: Speeding Time to Market for GUI Designs

Crank recently contributed an article to RTC Magazine about how to reduce time requirements and improve the process of bringing an embedded UI to market.

Delays in getting an embedded UI to market are costly in terms of development resources as well as competitive advantage. The process is often lengthy and tedious, setting back launch dates and driving up development expenses. This can be improved using some best-practice approaches to speeding time-to-market.

In traditional GUI design, a user experience (UX) or user interface (UI) team creates a prototype on desktop software such as Adobe Photoshop, Illustrator, HTML or Flash, submits it for approval, and then transfers it—for most of the remainder of the development process—to the engineering team. This design process presents the first major obstacle in time-to-market and is also what often results in a less-than-desirable UI. Once that critical UI design hand-off occurs, embedded system developers proceed to re-implement the prototype for the embedded system. The result is that the original prototype, in essence, becomes a throwaway, since the performance observed in the desktop application bears no resemblance to the performance of the target platform. As embedded system developers go about the process of re-implementing the prototype—and attempting to replicate the UI—they inevitably make changes and sacrifice features in order to fulfill their mandate, which is to make it run on the target. Read More >>>

Storyboard Suite @ CES 2014

Happy New Year!

There is nothing like starting off the new year with a massive show like CES, in Las Vegas!

Crank Software’s Storyboard Suite will be well represented at CES this year. Storyboard 3.2 will be showcased in the Texas Instruments Technology Village (N115 in the North Hall) as well as in the Green Hills Software Hospitality Suite located at the Venetian Hotel.

In-Car and Medical

Expect to see Storyboard Suite 3.2 running on a Jacinto 6 powering an automotive cluster unit as well as on a Beagle Bone Black displaying a rich medical device user interface.

Advanced 3D Cluster

Green Hills is demonstrating Storyboard Embedded Engine with advanced 3D cluster graphics on INTEGRITY RTOS and the Texas Instruments Jacinto 6 platform.

Our president Brian Edmond will be at the show so please send us an email if you’d like to set up a meeting to discuss how Storyboard Suite can be a part of your next UI project.

Read More >>>

Crank Software Named Freescale Proven Partner for Making Graphical UI Development Easy with Storyboard Suite

Crank Software announced today that it has been named a Proven Partner in the Freescale® Semiconductor Connect partner program. Crank Software develops Storyboard Suite, a turnkey UI development software that makes it easy for i.MX users to build graphical UIs and ultimately get their products to market faster.

“Creating an embedded device with a successful, graphical UI is a priority for many of our i.MX customers,” said Michael Norman, Software and Tools Technical Marketing Manager, Microcontroller business at Freescale. “We chose to partner with Crank Software because we are confident that with Storyboard Suite, our customers can get the best UIs possible for their devices, taking advantage of a collaborative process and short development time.”

Read More>>

Crank Software Releases Storyboard Suite 3.2

Crank Software is excited to announce the release of Storyboard Suite 3.2 today!

Storyboard Suite 3.2 brings increased functionality to UI designers and embedded developers continuing to make it easy for your teams to develop, prototype, and refine a UI until it’s perfect for a customer – both in function and in design.

Additionally, we’ve improved the overall usability of Storyboard so you now benefit from simpler tools for off-screen content editing, reference anchor points for more precise alignment, and control property functions for inline math. And, Lua can now be used to create animations and directly set table attributes.

Read more about Storyboard Suite 3.2 features >>