The protocol data model definition is a Google protobuf file (See ucs_vsm.proto). This documentation describes the semantics of messages and fields used in protocol.
UCS - VSM communications flow
- UCS establishes TCP connection to VSM. The VSM location can be configured explicitly on the server or discovered automatically via Service Discovery feature.
- UCS sends first packet Vsm_message with session_id == 0 and Register_peer payload so that VSM knows which server has connected to it.
- VSM sends first packet Vsm_message with session_id == 0 and Register_peer payload so that UCS knows which VSM it has connected to.
- Upon detecting a device VSM sends Vsm_message with Register_device payload. Specified session_id will identify the device in the current session. Concurrent connections from UCS to the same VSM are considered belonging to the same session. See also register_vehicle_message
- VSM starts sending telemetry data to server using previously registered fields.
- UCS sends commands and missions to vehicle which are specified on vehicle registration.
- When vehicle gets disconnected, VSM sends Unregister_device message.
Detailed decription is in following sections: