summaryrefslogtreecommitdiff
path: root/LoRaHandler/LoRaHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'LoRaHandler/LoRaHandler.cpp')
-rw-r--r--LoRaHandler/LoRaHandler.cpp15
1 files changed, 14 insertions, 1 deletions
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;
+}
+