You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[](https://gitter.im/Overdrivr/pytelemetry?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
1
2
[](http://waffle.io/Overdrivr/pytelemetrycli)
`Telemetry` provides effortless communication between a computer and an embedded device.
5
+
`Telemetry` provides effortless communication and data visualization between a computer and an embedded device.
5
6
6
-
Telemetry is a lightweight, portable, fast and error-resilient point-to-point protocol. It is implemented in C language with an equivalent in Python (Pytelemetry).
7
+
Telemetry is a lightweight, portable, fast and error-resilient point-to-point protocol. It is implemented in C language and Python (`Pytelemetry`).
Data is exchanged on named channels, called *topics*. `foo`, `bar` and `qux` are all topics on the figure above.
11
12
12
-
`Telemetry` lets you attach your own C function to a topic. Each time this specific topic is received, your C function will be called and you will receive the associated data as an input parameter.
13
+
`Telemetry` lets you attach your own C function to be notified each time a new frame is received. A collection of functions in the library can then help you update program parameters, or execute specific code when a specific topic is received, etc.
13
14
14
-
## Why using it ?
15
+
## Motivation
15
16
16
-
Telemetry is for you if :
17
+
This tool was designed with five objectives in mind.
17
18
18
-
* you are constantly re-writing custom protocols on top of the serial port
19
-
* you need a **reliable** and **error-tolerant** communication protocol for an application
20
-
* you are using `printf` to debug your embedded application (and looking for a better alternative)
21
-
* you want to finely tune some parameter on the device without loosing time compiling & flashing over and over
22
-
* you want to **plot** parameters of your embedded application in **real-time**
19
+
***Fast prototyping and debugging**. Set everything up in a few minutes and start debugging any embedded device efficiently. Forget about printf. Forever.
20
+
***Communication-based applications**. Stop re-writing custom protocols for each new project.
21
+
***Remote update of parameters**. Tune your embedded application without loosing time compiling & flashing just for parameter tuning.
22
+
***Data plotting**. Plot data from the device in no time. Standard linear data is supported, but also arrays, sparse arrays. In the future, also Matrices, XYZ, and RGB-type codes.
23
+
***Reusability**. The protocol is highly flexible, loosely coupled to your application. It can be used in a wide number of application scenarios.
24
+
25
+
## Snippet - Arduino
26
+
Send an incrementing value on topic `count` and update variable **throttle** when receiving a new float value on topic `throttle`. Reset counter when throttle value is updated.
27
+
28
+
```c
29
+
#include<Telemetry.h>
30
+
31
+
Telemetry TM;
32
+
TM_state state;
33
+
int32_t i = 0;
34
+
35
+
struct TM_state {
36
+
float throttle;
37
+
}
38
+
39
+
voidrefresh(TM_state * state, TM_msg * msg) {
40
+
// If received topic is throttle, put new float value in state->throttle
@@ -29,15 +61,20 @@ It is highly suitable for remote control of robots, RC cars, etc.
29
61
30
62
## The Command Line Interface [](https://badge.fury.io/py/pytelemetrycli)
31
63
32
-
[`pytelemetrycli`](https://github.com/Overdrivr/pytelemetrycli) is an awesome command line interface that allows direct communication with the device.
64
+
[`pytelemetrycli`](https://github.com/Overdrivr/pytelemetrycli) is an awesome command line interface that allows direct communication with the device and immediate data visualization.
33
65
34
66
Directly in a terminal, with a few commands, you can :
35
67
* list all received topics
36
68
* print samples from a given topic
37
69
* publish data on a topic
38
70
* open high-performance graphs that plots data from the device in real-time
39
-
*(*to be done*) full logging of a communication session
71
+
* full logging of a communication session
40
72
* (*to be done*) replay step-by-step of a session for deep analysis
41
73
42
-
## Setup & Utilisation
43
-
All the information is in the [Wiki](https://github.com/Overdrivr/Telemetry/wiki).
74
+
## Documentation
75
+
76
+
* [Overview of the library](https://github.com/Overdrivr/Telemetry/wiki/Overview)
0 commit comments