GDP group 24 node core

Dependencies:   EthernetInterface SDFileSystem mbed-rtos mbed snail MbedJSONValue

Files at this revision

API Documentation at this revision

Comitter:
jakehodges
Date:
Tue Jan 27 22:20:46 2015 +0000
Parent:
22:835a6c6dcfbb
Child:
25:fe273397ebb2
Commit message:
Update JSON message to server to include int array. Update sensordata message to reflect changes in SNAIL. Fix SD card location string. Fix I2C id conflict.

Changed in this revision

http.cpp Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
sdcard.cpp Show annotated file Show diff for this revision Revisions of this file
snail.lib Show annotated file Show diff for this revision Revisions of this file
--- a/http.cpp	Tue Jan 13 23:53:24 2015 +0000
+++ b/http.cpp	Tue Jan 27 22:20:46 2015 +0000
@@ -133,7 +133,6 @@
 string http::parse(string httpReply)
 {
     int payloadBegin = httpReply.find("\r\n\r\n");
-    
     if (payloadBegin > -1)
     {
         string payload(httpReply.begin() + payloadBegin + 4, httpReply.end());
--- a/main.cpp	Tue Jan 13 23:53:24 2015 +0000
+++ b/main.cpp	Tue Jan 27 22:20:46 2015 +0000
@@ -12,7 +12,7 @@
 time_t pollInterval = 30;
 
 
-bool isBasenode = true;
+bool isBasenode = false;
 string fieldID = "testfield";
 
 http h = http();
@@ -88,17 +88,14 @@
     pc.printf("[MAIN] Got sensor data...\r\n");
     snail::sensordata& d = static_cast<snail::sensordata&>(message);
     
-    int value = 0;
-    value += d.payload[0];
-    value = value << 8;
-    value += d.payload[1];
-    
     char sensorID[3];
     sprintf(sensorID, "%i", d.i2cAddress);
     
     MbedJSONValue j;
     j["timestamp"] = (int)time(NULL);
-    j["value"] = value;
+    
+    for (int i = 0; i < d.payloadSize; i++)
+        j["value"][i] = d.payload[i];
     
     #ifdef DEBUG
         pc.printf( ("[MAIN] POSTing sensor reading: " + j.serialize() + "\r\n").c_str() );
@@ -164,7 +161,7 @@
     while (cs != sif->sensors.end() && i < 32)
     {
         localSensors[i].type = cs->second.type;
-        localSensors[i].id = cs->first;
+        localSensors[i].id = cs->second.type;
         i++;
         cs++;
     }
@@ -226,7 +223,7 @@
         pc.printf("\r\n");
         pc.printf("\r\n");
     #endif
-    //sdcard sd = sdcard();
+    sdcard sd = sdcard();
     
     //TODO: read basenode pin
     #ifdef DEBUG
@@ -310,17 +307,17 @@
                     pc.printf("\r\n");
                 #endif
                 
-                string readings_str(data.readings.begin(), data.readings.end());
-                char readings[sizeof(snail::sensordata().payload)];
-                memcpy(readings, readings_str.c_str(), sizeof(readings));
+                int readings[16];
+                for (int i = 0; i < data.readings.size(); i++)
+                    readings[i] = data.readings[i];
                 
                 //TODO: Get real I2C address
-                snail::sensordata message(baseNodeAddress, data.type, data.type, time(NULL), readings, readings_str.size());
+                snail::sensordata message(baseNodeAddress, data.type, data.type, time(NULL), readings, data.readings.size());
                 
                 messageQueue.push(message);
                 
                 //log
-                //sd.write(static_cast<long int>(time(NULL)), data);
+                sd.write(static_cast<long int>(time(NULL)), data);
             }
         }
     }
--- a/sdcard.cpp	Tue Jan 13 23:53:24 2015 +0000
+++ b/sdcard.cpp	Tue Jan 27 22:20:46 2015 +0000
@@ -16,8 +16,12 @@
     string sd_name = "/sd/";
     string sd_location ="";
     char time_s[64];
- 
-    sd_location = sd_name + data.type;
+    
+    char buffer[20];
+    sprintf(buffer, "%i", data.type);
+    string dataTypeStr = string(buffer);
+    
+    sd_location = sd_name + dataTypeStr;
     mkdir(sd_location.c_str(), 0777);
     
     sprintf(time_s, "%d", time);
@@ -27,13 +31,13 @@
     
     if (fp == NULL)
     {
-        printf("File pointer null, failed to open file\r\n");
+        printf("[SD] File pointer null, failed to open file\r\n");
     }
     
     string serializedData;
     
     for (int i = 0; i < data.readings.size(); i++)
-        fprintf(fp, "%i", data.readings[i]);
+        fprintf(fp, "%i\r\n", data.readings[i]);
     
     fclose(fp);
  
--- a/snail.lib	Tue Jan 13 23:53:24 2015 +0000
+++ b/snail.lib	Tue Jan 27 22:20:46 2015 +0000
@@ -1,1 +1,1 @@
-http://developer.mbed.org/users/Trumple/code/snail/#73668097572a
+http://developer.mbed.org/users/Trumple/code/snail/#e5fcfc97001f