A simple WIP that logs data from a Grove sensor, and can send and receive information over USB and SMS.

Dependencies:   DHT DS_1337 SDFileSystem USBDevice mbed

Revision:
0:2df78a4443cd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/timers.cpp	Sun Apr 10 15:47:33 2016 +1000
@@ -0,0 +1,74 @@
+#include "timers.h"
+
+MyTimers::MyTimers()
+{
+    // initialise timers
+    groveMeasureTimer = 0;
+    gprsPowerTimer    = 0;
+    gprsRxTxTimer     = 0;
+    sdWaitErrorTimer  = 0;
+    measFlashTimer    = 0;
+
+    m_tick = new Ticker();
+    // configure the ticker object to run every 1ms, and to call \sa run when it does so.
+    m_tick->attach(this, &MyTimers::run, 0.001);
+}
+
+MyTimers::~MyTimers()
+{
+    delete m_tick;
+}
+
+void MyTimers::run()
+{
+    // decrement each timer in the class
+    if (groveMeasureTimer) groveMeasureTimer--;
+    if (gprsPowerTimer   ) gprsPowerTimer--;
+    if (gprsRxTxTimer    ) gprsRxTxTimer--;
+    if (sdWaitErrorTimer ) sdWaitErrorTimer--;
+    if (measFlashTimer   ) measFlashTimer--;
+}
+
+
+void MyTimers::SetTimer(eTimerType timertype, unsigned long time_ms)
+{
+    // see which timer we have to set, and set it
+    switch(timertype)
+    {
+    case tmr_GroveMeasure:
+        groveMeasureTimer = time_ms;
+        break;
+    case tmr_GprsPower:
+        gprsPowerTimer = time_ms;
+        break;
+    case tmr_GprsRxTx:
+        gprsRxTxTimer = time_ms;
+        break;
+    case tmr_SdWaitError:
+        sdWaitErrorTimer = time_ms;
+        break;
+    case tmr_MeasFlash:
+        measFlashTimer = time_ms;
+        break;
+    }
+}
+
+unsigned long MyTimers::GetTimer(eTimerType timertype)
+{
+    // see which timer we have to get, and return it.
+    switch(timertype)
+    {
+    case tmr_GroveMeasure:
+        return groveMeasureTimer;
+    case tmr_GprsPower:
+        return gprsPowerTimer;
+    case tmr_GprsRxTx:
+        return gprsRxTxTimer;
+    case tmr_SdWaitError:
+        return sdWaitErrorTimer;
+    case tmr_MeasFlash:
+        return measFlashTimer;
+    }
+    return 0;
+}
+