Skip to main content

Telemetry Gateway

The Telemetry Gateway component allows you to configure an agent on the local network to act as a telemetry broker. Once configured, Telemetry Sender components on other or same agents on the network can be configured to connect to this gateway, and share telemetry data between them. The DroneDeploy SDK in the supported language of your choice can also be used to connect a receiver to the desired data.

Configuration

To use the Telemetry Gateway plugin, your agent will need a section in its agent-settings.json file which enables the telemetry-gateway component, as shown below. For more information on how to configure the agent plugins, see Agent Configuration.

...
"components": [
...
{
"enabled": false, // set this to true to enable this plugin
"id": "telemetry-gateway", // the unique identifier for this plugin - don't change this
"settings": {
"address": "192.168.0.10:8080", // the local network address and port this component will be available at
"logLevel": 1, // the log level for this component. Choose a range between 1 (least verbose) to 6 (most verbose)
"webGateway": true, // OPTIONAL: boolean value which enables creation of an exposed web gateway
"webAddress": "10.9.0.1:8081" // OPTIONAL: network address of web gateway
}
},
...
]

Receiver Groups

In a normal telemetry subscription, when the receiver of the telemetry disconnects, data is no longer collected. In a receiver group telemetry subscription, when the receiver disconnects from the numbered group, data continues to be collected and cached; the receiver may then rejoin the group and continue to receive the data.

This is useful in a case where a user wants to send messages to a receiver, ensuring that each and every message is sent successfully. However, in a situation where there is, for example, poor internet connectivity, a receiver may disconnect without warning. A user may want to ensure that messages are cached until the receiver reconnects, and which point all cached messages are then sent in the correct order to the receiver. The telemetry gateway supports this functionality. The user should subscribe to the desired topic(s) using the following queries:

rg=receiver-group-id - this is a user defined ID which uniquely identifies the receiver group. Receiver groups are used in this case to inform the agent that multiple receivers may be interested in certain topics. The important aspect of this is telling the agent to enable caching for messages where all need to be sent successfully.

txp=UNARY - This ensures that each message is sent successfully. After a message is sent, acknowledgment of successful delivery must first be received before the next message can be sent.

dqp=FIFO - This defines the message dequeue policy as "First In, First Out".

ttl= 20m - This defines the length of time a message should be held in the cache before being deleted.

An example of these four queries added to a subscription request is shown below. Each query should be joined using the "&" character. The "?" signifies the start of the queries after the source of the message is given.

/rocos/agent/proc?txp=UNARY&dqp=FIFO&ttl=20m&rg=123435