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 EmbeddedArtists AB

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?

UserRevisionLine numberNew 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 }