From 0fa1eb4dc934c918079d2c43413c20a554e517bd Mon Sep 17 00:00:00 2001 From: Bertrand Lemasle Date: Mon, 3 Dec 2018 17:34:59 +1300 Subject: [PATCH] Reduced hex size by mutualizing print position function --- src/Debug.cpp | 30 ++++-------------------------- src/Debug.h | 3 +-- src/GpsTracker.ino | 4 ++-- src/Positions.cpp | 34 +++++++++++++++++----------------- src/Positions.h | 2 ++ 5 files changed, 26 insertions(+), 47 deletions(-) diff --git a/src/Debug.cpp b/src/Debug.cpp index e23f953..5b3e617 100644 --- a/src/Debug.cpp +++ b/src/Debug.cpp @@ -116,19 +116,6 @@ using namespace utils; namespace debug { #define CURRENT_LOGGER "debug" - namespace details { - inline void displayPosition(PositionEntry entry) { - #define CURRENT_LOGGER_FUNCTION "displayPosition" - NOTICE_FORMAT("%d,%d,%d,%d,%d,%s", - entry.metadata.batteryLevel, - entry.metadata.batteryVoltage, - entry.metadata.temperature, - static_cast(entry.metadata.status), - entry.metadata.timeToFix, - entry.position); - } - } - void displayFreeRam() { #define CURRENT_LOGGER_FUNCTION "displayFreeRam" NOTICE_FORMAT("%d", mainunit::freeRam()); @@ -249,27 +236,18 @@ namespace debug { NOTICE_MSG("Done"); } - void getAndDisplayEepromPositions() { - uint16_t currentEntryIndex = config::main::value.firstEntry; + void getAndDisplayEepromPositions(uint16_t firstIndex) { + uint16_t currentEntryIndex = firstIndex; PositionEntry currentEntry; hardware::i2c::powerOn(); do { if (!positions::get(currentEntryIndex, currentEntry)) break; - details::displayPosition(currentEntry); - } while (positions::moveNext(currentEntryIndex)); + positions::print(currentEntryIndex, currentEntry); + } while(positions::moveNext(currentEntryIndex)); hardware::i2c::powerOff(); } - void getAndDisplayEepromLastPosition() { - #define CURRENT_LOGGER_FUNCTION "getAndDisplayEepromLastPosition" - uint16_t lastEntryIndex = config::main::value.lastEntry; - PositionEntry lastEntry; - - if(positions::get(lastEntryIndex, lastEntry)) details::displayPosition(lastEntry); - else NOTICE_MSG("No position recorded"); - } - void addLastPositionToEeprom() { hardware::sim808::powerOn(); SIM808ChargingStatus status = hardware::sim808::device.getChargingState(); diff --git a/src/Debug.h b/src/Debug.h index dbe40f4..0fd191f 100644 --- a/src/Debug.h +++ b/src/Debug.h @@ -44,8 +44,7 @@ namespace debug { void getAndDisplayEepromConfig(); void getAndDisplayEepromContent(); - void getAndDisplayEepromPositions(); - void getAndDisplayEepromLastPosition(); + void getAndDisplayEepromPositions(uint16_t firstIndex); void addLastPositionToEeprom(); void notifyFailures(); diff --git a/src/GpsTracker.ino b/src/GpsTracker.ino index d691f89..64f0714 100644 --- a/src/GpsTracker.ino +++ b/src/GpsTracker.ino @@ -75,10 +75,10 @@ void loop() { debug::getAndDisplayEepromContent(); break; case debug::GPSTRACKER_DEBUG_COMMAND::EEPROM_GET_ENTRIES: - debug::getAndDisplayEepromPositions(); + debug::getAndDisplayEepromPositions(config::main::value.firstEntry); break; case debug::GPSTRACKER_DEBUG_COMMAND::EEPROM_GET_LAST_ENTRY: - debug::getAndDisplayEepromLastPosition(); + debug::getAndDisplayEepromPositions(config::main::value.lastEntry); break; case debug::GPSTRACKER_DEBUG_COMMAND::EEPROM_ADD_ENTRY: debug::addLastPositionToEeprom(); diff --git a/src/Positions.cpp b/src/Positions.cpp index 8996839..90db23b 100644 --- a/src/Positions.cpp +++ b/src/Positions.cpp @@ -116,14 +116,8 @@ namespace positions { hardware::i2c::powerOn(); hardware::i2c::eeprom.writeBlock(entryAddress, entry); - NOTICE_FORMAT("Saved @ %X : %d,%d,%d,%d,%d,%s", - entryAddress, - entry.metadata.batteryLevel, - entry.metadata.batteryVoltage, - entry.metadata.temperature, - static_cast(entry.metadata.status), - entry.metadata.timeToFix, - entry.position); + NOTICE_MSG("Saved"); + print(entryIndex, entry); config->lastEntry++; if (config->lastEntry > details::maxEntryIndex) config->lastEntry = 0; @@ -147,15 +141,7 @@ namespace positions { hardware::i2c::eeprom.readBlock(entryAddress, entry); hardware::i2c::powerOff(); - NOTICE_FORMAT("Read from EEPROM @ %X : %d,%d,%d,%d,%d,%s", - entryAddress, - entry.metadata.batteryLevel, - entry.metadata.batteryVoltage, - entry.metadata.temperature, - static_cast(entry.metadata.status), - entry.metadata.timeToFix, - entry.position); - + print(index, entry); return true; } @@ -196,4 +182,18 @@ namespace positions { _backup->backup(force); #endif } + + void print(uint16_t index, PositionEntry &entry) { + #define CURRENT_LOGGER_FUNCTION "print" + + uint16_t address = details::getEntryAddress(index); + NOTICE_FORMAT("%X : %d,%d,%d,%d,%d,%s", + address, + entry.metadata.batteryLevel, + entry.metadata.batteryVoltage, + entry.metadata.temperature, + static_cast(entry.metadata.status), + entry.metadata.timeToFix, + entry.position); + } } \ No newline at end of file diff --git a/src/Positions.h b/src/Positions.h index 268a9b5..6f3b6a0 100644 --- a/src/Positions.h +++ b/src/Positions.h @@ -30,4 +30,6 @@ namespace positions { void prepareBackup(); void doBackup(bool force); + + void print(uint16_t index, PositionEntry &entry); } \ No newline at end of file