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);