guides:aprs:telemetry
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
guides:aprs:telemetry [2014/12/11 23:36] – [Setup] lz1dev | guides:aprs:telemetry [2015/01/09 19:02] (current) – added C code for base91 + clean ups lz1dev | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | '' | ||
- | ----- | ||
- | |||
====== APRS Telemetry ====== | ====== APRS Telemetry ====== | ||
Line 8: | Line 5: | ||
===== Telemetry report format ===== | ===== Telemetry report format ===== | ||
- | The packet format is described on '' | + | The packet format is described on '' |
- | It allows for 5 analogue channels and 8 digital bits. | + | ((APRS Protocol reference v1.0.1 — {{: |
+ | . | ||
+ | It allows for 5 analogue channels and 8 digital bits. | ||
+ | Here are examples of typical telemetry messages: | ||
< | < | ||
Line 23: | Line 23: | ||
there are only 5 analogue channels. | there are only 5 analogue channels. | ||
- | ==== Setup ==== | + | ==== Set up ==== |
You may have noticed that the above is limited in displaying negative numbers, | You may have noticed that the above is limited in displaying negative numbers, | ||
Line 29: | Line 29: | ||
However, there are messages which can be send, that would indicate the unit of measurement, | However, there are messages which can be send, that would indicate the unit of measurement, | ||
constants to calculate a meaningful value and friendly name for the specific channel. | constants to calculate a meaningful value and friendly name for the specific channel. | ||
- | They are described in | + | The details |
< | < | ||
Line 47: | Line 47: | ||
, which is used to calculate the final value. | , which is used to calculate the final value. | ||
- | Example | + | Example |
< | < | ||
x = 100 a = 0, b = 0.53, c = -32 | x = 100 a = 0, b = 0.53, c = -32 | ||
Line 59: | Line 59: | ||
==== Support ==== | ==== Support ==== | ||
- | Both [[http:// | + | Both [[http:// |
- | ===== Base91 | + | ===== Base91 comment |
- | FIXME | + | '' |
+ | ((Base91 comment telemetry — {{: | ||
+ | is an alternative to the telemetry report format. | ||
+ | The key advantages are: | ||
+ | * Short (4 to 16 characters) | ||
+ | * Can be added to the comment field of any format (position reports for example) | ||
+ | * Each channel has resolution of 0-8280 | ||
+ | * Set up the same way | ||
+ | |||
+ | ==== Example C program ==== | ||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | |||
+ | void base91_encode(char *buf, unsigned short value) { | ||
+ | // valid values are 0 - 8280 | ||
+ | value = value % 8281; | ||
+ | |||
+ | // encode the value | ||
+ | buf[0] = 33 + (value / 91); | ||
+ | buf[1] = 33 + (value % 91); | ||
+ | } | ||
+ | |||
+ | int main(void) { | ||
+ | printf(" | ||
+ | printf(" | ||
+ | |||
+ | // One channel of telemetry | ||
+ | char telem1[] = " | ||
+ | base91_encode(& | ||
+ | base91_encode(& | ||
+ | printf(" | ||
+ | |||
+ | // Five channels of telemetry | ||
+ | char telem2[] = " | ||
+ | base91_encode(& | ||
+ | base91_encode(& | ||
+ | base91_encode(& | ||
+ | base91_encode(& | ||
+ | base91_encode(& | ||
+ | base91_encode(& | ||
+ | |||
+ | printf(" | ||
+ | } | ||
+ | </ | ||
===== Human readable format in the comment field ===== | ===== Human readable format in the comment field ===== | ||
Line 78: | Line 122: | ||
* the amount of characters in the comment section is limited, depending on the packet type (e.g. 0-28, 0-43) | * the amount of characters in the comment section is limited, depending on the packet type (e.g. 0-28, 0-43) | ||
* existing system won't recognize the telemetry and provide friendly plotting over time | * existing system won't recognize the telemetry and provide friendly plotting over time | ||
- | |||
- | |||
====== References ====== | ====== References ====== | ||
- | - APRS Protocol reference v1.0.1 — {{: | ||
- | - Base91 telemetry comment extension — {{: | ||
guides/aprs/telemetry.1418340961.txt.gz · Last modified: 2014/12/11 23:36 by lz1dev