diff options
-rw-r--r-- | ButtonHandler/ButtonHandler.cpp | 2 | ||||
-rw-r--r-- | Layout/LayoutConfig.cpp | 23 | ||||
-rw-r--r-- | Layout/LayoutConfig.h | 20 | ||||
-rw-r--r-- | LoRaHandler/LoRaHandler.cpp | 8 | ||||
-rw-r--r-- | main.cpp | 29 |
5 files changed, 53 insertions, 29 deletions
diff --git a/ButtonHandler/ButtonHandler.cpp b/ButtonHandler/ButtonHandler.cpp index 25cf08e..edc9ea1 100644 --- a/ButtonHandler/ButtonHandler.cpp +++ b/ButtonHandler/ButtonHandler.cpp @@ -1,5 +1,4 @@ #include "ButtonHandler.h" -#include "MTSLog.h" #define signal (int32_t)0xA0 @@ -21,7 +20,6 @@ void b_worker(void const* argument) { while (true) { e = Thread::signal_wait(signal, 250); if (e.status == osEventSignal) { - logInfo("button worker received signal"); switch (event) { case b_sw1_fall: if (! b->_sw1_running) { diff --git a/Layout/LayoutConfig.cpp b/Layout/LayoutConfig.cpp new file mode 100644 index 0000000..dc28738 --- /dev/null +++ b/Layout/LayoutConfig.cpp @@ -0,0 +1,23 @@ +#include "LayoutConfig.h" + +LayoutConfig::LayoutConfig(DOGS102* lcd) + : Layout(lcd), + _lMode(0, 0, "Configuration"), + _lHelp1(0, 2, "Connect USB debug"), + _lHelp2(0, 3, "to PC at 115200"), + _lHelp3(0, 4, "baud to configure") +{} + +LayoutConfig::~LayoutConfig() {} + +void LayoutConfig::display() { + clear(); + startUpdate(); + + writeLabel(_lMode); + writeLabel(_lHelp1); + writeLabel(_lHelp2); + writeLabel(_lHelp3); + + endUpdate(); +} diff --git a/Layout/LayoutConfig.h b/Layout/LayoutConfig.h new file mode 100644 index 0000000..0fdba1c --- /dev/null +++ b/Layout/LayoutConfig.h @@ -0,0 +1,20 @@ +#ifndef __LAYOUTCONFIG_H__ +#define __LAYOUTCONFIG_H__ + +#include "Layout.h" + +class LayoutConfig : public Layout { + public: + LayoutConfig(DOGS102* lcd); + ~LayoutConfig(); + + void display(); + + private: + Label _lMode; + Label _lHelp1; + Label _lHelp2; + Label _lHelp3; +}; + +#endif diff --git a/LoRaHandler/LoRaHandler.cpp b/LoRaHandler/LoRaHandler.cpp index 3e28782..0ecb59e 100644 --- a/LoRaHandler/LoRaHandler.cpp +++ b/LoRaHandler/LoRaHandler.cpp @@ -1,5 +1,4 @@ #include "LoRaHandler.h" -#include "MTSLog.h" #define signal (int32_t)0xA0 @@ -26,7 +25,6 @@ void l_worker(void const* argument) { while (true) { e = Thread::signal_wait(signal); if (e.status == osEventSignal) { - logInfo("LoRa worker received signal"); switch (cmd) { case l_ping: l->_mutex.lock(); @@ -44,7 +42,6 @@ void l_worker(void const* argument) { } else { l->_status = LoRaHandler::ping_failure; } - logInfo("LoRa worker signaling main"); osSignalSet(l->_main, loraSignal); break; @@ -56,20 +53,16 @@ void l_worker(void const* argument) { l->_status = LoRaHandler::send_success; else l->_status = LoRaHandler::send_failure; - logInfo("LoRa worker signaling main"); osSignalSet(l->_main, loraSignal); break; case l_join: - logInfo("LoRa worker joining"); l->_mutex.lock(); ret = l->_dot->joinNetworkOnce(); l->_mutex.unlock(); if (ret == mDot::MDOT_OK) { - logInfo("LoRa worker signaling main - success"); l->_status = LoRaHandler::join_success; } else { - logInfo("LoRa worker signaling main - failure"); l->_status = LoRaHandler::join_failure; } osSignalSet(l->_main, loraSignal); @@ -87,7 +80,6 @@ LoRaHandler::LoRaHandler(osThreadId main) _thread(l_worker, (void*)this), _status(none) { - logInfo("starting"); _ping.status = false; } @@ -16,6 +16,7 @@ #include "LayoutStartup.h" #include "LayoutScrollSelect.h" #include "LayoutJoin.h" +#include "LayoutConfig.h" // button header #include "ButtonHandler.h" // LoRa header @@ -104,22 +105,17 @@ void mainMenu() { while (! mode_selected) { osEvent e = Thread::signal_wait(buttonSignal); - logInfo("main - received signal %#X", e.value.signals); if (e.status == osEventSignal) { ButtonHandler::ButtonEvent ev = buttons->getButtonEvent(); switch (ev) { case ButtonHandler::sw1_press: - logInfo("sw1 press"); selected = menu.select(); - logInfo("selected %s", selected.c_str()); mode_selected = true; break; case ButtonHandler::sw2_press: - logInfo("sw2 press"); menu.scroll(); break; case ButtonHandler::sw1_hold: - logInfo("sw1 hold - already in main menu"); break; default: break; @@ -183,8 +179,11 @@ void join() { lj.updateRate(dot->DataRateStr(rate)); lj.updatePower(power); - if (! lora) + if (! lora) { lora = new LoRaHandler(main_id); + // give the LoRa worker thread some time to start up + osDelay(100); + } lora->setDataRate(rate); lora->setPower(power); @@ -193,45 +192,38 @@ void join() { if (next_tx) { lj.updateCountdown(next_tx * 1000); } else { - logInfo("main joining"); lj.updateStatus("Joining..."); if (! lora->join()) logError("cannot join - LoRa layer busy"); } osEvent e = Thread::signal_wait(0, 250); - logInfo("main - received signal %#X", e.value.signals); if (e.status == osEventSignal) { if (e.value.signals & buttonSignal) { - logInfo("main - button signal"); ev = buttons->getButtonEvent(); switch (ev) { case ButtonHandler::sw1_press: - logInfo("sw1 press"); return; case ButtonHandler::sw2_press: - logInfo("sw2 press"); break; case ButtonHandler::sw1_hold: - logInfo("sw1 hold"); return; } } if (e.value.signals & loraSignal) { - logInfo("main - LoRa signal"); status = lora->getStatus(); switch (status) { case LoRaHandler::join_success: - logInfo("main - join success"); lj.updateStatus("Join Success!"); lj.displayCancel(false); + logInfo("joined"); joined = true; osDelay(2000); break; case LoRaHandler::join_failure: - logInfo("main - join failure"); lj.updateStatus("Join Failure!"); + logInfo("failed to join"); osDelay(2000); break; } @@ -241,22 +233,21 @@ void join() { } void configuration() { + LayoutConfig lc(lcd); + lc.display(); + logInfo("config mode"); while (true) { osEvent e = Thread::signal_wait(buttonSignal); - logInfo("main - received signal %#X", e.value.signals); if (e.status == osEventSignal) { ButtonHandler::ButtonEvent ev = buttons->getButtonEvent(); switch (ev) { case ButtonHandler::sw1_press: - logInfo("sw1 press"); break; case ButtonHandler::sw2_press: - logInfo("sw2 press"); break; case ButtonHandler::sw1_hold: - logInfo("sw1 hold"); return; default: break; |