| 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
 1.7.6.1