Server component

The server component of RTAI-XML is a C++ application running as a daemon in a RTAI box, waiting for incoming TCP/IP calls using a specific RPC protocol. So far, the only RPC protocol implemented is XML-RPC. Future versions will provide complete support for wider implementations, such as SOAP.

Published functions

The RTAI-XML server publishes over XML-RPC a set of logic operations that a remote client can execute to interact with the Target:

  • Connect to the RT target running on the RTAI box.
  • Start and Stop the target.
  • Get Parameters, download the target parameters, organized in a tree structure.
  • Send Modified Parameters, upload and update new target parameter values (for example changing a feedback gain)
  • Get Signal Structure, to obtain the list and data format (scalar, array) of the signals exposed by the target
  • View Selected Signal, starts transfering of selected signals.
  • Write Signal Data on File, enables data saving on the server, fundamental when collecting data with a sampling time higher than allowed by the network bandwidth.

The abstraction of XML is fundamental for flexibility and standardization, but it is characterized by a diffuse verbosity: the data overhead could achieve 90% of the information transmitted. This lack of efficiency is not justified where the application switches from command execution to signal monitoring. At this stage the XML structure becomes redundant and it would be better to have direct access to the data. In order to maintain good performance also in this case, we adopted an hybrid strategy, using an approach similar to data streaming over the Internet. Whenever the communication has to deal with a huge amount of data transfer, the server and the host start communicating using a socket, opened after XML negotiation of its parameters.