The iogen utility is used to generate Storyboard IO events from the command line. The utility's command line arguments closely mirror the arguments that would be provided to the gre_io_open and gre_io_send Storyboard IO API functions. Running iogen without any parameters will show a usage message:


Data must be sent in order of descending alignment requirements. Example: 4u1 4u1 2u1 1s0 is good, 2u1 4u1 4u1 1s0 is not


./iogen channel_name [event_target event_name size data [size data]...]

For example:

Send a 'gre.quit' event to a client on channel 'sb'

./iogen sb no_target gre.quit

Send a '' event (int button, timestamp, subtype, x, y, z, id, spare) @ 100,150 to a client on channel 'sb'

./iogen sb some_target 4u1:button 0 4u1:timestamp 0 2u1:subtype 0 2s1:x 100 2s1:y 150 2s1:z 0 2s1:id 0 2s1:spare 0

Send a 'progress' event with an integer field 'percent' containing the value 50 on a channel 'sb'

./iogen sb no_target progress 4s1:percent 50

Send a 'greio.vebosity' event with an integer field 'verbosity' containing the desired level of engine debugging verbosity

./iogen sb no_target greio.verbosity 4s1:verbosity 4

Send a 'cluster_update' event with array data named 'tire_pressures' of 30,45,17,25 on channel 'sb' Note the leading ',' in the data, this is needed to differentiate small number from characters in a string. This can be omitted when sending numbers in anything other than the 1sN format.

./iogen sb no_target cluster_update 1s4:tire_pressures ,30,45,17,25


In this case the raw data representation of these numbers will be delivered as a string in the event payload. Use the string.byte function in Lua to decode the data into numerical format.

The iogen utility can also be used to set variables in a Storyboard application. To set a variable, the event_target parameter should contain the fully qualified path for the Storyboard variable and the event_name parameter should contain the SBIO event greio.iodata_set. For example:

Set an integer application variable 'progress' with a number (50)

./iogen sb progress greio.iodata_set 4s1 50

Set the text variable 'myvariable' on the control 'mycontrol' on the layer 'mylayer' with a string (Hello)

./iogen sb mylayer.mycontrol.myvariable greio.iodata_set 1s0 "Hello"

The definition and format of standard Storyboard events such as and gre.release can be found in the Storyboard header file iodefs.h.