|
hdo
beta
|
Vyhodnocení telegramu HDO. ...
Zobrazit zdrojový text tohoto souboru.
Datové struktry | |
| struct | hdo_data |
Definice maker | |
| #define | SYNC_HI (14) |
| 2.33 sec délka startovacího pulsu | |
| #define | SYNC_LO (18) |
| 2.99 sec délka synchronizační mezery | |
| #define | DATA_HI (6) |
| 1.00 sec délka datového pulsu | |
| #define | DATA_LO (2) |
| 0.33 sec délka oddělovací mezery dat | |
Výčty | |
| enum | stat { WAIT_FOR_BEGIN = 0, SYNC_PULSE, SYNC_PULSE_DROP, SYNC_SPACE, SYNC_SPACE_DROP, DATA_PULSE, SPACE1, SPACE2, SPACE3 } |
Funkce | |
| void | hdo_init (int tv) |
| int | tlg_decode (int pwr, char *str) |
| int | hdo_action (char *tlg, const char *command) |
Popis formátu telegramu na Webu je poněkud odlišný od toho, co jsem zjistil praktickým měřením. Délka synchronizační mezery je všude uváděna jako 2,33 s, přičemž zde v oblasti Rakovnicka je 2,99 s. Pro funkci tohoto algoritmu je kritická. Citlivost je nutné nastavit pomocí hodnoty proměnné hdo.triger , zde nastavené na 300.
Definice v souboru hdo.h.
| enum stat |
Stavy konečného automatu vyhodnocení telegramu
| int hdo_action | ( | char * | tlg, |
| const char * | command | ||
| ) |
Spínání / rozpínání podle telegramu. Funkce je závislá na formátu telegramu, vytvořeném funkcí tlg_decode ();
| tlg | telegram vytvořený funkcí tlg_decode (); |
| command | příkaz ve tvaru AmBnDPkl, mnkl = decimální číslice |
Definice je uvedena na řádku 156 v souboru hdo.c.
Používá se v main().
| void hdo_init | ( | int | tv | ) |
Inicializace dat, podstatné je nastavení prahové hodnoty
| tv | prahová hodnota, použitá pro triger |
Definice je uvedena na řádku 182 v souboru hdo.c.
Odkazuje se na hdo_data::counter, hdo, hdo_data::status, hdo_data::suma, hdo_data::tindex, hdo_data::triger, WAIT_FOR_BEGIN a hdo_data::windex.
Používá se v main().
| int tlg_decode | ( | int | pwr, |
| char * | str | ||
| ) |
Dekódování telegramu HDO. Volá se periodicky, vždy když je spočten výkon signálu metodou goertzel. Telegram je zapsán do buferu ve formátu např.: A1---B1-3-56-8_DP:-VZZ_ZZZZ_----_---V
| pwr | výkon signálu |
| str | výstupní bufer |
Definice je uvedena na řádku 84 v souboru hdo.c.
Odkazuje se na hdo_data::counter, DATA_HI, DATA_PULSE, hdo, hdo_set_status(), SPACE1, SPACE2, SPACE3, sprintf(), hdo_data::status, hdo_data::suma, SYNC_HI, SYNC_LO, SYNC_PULSE, SYNC_PULSE_DROP, SYNC_SPACE, SYNC_SPACE_DROP, hdo_data::tindex, tlg_write(), hdo_data::triger, WAIT_FOR_BEGIN a hdo_data::windex.
Používá se v main().
1.7.6.1