diff options
author | Mike Fiore <mfiore@multitech.com> | 2015-12-10 15:03:53 -0600 |
---|---|---|
committer | Mike Fiore <mfiore@multitech.com> | 2015-12-10 15:03:53 -0600 |
commit | 7cee146eab4f3666980e0688c1d5a96993517bfb (patch) | |
tree | ddd45a15c705fb48ec0a4f086fcf2430edd3c916 /Mode/ModeJoin.cpp | |
parent | a2e7ad209ca28b69e88c96c1def2a63d1581be6c (diff) | |
download | mtdot-box-evb-factory-firmware-7cee146eab4f3666980e0688c1d5a96993517bfb.tar.gz mtdot-box-evb-factory-firmware-7cee146eab4f3666980e0688c1d5a96993517bfb.tar.bz2 mtdot-box-evb-factory-firmware-7cee146eab4f3666980e0688c1d5a96993517bfb.zip |
preserve configured data rate and power when entering and exiting modes
Diffstat (limited to 'Mode/ModeJoin.cpp')
-rw-r--r-- | Mode/ModeJoin.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/Mode/ModeJoin.cpp b/Mode/ModeJoin.cpp index 18d18bc..681147b 100644 --- a/Mode/ModeJoin.cpp +++ b/Mode/ModeJoin.cpp @@ -16,6 +16,9 @@ bool ModeJoin::start() { // clear any stale signals osSignalClear(_main_id, buttonSignal | loraSignal); + _initial_data_rate = _dot->getTxDataRate(); + _initial_power = _dot->getTxPower(); + _data_rate = (_band == mDot::FB_915) ? mDot::SF_10 : mDot::SF_12; _power = 20; _joined = false; @@ -45,10 +48,14 @@ bool ModeJoin::start() { _be = _buttons->getButtonEvent(); switch (_be) { case ButtonHandler::sw1_press: + _dot->setTxDataRate(_initial_data_rate); + _dot->setTxPower(_initial_power); return false; case ButtonHandler::sw2_press: break; case ButtonHandler::sw1_hold: + _dot->setTxDataRate(_initial_data_rate); + _dot->setTxPower(_initial_power); return false; } } @@ -61,6 +68,8 @@ bool ModeJoin::start() { logInfo("joined"); _joined = true; osDelay(2000); + _dot->setTxDataRate(_initial_data_rate); + _dot->setTxPower(_initial_power); return true; case LoRaHandler::join_failure: @@ -72,6 +81,8 @@ bool ModeJoin::start() { } } + _dot->setTxDataRate(_initial_data_rate); + _dot->setTxPower(_initial_power); return false; } |