Stránka 1 z 1

NodeMCU - správny tvar pre "offline" kód - kam s ním?

Napsal: 08 led 2018, 22:17
od martinius96
Ahoj, vedel by mi niekto poradiť, či mám toto napísané správne?
Neviem čo robí v pôvodnom sketch funkcia return ak !client.connected, ktorá je tam bez parametra. Neviem, čo vracia, príde mi, že tam v kóde skončí, je to tak?

Kód: Vybrat vše

 if (!client.connect(host, httpsPort)) {
    return;
  }
Chcem to upraviť pre "offline", kedy pri strate spojenia sa bude vykonávať určitý program, je to správne, ak tam namiesto return dopíšem to, čo potrebujem, musím tam dať aj ten return?
Ďalej mám otázku k samotnému requestu..
Vzorový kód obsahuje takúto štruktúru (example code):

Kód: Vybrat vše

WiFiClientSecure client;
  if (!client.connect(host, httpsPort)) {
    return;
  }
  if (client.verify(fingerprint, host)) {
  }
  else {
  }
  String url = "/system/values/vzdialenyrestart.txt";
  client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "User-Agent: NodeMCU\r\n" + "Connection: close\r\n\r\n");
  .
  .
  .
  .
Nemal by ísť String url a client.print do client.verify?
Je dobré používať pre overenia pripojenia klienta niečo v štýle:

Kód: Vybrat vše

  unsigned long timeout = millis();
  while (client.available() == 0) {
    if (millis() - timeout > 5000) {
      Serial.println(">>> Client Timeout !");
      client.stop();
      return;
    }
  }
Používam to asi takto pre offline režim:

Kód: Vybrat vše

 WiFiClientSecure client;
  if (!client.connect(host, httpsPort)) {
Serial.println("Ovladanie termostatu - offline rezim");  
    sensors.requestTemperatures();
 delay(500);
  String teplota1 = String (sensors.getTempCByIndex(0));
  float teplota1f = teplota1.toFloat();
    if((referenciatermostat-teplota1f)>1){
       digitalWrite(termostat, LOW);
      }else if((referenciatermostat-teplota1f)<-1){
       digitalWrite(termostat, HIGH);
        }
  }
  if (client.verify(fingerprint, host)) {
  }
  else {
  }
  if (client.connect(host, httpsPort)) {
  String url = "/rosko/system/values/termostat.txt";
  client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "User-Agent: NodeMCU\r\n" + "Connection: close\r\n\r\n");

Re: NodeMCU - správny tvar pre "offline" kód - kam s ním?

Napsal: 08 led 2018, 23:30
od martinius96
využívate i client.stop(); ?

Re: NodeMCU - správny tvar pre "offline" kód - kam s ním?

Napsal: 08 kvě 2020, 17:49
od Kwt 23
K tomu bych taky rád slyšel (četl) nějakou odpověď.
Zjistit že sem v prohlížeči načetl stránku z arduina zvládnu, ale po zavření prohlížeče zústavají všechny statusy na jedničče.