summaryrefslogtreecommitdiff
path: root/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'main.cpp')
-rw-r--r--main.cpp69
1 files changed, 28 insertions, 41 deletions
diff --git a/main.cpp b/main.cpp
index d52ae8d..6bc459f 100644
--- a/main.cpp
+++ b/main.cpp
@@ -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) {