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
io.cpp@17:877a9a3148a4, 2014-02-18 (annotated)
- 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?
User | Revision | Line number | New 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 | } |