SmartREST client reference implementation for the u-blox C027 mbed compatible device.

Dependencies:   C027 C027_Support mbed mbed-rtos MbedSmartRest LM75B MMA7660 C12832

Fork of MbedSmartRestTest by Vincent Wochnik

Committer:
vwochnik
Date:
Tue Feb 18 15:51:57 2014 +0000
Revision:
17:877a9a3148a4
Parent:
15:0ccf0f530a05
Child:
18:6bce406b3da2
fix

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vwochnik 12:beb64aa0da86 1 #include "io.h"
vwochnik 12:beb64aa0da86 2 #include "rtos.h"
vwochnik 12:beb64aa0da86 3
vwochnik 15:0ccf0f530a05 4 void timer_callback(void const*);
vwochnik 12:beb64aa0da86 5
vwochnik 14:56da550a1baa 6 // Using Arduino pin notation
vwochnik 17:877a9a3148a4 7 C12832 lcdDisplay(D11, D13, D12, D7, D10);
vwochnik 17:877a9a3148a4 8 MMA7660 accSensor(SDA,SCL);
vwochnik 17:877a9a3148a4 9 LM75B tempSensor(SDA,SCL);
vwochnik 17:877a9a3148a4 10 DigitalOut button(D4);
vwochnik 17:877a9a3148a4 11 AnalogIn meter1(A0);
vwochnik 17:877a9a3148a4 12 AnalogIn meter2(A1);
vwochnik 12:beb64aa0da86 13
vwochnik 15:0ccf0f530a05 14 RtosTimer *timer;
vwochnik 15:0ccf0f530a05 15
vwochnik 15:0ccf0f530a05 16 bool tempFound = false, accFound = false;
vwochnik 15:0ccf0f530a05 17 uint32_t count = 0;
vwochnik 15:0ccf0f530a05 18 bool btnPressed = false;
vwochnik 12:beb64aa0da86 19
vwochnik 15:0ccf0f530a05 20 void io_init(void)
vwochnik 15:0ccf0f530a05 21 {
vwochnik 15:0ccf0f530a05 22 timer = new RtosTimer(&timer_callback, osTimerPeriodic);
vwochnik 15:0ccf0f530a05 23 timer->start(50);
vwochnik 15:0ccf0f530a05 24 tempFound = tempSensor.open();
vwochnik 15:0ccf0f530a05 25 accFound = accSensor.testConnection();
vwochnik 15:0ccf0f530a05 26 }
vwochnik 12:beb64aa0da86 27
vwochnik 12:beb64aa0da86 28 float temperature()
vwochnik 12:beb64aa0da86 29 {
vwochnik 15:0ccf0f530a05 30 if (!tempFound)
vwochnik 15:0ccf0f530a05 31 return 0.0;
vwochnik 12:beb64aa0da86 32
vwochnik 15:0ccf0f530a05 33 return tempSensor.temp();
vwochnik 12:beb64aa0da86 34 }
vwochnik 12:beb64aa0da86 35
vwochnik 12:beb64aa0da86 36 acceleration_t acceleration()
vwochnik 12:beb64aa0da86 37 {
vwochnik 12:beb64aa0da86 38 float data[3];
vwochnik 12:beb64aa0da86 39 acceleration_t ret = { 0.0, 0.0, 0.0 };
vwochnik 12:beb64aa0da86 40
vwochnik 15:0ccf0f530a05 41 if (accFound) {
vwochnik 12:beb64aa0da86 42 accSensor.readData(data);
vwochnik 12:beb64aa0da86 43 ret.x = data[0];
vwochnik 12:beb64aa0da86 44 ret.y = data[1];
vwochnik 12:beb64aa0da86 45 ret.z = data[2];
vwochnik 12:beb64aa0da86 46 }
vwochnik 12:beb64aa0da86 47
vwochnik 12:beb64aa0da86 48 return ret;
vwochnik 12:beb64aa0da86 49 }
vwochnik 12:beb64aa0da86 50
vwochnik 12:beb64aa0da86 51 uint32_t counter()
vwochnik 12:beb64aa0da86 52 {
vwochnik 12:beb64aa0da86 53 return count;
vwochnik 12:beb64aa0da86 54 }
vwochnik 12:beb64aa0da86 55
vwochnik 15:0ccf0f530a05 56 void timer_callback(void const*)
vwochnik 12:beb64aa0da86 57 {
vwochnik 15:0ccf0f530a05 58 if ((!btnPressed) && (button))
vwochnik 15:0ccf0f530a05 59 count++;
vwochnik 15:0ccf0f530a05 60 btnPressed = button;
vwochnik 12:beb64aa0da86 61 }