diff options
Diffstat (limited to 'main.cpp')
-rw-r--r-- | main.cpp | 54 |
1 files changed, 33 insertions, 21 deletions
@@ -41,7 +41,8 @@ #include "ModeSweep.h" #include "ModeDemo.h" #include "ModeConfig.h" -#include "ModeSemtech.h" +#include "ModeGps.h" +#include "ModeData.h" // misc heders #include "FileName.h" #include <string> @@ -64,7 +65,8 @@ osThreadId main_id; ButtonHandler* buttons; // LoRa controller -LoRaHandler* loraHandler; +LoRaHandler* lora_handler; + mDot* dot; // GPS @@ -80,7 +82,8 @@ ModeSingle* modeSingle; ModeSweep* modeSweep; ModeDemo* modeDemo; ModeConfig* modeConfig; -ModeSemtech* modeSemtech; +ModeGps* modeGps; +ModeData* modeData; // Serial debug port Serial debug(USBTX, USBRX); @@ -102,13 +105,15 @@ int main() { main_id = Thread::gettid(); buttons = new ButtonHandler(main_id); dot = mDot::getInstance(); + lora_handler = new LoRaHandler(main_id); dot->setDisableDutyCycle(DISABLE_DUTY_CYCLE); + dot->setLinkCheckThreshold(0); + dot->setLinkCheckCount(0); // Seed the RNG srand(dot->getRadioRandom()); - loraHandler = new LoRaHandler(main_id); gps = new GPSPARSER(&gps_serial, led_cont); sensors = new SensorHandler(); @@ -116,13 +121,14 @@ int main() { MTSLog::setLogLevel(MTSLog::TRACE_LEVEL); + modeJoin = new ModeJoin(lcd, buttons, dot, lora_handler, gps, sensors); + modeSingle = new ModeSingle(lcd, buttons, dot, lora_handler, gps, sensors); + modeSweep = new ModeSweep(lcd, buttons, dot, lora_handler, gps, sensors); + modeDemo = new ModeDemo(lcd, buttons, dot, lora_handler, gps, sensors); + modeConfig = new ModeConfig(lcd, buttons, dot, lora_handler, gps, sensors); + modeGps = new ModeGps(lcd, buttons, dot, lora_handler, gps, sensors, modeJoin); + modeData = new ModeData(lcd, buttons, dot, lora_handler, gps, sensors); - modeJoin = new ModeJoin(lcd, buttons, dot, loraHandler, gps, sensors); - modeSingle = new ModeSingle(lcd, buttons, dot, loraHandler, gps, sensors); - modeSweep = new ModeSweep(lcd, buttons, dot, loraHandler, gps, sensors); - modeDemo = new ModeDemo(lcd, buttons, dot, loraHandler, gps, sensors); - modeConfig = new ModeConfig(lcd, buttons, dot, loraHandler, gps, sensors); - modeSemtech = new ModeSemtech(lcd, buttons, dot, loraHandler, gps, sensors); osDelay(1000); logInfo("%sGPS detected", gps->gpsDetected() ? "" : "no "); @@ -149,7 +155,9 @@ void mainMenu() { config, single, sweep, - semtech + gps, + data + } menu_items; std::string menu_strings[] = { @@ -158,15 +166,16 @@ void mainMenu() { "Configuration", "Survey Single", "Survey Sweep", - "Semtech" + "Survey GPS", + "View Data" }; - std::vector<std::string> items; items.push_back(menu_strings[demo]); items.push_back(menu_strings[config]); items.push_back(menu_strings[single]); items.push_back(menu_strings[sweep]); - items.push_back(menu_strings[semtech]); + items.push_back(menu_strings[gps]); + items.push_back(menu_strings[data]); while (true) { product = "MTDOT-BOX/EVB "; @@ -174,7 +183,8 @@ void mainMenu() { // reset session between modes dot->resetNetworkSession(); - loraHandler->resetActivityLed(); + lora_handler->resetActivityLed(); + LayoutScrollSelect menu(lcd, items, product, menu_strings[0]); menu.display(); @@ -197,7 +207,6 @@ void mainMenu() { } } } - if (selected == menu_strings[demo]) { if (modeJoin->start()) modeDemo->start(); @@ -209,11 +218,14 @@ void mainMenu() { } else if (selected == menu_strings[sweep]) { if (modeJoin->start()) modeSweep->start(); - } - else if (selected == menu_strings[semtech]) { - if(dot->getFrequencyBand()==mDot::FB_868)modeJoin->start(); - modeSemtech->start(); - } + } else if (selected == menu_strings[gps]) { + if(dot->getFrequencyBand() == mDot::FB_EU868) { + modeJoin->start(); + } + modeGps->start(); + } else if (selected == menu_strings[data]) { + modeData->start(); + } mode_selected = false; } |