Input/Output Interface And Message Rate Control

Detailed Description

Messages for controlling device output (e.g., define TCP server parameters, configure message output rates).

Classes

struct  point_one::fusion_engine::messages::GetMessageRate
 Get the configured output rate for the he requested message type on the specified interface (MessageType::GET_MESSAGE_RATE, version 1.0). More...
 
struct  point_one::fusion_engine::messages::InterfaceConfigSubmessage
 I/O interface parameter configuration submessage (used when sending a SetConfigMessage or GetConfigMessage for ConfigType::INTERFACE_CONFIG). More...
 
struct  point_one::fusion_engine::messages::InterfaceID
 Identifier for an I/O interface. More...
 
struct  point_one::fusion_engine::messages::MessageRateResponse
 Response to a GetMessageRate request (MessageType::MESSAGE_RATE_RESPONSE, version 1.1). More...
 
struct  point_one::fusion_engine::messages::MessageRateResponseEntry
 An element of a MessageRateResponse message. More...
 
struct  point_one::fusion_engine::messages::SetMessageRate
 Set the output rate for the requested message types (MessageType::SET_MESSAGE_RATE, version 1.0). More...
 
struct  point_one::fusion_engine::messages::SupportedIOInterfacesMessage
 A list of transport interfaces supported by the device (MessageType::SUPPORTED_IO_INTERFACES, version 1.0). More...
 

Enumerations

enum  point_one::fusion_engine::messages::InterfaceConfigType : uint8_t {
  point_one::fusion_engine::messages::InterfaceConfigType::INVALID = 0, point_one::fusion_engine::messages::InterfaceConfigType::OUTPUT_DIAGNOSTICS_MESSAGES = 1, point_one::fusion_engine::messages::InterfaceConfigType::BAUD_RATE = 2, point_one::fusion_engine::messages::InterfaceConfigType::REMOTE_ADDRESS = 3,
  point_one::fusion_engine::messages::InterfaceConfigType::PORT = 4, point_one::fusion_engine::messages::InterfaceConfigType::ENABLED = 5, point_one::fusion_engine::messages::InterfaceConfigType::DIRECTION = 6, point_one::fusion_engine::messages::InterfaceConfigType::SOCKET_TYPE = 7
}
 An identifier for the contents of a output interface configuration submessage. More...
 
enum  point_one::fusion_engine::messages::MessageRate : uint8_t {
  point_one::fusion_engine::messages::MessageRate::OFF = 0, point_one::fusion_engine::messages::MessageRate::ON_CHANGE = 1, point_one::fusion_engine::messages::MessageRate::MAX_RATE = 1, point_one::fusion_engine::messages::MessageRate::INTERVAL_10_MS = 2,
  point_one::fusion_engine::messages::MessageRate::INTERVAL_20_MS = 3, point_one::fusion_engine::messages::MessageRate::INTERVAL_40_MS = 4, point_one::fusion_engine::messages::MessageRate::INTERVAL_50_MS = 5, point_one::fusion_engine::messages::MessageRate::INTERVAL_100_MS = 6,
  point_one::fusion_engine::messages::MessageRate::INTERVAL_200_MS = 7, point_one::fusion_engine::messages::MessageRate::INTERVAL_500_MS = 8, point_one::fusion_engine::messages::MessageRate::INTERVAL_1_S = 9, point_one::fusion_engine::messages::MessageRate::INTERVAL_2_S = 10,
  point_one::fusion_engine::messages::MessageRate::INTERVAL_5_S = 11, point_one::fusion_engine::messages::MessageRate::INTERVAL_10_S = 12, point_one::fusion_engine::messages::MessageRate::INTERVAL_30_S = 13, point_one::fusion_engine::messages::MessageRate::INTERVAL_60_S = 14,
  point_one::fusion_engine::messages::MessageRate::DEFAULT = 255
}
 The output rate for a message type on an interface. More...
 
enum  point_one::fusion_engine::messages::NmeaMessageType : uint16_t {
  point_one::fusion_engine::messages::NmeaMessageType::INVALID = 0, point_one::fusion_engine::messages::NmeaMessageType::Standard NMEA Messages, point_one::fusion_engine::messages::NmeaMessageType::GGA = 1, point_one::fusion_engine::messages::NmeaMessageType::GLL = 2,
  point_one::fusion_engine::messages::NmeaMessageType::GSA = 3, point_one::fusion_engine::messages::NmeaMessageType::GSV = 4, point_one::fusion_engine::messages::NmeaMessageType::RMC = 5, point_one::fusion_engine::messages::NmeaMessageType::VTG = 6,
  point_one::fusion_engine::messages::NmeaMessageType::ZDA = 7, point_one::fusion_engine::messages::NmeaMessageType::Point One Proprietary Messages, point_one::fusion_engine::messages::NmeaMessageType::P1CALSTATUS = 1000, point_one::fusion_engine::messages::NmeaMessageType::P1MSG = 1001,
  point_one::fusion_engine::messages::NmeaMessageType::Quectel Proprietary Messages, point_one::fusion_engine::messages::NmeaMessageType::PQTMVERNO = 1200, point_one::fusion_engine::messages::NmeaMessageType::PQTMVER = 1201, point_one::fusion_engine::messages::NmeaMessageType::PQTMGNSS = 1202,
  point_one::fusion_engine::messages::NmeaMessageType::PQTMVERNO_SUB = 1203, point_one::fusion_engine::messages::NmeaMessageType::PQTMVER_SUB = 1204, point_one::fusion_engine::messages::NmeaMessageType::PQTMTXT = 1205
}
 Integer ID for NMEA messages. More...
 
enum  point_one::fusion_engine::messages::ProtocolType : uint8_t {
  point_one::fusion_engine::messages::ProtocolType::INVALID = 0, point_one::fusion_engine::messages::ProtocolType::FUSION_ENGINE = 1, point_one::fusion_engine::messages::ProtocolType::NMEA = 2, point_one::fusion_engine::messages::ProtocolType::RTCM = 3,
  point_one::fusion_engine::messages::ProtocolType::ALL = 0xFF
}
 The framing protocol of a message. More...
 
enum  point_one::fusion_engine::messages::SocketType : uint8_t { point_one::fusion_engine::messages::SocketType::INVALID = 0, point_one::fusion_engine::messages::SocketType::STREAM = 1, point_one::fusion_engine::messages::SocketType::DATAGRAM = 2, point_one::fusion_engine::messages::SocketType::SEQPACKET = 3 }
 The socket type specifying how data is transmitted for UNIX domain sockets. More...
 
enum  point_one::fusion_engine::messages::TransportDirection : uint8_t { point_one::fusion_engine::messages::TransportDirection::INVALID = 0, point_one::fusion_engine::messages::TransportDirection::SERVER = 1, point_one::fusion_engine::messages::TransportDirection::CLIENT = 2 }
 The direction (client/server) for an individual interface. More...
 
enum  point_one::fusion_engine::messages::TransportType : uint8_t {
  point_one::fusion_engine::messages::TransportType::INVALID = 0, point_one::fusion_engine::messages::TransportType::SERIAL = 1, point_one::fusion_engine::messages::TransportType::FILE = 2, point_one::fusion_engine::messages::TransportType::TCP = 4,
  point_one::fusion_engine::messages::TransportType::UDP = 5, point_one::fusion_engine::messages::TransportType::WEBSOCKET = 7, point_one::fusion_engine::messages::TransportType::UNIX = 8, point_one::fusion_engine::messages::TransportType::CURRENT = 254,
  point_one::fusion_engine::messages::TransportType::ALL = 255
}
 Type of I/O interface transport. More...
 

Functions

p1_ostreampoint_one::fusion_engine::messages::operator<< (p1_ostream &stream, InterfaceConfigType type)
 InterfaceConfigType stream operator. More...
 
p1_ostreampoint_one::fusion_engine::messages::operator<< (p1_ostream &stream, InterfaceID val)
 InterfaceID stream operator. More...
 
p1_ostreampoint_one::fusion_engine::messages::operator<< (p1_ostream &stream, MessageRate val)
 MessageRate stream operator. More...
 
p1_ostreampoint_one::fusion_engine::messages::operator<< (p1_ostream &stream, NmeaMessageType val)
 NmeaMessageType stream operator. More...
 
p1_ostreampoint_one::fusion_engine::messages::operator<< (p1_ostream &stream, ProtocolType val)
 ProtocolType stream operator. More...
 
p1_ostreampoint_one::fusion_engine::messages::operator<< (p1_ostream &stream, SocketType val)
 SocketType stream operator. More...
 
p1_ostreampoint_one::fusion_engine::messages::operator<< (p1_ostream &stream, TransportDirection val)
 TransportDirection stream operator. More...
 
p1_ostreampoint_one::fusion_engine::messages::operator<< (p1_ostream &stream, TransportType val)
 TransportType stream operator. More...
 
P1_CONSTEXPR_FUNC const char * point_one::fusion_engine::messages::to_string (InterfaceConfigType type)
 Get a human-friendly string name for the specified ConfigType. More...
 
P1_CONSTEXPR_FUNC const char * point_one::fusion_engine::messages::to_string (MessageRate value)
 Get a human-friendly string name for the specified MessageRate. More...
 
P1_CONSTEXPR_FUNC const char * point_one::fusion_engine::messages::to_string (NmeaMessageType value)
 Get a human-friendly string name for the specified NmeaMessageType. More...
 
P1_CONSTEXPR_FUNC const char * point_one::fusion_engine::messages::to_string (ProtocolType val)
 Get a human-friendly string name for the specified ProtocolType. More...
 
P1_CONSTEXPR_FUNC const char * point_one::fusion_engine::messages::to_string (SocketType val)
 Get a human-friendly string name for the specified SocketType. More...
 
P1_CONSTEXPR_FUNC const char * point_one::fusion_engine::messages::to_string (TransportDirection val)
 Get a human-friendly string name for the specified TransportDirection. More...
 
P1_CONSTEXPR_FUNC const char * point_one::fusion_engine::messages::to_string (TransportType val)
 Get a human-friendly string name for the specified TransportType. More...
 

Enumeration Type Documentation

◆ InterfaceConfigType

An identifier for the contents of a output interface configuration submessage.

See also InterfaceConfigSubmessage.

Enumerator
INVALID 
OUTPUT_DIAGNOSTICS_MESSAGES 

Enable/disable output of diagnostic data on this interface.

Valid for:

Note
Enabling this setting will override the message rate/off settings for some FusionEngine messages.

Payload format: bool

BAUD_RATE 

Configure the serial baud rate (in bits/second).

Valid for:

Payload format: uint32_t

REMOTE_ADDRESS 

Configure the network address for a client to connect to.

For UNIX domain sockets, this string represents the path to the local socket file.

Valid for:

Payload format: char[64] containing a NULL terminated string.

PORT 

Configure the network port.

Valid for:

Payload format: uint16_t

ENABLED 

Enable/disable the interface.

Valid for all TransportType values.

Payload format: bool

DIRECTION 

Set the interface direction (client/server).

Valid for:

Payload format: TransportDirection

SOCKET_TYPE 

Set the UNIX domain socket type (streaming/datagram/sequenced).

Valid for:

Payload format: SocketType

Definition at line 1533 of file configuration.h.

◆ MessageRate

The output rate for a message type on an interface.

Enumerator
OFF 

Disable output of this message.

ON_CHANGE 

Output this message each time a new value is available.

MAX_RATE 

Alias for MessageRate::ON_CHANGE.

INTERVAL_10_MS 

Output this message every 10 milliseconds.

Not supported for all messages or platforms.

INTERVAL_20_MS 

Output this message every 20 milliseconds.

Not supported for all messages or platforms.

INTERVAL_40_MS 

Output this message every 40 milliseconds.

Not supported for all messages or platforms.

INTERVAL_50_MS 

Output this message every 50 milliseconds.

Not supported for all messages or platforms.

INTERVAL_100_MS 

Output this message every 100 milliseconds.

Not supported for all messages or platforms.

INTERVAL_200_MS 

Output this message every 200 milliseconds.

Not supported for all messages or platforms.

INTERVAL_500_MS 

Output this message every 500 milliseconds.

Not supported for all messages or platforms.

INTERVAL_1_S 

Output this message every second.

Not supported for all messages or platforms.

INTERVAL_2_S 

Output this message every 2 seconds.

Not supported for all messages or platforms.

INTERVAL_5_S 

Output this message every 5 seconds.

Not supported for all messages or platforms.

INTERVAL_10_S 

Output this message every 10 seconds.

Not supported for all messages or platforms.

INTERVAL_30_S 

Output this message every 30 seconds.

Not supported for all messages or platforms.

INTERVAL_60_S 

Output this message every 60 seconds.

Not supported for all messages or platforms.

DEFAULT 

Restore this message's rate back to its default value.

Definition at line 2094 of file configuration.h.

◆ NmeaMessageType

Integer ID for NMEA messages.

Enumerator
INVALID 
Standard NMEA Messages 
GGA 
GLL 
GSA 
GSV 
RMC 
VTG 
ZDA 
Point One Proprietary Messages 
P1CALSTATUS 
P1MSG 
Quectel Proprietary Messages 
PQTMVERNO 
PQTMVER 
PQTMGNSS 
PQTMVERNO_SUB 
PQTMVER_SUB 
PQTMTXT 

Definition at line 1996 of file configuration.h.

◆ ProtocolType

The framing protocol of a message.

Enumerator
INVALID 
FUSION_ENGINE 
NMEA 
RTCM 
ALL 

This is used for requesting the configuration for all protocols.

Definition at line 1671 of file configuration.h.

◆ SocketType

The socket type specifying how data is transmitted for UNIX domain sockets.

Enumerator
INVALID 
STREAM 

Operate in connection-oriented streaming mode and do not preserve message boundaries (similar to TCP).

DATAGRAM 

Operate in datagram mode, preserving message boundaries but not maintaining client connections (similar to UDP).

SEQPACKET 

Operate in sequenced packet mode, which is both connection-oriented and preserves message boundaries.

Definition at line 1882 of file configuration.h.

◆ TransportDirection

The direction (client/server) for an individual interface.

Enumerator
INVALID 
SERVER 

A server listening for one or more incoming remote connections.

CLIENT 

A client connecting to a specified remote server.

Definition at line 1839 of file configuration.h.

◆ TransportType

Type of I/O interface transport.

Enumerator
INVALID 
SERIAL 

A serial data interface (e.g.

an RS232 connection).

FILE 

A interface that writes to a file.

TCP 

A TCP client or server.

A TCP client will connect to a specified TCP server address and port. A TCP server will listen for incoming client connections, and may communicate with multiple clients at a time. Responses to commands will be sent only to the the issuing client. All other configured output messages will be sent to all clients.

See also TransportDirection.

UDP 

A UDP client or server.

UDP connections are stateless, unlike TCP. A UDP interface will listen for incoming messages on a specified port. It may optionally be configured to sent output to a specific hostname or IP address, including broadcast or multicast addresses. If an address is not specified, the interface will not send any output automatically, but it will respond to incoming commands, sending responses back to the remote client's address and port.

WEBSOCKET 

A WebSocket client or server.

WebSocket connections are similar to TCP connections, and use TCP as their underlying transport, but use the WebSocket protocol to send and receive data.

See also TransportDirection.

UNIX 

A UNIX domain socket client or server.

UNIX domain socket connections may be configured as either client that connects to an existing server, or a server that listens for one or more incoming client connections. UNIX domain sockets may operate in one of three possible modes:

  • A connection-oriented streaming mode where packet boundaries are not preserved (similar to TCP)
  • Datagram mode where packet boundaries are preserved but connections between the client and server are not maintained, and the interface sends output to an optional configured file (similar to UDP)
  • Sequenced packet mode, which is connection-oriented (like TCP) but also preserves message boundaries (like UDP) and guarantees in-order delivery

For a UNIX domain socket, you must specify:

  • The TransportDirection (client or server)
  • The SocketType (streaming, datagram, or sequenced)
  • The path to a socket file to connect to (client) or create (server)
CURRENT 

Set/get the configuration for the interface on which the command was received.

ALL 

Set/get the configuration for the all I/O interfaces.

Definition at line 1722 of file configuration.h.

Function Documentation

◆ operator<<() [1/8]

p1_ostream& point_one::fusion_engine::messages::operator<< ( p1_ostream stream,
InterfaceConfigType  type 
)
inline

InterfaceConfigType stream operator.

Definition at line 1662 of file configuration.h.

◆ operator<<() [2/8]

p1_ostream& point_one::fusion_engine::messages::operator<< ( p1_ostream stream,
InterfaceID  val 
)
inline

InterfaceID stream operator.

Definition at line 1987 of file configuration.h.

◆ operator<<() [3/8]

p1_ostream& point_one::fusion_engine::messages::operator<< ( p1_ostream stream,
MessageRate  val 
)
inline

MessageRate stream operator.

Definition at line 2228 of file configuration.h.

◆ operator<<() [4/8]

p1_ostream& point_one::fusion_engine::messages::operator<< ( p1_ostream stream,
NmeaMessageType  val 
)
inline

NmeaMessageType stream operator.

Definition at line 2085 of file configuration.h.

◆ operator<<() [5/8]

p1_ostream& point_one::fusion_engine::messages::operator<< ( p1_ostream stream,
ProtocolType  val 
)
inline

ProtocolType stream operator.

Definition at line 1713 of file configuration.h.

◆ operator<<() [6/8]

p1_ostream& point_one::fusion_engine::messages::operator<< ( p1_ostream stream,
SocketType  val 
)
inline

SocketType stream operator.

Definition at line 1927 of file configuration.h.

◆ operator<<() [7/8]

p1_ostream& point_one::fusion_engine::messages::operator<< ( p1_ostream stream,
TransportDirection  val 
)
inline

TransportDirection stream operator.

Definition at line 1872 of file configuration.h.

◆ operator<<() [8/8]

p1_ostream& point_one::fusion_engine::messages::operator<< ( p1_ostream stream,
TransportType  val 
)
inline

TransportType stream operator.

Definition at line 1830 of file configuration.h.

◆ to_string() [1/7]

P1_CONSTEXPR_FUNC const char* point_one::fusion_engine::messages::to_string ( InterfaceConfigType  type)

Get a human-friendly string name for the specified ConfigType.

Parameters
typeThe desired configuration parameter type.
Returns
The corresponding string name.

Definition at line 1627 of file configuration.h.

◆ to_string() [2/7]

P1_CONSTEXPR_FUNC const char* point_one::fusion_engine::messages::to_string ( MessageRate  value)

Get a human-friendly string name for the specified MessageRate.

Parameters
valueThe enum to get the string name for.
Returns
The corresponding string name.

Definition at line 2185 of file configuration.h.

◆ to_string() [3/7]

P1_CONSTEXPR_FUNC const char* point_one::fusion_engine::messages::to_string ( NmeaMessageType  value)

Get a human-friendly string name for the specified NmeaMessageType.

Parameters
valueThe enum to get the string name for.
Returns
The corresponding string name.

Definition at line 2042 of file configuration.h.

◆ to_string() [4/7]

P1_CONSTEXPR_FUNC const char* point_one::fusion_engine::messages::to_string ( ProtocolType  val)

Get a human-friendly string name for the specified ProtocolType.

Parameters
valThe enum to get the string name for.
Returns
The corresponding string name.

Definition at line 1692 of file configuration.h.

◆ to_string() [5/7]

P1_CONSTEXPR_FUNC const char* point_one::fusion_engine::messages::to_string ( SocketType  val)

Get a human-friendly string name for the specified SocketType.

Parameters
valThe enum to get the string name for.
Returns
The corresponding string name.

Definition at line 1909 of file configuration.h.

◆ to_string() [6/7]

P1_CONSTEXPR_FUNC const char* point_one::fusion_engine::messages::to_string ( TransportDirection  val)

Get a human-friendly string name for the specified TransportDirection.

Parameters
valThe enum to get the string name for.
Returns
The corresponding string name.

Definition at line 1856 of file configuration.h.

◆ to_string() [7/7]

P1_CONSTEXPR_FUNC const char* point_one::fusion_engine::messages::to_string ( TransportType  val)

Get a human-friendly string name for the specified TransportType.

Parameters
valThe enum to get the string name for.
Returns
The corresponding string name.

Definition at line 1802 of file configuration.h.