RoboCar Control "Proxy" Communications |
Telemetry data sent from the robots to the Interface Server is in XML format, and separated into "Messages" which are independent communication units. Using a Message packet allows the Robot data collection to be intermittant and time independent. The robot can connect and transmit a Message of any length at any time. Each individual robot has a Java Control Proxy process, either on board or distributed on the network. These proxies communicate with the Interface Server Data Collector bean by sending packages of XML over RMI. The Robot XML Message packet has this format... (We should make a DTD for t his, but English is useful too): |
-- Required header -- Arbitrary comment(s) |
Example Message:
|
The MESSAGE time can be used to synchronize any offset between the Server's 'Absolute' time with the robot's internal Device Time. Using this offset the Sample Set times can be normalized before being stored. In the Interface Server the Sample Set, Data Sample, and Attribute names will be combined into one unique Attribute Identifier for storage and eventual use or display. Using this format, devices can create their own arbitrary elements of Sample Sets, Data Samples, and Attributes; and, transmit telemetry data to the Interface Server at any time. The Data Collector bean will calculate the normalized time for all the Sample Sets, create Attribute Identifiers for each new attribute, insert the data values into a database, and/or transmit them to an external client. Users of the system may insert human readable names for all the attributes and devices, and define how the data values will be handled. The data can then be retrieved to a web browser for display or collected and analyzed by external processes. Retrieved data sent to browsers will be in an XML table format, with a header that defines the meaning of each data field and a set of Records with ordered result values that match the header field definitions: |
-- Required header -- Arbitrary comment(s) |
Example browser XML data:-- Required header |
This data may then be displayed as a table in a browser window, or further processed. |