Storyboard IO TCP/IP Redirector
We are frequently asked about methods by which clients can use the Storyboard IO functionality with a TCP/IP network so that one or more client applications, potentially running on different embedded systems, can share data with an HMI application.
One approach to this is to create a relatively simple client/server TCP/IP implementation that simply packages up Storyboard IO data from one system across to another. Conceptually we are just putting a client/server re-director in the middle of a traditional Storyboard IO communication. Pictorially we can change:
[Client]---->> sbio_channel ---->>[SB Application]
[Client]---> sbio_channel --->[TCP server (client)]
[TCP server (server)] ---> sbio_channel --->[SB Application]
This allows us to use native Storyboard IO messaging on either end of the re-director and TCP as a generic transport to bridge across the network.
I have created a simple application that builds a single application that can act as either the TCP client or server and is used by some Storyboard customers to bridge data from an embedded system into their UI during development as well as being able to communicate data from remote clients into a central HMI.
If you run the sample without any arguments, you will get the sample usage:
sbio_tcprelay thomas$ ./sbio_tcprelay
./sbio_tcprelay server <port> <output_sbio_channel>
./sbio_tcprelay client <ip> <port> <input_sbio_channel>
The server is started to communicate to the end storyboard channel while the client is started with not only the storyboard channel that it should receive on, but also the information for the remote tcp server.
Using this functionality you can build sophisticated networks that allow data to be moved across the network into the application.