Tagungsbeitrag bezüglich Bertl, ESP8266, Programmierung, Server, Kommunikation

Browser basierende Kommunikation

Homepage

Übersicht der IoT-Kommunikation

In einem Webbrowser oder kurz Browser können mit der URI nach einem "/?" Requests für den Server mitgegeben werden:

/media/uploads/ftkl_user/uri.png

http://IP-Address[:Port][/[?][Param1=ParamVal1][&][Param2=ParamVal2] ...

In unserem Fall erfolgt der Aufruf für das m0/m§-Board:

  • http://172.16.63.152:80/?M0=SD&chan=01&state=1
    mit diesem Request werden am Server die Parameter und Werte der Parameter überprüft und ein definierter String über die serielle Schnittstelle an das M0-Board (Bertl oder M3) geschickt. In unserem Fall:
  • M0_SD_01_1

Ein einfacher Request ohne Parameter (z.B.: Bertl Move()):

sieht im Server http_bertl_server.ino folgendermassen aus (ab Zeile 880):

            if(os_strcmp(pURL_Param->pParam[0], "request")==0) { 
          :
                else if(os_strcmp(pURL_Param->pParVal[0], "MV")==0) {
                      rparam.request = MV;
                      rparam.requestval = 0;
                      // Execute request & get reply string
                      Server_ExecuteRequest(servertype, rparam, &payld,"");
                }
          :

Der obere Request wird im Server http_bertl_server.ino folgendermassen umgesetzt (ab Zeile 1000):

                //-------------- Request = SetDigital M0 ---------------------
                if(os_strcmp(pURL_Param->pParVal[0], "SD")==0){
                    if(os_strcmp(pURL_Param->pParam[1], "chan")==0) {
                        BertlRequest = "M0_SD_";
                        BertlRequest += pURL_Param->pParVal[1];
                        BertlRequest += "_";
                    }
                    else {
                        BertlRequest = "Invalid Request";  
                    }

und schiesslich werden die Requests in der Funktion Server_ExecuteRequest(...) ausgeführt (ab Zeile 1770):

            
                //------------- Execute valid request  ---------------------
                else {
                    rparam.request = BERTL_REQUEST;
                    rparam.requestval = 0;
                    Server_ExecuteRequest(servertype, rparam, &payld, BertlRequest);
                }

App-basierende Kommunikation

entwickelt mit MIT AppInventor.


All wikipages