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; | 
