Skip to content

Commit 747f22f

Browse files
committed
Release 1.0.3
Updated README.md Updated version
1 parent 7325d04 commit 747f22f

File tree

3 files changed

+52
-15
lines changed

3 files changed

+52
-15
lines changed

README.md

Lines changed: 51 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,57 @@
1+
[![Join the chat at https://gitter.im/Overdrivr/pytelemetry](https://badges.gitter.im/Overdrivr/pytelemetry.svg)](https://gitter.im/Overdrivr/pytelemetry?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
12
[![Stories in Ready](https://badge.waffle.io/Overdrivr/pytelemetrycli.svg?label=ready&title=Ready)](http://waffle.io/Overdrivr/pytelemetrycli)
23
[![Twitter Follow](https://img.shields.io/twitter/follow/@remibgs.svg?style=social)](https://twitter.com/remibgs)
34
## Overview
4-
`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.
56

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`).
78

89
![Overview](https://raw.githubusercontent.com/Overdrivr/Telemetry/master/pubsub_overview.png)
910

1011
Data is exchanged on named channels, called *topics*. `foo`, `bar` and `qux` are all topics on the figure above.
1112

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.
1314

14-
## Why using it ?
15+
## Motivation
1516

16-
Telemetry is for you if :
17+
This tool was designed with five objectives in mind.
1718

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+
void refresh(TM_state * state, TM_msg * msg) {
40+
// If received topic is throttle, put new float value in state->throttle
41+
if(update_f32(msg,"throttle",&(state->throttle)))
42+
i = 0;
43+
}
44+
45+
void setup() {
46+
TM.begin(9600);
47+
TM.subscribe(refresh, &state);
48+
}
49+
50+
void loop() {
51+
TM.pub_i32("count",i++);
52+
delay(50);
53+
}
54+
```
2355
2456
## Python implementation [![PyPI version](https://badge.fury.io/py/pytelemetry.svg)](https://badge.fury.io/py/pytelemetry)
2557
@@ -29,15 +61,20 @@ It is highly suitable for remote control of robots, RC cars, etc.
2961
3062
## The Command Line Interface [![PyPI version](https://badge.fury.io/py/pytelemetrycli.svg)](https://badge.fury.io/py/pytelemetrycli)
3163
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.
3365
3466
Directly in a terminal, with a few commands, you can :
3567
* list all received topics
3668
* print samples from a given topic
3769
* publish data on a topic
3870
* 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
4072
* (*to be done*) replay step-by-step of a session for deep analysis
4173
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)
77+
* [Protocol description](https://github.com/Overdrivr/Telemetry/wiki/Protocol-description)
78+
* [A non-exhaustive list of all the awesome features](https://github.com/Overdrivr/Telemetry/wiki/Awesome-features-overview)
79+
80+
All the information can be found from the [Wiki Home](https://github.com/Overdrivr/Telemetry/wiki).

pubsub_overview.png

3.87 KB
Loading

version/telemetry_version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33

44
#define TELEMETRY_VERSION_MAJOR 1
55
#define TELEMETRY_VERSION_MINOR 0
6-
#define TELEMETRY_VERSION_PATCH 2
6+
#define TELEMETRY_VERSION_PATCH 3
77

88
#endif

0 commit comments

Comments
 (0)