Stripped-down version of GDP Node Core

Dependencies:   EthernetInterface MbedJSONValue SDFileSystem mbed-rtos mbed snail

Committer:
Trumple
Date:
Mon May 18 16:16:15 2015 +0000
Revision:
0:bb17d0395fb8
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Trumple 0:bb17d0395fb8 1 #include "mbed.h"
Trumple 0:bb17d0395fb8 2 #include "snail.h"
Trumple 0:bb17d0395fb8 3 #include "sensorinterface.h"
Trumple 0:bb17d0395fb8 4 #include "sdcard.h"
Trumple 0:bb17d0395fb8 5 #include "MbedJSONValue.h"
Trumple 0:bb17d0395fb8 6 #include <map>
Trumple 0:bb17d0395fb8 7
Trumple 0:bb17d0395fb8 8 #define DEBUG
Trumple 0:bb17d0395fb8 9
Trumple 0:bb17d0395fb8 10 time_t lastPollTime = 0;
Trumple 0:bb17d0395fb8 11 time_t pollInterval = 30;
Trumple 0:bb17d0395fb8 12
Trumple 0:bb17d0395fb8 13 bool isBasenode = false;
Trumple 0:bb17d0395fb8 14
Trumple 0:bb17d0395fb8 15 sensorinterface* sif;
Trumple 0:bb17d0395fb8 16
Trumple 0:bb17d0395fb8 17 char localAddress[8];
Trumple 0:bb17d0395fb8 18 char baseNodeAddress[8];
Trumple 0:bb17d0395fb8 19 bool networkParametersUpdated = false;
Trumple 0:bb17d0395fb8 20 bool networkParametersTimedOut = false;
Trumple 0:bb17d0395fb8 21
Trumple 0:bb17d0395fb8 22 Serial pc(USBTX, USBRX);
Trumple 0:bb17d0395fb8 23
Trumple 0:bb17d0395fb8 24 int main()
Trumple 0:bb17d0395fb8 25 {
Trumple 0:bb17d0395fb8 26 sdcard sd = sdcard();
Trumple 0:bb17d0395fb8 27
Trumple 0:bb17d0395fb8 28 //check if local node is basenode
Trumple 0:bb17d0395fb8 29 #ifdef DEBUG
Trumple 0:bb17d0395fb8 30 pc.printf("[MAIN] Basenode status: %i\r\n", isBasenode);
Trumple 0:bb17d0395fb8 31 #endif
Trumple 0:bb17d0395fb8 32
Trumple 0:bb17d0395fb8 33 sensorinterface sensors = sensorinterface();
Trumple 0:bb17d0395fb8 34 sif = &sensors;
Trumple 0:bb17d0395fb8 35
Trumple 0:bb17d0395fb8 36 while(1)
Trumple 0:bb17d0395fb8 37 {
Trumple 0:bb17d0395fb8 38 //check if it's time to poll
Trumple 0:bb17d0395fb8 39 if (time(NULL) - lastPollTime > pollInterval)
Trumple 0:bb17d0395fb8 40 {
Trumple 0:bb17d0395fb8 41 #ifdef DEBUG
Trumple 0:bb17d0395fb8 42 pc.printf("[MAIN] Requesting data...\r\n");
Trumple 0:bb17d0395fb8 43 #endif
Trumple 0:bb17d0395fb8 44 sensors.requestData();
Trumple 0:bb17d0395fb8 45 lastPollTime = time(NULL);
Trumple 0:bb17d0395fb8 46 }
Trumple 0:bb17d0395fb8 47
Trumple 0:bb17d0395fb8 48 //if there is data waiting for us...
Trumple 0:bb17d0395fb8 49 if (sensors.isDataWaiting())
Trumple 0:bb17d0395fb8 50 {
Trumple 0:bb17d0395fb8 51 #ifdef DEBUG
Trumple 0:bb17d0395fb8 52 pc.printf("[MAIN] Data waiting, reading data...\r\n");
Trumple 0:bb17d0395fb8 53 #endif
Trumple 0:bb17d0395fb8 54
Trumple 0:bb17d0395fb8 55 d_reply data = sensors.readData();
Trumple 0:bb17d0395fb8 56
Trumple 0:bb17d0395fb8 57 #ifdef DEBUG
Trumple 0:bb17d0395fb8 58 pc.printf("[MAIN] Got data: ");
Trumple 0:bb17d0395fb8 59 for (int i = 0; i < data.readings.size(); i++)
Trumple 0:bb17d0395fb8 60 pc.printf("0x%.4X|", data.readings[i]);
Trumple 0:bb17d0395fb8 61 pc.printf("\r\n");
Trumple 0:bb17d0395fb8 62 #endif
Trumple 0:bb17d0395fb8 63
Trumple 0:bb17d0395fb8 64 //log
Trumple 0:bb17d0395fb8 65 sd.write(static_cast<long int>(time(NULL)), data);
Trumple 0:bb17d0395fb8 66 }
Trumple 0:bb17d0395fb8 67 }
Trumple 0:bb17d0395fb8 68 }