Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Risolto! Comandare upanel in modo asincrono anche da browser
#14
Ciao Simone,
riprendo questa interessante discussione perche sto cercando di capire un po' il funzionamento di questi moduli utilizzando  i socket TCP.
Dello sketch che hai postato (che ho quotato alla fine) ci sono alcune parti che non mi sono chiare e ti ringrazio se riuscirai a spiegarmele:

Code:
 Serial.println("$TCP0:LAHQ::2020:OK");
Crei un server con socket 0 che si disconnette quando ricevuto il pacchetto correttamente. Perche viene inviato l'OK finale?


Code:
   if (Msg.substring(0,18).equals("$TCP0:>H:GET /CMD?"))
   {
    int p = Msg.substring(18).indexOf(" ");
    if (p > 0)
    {
      Msg = "#"+Msg.substring(18,18+p);
      Serial.println(Msg);
    } 
   }
Potresti dettagliare il funzionamento di questa If  e nello specifico il significato della prima riga ("$TCP0:>H:GET /CMD?")

// CODICE ORIGINALE COMPLETO
Code:
void setup() {

 // Initialize Serial Port
 Serial.begin(57600);
 
 // Let uPanel start 
 delay(3000);

 // Discharge old partial messages
 Serial.println("");
 
 // Send The Panel (A LED and a Switch)
 Serial.println("$P:Dg21;/5T*25fb:Prova;=*16/30{mL1G:0;|*12W1:0;|T:Relè 1;}/{mL2G:0;|*12W2:0;|T:Relè 2;}/30*20T#FF0ht3,000:Prova relè;");
 //server
 Serial.println("$TCP0:LAHQ::2020:OK");
 // Initialize digital output pin
 digitalWrite(8, 0);
 pinMode(8,OUTPUT);
 digitalWrite(9, 0);
 pinMode(9,OUTPUT);
 
}

String Msg;

void loop() {
 int c;
 while ((c = Serial.read()) > '\n') Msg += (char) c;  // Read incoming chars, if any, until new line
 if (c == '\n') {          // is the message complete?
   if (Msg.substring(0,18).equals("$TCP0:>H:GET /CMD?")){
    int p = Msg.substring(18).indexOf(" ");
    if (p > 0){
      Msg = "#"+Msg.substring(18,18+p);
      Serial.println(Msg);
    } 
   } 
   if (Msg.equals("#W20")) {digitalWrite(9,0); Serial.println("#L20");}
   if (Msg.equals("#W21")) {digitalWrite(9,1); Serial.println("#L21");}    
   if (Msg.equals("#W10")) {digitalWrite(8,0); Serial.println("#L10");}    
   if (Msg.equals("#W11")) {digitalWrite(8,1); Serial.println("#L11");}  
   Msg = "";
 }  
}

Grazie
Reply


Messages In This Thread
RE: Comandare upanel in modo asincrono anche da browser - by Franchelli - 06-26-2017, 09:35 AM

Forum Jump:


Users browsing this thread: 1 Guest(s)