ソースを参照

Position attenuation is not metric worth to wait for each time a position is sent in a loop.

tags/v1.2.2
Bertrand Lemasle 6年前
コミット
c730fe08fb
2個のファイルの変更7行の追加4行の削除
  1. +6
    -3
      src/NetworkPositionsBackup.cpp
  2. +1
    -1
      src/NetworkPositionsBackup.h

+ 6
- 3
src/NetworkPositionsBackup.cpp ファイルの表示

@@ -26,11 +26,13 @@ namespace positions {
positions::count(config->network.lastSavedEntry) > (config->network.saveThreshold * networkUnavailablePostpone) - (forPrepare ? 1 : 0);
}
bool NetworkPositionsBackup::appendPosition(PositionEntry &entry) {
bool NetworkPositionsBackup::appendPosition(PositionEntry &entry, int8_t signalAttenuation = 0) {
char buffer[BUFFER_SIZE];
if(signalAttenuation == 0) signalAttenuation = hardware::sim808::device.getSignalQuality().attenuation;
snprintf_P(buffer, BUFFER_SIZE, PSTR("%d,%d,%d,%d,%d,%d,%d,%s"),
mainunit::freeRam(),
hardware::sim808::device.getSignalQuality().attenuation,
signalAttenuation,
entry.metadata.batteryLevel,
entry.metadata.batteryVoltage,
entry.metadata.temperature,
@@ -75,10 +77,11 @@ namespace positions {
networkUnavailableInARow = 0;
networkUnavailablePostpone = 1;
int8_t signalAttenuation = hardware::sim808::device.getSignalQuality().attenuation;
hardware::i2c::powerOn();
do {
if (!positions::get(currentEntryIndex, currentEntry)) break;
if (!appendPosition(currentEntry)) break;
if (!appendPosition(currentEntry, signalAttenuation)) break;
config::main::value.network.lastSavedEntry = currentEntryIndex;
config::main::save();


+ 1
- 1
src/NetworkPositionsBackup.h ファイルの表示

@@ -10,7 +10,7 @@ namespace positions {
class NetworkPositionsBackup : public PositionsBackup {
private:
bool isBackupNeeded(bool forPrepare);
bool appendPosition(PositionEntry &entry);
bool appendPosition(PositionEntry &entry, int8_t signalAttenuation = 0);
void appendPositions();
public:


読み込み中…
キャンセル
保存