Просмотр исходного кода

Increase conditions before bailing out because of a poor quality network

tags/v1.2.0
Bertrand Lemasle 7 лет назад
Родитель
Сommit
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. Hard coded value for default sleep time between position acquisitions.
Exprimed in seconds 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 #pragma endregion




+ 2
- 0
GpsTracker/Logging.cpp Просмотреть файл

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

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



+ 5
- 5
GpsTracker/Network.cpp Просмотреть файл

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


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


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


SIM808SignalQualityReport report = hardware::sim808::device.getSignalQuality(); 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"); VERBOSE_MSG("waitForRegistered", "No signal");
break; //after a while, not network really means no network. Bailing out break; //after a while, not network really means no network. Bailing out
} }


Загрузка…
Отмена
Сохранить