Usage
Overview
Jet allows you to easily stream data between a number of data sources, including serial devices, files, and the TelemetryJet server.
Jet uses declarative configuration: You specify the data source settings in a JSON file, and jet builds a network that connects all data sources in a file together.
Basic Usage
To stream data, use the jet stream
command. The command takes one or more JSON files as inputs:
jet stream device.json # One configuration jet stream device1.json device2.json # Multiple configurations jet stream devices/*.json # All JSON files in a folder
You can specify JSON files with relative paths, absolute paths, or Glob syntax to select files using a pattern.
Jet is completely stateless – All the configuration is set using the files and parameters you pass to the program. We recommend that you store your configuration in a git repository or other sharing mechanism.
Configuration Files
A configuration file defines a network of multiple data sources. All the data sources in a file can communicate with each other bidirectionally.
Some data sources only produce data, others only consume data, and many do both. A configuration file contains an array of data source definitions:
[ { "id": "arduino1", "type": "<data source type>", "options": { <options for the data source> } }, { "id": "arduino2", "type": "<data source type>", "options": { <options for the data source> } } ]
Data Source Definitions
Each data source definition in the configuration file has a number of fields which define its properties:
Field | Type | Required? | Description |
---|---|---|---|
id | String | Yes | An ID for this data source, used as a prefix for any data points. Also used when identifying the data source in debug information. |
type | String | Yes | Defines the type of data source. This must be a value from the list of data source types. |
options | Object | No* | An object with any options specific to the data source. Some data source types have required options. This field can be omitted for data sources with no required options. |
filter | Object | No | Filtering options for input & output data points. Can be optionally applied on any data source to filter which data is processed by the data source. See Common Options for details. |
caching | Object | No | Caching options. If enabled, the cache will store data points to a temporary file when a data source is offline, and send cached data points when the data source is online. See Common Options for details. |
Advanced Usage
Disconnect/Reconnect Behavior
Jet will continue running until you exit it with an interrupt signal (Ctrl-C on most platforms.) If any hardware data sources disconnect, Jet will periodically poll and reconnect to the data source when it is available.
If you would like to exit as soon as an input or output data source is unavailable, specify the --exit
flag. This will cause jet to throw an error and exit if any devices become unavailable to read and/or write.