summaryrefslogtreecommitdiff
path: root/Mode
diff options
context:
space:
mode:
authorJason Reiss <jreiss@multitech.com>2016-07-19 10:14:13 -0500
committerJason Reiss <jreiss@multitech.com>2016-07-19 10:14:13 -0500
commitbca5f50214f103a2c8605778a6311f8e9a5902fe (patch)
tree4960157d91aabe4b6ace44719f9964c7a3c175cd /Mode
parent8697ebad4fa5cc1b223cd8bc6c7ebd833dfcee79 (diff)
downloadmtdot-box-evb-factory-firmware-bca5f50214f103a2c8605778a6311f8e9a5902fe.tar.gz
mtdot-box-evb-factory-firmware-bca5f50214f103a2c8605778a6311f8e9a5902fe.tar.bz2
mtdot-box-evb-factory-firmware-bca5f50214f103a2c8605778a6311f8e9a5902fe.zip
mts-lora datarate changes
Diffstat (limited to 'Mode')
-rw-r--r--Mode/Mode.cpp4
-rw-r--r--Mode/ModeDemo.cpp6
-rw-r--r--Mode/ModeJoin.cpp5
-rw-r--r--Mode/ModeSingle.cpp33
-rw-r--r--Mode/ModeSweep.cpp32
5 files changed, 28 insertions, 52 deletions
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<point> 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;
}