On-demand streams
On-demand ingestion allows you to store telemetry data on your device until you explicitly request the data to be ingested by the Formant agent.
If your device relies on a cellular network connection to transfer data to the Formant cloud, you can greatly reduce your data transfer, and therefore your network costs, by storing data on your device and only ingesting it when needed.
This can also be useful if your device regularly operates in areas that are outside of cellular network range.
This guide will describe on-demand data ingestion and its configuration in Formant.
Configure an on-demand stream
- In Settings >> Streams, navigate to the stream you want to configure to ingest on demand.
- Click the edit (pencil) icon, and then set On demand to ON.
On-demand streams will ingest data immediately upon creation to initialize the stream, and then at least once every 24 hours to maintain stream viability.
Ingest data on demand
You can ingest all on-demand data for a device at once, or you can ingest on-demand data by individual stream.
If your device is offline, the ingestion request will be queued until the device comes online. You can view the status of on the timeline or on the Events page.
All on-demand data for a device
- Navigate to the device for which you want to ingest all available on-demand data.
- In the top-right corner, click the three dots >> Retrieve on-demand data. This will open the Retrieve On-Demand Data window.
- Configure the Retrieve On-demand Data window to ingest on-demand data in your desired time range.
Property | Usage |
---|---|
Start time | Start time of your query of on-demand data. |
End time | End time of your query of on-demand data. |
The Retrieve On-demand Data window will list all on-demand streams configured for your device.
Individual streams
Once a stream has been configured for on-demand ingestion, you will be alerted that data is available for ingestion by a purple bar above the module displaying the relevant stream.
To ingest on-demand data from an individual stream:
- In the top-right corner of the module whose data you want to ingest on demand, click the three dots >> Retrieve on-demand data.
On-demand presence on the timeline
The presence of on-demand data is indicated on the device timeline as a purple line above the normal data presence indicator.
On-demand ingestion of ROS 2 localization data
Special configuration is required to ingest localization data on-demand using the ROS 2 adapter.
This section assumes you have the ROS 2 adapter installed.
To achieve this in ROS 2, you’ll have to configure your localization streams in the device’s YAML configuration:
- Go to Settings >> Devices and select the device you want to configure to ingest on-demand localization data in ROS 2.
- Under the General tab, scroll down to the Advanced section. Click Export to YAML.
- In the YAML file, find the name of the localization stream you want to ingest on demand.
- Under the stream name, at the same hierarchy as configuration, add the following line:
onDemand: true
For example, if you were configuring a stream called myDevice.localization
, your yaml
entry for this stream would now look like this:
- name: myDevice.localization
onDemand: true
configuration:
type: ros-localization
mapTopic: /map
odomTopic: /platform/odom
pointCloudTopics:
- /sensors/lidar/0/pointcloud_filtered
baseReferenceFrame: base_link
- Save your changes.
- In the device’s settings, click Import from YAML. Upload your edited
yaml
file.
Your stream should now be set to on-demand mode.
See also
If you notice an issue with this page or need help, please reach out to us! Use the 'Did this page help you?' buttons below, or get in contact with our Customer Success team via the Intercom messenger in the bottom-right corner of this page, or at [email protected].
Updated 7 months ago