Interface specifications

All Player communication occurs through interfaces, which specify the syntax and semantics for a set of messages. See the tutorial Interfaces, drivers, and devices for a discussion of what an interface is.

Below are the details. For each interface, the following is given:

  • Relevant constants (size limits, etc.)
  • Message subtypes:
    • Data subtypes : codes for each kind of data message defined by the interface
    • Command subtypes : codes for each kind of command message define by the interfce.
    • Request/reply subtypes: codes for each kind of request/reply message defined by the interface. Also specified are the interaction semantics, such as when to send a null request and when to expect a null response. A "null" request or response is a zero-length message.
  • Utility structures : structures that appear inside messages.
  • Message structures:
    • Data message structures : data messages that can be published via this interface.
    • Command message structures : command messages that can be sent to this interface.
    • Request/reply message structures : request messages that can be sent to this interface and reply messages that can be expected from it.

It can be the case that a given message can be sent as data or in response to a request. A common example is geometry. For many devices geometry is fixed and so need only be requested once. For others geometry may change dynamically and so the device will publish it periodically.

Todo
Normalize subtype names (PLAYER_PTZ_REQ_GEOM vs PLAYER_POSITION2D_REQ_GET_GEOM)