From bbcc246e8e52b946f7813d0e209ca10161794e00 Mon Sep 17 00:00:00 2001 From: Mike Fiore Date: Mon, 7 Dec 2015 11:20:24 -0600 Subject: LED1 is red when not joined, green when joined, and blinks when communicating with gateway --- LoRaHandler/LoRaHandler.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'LoRaHandler/LoRaHandler.cpp') diff --git a/LoRaHandler/LoRaHandler.cpp b/LoRaHandler/LoRaHandler.cpp index 47b0e01..94f02a8 100644 --- a/LoRaHandler/LoRaHandler.cpp +++ b/LoRaHandler/LoRaHandler.cpp @@ -26,6 +26,7 @@ void l_worker(void const* argument) { e = Thread::signal_wait(signal); if (e.status == osEventSignal) { l->_status = LoRaHandler::busy; + l->_tick.attach(l, &LoRaHandler::blinker, 0.05); switch (cmd) { case l_ping: l->_mutex.lock(); @@ -44,6 +45,8 @@ void l_worker(void const* argument) { l->_status = LoRaHandler::ping_failure; } osSignalSet(l->_main, loraSignal); + l->_tick.detach(); + l->_activity_led = LoRaHandler::green; break; case l_send: @@ -55,6 +58,8 @@ void l_worker(void const* argument) { else l->_status = LoRaHandler::send_failure; osSignalSet(l->_main, loraSignal); + l->_tick.detach(); + l->_activity_led = LoRaHandler::green; break; case l_join: @@ -68,6 +73,8 @@ void l_worker(void const* argument) { l->_status = LoRaHandler::join_failure; } osSignalSet(l->_main, loraSignal); + l->_tick.detach(); + l->_activity_led = LoRaHandler::green; break; default: @@ -82,9 +89,11 @@ LoRaHandler::LoRaHandler(osThreadId main) : _main(main), _thread(l_worker, (void*)this), _status(none), - _join_attempts(1) + _join_attempts(1), + _activity_led(XBEE_DIO1, PIN_OUTPUT, PullNone, red) { _ping.status = false; + _activity_led = red; } bool LoRaHandler::ping() { @@ -145,3 +154,7 @@ void LoRaHandler::resetJoinAttempts() { _mutex.unlock(); } +void LoRaHandler::blinker() { + _activity_led = !_activity_led; +} + -- cgit v1.2.3