From c2b7c1eed7f56046b97c588f09f4c7a26145ed8a Mon Sep 17 00:00:00 2001 From: structix Date: Thu, 31 Aug 2017 19:22:57 +0200 Subject: [PATCH] Rest return fixes; Sensornode delay fix --- ESP8266/sensornode/sensornode.ino | 4 ++-- RaspberryPi/main.c | 17 +++++++++-------- RaspberryPi/restcurl.c | 5 +++++ 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/ESP8266/sensornode/sensornode.ino b/ESP8266/sensornode/sensornode.ino index 67269e7..4435244 100644 --- a/ESP8266/sensornode/sensornode.ino +++ b/ESP8266/sensornode/sensornode.ino @@ -107,8 +107,8 @@ void loop() { //set new milli counter //millis will overflow after approx. 52 days. To prevent errors we're checking the limits - if (millis() + MEASURESECONDS * 1000 <= ULONG_MAX) { - millitotal = millis() + 2000; + if (millis() + (MEASURESECONDS * 1000) <= ULONG_MAX) { + millitotal = millis() + (MEASURESECONDS * 1000); } else { millitotal = 0; } diff --git a/RaspberryPi/main.c b/RaspberryPi/main.c index 18fc684..7b28a42 100644 --- a/RaspberryPi/main.c +++ b/RaspberryPi/main.c @@ -61,16 +61,17 @@ int main(void) { //start rest requests nodedata[i].pin = 0; //This data isn't relevant for a sensornode strcpy(nodedata[i].ip, currentNode->ip); - getRestSensor(&nodedata[i]); - nodedata[i].isoutside = currentNode->isoutside; //copy the boolean value - printf("Acquiring rest response\n"); + if (getRestSensor(&nodedata[i])) { + nodedata[i].isoutside = currentNode->isoutside; //copy the boolean value + printf("Acquiring rest response\n"); - printf("Temperature: %f, Humidity: %f, NodeID: %i, Outside: %s, AbsoluteHumidity: %f\n", nodedata[i].temperature, nodedata[i].humidity, nodedata[i].node_id, nodedata[i].isoutside ? "Yes" : "No", absoluteHumidity(&nodedata[i])); - - //Insert data into database - printf("Insert data into stats table\n"); - insertData(&nodedata[i]); + printf("Temperature: %f, Humidity: %f, NodeID: %i, Outside: %s, AbsoluteHumidity: %f\n", nodedata[i].temperature, nodedata[i].humidity, nodedata[i].node_id, nodedata[i].isoutside ? "Yes" : "No", absoluteHumidity(&nodedata[i])); + //Insert data into database + printf("Insert data into stats table\n"); + insertData(&nodedata[i]); + } + currentNode = currentNode->next; } diff --git a/RaspberryPi/restcurl.c b/RaspberryPi/restcurl.c index 2149c5a..844d781 100644 --- a/RaspberryPi/restcurl.c +++ b/RaspberryPi/restcurl.c @@ -86,6 +86,11 @@ int getRestSensor(sensor *sensor) { sensor->temperature = (float)temperature->valuedouble; sensor->humidity = (float)humidity->valuedouble; sensor->node_id = atoi(id->valuestring); + } else { + //free + cJSON_Delete(jsondata); + free(data); + return 0; } //free cJSON_Delete(jsondata);