From bca5f50214f103a2c8605778a6311f8e9a5902fe Mon Sep 17 00:00:00 2001 From: Jason Reiss Date: Tue, 19 Jul 2016 10:14:13 -0500 Subject: mts-lora datarate changes --- Mode/Mode.cpp | 4 ++-- Mode/ModeDemo.cpp | 6 +++--- Mode/ModeJoin.cpp | 5 ++--- Mode/ModeSingle.cpp | 33 +++++++-------------------------- Mode/ModeSweep.cpp | 32 ++++++++++++++------------------ 5 files changed, 28 insertions(+), 52 deletions(-) (limited to 'Mode') diff --git a/Mode/Mode.cpp b/Mode/Mode.cpp index 389bf7f..bed78ec 100644 --- a/Mode/Mode.cpp +++ b/Mode/Mode.cpp @@ -49,7 +49,7 @@ Mode::Mode(DOGS102* lcd, ButtonHandler* buttons, mDot* dot, LoRaHandler* lora, G _index(0), _band(_dot->getFrequencyBand()), _sub_band(_dot->getFrequencySubBand()), - _data_rate(mDot::SF_7), + _data_rate(mDot::DR0), _power(2), _next_tx(0), _send_data(false), @@ -129,7 +129,7 @@ bool Mode::appendDataFile(const DataItem& data) { (data.gps_lock) ? alt_buf : "", (data.gps_lock) ? time_buf : "", data.status ? stats_buf : ",,,", - _dot->DataRateStr(data.data_rate).substr(3).c_str(), + _dot->DataRateStr(data.data_rate).substr(2).c_str(), data.power); if (size < 0) { diff --git a/Mode/ModeDemo.cpp b/Mode/ModeDemo.cpp index 44732c1..4add135 100644 --- a/Mode/ModeDemo.cpp +++ b/Mode/ModeDemo.cpp @@ -41,9 +41,9 @@ bool ModeDemo::start() { _initial_data_rate = _dot->getTxDataRate(); // use configured data rate and power if possible - if (_band == mDot::FB_915 && _initial_data_rate == mDot::SF_10) { - logInfo("using SF_9 instead of SF_10 - SF_10 max packet size is too small for data"); - _dot->setTxDataRate(mDot::SF_9); + if (_band == mDot::FB_915 && _initial_data_rate == mDot::DR0) { + logInfo("using DR1 instead of DR0 - DR0 max packet size is too small for data"); + _dot->setTxDataRate(mDot::DR1); } _state = show_help; diff --git a/Mode/ModeJoin.cpp b/Mode/ModeJoin.cpp index 5618eca..4bdc6cd 100644 --- a/Mode/ModeJoin.cpp +++ b/Mode/ModeJoin.cpp @@ -42,7 +42,7 @@ bool ModeJoin::start() { _initial_data_rate = _dot->getTxDataRate(); _initial_power = _dot->getTxPower(); - _data_rate = (_band == mDot::FB_915) ? mDot::SF_10 : mDot::SF_12; + _data_rate = mDot::DR0; _power = 20; _joined = false; @@ -123,8 +123,7 @@ void ModeJoin::display() { _sub_band = _dot->getFrequencySubBand(); _join.updateFsb(_sub_band); } - // mDot::DataRateStr returns format SF_XX - we only want to display the XX part - _join.updateRate(_dot->DataRateStr(_data_rate).substr(3)); + _join.updateRate(_dot->DataRateStr(_data_rate).substr(2)); _join.updatePower(_power); _join.updateAttempt(_lora->getJoinAttempts()); } diff --git a/Mode/ModeSingle.cpp b/Mode/ModeSingle.cpp index 347f636..982d8b9 100644 --- a/Mode/ModeSingle.cpp +++ b/Mode/ModeSingle.cpp @@ -176,8 +176,8 @@ bool ModeSingle::start() { _state = failure; _failure.display(); _failure.updateId(_index); - // mDot::DataRateStr returns format SF_XX - we only want to display the XX part - _failure.updateRate(_dot->DataRateStr(_data_rate).substr(3)); + // mDot::DataRateStr returns format DRXX - we only want to display the XX part + _failure.updateRate(_dot->DataRateStr(_data_rate).substr(2)); updateData(_data, single, false); appendDataFile(_data); _failure.updatePower(_power); @@ -291,7 +291,7 @@ void ModeSingle::displaySuccess() { _success.display(); _success.updateId(_index); // mDot::DataRateStr returns format SF_XX - we only want to display the XX part - _success.updateRate(_dot->DataRateStr(_data_rate).substr(3)); + _success.updateRate(_dot->DataRateStr(_data_rate).substr(2)); _success.updatePower(_power); _success.updateStats(_link_check_result); if (_gps_available && _gps->getLockStatus()) { @@ -312,7 +312,7 @@ std::string ModeSingle::formatRatePower() { size_t size; msg += "DR="; - msg += _dot->DataRateStr(_data_rate).substr(3); + msg += _dot->DataRateStr(_data_rate).substr(2); msg += " P="; size = snprintf(buf, sizeof(buf), "%u", _power); msg.append(buf, size); @@ -323,28 +323,9 @@ std::string ModeSingle::formatRatePower() { void ModeSingle::incrementRatePower() { if (_power == 20) { _power = 2; - switch (_data_rate) { - case mDot::SF_7: - _data_rate = mDot::SF_8; - break; - case mDot::SF_8: - _data_rate = mDot::SF_9; - break; - case mDot::SF_9: - _data_rate = mDot::SF_10; - break; - case mDot::SF_10: - if (_band == mDot::FB_915) - _data_rate = mDot::SF_7; - else - _data_rate = mDot::SF_11; - break; - case mDot::SF_11: - _data_rate = mDot::SF_12; - break; - case mDot::SF_12: - _data_rate = mDot::SF_7; - break; + _data_rate++; + if (_band == mDot::FB_915 && _data_rate > mDot::DR4 || _band == mDot::FB_868 && _data_rate > mDot::DR7) { + _data_rate = mDot::DR0; } } else { _power += 3; diff --git a/Mode/ModeSweep.cpp b/Mode/ModeSweep.cpp index 6ff4e34..b6bef24 100644 --- a/Mode/ModeSweep.cpp +++ b/Mode/ModeSweep.cpp @@ -207,8 +207,7 @@ bool ModeSweep::start() { _state = failure; _failure.display(); _failure.updateId(_index); - // mDot::DataRateStr returns format SF_XX - we only want to display the XX part - _failure.updateRate(_dot->DataRateStr(_data_rate).substr(3)); + _failure.updateRate(_dot->DataRateStr(_data_rate).substr(2)); _failure.updatePower(_power); if (_gps_available && _gps->getLockStatus()) { GPSPARSER::latitude lat = _gps->getLatitude(); @@ -343,8 +342,7 @@ void ModeSweep::displayHelp() { void ModeSweep::displaySuccess() { _success.display(); _success.updateId(_index); - // mDot::DataRateStr returns format SF_XX - we only want to display the XX part - _success.updateRate(_dot->DataRateStr(_data_rate).substr(3)); + _success.updateRate(_dot->DataRateStr(_data_rate).substr(2)); _success.updatePower(_power); _success.updateStats(_link_check_result); if (_gps_available && _gps->getLockStatus()) { @@ -383,23 +381,21 @@ std::vector ModeSweep::generatePoints() { uint8_t ModeSweep::payloadToRate(uint8_t payload) { if (_band == mDot::FB_915) { - if (payload <= mDot::MaxLengths_915[mDot::SF_10]) - return mDot::SF_10; - else if (payload <= mDot::MaxLengths_915[mDot::SF_9]) - return mDot::SF_9; - else if (payload <= mDot::MaxLengths_915[mDot::SF_8]) - return mDot::SF_8; + if (payload <= mDot::MaxLengths_915[mDot::DR0]) + return mDot::DR0; + else if (payload <= mDot::MaxLengths_915[mDot::DR1]) + return mDot::DR1; + else if (payload <= mDot::MaxLengths_915[mDot::DR2]) + return mDot::DR2; else - return mDot::SF_7; + return mDot::DR4; } else { - if (payload <= mDot::MaxLengths_868[mDot::SF_12]) - return mDot::SF_12; - else if (payload <= mDot::MaxLengths_868[mDot::SF_9]) - return mDot::SF_9; + if (payload <= mDot::MaxLengths_868[mDot::DR0]) + return mDot::DR0; + else if (payload <= mDot::MaxLengths_868[mDot::DR3]) + return mDot::DR3; else - return mDot::SF_7; + return mDot::DR6; } - - return mDot::SF_7; } -- cgit v1.2.3