K úspěšnémupokusu je třeba spolupráce s adminem (Filipem). bez něho bych to taky rerozjel.
).
Prosím zatím kód nepoužívejte a necte admina taky vydechnout.
Prosím počkejte na dokončení a hlavně na důkladné otestování. Pustím se do toho v pátek a uvidíme jak půjdou testy dál. Přeci jenom potřebuji spolupráci s adminem a ten je taky jenom jeden
.
Kód: Vybrat vše
// Program pro odesilani informaci na log.mypower.cz
// *********** upozorneni **************
// lcdtime a echotime pouziva RAM[0-5]
// portal pouziva RAM[100-110]
// pokud se bude pouzivat dalsi http_get, e-mail, atd., pozor na timeouty pro dobehnuti GETu
// pozor na pouzivani sys[64] odpocitavani casu - muze dojit k omezeni funkce portalu
// ******* promenne k portalu **********
var _portal_vstup; //index S0 vstupu
var _portal_konst; //prepoctova konst S0 vstupu
var _portal_ram; //index ram pole
var _portal_pom; //pomocna
var _portal_dns; //je dostupny preklad dns
var _portal_data; //typ odesilanych dat
var _portal_timeout; //timeout pro odesilani dat
var _portal_timeoutget; //timeout pro chybu serveru
var _portal_timeoutdns; //timeout pro dns_resolve
// ******* vase promenne sem **********
var _disp; //display sds macro ano/ne
// ******* globalni procedury **********
echotime
{
ram[0]=sys[8] / 10;
ram[1]=sys[8] % 10;
ram[2]=sys[9] / 10;
ram[3]=sys[9] % 10;
ram[4]=sys[10] / 10;
ram[5]=sys[10] % 10;
echo(ram[0],ram[1]':',ram[2],ram[3]':',ram[4], ram[5]);
}
// ******* procedury portalu **********
portal_ad
{
_portal_vstup=431;
_portal_konst=436;
_portal_ram=101;
label portal_ad_1:
//AD
_portal_pom=sys[_portal_vstup]*100000/sys[_portal_konst]; //3205 jako 3.205v
ram[_portal_ram]=_portal_pom; //schovat akt.napeti
_portal_vstup++;
_portal_konst+=4;
_portal_ram++;
if (_portal_vstup<435) goto portal_ad_1;
}
odesli_data_na_portal
{
if (_portal_timeoutget==0) goto odesli_data_na_portal_get; //odeslat data
//pred odeslanim dat zkontrolovat zda nebezi predchozi pozadavek
if (sys[65]==0 && _portal_timeoutget>=sys[3]) goto odesli_data_na_portal_end; //jeste bezi, ale mam cas delam neco jineho
if (_portal_timeoutget<sys[3]) goto odesli_data_na_portal_chyba; //uz neni cas - chyba
if ((sys[65]!=1024) || (sys[75] != 200)) {
goto odesli_data_na_portal_chyba;
} else {
if (_portal_data==1) {
echotime();
echo('udaje odeslany na server mypower, OK.');
}
_portal_data++;
_portal_timeoutget=0;
if (_portal_data>1) {
_portal_timeout=sys[3]+6000; //interval 90000=15 min
_portal_data=0; //vynulovat
goto odesli_data_na_portal_end;
}
}
label odesli_data_na_portal_get:
if (_portal_dns==1) {
//mam dns
if (_portal_data==1) { //odesilam 16 teplomeru a 3 AD prevodniky
portal_ad();
http_get(sys[66],sys[67],sys[68],sys[69],'log.mypower.cz','/?fveid=tvojeidsds235a', '&', 'teploty', '&t1=', sys[310], '&t2=', sys[311], '&t3=', sys[312], '&t4=', sys[313], '&t5=', sys[314], '&t6=', sys[315], '&t7=', sys[316], '&t8=', sys[317], '&t9=', sys[318], '&t10=', sys[319], '&t11=', sys[320], '&t12=', sys[321], '&t13=', sys[322], '&t14=', sys[323], '&t15=', sys[324], '&t16=', sys[325], 'AD', '&ad1=', ram[101], '&ad2=', ram[102], '&ad3=', ram[103], '&ad4=', ram[104]);
}
} else {
//nemam dns
if (_portal_data==1) { //odesilam 16 teplomeru a 3 AD prevodniky
portal_ad();
http_get(194,12,32,227,'log.mypower.cz','/?fveid=tvojeidsds235a', '&', 'teploty', '&t1=', sys[310], '&t2=', sys[311], '&t3=', sys[312], '&t4=', sys[313], '&t5=', sys[314], '&t6=', sys[315], '&t7=', sys[316], '&t8=', sys[317], '&t9=', sys[318], '&t10=', sys[319], '&t11=', sys[320], '&t12=', sys[321], '&t13=', sys[322], '&t14=', sys[323], '&t15=', sys[324], '&t16=', sys[325], 'AD', '&ad1=', ram[101], '&ad2=', ram[102], '&ad3=', ram[103], '&ad4=', ram[104]);
}
}
_portal_timeoutget=sys[3]+1500; //15sekund pro potvrzeni ze serveru
goto odesli_data_na_portal_end;
label odesli_data_na_portal_chyba:
echo('Chyba komunikace s www serverem, http: ', sys[75]);
_portal_timeout=sys[3]+90000; //interval
_portal_data=0; //vynulovat
_portal_timeoutget=0; //vynulovat
_portal_timeoutdns=0; //vynulovat
label odesli_data_na_portal_end:
}
portal_nastav
{
_portal_timeout=0; //zrovna se odesilaji data
_portal_timeoutget=0; //vynulovat timeout predchozich get pozadavku
_portal_timeoutdns=0; //vynulovat timeout predchoziho dns resolveru
_portal_dns=0; //nemam dns
_portal_data=1;
}
portal_dns
{
if (_portal_timeoutdns==0) {
echotime();
echo('dns_resolv()');
dns_resolv('eportal.merenienergie.cz');
_portal_timeoutdns=sys[3]+1500; //15sek timeout
}
if (sys[65] == 512) {
echotime();
echo ('dns_resolv() OK:', sys[65]);
_portal_dns=1;
return;
}
if (_portal_timeoutdns<sys[3]) {
echotime();
echo ('dns_resolv() chyba:', sys[65]);
_portal_dns=2;
}
}
// ******* startovaci procedury **********
init
{
echotime();
echo('Start programu');
sys[77]=0; //http_get odpovet nechci do ram[]
sys[78]=0; //http_get odpovet nechci do ram[]
_portal_timeout=1; //odeslat data ihned
// ******* uzivatelsky nastavitelne promenne ***********
_disp=0; //display na sds macro (0-vypnuty, 1-zapnuty)
// ------- vase promenne sem -------
//mojeprom=0;
}
main
{
//odeslani dat na portal v nastaveny interval
if (_portal_timeout>0 && _portal_timeout<sys[3]) portal_nastav();
if (_portal_dns==0) portal_dns();
if (_portal_dns!=0 && _portal_data>0) odesli_data_na_portal();
// ------- volani vlastnich procedur sem -------
//mojeproc();
}