1

Téma: [vyřešeno] HTTP GET

Zdravím,
mám problém s funkcí http_get viz kód kter přikládám.

Problém je že kód má runtime 6 second na SDS MICRO. Je fce http_get na kterou čekám. Ale když dám požadavek například z počítače tak je vyřízeno do 1 sekundy.

r2imp
{
     echo(sys[7],'/',sys[6],'/',sys[5],' ',sys[8],':',sys[9],':',sys[10],': ','*r2imp START');
     sys[232] = 1; // rele 2 ON
     wait(750); // pockej 3/4 sekundy
     sys[232] = 0; // rele 2 OFF
     
     sys[142] = 0; // vynulovat primou promennou pro open requesty
}

init
{
    //echo(sys[7],'/',sys[6],'/',sys[5],' ',sys[8],':',sys[9],':',sys[10],': ','>>> SDS-C INIT START <<<');
    
    sys[77] = 1; //obsah http_get je ukladan do ram[1]
    sys[76] = 80; //port http serveru pro HTTP GET
}

main
{
    ram[255] = sys[4];
    // init before every run
    wait(100);
    ram[0] = 0;
    ram[1] = 0;
    //echo(sys[7],'/',sys[6],'/',sys[5],' ',sys[8],':',sys[9],':',sys[10],': ','>>> SDS-C MAIN START <<<');

    if (sys[142] > 0) r2imp(); // kontrola prime promenne pro open requesty

    http_get(10,0,2,91,'host','/api/private/processEntryRequest.php','?unitID=','1','&token=','1234');

    label cekam_na_http:
    if (sys[65] == 0) goto cekam_na_http;
    
    if ((sys[65] != 1024)||(sys[75] != 200)) goto chyba_www_serveru;
    goto final;
    
    label chyba_www_serveru:
    echo('Chyba, www server nedostupny nebo nevratil 200 OK - konkretni http kod je: ',sys[75]);
    
    label final:
    
    if (ram[1] == 49) r2imp();
    
    ram[255] = sys[4] - ram[255];
    echo('RUNTIME: ', ram[255]);
}

2

Re: [vyřešeno] HTTP GET

Jaká je to verze firmware ?

Je možnost udělat paketový záchyt mezi serverem a SDS (buď z Eth kabelu pomocí hubu, nebo např. Wiresharkem na serveru) ?

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

3

Re: [vyřešeno] HTTP GET

Verze firmware je poslední tedy z 9.9.2014.
Zachytil jsem pakety jenom mi napište kam vám mohu poslat ten soubor se zachycenými pakety?

4

Re: [vyřešeno] HTTP GET

Super. Adresa je:
sds(at)an-d.cz

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

5

Re: [vyřešeno] HTTP GET

Vyřešeno přes email.

Ve zkratce:
server vracel jediný znak, a SDS čekalo na více znaků (SDS čeká dokud server neuzavře spojení, nebo dokud samo SDS nepřijme určený počet znaků - v tomto případě server poslal jeden znak a neuzavřel spojení, takže SDS čekalo na další znaky).

V SDS-C stačí nastavit zápisem do sys[78] počet znaků, kolik jich má SDS od serveru očekávat a je vše vyřešeno.

Ve výchozím stavu, tj. když SDS-C program nezapíše do sys[78], tak SDS čeká na příjem výchozího počtu znaků (32).

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !