Hotová řešení existují. Mnohem přesnější. Buď přes infračidlo (cca 30tis) nebo přes ip kameru. (cca 15 - 20 tis.) Oba systémy rozeznají přesně i pohyb lidí proti sobě apod. Řešení SDS nám dostačuje.
Kód by šel určitě napsat lépe, šlo o funkčnost
var dovnitr;
var ven;
var zahozeno;
var dovnitr_dnes;
var ven_dnes;
var zahozeno_dnes;
vynuluj_dnesni_data // o pulnoci vynulujeme denni data, ktere jsou jen pro prehled
{
if ((sys[8]==0) && (sys[9]==0))
{
echo ('Nuluji dnesni data...');
dovnitr_dnes=0;
ven_dnes=0;
zahozeno_dnes=0;
}
}
odesli_data_portal
{
http_get(xxxxx','http://xxxxx/zapis.php?dovnitr=',dovnitr,'&ven=',ven,'&zahozeno=',zahozeno);
//nachystame timeout pro http
sys[64] = 20; //sekund
label cekam_na_http_smycka:
if (sys[64] == 0) goto chyba_www_serveru;
if (sys[65] == 0) goto cekam_na_http_smycka;
if ((sys[65] != 1024)||(sys[75] != 200)) goto chyba_www_serveru;
echo ('Dovnitr: ', dovnitr,' Ven: ',ven,' Zahozeno: ', zahozeno);
echo ('Dnes : ', dovnitr_dnes,' ',ven_dnes,' ', zahozeno_dnes);
echo (sys[8],':',sys[9],':',sys[10],' ODESLANY DATA');
dovnitr=0; ven=0; zahozeno=0;
wait (1234);
return;
label chyba_www_serveru:
echo(sys[5],'-',sys[6],'-',sys[7],' ',sys[8],':',sys[9],':',sys[10],' Chyba www http OSI7: ', sys[75],' v sys 65: ' sys[65]);
}
//////////////////////////////////////////////////////////////
main
{
echo('Start programu 201206-30.');
label start:
//cekej na obe cidla v klidu
label cekam_na_klid:
if ((sys[153] !=0 ) || (sys[151] !=0 )) goto cekam_na_klid;
// kdyz se sklidnim tak cekam na aktivaci jednoho z cidel
label cekam_na_pohyb:
if ((sys[10] == 15) && ((dovnitr != 0) || (ven != 0) || (zahozeno != 0))) odesli_data_portal(); //posilam jen kdyz tam nejsou nuly v 15te vterine
vynuluj_dnesni_data (); // kdyz je pulnoc vynuluj dnesni data
if ((sys[153] ==0 ) && (sys[151] ==0 )) goto cekam_na_pohyb;
if (sys[153] !=0 ) //nekdo jde dovnitr
{
sys[64]=7;
label cekani:
if (sys[151] != 0) //potvrzeno
{
dovnitr ++;
dovnitr_dnes ++;
echo (sys[8],':',sys[9],':',sys[10],' >>>>>>> Sel dovnitr');
goto start;
}
if (sys[64] == 0)
{
zahozeno ++;
zahozeno_dnes ++;
echo ('>>>>>>----------'); // nikdo neprosel
goto start;
}
goto cekani;
}
if (sys[151] !=0 ) //nekdo jde ven
{
// pockam
sys[64]=5;
label cekani_ven:
if (sys[153] != 0) //potvrzeno
{
ven ++;
ven_dnes ++;
echo (sys[8],':',sys[9],':',sys[10],' <<<<<<< Sel ven');
goto start;
}
if (sys[64] == 0)
{
zahozeno ++;
zahozeno_dnes ++;
echo ('<<<<<<----------');
goto start;
}
goto cekani_ven;
}
}