-
Notifications
You must be signed in to change notification settings - Fork 27
Overview
telemetry
is a library, implementing a communication protocol.
In practice, it provides a set of functions to you, the developer, to exchange different type of data between a computer and an embedded board (Arduino for instance).
telemetry
fills the gap for several overlapping problems:
- How can you receive and easily plot remote application data for fast prototyping ?
- How can you send a command to a remote application very easily ?
- How can you organize the exchanged data which can be of very different nature inside a single app ?
- How can you do all of the above, in real-time ?
Data is exchanged through a point-to-point communication channel (for now, serial ports through wire or bluetooth).
To identify each piece of information sent over the channel, telemetry
lets you assign a label to it. This is called a topic
.
// topic here is 'someTopic'
// Data is unsigned integer with value 123
publish_u8("someTopic",123);
Thus, any communication frame sent by telemetry contains the topic (a string of characters) and the data itself (a number or a message). It also contains extra fields to ensure the frame was not corrupted, etc. You can use the following mental model of the frame.
+--------------+----------+--------------------------+----------------+
| extra fields | topic | data (1 byte to 4 bytes) | extra fields |
+--------------+----------+--------------------------+----------------+
The channels are uni-directional. You can publish (= write) on topic foo
from the PC to the embedded application.
PC Embedded
foo
-------------------------------------------> 123
And in the same time you can also publish other values on same topic foo
, but this time in the other way around (Embedded->PC), without any form of interference.
PC Embedded
foo
123 -------------------------------------------> 123
foo
'Hey' <------------------------------------------- 'Hey'
Back Wiki home
- Fast data visualization with the command line interface (todo)
- Fast prototyping remote program control with python (todo)
- Overview of the library
- Protocol description
- All the good stuff inside Telemetry
- List of supported platforms
- Good practices (Must-read !) in writing
- Frequently Asked Questions todo
- List of official examples
- List of projects using telemetry