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
DeviceFeedback.cpp
00001 #include "DeviceFeedback.h" 00002 #include <stdlib.h> 00003 #include <string.h> 00004 00005 #define MSG_SHOW_SUCCESS 1 00006 #define MSG_SHOW_FAILURE 2 00007 00008 DeviceFeedback::DeviceFeedback(PwmOut led) : 00009 _led(led), 00010 _thread(DeviceFeedback::thread_func, this) 00011 { 00012 } 00013 00014 void DeviceFeedback::showSuccess() 00015 { 00016 sendMessage(MSG_SHOW_SUCCESS); 00017 } 00018 00019 void DeviceFeedback::showFailure() 00020 { 00021 sendMessage(MSG_SHOW_FAILURE); 00022 } 00023 00024 void DeviceFeedback::sendMessage(uint8_t msg) 00025 { 00026 uint8_t *msgPtr; 00027 00028 msgPtr = _mail.alloc(); 00029 *msgPtr = msg; 00030 _mail.put(msgPtr); 00031 } 00032 00033 void DeviceFeedback::thread() 00034 { 00035 osEvent evt; 00036 uint8_t *msg; 00037 00038 while (true) { 00039 if ((evt = _mail.get(1000)).status == osEventMail) { 00040 msg = (uint8_t*)evt.value.p; 00041 switch (*msg) { 00042 case MSG_SHOW_SUCCESS: 00043 for (float i=2000.0; i<10000.0; i+=2000.0) { 00044 _led.period(1.0/i); 00045 _led = 0.5; 00046 Thread::wait(200); 00047 _led = 0.0; 00048 Thread::wait(50); 00049 } 00050 break; 00051 case MSG_SHOW_FAILURE: 00052 for (float i=10000.0; i>2000.0; i-=2000.0) { 00053 _led.period(1.0/i); 00054 _led = 0.5; 00055 Thread::wait(200); 00056 _led = 0.0; 00057 Thread::wait(50); 00058 } 00059 break; 00060 } 00061 _mail.free(msg); 00062 } 00063 } 00064 } 00065 00066 void DeviceFeedback::thread_func(void const *arg) 00067 { 00068 DeviceFeedback *that; 00069 that = (DeviceFeedback*)arg; 00070 that->thread(); 00071 }
Generated on Sun Jul 17 2022 02:39:36 by 1.7.2