瀏覽代碼

Increase conditions before bailing out because of a poor quality network

tags/v1.2.0
Bertrand Lemasle 7 年之前
父節點
當前提交
89fbf75373
共有 3 個檔案被更改,包括 15 行新增12 行删除
  1. +8
    -7
      GpsTracker/Config.h
  2. +2
    -0
      GpsTracker/Logging.cpp
  3. +5
    -5
      GpsTracker/Network.cpp

+ 8
- 7
GpsTracker/Config.h 查看文件

@@ -24,15 +24,16 @@
Hard coded value for default sleep time between position acquisitions.
Exprimed in seconds
*/
#define SLEEP_DEFAULT_TIME_SECONDS 1800
#define SLEEP_DEFAULT_INCREASE_THRESHOLD 3
#define SLEEP_DEFAULT_TIME_SECONDS 1800
#define SLEEP_DEFAULT_INCREASE_THRESHOLD 3

#define GPS_DEFAULT_INTERMEDIATE_TIMEOUT_MS 10000
#define GPS_DEFAULT_TOTAL_TIMEOUT_MS 180000
#define GPS_DEFAULT_INTERMEDIATE_TIMEOUT_MS 10000
#define GPS_DEFAULT_TOTAL_TIMEOUT_MS 180000

#define NETWORK_DEFAULT_INTERMEDIATE_TIMEOUT_MS 6000
#define NETWORK_DEFAULT_TOTAL_TIMEOUT_MS 180000
#define NETWORK_DEFAULT_NO_NETWORK_TRIES 10
#define NETWORK_DEFAULT_INTERMEDIATE_TIMEOUT_MS 6000
#define NETWORK_DEFAULT_TOTAL_TIMEOUT_MS 180000
#define NETWORK_DEFAULT_NO_NETWORK_QUALIRY_THRESHOLD 8
#define NETWORK_DEFAULT_NO_NETWORK_TRIES 5

#pragma endregion



+ 2
- 0
GpsTracker/Logging.cpp 查看文件

@@ -10,6 +10,8 @@ namespace logging {
if (Serial) {
Serial.begin(LOG_SERIAL_SPEED);
Log.begin(LOG_LEVEL, &Serial);

Log.notice("Starting...\n");
}
}


+ 5
- 5
GpsTracker/Network.cpp 查看文件

@@ -14,18 +14,18 @@ namespace network {
VERBOSE("waitForRegistered");

SIM808RegistrationStatus currentStatus;
uint8_t noNetwork = 0;
uint8_t noReliableNetwork = 0;

do {
currentStatus = hardware::sim808::device.getNetworkRegistrationStatus();
if (isAvailable(currentStatus.stat)) break;

SIM808SignalQualityReport report = hardware::sim808::device.getSignalQuality();
VERBOSE_FORMAT("waitForRegistered", "%d, [%d %ddBm]", currentStatus.stat, report.ssri, report.attenuation);
NOTICE_FORMAT("waitForRegistered", "%d, [%d %ddBm]", currentStatus.stat, report.ssri, report.attenuation);
if (report.ssri == 0) noNetwork++;
else noNetwork = 0;
if (noNetwork > NETWORK_DEFAULT_NO_NETWORK_TRIES) {
if (report.ssri < NETWORK_DEFAULT_NO_NETWORK_QUALIRY_THRESHOLD) noReliableNetwork++;
else noReliableNetwork = 0;
if (noReliableNetwork > NETWORK_DEFAULT_NO_NETWORK_TRIES) {
VERBOSE_MSG("waitForRegistered", "No signal");
break; //after a while, not network really means no network. Bailing out
}


Loading…
取消
儲存