Stripped-down version of GDP Node Core
Dependencies: EthernetInterface MbedJSONValue SDFileSystem mbed-rtos mbed snail
main.cpp
- Committer:
- Trumple
- Date:
- 2015-05-18
- Revision:
- 0:bb17d0395fb8
File content as of revision 0:bb17d0395fb8:
#include "mbed.h"
#include "snail.h"
#include "sensorinterface.h"
#include "sdcard.h"
#include "MbedJSONValue.h"
#include <map>
#define DEBUG
time_t lastPollTime = 0;
time_t pollInterval = 30;
bool isBasenode = false;
sensorinterface* sif;
char localAddress[8];
char baseNodeAddress[8];
bool networkParametersUpdated = false;
bool networkParametersTimedOut = false;
Serial pc(USBTX, USBRX);
int main()
{
sdcard sd = sdcard();
//check if local node is basenode
#ifdef DEBUG
pc.printf("[MAIN] Basenode status: %i\r\n", isBasenode);
#endif
sensorinterface sensors = sensorinterface();
sif = &sensors;
while(1)
{
//check if it's time to poll
if (time(NULL) - lastPollTime > pollInterval)
{
#ifdef DEBUG
pc.printf("[MAIN] Requesting data...\r\n");
#endif
sensors.requestData();
lastPollTime = time(NULL);
}
//if there is data waiting for us...
if (sensors.isDataWaiting())
{
#ifdef DEBUG
pc.printf("[MAIN] Data waiting, reading data...\r\n");
#endif
d_reply data = sensors.readData();
#ifdef DEBUG
pc.printf("[MAIN] Got data: ");
for (int i = 0; i < data.readings.size(); i++)
pc.printf("0x%.4X|", data.readings[i]);
pc.printf("\r\n");
#endif
//log
sd.write(static_cast<long int>(time(NULL)), data);
}
}
}