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:36:12 2014 +0000
Revision:
15:0ccf0f530a05
Parent:
14:56da550a1baa
Child:
17:877a9a3148a4
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 14:56da550a1baa 7 LM75B tempSensor(SDA, SCL);
vwochnik 12:beb64aa0da86 8 MMA7660 accSensor(p28, p27);
vwochnik 12:beb64aa0da86 9 DigitalIn button(p14);
vwochnik 14:56da550a1baa 10 //C12832 lcdDisplay(D11, D13, D12, D7, D10);
vwochnik 12:beb64aa0da86 11
vwochnik 15:0ccf0f530a05 12 RtosTimer *timer;
vwochnik 15:0ccf0f530a05 13
vwochnik 15:0ccf0f530a05 14 bool tempFound = false, accFound = false;
vwochnik 15:0ccf0f530a05 15 uint32_t count = 0;
vwochnik 15:0ccf0f530a05 16 bool btnPressed = false;
vwochnik 12:beb64aa0da86 17
vwochnik 15:0ccf0f530a05 18 void io_init(void)
vwochnik 15:0ccf0f530a05 19 {
vwochnik 15:0ccf0f530a05 20 timer = new RtosTimer(&timer_callback, osTimerPeriodic);
vwochnik 15:0ccf0f530a05 21 timer->start(50);
vwochnik 15:0ccf0f530a05 22 tempFound = tempSensor.open();
vwochnik 15:0ccf0f530a05 23 accFound = accSensor.testConnection();
vwochnik 15:0ccf0f530a05 24 }
vwochnik 12:beb64aa0da86 25
vwochnik 12:beb64aa0da86 26 float temperature()
vwochnik 12:beb64aa0da86 27 {
vwochnik 15:0ccf0f530a05 28 if (!tempFound)
vwochnik 15:0ccf0f530a05 29 return 0.0;
vwochnik 12:beb64aa0da86 30
vwochnik 15:0ccf0f530a05 31 return tempSensor.temp();
vwochnik 12:beb64aa0da86 32 }
vwochnik 12:beb64aa0da86 33
vwochnik 12:beb64aa0da86 34 acceleration_t acceleration()
vwochnik 12:beb64aa0da86 35 {
vwochnik 12:beb64aa0da86 36 float data[3];
vwochnik 12:beb64aa0da86 37 acceleration_t ret = { 0.0, 0.0, 0.0 };
vwochnik 12:beb64aa0da86 38
vwochnik 15:0ccf0f530a05 39 if (accFound) {
vwochnik 12:beb64aa0da86 40 accSensor.readData(data);
vwochnik 12:beb64aa0da86 41 ret.x = data[0];
vwochnik 12:beb64aa0da86 42 ret.y = data[1];
vwochnik 12:beb64aa0da86 43 ret.z = data[2];
vwochnik 12:beb64aa0da86 44 }
vwochnik 12:beb64aa0da86 45
vwochnik 12:beb64aa0da86 46 return ret;
vwochnik 12:beb64aa0da86 47 }
vwochnik 12:beb64aa0da86 48
vwochnik 12:beb64aa0da86 49 uint32_t counter()
vwochnik 12:beb64aa0da86 50 {
vwochnik 12:beb64aa0da86 51 return count;
vwochnik 12:beb64aa0da86 52 }
vwochnik 12:beb64aa0da86 53
vwochnik 15:0ccf0f530a05 54 void timer_callback(void const*)
vwochnik 12:beb64aa0da86 55 {
vwochnik 15:0ccf0f530a05 56 if ((!btnPressed) && (button))
vwochnik 15:0ccf0f530a05 57 count++;
vwochnik 15:0ccf0f530a05 58 btnPressed = button;
vwochnik 12:beb64aa0da86 59 }