hdo  beta
Datové struktry | Definice maker | Výčty | Funkce
Dokumentace souboru /home/mrazik/Documents/web/old/hdo/hdo.h

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)

Detailní popis

Autor:
Mrazik <mraz@seznam.cz>

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.


Dokumentace výčtových typů

enum stat

Stavy konečného automatu vyhodnocení telegramu

Hodnoty výčtu:
WAIT_FOR_BEGIN 

čekání na začátek telegramu.

SYNC_PULSE 

startovací puls probíhá

SYNC_PULSE_DROP 

startovací puls má 1 chybu

SYNC_SPACE 

synchronizační mezera probíhá

SYNC_SPACE_DROP 

synchronizační mezera má 1 chybu

DATA_PULSE 

datový puls probíhá

SPACE1 

vyhodnocení mezery 1

SPACE2 

vyhodnocení mezery 2

SPACE3 

vyhodnocení mezery 3

Definice je uvedena na řádku 26 v souboru hdo.h.


Dokumentace funkcí

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 ();

Parametry:
tlgtelegram vytvořený funkcí tlg_decode ();
commandpříkaz ve tvaru AmBnDPkl, mnkl = decimální číslice
Návratová hodnota:
+1 zapnout, -1 vypnout, 0 při chybě nebo žádná akce

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

Parametry:
tvprahová 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

Parametry:
pwrvýkon signálu
strvýstupní bufer
Návratová hodnota:
1, pokud je telegram ukončen, jinak 0, -1 při chybě

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().