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

  1. In Settings >> Streams, navigate to the stream you want to configure to ingest on demand.
  2. Click the edit (pencil) icon, and then set On demand to ON.
Configuring an on-demand stream.

Configuring an on-demand stream.

📘

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

  1. Navigate to the device for which you want to ingest all available on-demand data.
  2. In the top-right corner, click the three dots >> Retrieve on-demand data. This will open the Retrieve On-Demand Data window.
  3. Configure the Retrieve On-demand Data window to ingest on-demand data in your desired time range.
Retrieving all on-demand data for a device.

Retrieving all on-demand data for a device.

PropertyUsage
Start timeStart time of your query of on-demand data.
End timeEnd 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.

A transform stream indicating that on-demand data is available.

A transform stream indicating that on-demand data is available.

To ingest on-demand data from an individual stream:

  1. In the top-right corner of the module whose data you want to ingest on demand, click the three dots >> Retrieve on-demand data.
Ingesting on-demand data for an individual stream.

Ingesting on-demand data for an individual stream.

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 data on the timeline.

On-demand data on the timeline.

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:

  1. Go to Settings >> Devices and select the device you want to configure to ingest on-demand localization data in ROS 2.
  2. Under the General tab, scroll down to the Advanced section. Click Export to YAML.
  3. In the YAML file, find the name of the localization stream you want to ingest on demand.
  4. 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
  1. Save your changes.
  2. 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].