diff options
Diffstat (limited to 'main.cpp')
-rw-r--r-- | main.cpp | 69 |
1 files changed, 28 insertions, 41 deletions
@@ -15,15 +15,14 @@ #include "LayoutStartup.h" #include "LayoutScrollSelect.h" #include "LayoutConfig.h" -#include "LayoutDemoHelp.h" -#include "LayoutSingleHelp.h" -#include "LayoutSweepHelp.h" +#include "LayoutHelp.h" // button header #include "ButtonHandler.h" // LoRa header #include "LoRaHandler.h" // mode objects #include "ModeJoin.h" +#include "ModeSingle.h" #include "ModeConfig.h" // misc heders #include <string> @@ -48,6 +47,7 @@ mDot* dot; // Modes ModeJoin* modeJoin; +ModeSingle* modeSingle; ModeConfig* modeConfig; // Serial debug port @@ -64,7 +64,7 @@ void surveySingle(); void surveySweep(); int main() { - debug.baud(115200); + debug.baud(460800); lcd = new DOGS102(lcd_spi, lcd_spi_cs, lcd_cd); lcd_backlight = new NCP5623B(backlight_i2c); @@ -74,15 +74,13 @@ int main() { dot = mDot::getInstance(); lora = new LoRaHandler(main_id); - modeJoin = new ModeJoin(lcd, buttons, dot, lora, dot->getFrequencyBand()); - modeConfig = new ModeConfig(lcd, serial, dot, buttons); - // display startup screen for 3 seconds LayoutStartup ls(lcd); ls.display(); osDelay(3000); // start of temporary stuff! + //dot->setFrequencyBand(mDot::FB_868); if (dot->getFrequencyBand() == mDot::FB_915) dot->setFrequencySubBand(mDot::FSB_7); dot->setJoinMode(mDot::OTA); @@ -91,6 +89,15 @@ int main() { dot->setAck(1); // end of temporary stuff! + modeJoin = new ModeJoin(lcd, buttons, dot, lora); + modeSingle = new ModeSingle(lcd, buttons, dot, lora); + modeConfig = new ModeConfig(lcd, serial, dot, buttons); + + // display startup screen for 3 seconds + LayoutStartup ls(lcd); + ls.display(); + osDelay(3000); + //MTSLog::setLogLevel(MTSLog::TRACE_LEVEL); MTSLog::setLogLevel(MTSLog::INFO_LEVEL); logInfo("displaying main menu"); @@ -126,6 +133,8 @@ void mainMenu() { items.push_back(menu_strings[sweep]); while (true) { + // reset session between modes + dot->resetNetworkSession(); LayoutScrollSelect menu(lcd, items, menu_strings[0], menu_strings[1]); menu.display(); @@ -156,7 +165,7 @@ void mainMenu() { modeConfig->start(); } else if (selected == menu_strings[single]) { if (modeJoin->start()) - surveySingle(); + modeSingle->start(); } else if (selected == menu_strings[sweep]) { if (modeJoin->start()) surveySweep(); @@ -167,12 +176,16 @@ void mainMenu() { } void loraDemo() { - LayoutDemoHelp ldh(lcd); + LayoutHelp lh(lcd); + lh.display(); + lh.updateMode("LoRa Demo"); + lh.updateDescription("Select TX Method"); + lh.updateSw1(" Trigger"); + lh.updateSw2("Interval"); // clear any stale signals osSignalClear(main_id, buttonSignal | loraSignal); - ldh.display(); logInfo("demo mode"); while (true) { @@ -195,42 +208,16 @@ void loraDemo() { } } -void surveySingle() { - LayoutSingleHelp lsh(lcd); - - // clear any stale signals - osSignalClear(main_id, buttonSignal | loraSignal); - - lsh.display(); - logInfo("survey single mode"); - - while (true) { - osEvent e = Thread::signal_wait(buttonSignal); - if (e.status == osEventSignal) { - ButtonHandler::ButtonEvent ev = buttons->getButtonEvent(); - switch (ev) { - case ButtonHandler::sw1_press: - logInfo("datarate/power"); - break; - case ButtonHandler::sw2_press: - logInfo("start survey"); - break; - case ButtonHandler::sw1_hold: - return; - default: - break; - } - } - } -} - void surveySweep() { - LayoutSweepHelp lsh(lcd); + LayoutHelp lh(lcd); + lh.display(); + lh.updateMode("Survey Sweep"); + lh.updateSw1(" Cancel"); + lh.updateSw2("Sweep"); // clear any stale signals osSignalClear(main_id, buttonSignal | loraSignal); - lsh.display(); logInfo("survey sweep mode"); while (true) { |