The Storyboard IO plugin provides the capability to set application variable values using the Storyboard IO API, allowing external client programs to change data dynamically.
Clients can use the gre_io_add_mdata() function to serialize
each variable value that is to be set. As values are added to the serialized
buffer, it will be grown until it reaches a maximum size for the transport, at
which point the gre_io_add_mdata() function will return -1
indicating it is full. The data can be then sent by using the
gre_io_send_mdata() function which will send the change request
to the Storyboard IO plugin and set the appropriate values in the Storyboard
application.
![]() | Note |
|---|---|
Data must be sent in order of descending alignment requirements. Example: 4u1 4u1 2u1 1s0 is good, 2u1 4u1 4u1 1s0 is not |
gre_io_t *send_handle;
gre_io_serialized_data_t *md_buffer = NULL;
uint32_t x;
char *ptr;
int ret;
/*
* Connect to the application channel
*/
send_handle = gre_io_open("my_channel", GRE_IO_TYPE_WRONLY);
if(send_handle == NULL) {
printf("Can't open send handle [%s]\n", argv[1]);
return 0;
}
/*
* Add some values to be set in the data manager
*/
ptr = "my string";
ret = gre_io_add_mdata(&md_buffer,
"Test.String",
"1s0",
ptr, strlen(ptr)+1);
x = 1;
ret = gre_io_add_mdata(&md_buffer,
"Test.Number",
"4u1",
&x, sizeof(uint32_t));
/*
* Send the data to be set in the application.
*/
gre_io_send_mdata(send_handle, md_buffer);