summaryrefslogtreecommitdiff
path: root/Mode
diff options
context:
space:
mode:
authorMike Fiore <mfiore@multitech.com>2015-12-08 12:56:29 -0600
committerMike Fiore <mfiore@multitech.com>2015-12-08 12:56:29 -0600
commitabaacd64f96b834d85169f12351b0057c6e9c2fd (patch)
tree4bb98e806182401155e144f84a28114a9d3c4be9 /Mode
parent5a74150c78737daf2764570835b59b45141f3775 (diff)
downloadmtdot-box-evb-factory-firmware-abaacd64f96b834d85169f12351b0057c6e9c2fd.tar.gz
mtdot-box-evb-factory-firmware-abaacd64f96b834d85169f12351b0057c6e9c2fd.tar.bz2
mtdot-box-evb-factory-firmware-abaacd64f96b834d85169f12351b0057c6e9c2fd.zip
use link check instead of ping for compatibility with 3rd party network servers
Diffstat (limited to 'Mode')
-rw-r--r--Mode/Mode.cpp21
-rw-r--r--Mode/Mode.h4
-rw-r--r--Mode/ModeSingle.cpp10
-rw-r--r--Mode/ModeSweep.cpp10
4 files changed, 22 insertions, 23 deletions
diff --git a/Mode/Mode.cpp b/Mode/Mode.cpp
index 70a3f49..2bac839 100644
--- a/Mode/Mode.cpp
+++ b/Mode/Mode.cpp
@@ -92,12 +92,11 @@ bool Mode::appendDataFile(const DataItem& data) {
}
if (data.status) {
- float up_snr = (float)data.ping.up.snr / 10.0;
- float down_snr = (float)data.ping.down.snr / 4.0;
- snprintf(stats_buf, sizeof(stats_buf), "%d,%2.1f,%d,%2.1f",
- abs(data.ping.up.rssi),
- up_snr,
- abs(data.ping.down.rssi),
+ float down_snr = (float)data.link.down.snr / 4.0;
+ snprintf(stats_buf, sizeof(stats_buf), "%d,%d,%d,%2.1f",
+ data.link.up.gateways,
+ data.link.up.dBm,
+ abs(data.link.down.rssi),
down_snr);
}
@@ -138,7 +137,7 @@ void Mode::updateData(DataItem& data, DataType type, bool status) {
data.gps_latitude = _gps->getLatitude();
data.gps_altitude = _gps->getAltitude();
data.gps_time = _gps->getTimestamp();
- data.ping = _ping_result;
+ data.link = _link_check_result;
data.data_rate = _data_rate;
data.power = _power;
}
@@ -227,17 +226,17 @@ std::vector<uint8_t> Mode::formatSurveyData(DataItem& data) {
send_data.clear();
send_data.push_back(0x1D); // key for start of data structure
send_data.push_back(0x1A); // key for uplink QOS + RF Pwr
- convertS.f_s = data.ping.up.rssi;
+ convertS.f_s = data.link.up.gateways;
send_data.push_back(convertS.t_u[1]);
send_data.push_back(convertS.t_u[0]);
- send_data.push_back((data.ping.up.snr/10) & 0xFF);
+ send_data.push_back((data.link.up.dBm) & 0xFF);
send_data.push_back(data.power);
send_data.push_back(0x1B); // key for downlink QOS
- convertS.f_s=data.ping.down.rssi;
+ convertS.f_s=data.link.down.rssi;
send_data.push_back(convertS.t_u[1]);
send_data.push_back(convertS.t_u[0]);
- send_data.push_back(data.ping.down.snr);
+ send_data.push_back(data.link.down.snr);
// collect GPS data if GPS device detected
if (_gps->gpsDetected() && ((_data_rate != mDot::SF_10) || (_band == mDot::FB_868))){
diff --git a/Mode/Mode.h b/Mode/Mode.h
index 61687f1..bd09cc9 100644
--- a/Mode/Mode.h
+++ b/Mode/Mode.h
@@ -28,7 +28,7 @@ class Mode {
GPSPARSER::latitude gps_latitude;
int16_t gps_altitude;
struct tm gps_time;
- LoRaHandler::LoRaPing ping;
+ LoRaHandler::LoRaLink link;
uint8_t data_rate;
uint32_t power;
} DataItem;
@@ -68,7 +68,7 @@ class Mode {
uint32_t _next_tx;
ButtonHandler::ButtonEvent _be;
LoRaHandler::LoRaStatus _ls;
- LoRaHandler::LoRaPing _ping_result;
+ LoRaHandler::LoRaLink _link_check_result;
uint8_t _state;
bool _send_data;
bool _gps_available;
diff --git a/Mode/ModeSingle.cpp b/Mode/ModeSingle.cpp
index 737301f..70d131c 100644
--- a/Mode/ModeSingle.cpp
+++ b/Mode/ModeSingle.cpp
@@ -124,10 +124,10 @@ bool ModeSingle::start() {
if (e.value.signals & loraSignal) {
_ls = _lora->getStatus();
switch (_ls) {
- case LoRaHandler::ping_success:
+ case LoRaHandler::link_check_success:
switch (_state) {
case in_progress:
- _ping_result = _lora->getPingResults();
+ _link_check_result = _lora->getLinkCheckResults();
displaySuccess();
logInfo("ping successful");
updateData(_data, single, true);
@@ -147,7 +147,7 @@ bool ModeSingle::start() {
}
break;
- case LoRaHandler::ping_failure:
+ case LoRaHandler::link_check_failure:
switch (_state) {
case in_progress:
_state = failure;
@@ -235,7 +235,7 @@ bool ModeSingle::start() {
send_ping = false;
_dot->setTxDataRate(_data_rate);
_dot->setTxPower(_power);
- _lora->ping();
+ _lora->linkCheck();
_index++;
}
if (send_data) {
@@ -272,7 +272,7 @@ void ModeSingle::displaySuccess() {
// mDot::DataRateStr returns format SF_XX - we only want to display the XX part
_success.updateRate(_dot->DataRateStr(_data_rate).substr(3));
_success.updatePower(_power);
- _success.updateStats(_ping_result);
+ _success.updateStats(_link_check_result);
if (_gps_available && _gps->getLockStatus()) {
GPSPARSER::latitude lat = _gps->getLatitude();
GPSPARSER::longitude lon = _gps->getLongitude();
diff --git a/Mode/ModeSweep.cpp b/Mode/ModeSweep.cpp
index 17047b3..80c2dde 100644
--- a/Mode/ModeSweep.cpp
+++ b/Mode/ModeSweep.cpp
@@ -157,11 +157,11 @@ bool ModeSweep::start() {
if (e.value.signals & loraSignal) {
_ls = _lora->getStatus();
switch (_ls) {
- case LoRaHandler::ping_success:
+ case LoRaHandler::link_check_success:
switch (_state) {
case in_progress:
_survey_success++;
- _ping_result = _lora->getPingResults();
+ _link_check_result = _lora->getLinkCheckResults();
displaySuccess();
logInfo("ping successful");
updateData(_data, sweep, true);
@@ -181,7 +181,7 @@ bool ModeSweep::start() {
}
break;
- case LoRaHandler::ping_failure:
+ case LoRaHandler::link_check_failure:
switch (_state) {
case in_progress:
_survey_failure++;
@@ -295,7 +295,7 @@ bool ModeSweep::start() {
send_ping = false;
_dot->setTxDataRate(_data_rate);
_dot->setTxPower(_power);
- _lora->ping();
+ _lora->linkCheck();
}
if (send_data) {
std::vector<uint8_t> s_data = formatSurveyData(_data);
@@ -327,7 +327,7 @@ void ModeSweep::displaySuccess() {
// mDot::DataRateStr returns format SF_XX - we only want to display the XX part
_success.updateRate(_dot->DataRateStr(_data_rate).substr(3));
_success.updatePower(_power);
- _success.updateStats(_ping_result);
+ _success.updateStats(_link_check_result);
if (_gps_available && _gps->getLockStatus()) {
GPSPARSER::latitude lat = _gps->getLatitude();
GPSPARSER::longitude lon = _gps->getLongitude();