An application to log WiFi SSIDs for position lookup testing
Dependencies: C027_Support SWO mbed-rtos mbed picojson
Fork of lpc4088_ebb_ublox_Cellular_PubNubDemo_rtos by
device/DeviceFeedback.cpp@1:cac9b2960637, 2015-02-15 (annotated)
- Committer:
- rosterloh84
- Date:
- Sun Feb 15 22:04:12 2015 +0000
- Revision:
- 1:cac9b2960637
First working version. Lots to do still.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rosterloh84 | 1:cac9b2960637 | 1 | #include "DeviceFeedback.h" |
rosterloh84 | 1:cac9b2960637 | 2 | #include <stdlib.h> |
rosterloh84 | 1:cac9b2960637 | 3 | #include <string.h> |
rosterloh84 | 1:cac9b2960637 | 4 | |
rosterloh84 | 1:cac9b2960637 | 5 | #define MSG_SHOW_SUCCESS 1 |
rosterloh84 | 1:cac9b2960637 | 6 | #define MSG_SHOW_FAILURE 2 |
rosterloh84 | 1:cac9b2960637 | 7 | |
rosterloh84 | 1:cac9b2960637 | 8 | DeviceFeedback::DeviceFeedback(PwmOut led) : |
rosterloh84 | 1:cac9b2960637 | 9 | _led(led), |
rosterloh84 | 1:cac9b2960637 | 10 | _thread(DeviceFeedback::thread_func, this) |
rosterloh84 | 1:cac9b2960637 | 11 | { |
rosterloh84 | 1:cac9b2960637 | 12 | } |
rosterloh84 | 1:cac9b2960637 | 13 | |
rosterloh84 | 1:cac9b2960637 | 14 | void DeviceFeedback::showSuccess() |
rosterloh84 | 1:cac9b2960637 | 15 | { |
rosterloh84 | 1:cac9b2960637 | 16 | sendMessage(MSG_SHOW_SUCCESS); |
rosterloh84 | 1:cac9b2960637 | 17 | } |
rosterloh84 | 1:cac9b2960637 | 18 | |
rosterloh84 | 1:cac9b2960637 | 19 | void DeviceFeedback::showFailure() |
rosterloh84 | 1:cac9b2960637 | 20 | { |
rosterloh84 | 1:cac9b2960637 | 21 | sendMessage(MSG_SHOW_FAILURE); |
rosterloh84 | 1:cac9b2960637 | 22 | } |
rosterloh84 | 1:cac9b2960637 | 23 | |
rosterloh84 | 1:cac9b2960637 | 24 | void DeviceFeedback::sendMessage(uint8_t msg) |
rosterloh84 | 1:cac9b2960637 | 25 | { |
rosterloh84 | 1:cac9b2960637 | 26 | uint8_t *msgPtr; |
rosterloh84 | 1:cac9b2960637 | 27 | |
rosterloh84 | 1:cac9b2960637 | 28 | msgPtr = _mail.alloc(); |
rosterloh84 | 1:cac9b2960637 | 29 | *msgPtr = msg; |
rosterloh84 | 1:cac9b2960637 | 30 | _mail.put(msgPtr); |
rosterloh84 | 1:cac9b2960637 | 31 | } |
rosterloh84 | 1:cac9b2960637 | 32 | |
rosterloh84 | 1:cac9b2960637 | 33 | void DeviceFeedback::thread() |
rosterloh84 | 1:cac9b2960637 | 34 | { |
rosterloh84 | 1:cac9b2960637 | 35 | osEvent evt; |
rosterloh84 | 1:cac9b2960637 | 36 | uint8_t *msg; |
rosterloh84 | 1:cac9b2960637 | 37 | |
rosterloh84 | 1:cac9b2960637 | 38 | while (true) { |
rosterloh84 | 1:cac9b2960637 | 39 | if ((evt = _mail.get(1000)).status == osEventMail) { |
rosterloh84 | 1:cac9b2960637 | 40 | msg = (uint8_t*)evt.value.p; |
rosterloh84 | 1:cac9b2960637 | 41 | switch (*msg) { |
rosterloh84 | 1:cac9b2960637 | 42 | case MSG_SHOW_SUCCESS: |
rosterloh84 | 1:cac9b2960637 | 43 | for (float i=2000.0; i<10000.0; i+=2000.0) { |
rosterloh84 | 1:cac9b2960637 | 44 | _led.period(1.0/i); |
rosterloh84 | 1:cac9b2960637 | 45 | _led = 0.5; |
rosterloh84 | 1:cac9b2960637 | 46 | Thread::wait(200); |
rosterloh84 | 1:cac9b2960637 | 47 | _led = 0.0; |
rosterloh84 | 1:cac9b2960637 | 48 | Thread::wait(50); |
rosterloh84 | 1:cac9b2960637 | 49 | } |
rosterloh84 | 1:cac9b2960637 | 50 | break; |
rosterloh84 | 1:cac9b2960637 | 51 | case MSG_SHOW_FAILURE: |
rosterloh84 | 1:cac9b2960637 | 52 | for (float i=10000.0; i>2000.0; i-=2000.0) { |
rosterloh84 | 1:cac9b2960637 | 53 | _led.period(1.0/i); |
rosterloh84 | 1:cac9b2960637 | 54 | _led = 0.5; |
rosterloh84 | 1:cac9b2960637 | 55 | Thread::wait(200); |
rosterloh84 | 1:cac9b2960637 | 56 | _led = 0.0; |
rosterloh84 | 1:cac9b2960637 | 57 | Thread::wait(50); |
rosterloh84 | 1:cac9b2960637 | 58 | } |
rosterloh84 | 1:cac9b2960637 | 59 | break; |
rosterloh84 | 1:cac9b2960637 | 60 | } |
rosterloh84 | 1:cac9b2960637 | 61 | _mail.free(msg); |
rosterloh84 | 1:cac9b2960637 | 62 | } |
rosterloh84 | 1:cac9b2960637 | 63 | } |
rosterloh84 | 1:cac9b2960637 | 64 | } |
rosterloh84 | 1:cac9b2960637 | 65 | |
rosterloh84 | 1:cac9b2960637 | 66 | void DeviceFeedback::thread_func(void const *arg) |
rosterloh84 | 1:cac9b2960637 | 67 | { |
rosterloh84 | 1:cac9b2960637 | 68 | DeviceFeedback *that; |
rosterloh84 | 1:cac9b2960637 | 69 | that = (DeviceFeedback*)arg; |
rosterloh84 | 1:cac9b2960637 | 70 | that->thread(); |
rosterloh84 | 1:cac9b2960637 | 71 | } |