VSM C++ SDK
Vehicle Specific Modules SDK
UCS-VSM communications protocol

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

  1. UCS establishes TCP connection to VSM. The VSM location can be configured explicitly on the server or discovered automatically via Service Discovery feature.
  2. UCS sends first packet Vsm_message with session_id == 0 and Register_peer payload so that VSM knows which server has connected to it.
  3. VSM sends first packet Vsm_message with session_id == 0 and Register_peer payload so that UCS knows which VSM it has connected to.
  4. 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
  5. VSM starts sending telemetry data to server using previously registered fields.
  6. UCS sends commands and missions to vehicle which are specified on vehicle registration.
  7. When vehicle gets disconnected, VSM sends Unregister_device message.

Detailed decription is in following sections: