discof746 ethernet+lcd+ts2

Dependents:   grove_stream_jpa_sd2 grove_stream_jpa_sd2 grove_stream_jpa_sd2-2 grove_stream_jpa_sd2-3

Revision:
3:494da6893902
Parent:
2:b77ba7f2611b
--- a/GroveStreams.cpp	Tue Sep 15 19:05:59 2020 +0000
+++ b/GroveStreams.cpp	Wed Jan 13 19:51:28 2021 +0000
@@ -1,30 +1,14 @@
 /*
  GroveStreams is a helper class to assist with pushing data into the
-  GroveStreams.com IoT platform.
-  
- License:
-  Copyright (C) 2017 GroveStreams LLC.
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
+ GroveStreams.com IoT platform.
 */
-
 #include "GroveStreams.h"
-
 GroveStreams::GroveStreams(const char* apiKey, LcdDiscoF746NgTracer* pLcd)
-{
-    init(apiKey, pLcd);
+{   init(apiKey, pLcd);
 }
 
 GroveStreams::GroveStreams(const char* apiKey)
-{
-    init(apiKey, NULL);
+{    init(apiKey, NULL);
 }
 
 GroveStreams::~GroveStreams() {
@@ -34,23 +18,17 @@
 extern char gsStreamIPdatas[];
 static char* _domain;
 int GroveStreams::init(const char* apiKey, LcdDiscoF746NgTracer* pLcd)
-{
-
-    _domain = gsStreamIPdatas;
+{   _domain = gsStreamIPdatas;
     _port = 1880;
     _apiKey = apiKey;
     _myIPAddress = NULL;  //Don't Change. Set below from DHCP. Needed by GroveStreams to verify that a device is not uploading more than once every 10s.
     _pLcd = pLcd;
-
     return startEthernet();
 }
 
 void GroveStreams::printf(const char* format, ...)
-{
-
-    va_list args;
+{   va_list args;
     va_start(args, format);
-
     if (_pLcd != NULL) {
         char sbuffer[512];
         vsprintf(sbuffer, format, args);
@@ -58,25 +36,21 @@
     } else {
         vprintf(format, args);
     }
-
     va_end(args);
 }
 
 unsigned long GroveStreams::send(const char* componentId, const char* samples)
-{
-    char resultBuffer[256]= {0};
+{   char resultBuffer[256]= {0};
     return send(componentId, samples, NULL, NULL, resultBuffer, sizeof resultBuffer);
 }
 
 unsigned long GroveStreams::sendJPA(const char* componentId, const char* samples)
-{
-    char resultBuffer[256]= {0};
+{   char resultBuffer[256]= {0};
     return sendJPA(componentId, samples, NULL, NULL, resultBuffer, sizeof resultBuffer);
 }
 
 unsigned long GroveStreams::sendInitDatasJPA(const char* componentId, const char* samples)
-{
-    char resultBuffer[256]= {0};
+{   char resultBuffer[256]= {0};
     return sendInitDatasJPA(componentId, samples, NULL, NULL, resultBuffer, sizeof resultBuffer);
 }
 // ------------------------------------------------
@@ -86,307 +60,225 @@
    
 unsigned long GroveStreams::send(const char* componentId, const char* samples, const char* componentName, 
                                  const char* compTmplId, char* resultBuffer, size_t resultBufferSize)
-{
-    int failedCounter = 0;
+{   int failedCounter = 0;
     int result = 1;
-
-    while (failedCounter < 3 && result != 0) {
-        
-        result = sendNoRetry(componentId, samples, componentName, compTmplId, resultBuffer, resultBufferSize);
-        
-        this->printf("send result code: %d", result);
-        
+    while (failedCounter < 3 && result != 0) {       
+        result = sendNoRetry(componentId, samples, componentName, compTmplId, resultBuffer, resultBufferSize);       
+        this->printf("send result code: %d", result);       
         if (result != 0) {
             //Wait and try again
             failedCounter++;
             this->printf("send failed %d times", failedCounter);
             wait(2);
         }
-
         if (failedCounter > 3 ) {
             this->printf("Too many failures. Restarting Ethernet.");
             startEthernet();
         }
     }
-
     return result;
 }
 
 unsigned long GroveStreams::sendJPA(const char* componentId, const char* samples, const char* componentName, 
                                  const char* compTmplId, char* resultBuffer, size_t resultBufferSize)
-{
-    int failedCounter = 0;
+{   int failedCounter = 0;
     int result = 1;
-
-    while (failedCounter < 3 && result != 0) {
-        
-        result = sendNoRetryJPA(componentId, samples, componentName, compTmplId, resultBuffer, resultBufferSize);
-        
-        this->printf("send result code: %d", result);
-        
+    while (failedCounter < 3 && result != 0) {       
+        result = sendNoRetryJPA(componentId, samples, componentName, compTmplId, resultBuffer, resultBufferSize);       
+        this->printf("send result code: %d", result);       
         if (result != 0) {
             //Wait and try again
             failedCounter++;
             this->printf("send failed %d times", failedCounter);
             wait(2);
         }
-
         if (failedCounter > 3 ) {
             this->printf("Too many failures. Restarting Ethernet.");
             startEthernet();
         }
     }
-
     return result;
 }
    
-
 unsigned long GroveStreams::sendInitDatasJPA(const char* componentId, const char* samples, const char* componentName, 
                                  const char* compTmplId, char* resultBuffer, size_t resultBufferSize)
-{
-    int failedCounter = 0;
+{   int failedCounter = 0;
     int result = 1;
-
-    while (failedCounter < 3 && result != 0) {
-        
-        result = sendNoRetryInitDatasJPA(componentId, samples, componentName, compTmplId, resultBuffer, resultBufferSize);
-        
-        this->printf("send result code: %d", result);
-        
+    while (failedCounter < 3 && result != 0) {       
+        result = sendNoRetryInitDatasJPA(componentId, samples, componentName, compTmplId, resultBuffer, resultBufferSize);        
+        this->printf("send result code: %d", result);       
         if (result != 0) {
             //Wait and try again
             failedCounter++;
             this->printf("send failed %d times", failedCounter);
             wait(2);
         }
-
         if (failedCounter > 3 ) {
             this->printf("Too many failures. Restarting Ethernet.");
             startEthernet();
         }
     }
-
     return result;
 }
 
 unsigned long GroveStreams::sendNoRetry(const char* componentId, const char* samples, const char* componentName, 
                                         const char* compTmplId, char* resultBuffer, size_t resultBufferSize)
-{
-    //Assemble the url that is used to pass the temperature readings to GroveStreams and call it
-
+{   //Assemble the url that is used to pass the temperature readings to GroveStreams and call it
     network::tcp::Socket socket;
-
     int openResult = socket.open();
     if (openResult == 0) {
-
         int connResult = socket.connect(_domain, _port);
         if(connResult == 0) {
-
             char compNamePart[100] = {0};
             if (strlen(componentName) > 0) {
                 sprintf(compNamePart, "&compName=%s",componentName);
             }
-
             char compTmplIdPart[100] = {0};
             if (strlen(compTmplId) > 0) {
                 sprintf(compTmplIdPart, "&compTmplId=%s",compTmplId);
             }
-
             //You may need to increase the size of sbuffer if any other char array sizes have increased
             char sbuffer[512]= {0};
-
             sprintf(sbuffer, "PUT /stm32/datas?compId=%s%s%s&api_key=%s%s HTTP/1.1\r\nHost: \r\nConnection: close\r\nX-Forwarded-For:%s\r\n\r\n",
                     componentId, compTmplIdPart, compNamePart, _apiKey, samples, _myIPAddress);
-
             this->printf("send sbuffer size: %d", strlen(sbuffer));
-
             int scount = socket.write(sbuffer, strlen(sbuffer));
             //this->printf("sent %d bytes: [%.*s]", scount, strstr(sbuffer, "\r\n")-sbuffer, sbuffer);
-
-            //Read status line
-            
+            //Read status line            
             int rcount = socket.read(resultBuffer, resultBufferSize);
-
             this->printf("HTTP Response size: %d bytes", rcount);
-            this->printf("HTTP Response Status:[%.*s]", strstr(resultBuffer, "\r\n")-resultBuffer, resultBuffer);
-            
+            this->printf("HTTP Response Status:[%.*s]", strstr(resultBuffer, "\r\n")-resultBuffer, resultBuffer);            
             //Only return the body
             strcpy(resultBuffer, strstr(resultBuffer, "\r\n\r\n") + strlen("\r\n\r\n"));
             strcat(resultBuffer, "\0");
-            //this->printf("HTTP Body: [%s]", resultBuffer);
-            
+            //this->printf("HTTP Body: [%s]", resultBuffer);           
             socket.close();
         } else {
 
             this->printf("Socket Connect Failed: %d", connResult);
         }
-
     } else {
         this->printf("Socket Open Failed: %d", openResult);
         socket.close();
         return 1;
     }
-
     return 0;
 }
 
 unsigned long GroveStreams::sendNoRetryJPA(const char* componentId, const char* samples, const char* componentName, 
                                         const char* compTmplId, char* resultBuffer, size_t resultBufferSize)
-{
-    //Assemble the url that is used to pass the temperature readings to GroveStreams and call it
-
+{    //Assemble the url that is used to pass the temperature readings to GroveStreams and call it
     network::tcp::Socket socket;
-
     int openResult = socket.open();
     if (openResult == 0) {
-
         int connResult = socket.connect(_domain, _port);
         if(connResult == 0) {
-
             char compNamePart[100] = {0};
             if (strlen(componentName) > 0) {
                 sprintf(compNamePart, "&compName=%s",componentName);
             }
-
             char compTmplIdPart[100] = {0};
             if (strlen(compTmplId) > 0) {
                 sprintf(compTmplIdPart, "&compTmplId=%s",compTmplId);
             }
-
             //You may need to increase the size of sbuffer if any other char array sizes have increased
             char sbuffer[512]= {0};
-
             sprintf(sbuffer, "PUT /stm32/touches?compId=%s%s%s&api_key=%s%s HTTP/1.1\r\nHost: \r\nConnection: close\r\nX-Forwarded-For:%s\r\n\r\n",
                     componentId, compTmplIdPart, compNamePart, _apiKey, samples, _myIPAddress);
-
             this->printf("send sbuffer size: %d", strlen(sbuffer));
-
             int scount = socket.write(sbuffer, strlen(sbuffer));
             //this->printf("sent %d bytes: [%.*s]", scount, strstr(sbuffer, "\r\n")-sbuffer, sbuffer);
-
-            //Read status line
-            
+            //Read status line           
             int rcount = socket.read(resultBuffer, resultBufferSize);
-
             this->printf("HTTP Response size: %d bytes", rcount);
-            this->printf("HTTP Response Status:[%.*s]", strstr(resultBuffer, "\r\n")-resultBuffer, resultBuffer);
-            
+            this->printf("HTTP Response Status:[%.*s]", strstr(resultBuffer, "\r\n")-resultBuffer, resultBuffer);            
             //Only return the body
             strcpy(resultBuffer, strstr(resultBuffer, "\r\n\r\n") + strlen("\r\n\r\n"));
             strcat(resultBuffer, "\0");
-            //this->printf("HTTP Body: [%s]", resultBuffer);
-            
+            //this->printf("HTTP Body: [%s]", resultBuffer);            
             socket.close();
         } else {
-
             this->printf("Socket Connect Failed: %d", connResult);
         }
-
     } else {
         this->printf("Socket Open Failed: %d", openResult);
         socket.close();
         return 1;
     }
-
     return 0;
 }
 
 unsigned long GroveStreams::sendNoRetryInitDatasJPA(const char* componentId, const char* samples, const char* componentName, 
                                         const char* compTmplId, char* resultBuffer, size_t resultBufferSize)
-{
-    //Assemble the url that is used to pass the temperature readings to GroveStreams and call it
-
+{    //Assemble the url that is used to pass the temperature readings to GroveStreams and call it
     network::tcp::Socket socket;
-
     int openResult = socket.open();
     if (openResult == 0) {
         //printf("\nConnect to socket : %s\n",_domain);
         int connResult = socket.connect(_domain, _port);
         if(connResult == 0) {
-
             char compNamePart[100] = {0};
             if (strlen(componentName) > 0) {
                 sprintf(compNamePart, "&compName=%s",componentName);
             }
-
             char compTmplIdPart[100] = {0};
             if (strlen(compTmplId) > 0) {
                 sprintf(compTmplIdPart, "&compTmplId=%s",compTmplId);
             }
-
             //You may need to increase the size of sbuffer if any other char array sizes have increased
             char sbuffer[512]= {0};
 
             sprintf(sbuffer, "PUT /stm32/init?compId=%s%s%s&api_key=%s%s HTTP/1.1\r\nHost: \r\nConnection: close\r\nX-Forwarded-For:%s\r\n\r\n",
                     componentId, compTmplIdPart, compNamePart, _apiKey, samples, _myIPAddress);
-
             this->printf("send sbuffer size: %d", strlen(sbuffer));
-
             int scount = socket.write(sbuffer, strlen(sbuffer));
             this->printf("sent %d bytes: [%.*s]", scount, strstr(sbuffer, "\r\n")-sbuffer, sbuffer);
-
-            //Read status line
-            
+            //Read status line            
             int rcount = socket.read(resultBuffer, resultBufferSize);
-
             this->printf("HTTP Response size: %d bytes", rcount);
-            this->printf("HTTP Response Status:[%.*s]", strstr(resultBuffer, "\r\n")-resultBuffer, resultBuffer);
-            
+            this->printf("HTTP Response Status:[%.*s]", strstr(resultBuffer, "\r\n")-resultBuffer, resultBuffer);            
             //Only return the body
             strcpy(resultBuffer, strstr(resultBuffer, "\r\n\r\n") + strlen("\r\n\r\n"));
             strcat(resultBuffer, "\0");
-            this->printf("HTTP Body: [%s]", resultBuffer);
-            
+            this->printf("HTTP Body: [%s]", resultBuffer);           
             socket.close();
         } else {
-
             this->printf("Socket Connect Failed: %d", connResult);
         }
-
     } else {
         this->printf("Socket Open Failed: %d", openResult);
         socket.close();
         return 1;
     }
-
     return 0;
 }
 int GroveStreams::startEthernet()
-{
-    //Start or restart the Ethernet connection.
+{   //Start or restart the Ethernet connection.
     int result = _eth.disconnect();
     if (result != 0) {
         this->printf("Ethernet diconnect Failed: %d", result);
         return result;
     }
-
     this->printf("Connecting STM32 to network...");
-
     //Connect to the network and obtain an IP address using DHCP
     result = _eth.init();
     if (result != 0) {
         this->printf("Ethernet init Failed: %d", result);
         return result;
     }
-
     result = _eth.connect();
     if (result != 0) {
         this->printf("Ethernet connect Failed: %d", result);
         return result;
     } else {
         this->printf("STM32 connected to network");
-
         //Set the mac and ip variables so that they can be used during sensor uploads later
         _myIPAddress = _eth.getIPAddress();
-
         this->printf("IP address: %s", _myIPAddress ? _myIPAddress : "No IP");
     }
-
     return 0;
 }
+const char* GroveStreams::getMACAddress()
+{    return _eth.getMACAddress();
+}
 
-const char* GroveStreams::getMACAddress()
-{
-    return _eth.getMACAddress();
-}
-