From 3c9a53a6c0f937dcd63f9cf646341b93e296fb39 Mon Sep 17 00:00:00 2001 From: Bertrand Lemasle Date: Sun, 11 Feb 2018 22:30:54 +0100 Subject: [PATCH] Improved logs --- GpsTracker/Core.cpp | 4 ++-- GpsTracker/Debug.cpp | 39 +++++++++++++++++++++++++-------------- GpsTracker/Debug.h | 2 +- GpsTracker/Flash.h | 4 ++-- GpsTracker/MainUnit.cpp | 7 ++++--- GpsTracker/Rtc.cpp | 8 ++++++-- 6 files changed, 40 insertions(+), 24 deletions(-) diff --git a/GpsTracker/Core.cpp b/GpsTracker/Core.cpp index 2677db5..20a0c38 100644 --- a/GpsTracker/Core.cpp +++ b/GpsTracker/Core.cpp @@ -35,9 +35,9 @@ namespace core { } void setSleepTime(uint8_t velocity) { - for (uint8_t i = 0; i < flash::getFlashArraySize(config::defaultSleepTimings); i++) { + for (uint8_t i = 0; i < flash::getArraySize(config::defaultSleepTimings); i++) { sleepTimings_t timing; - flash::readFromFlash(&config::defaultSleepTimings[i], timing); + flash::read(&config::defaultSleepTimings[i], timing); if (velocity > timing.speed) continue; diff --git a/GpsTracker/Debug.cpp b/GpsTracker/Debug.cpp index 95dcffa..17af53e 100644 --- a/GpsTracker/Debug.cpp +++ b/GpsTracker/Debug.cpp @@ -9,7 +9,7 @@ MENU_ENTRY(SEPARATOR, "----"); MENU_ENTRY(RUN, "[0] Run"); MENU_ENTRY(RUN_ONCE, "[1] Run once"); -MENU_ENTRY(RAM, "[2] Read battery"); +MENU_ENTRY(RAM, "[2] Free RAM"); MENU_ENTRY(READ_BATTERY, "[3] Read battery"); MENU_ENTRY(GPS_ON, "[4] GPS On"); MENU_ENTRY(GPS_OFF, "[5] GPS Off"); @@ -18,7 +18,7 @@ MENU_ENTRY(RTC_ON, "[7] RTC On"); MENU_ENTRY(RTC_OFF, "[8] RTC Off"); MENU_ENTRY(RTC_SET, "[9] Get RTC time"); MENU_ENTRY(RTC_GET, "[10] Set RTC time"); -MENU_ENTRY(SD_WRITE_TEST "[11] Write to test file"); +MENU_ENTRY(SD_WRITE_TEST, "[11] Write to test file"); MENU_ENTRY(EEPROM_GET_CONFIG, "[16] Get EEPROM config"); MENU_ENTRY(EEPROM_GET_ENTRIES, "[17] Get EEPROM entries"); MENU_ENTRY(QUESTION, "?"); @@ -46,9 +46,16 @@ const char * const MENU_ENTRIES[] PROGMEM = { MENU_RTC_SET, MENU_RTC_GET, - MENU_QUESTION + MENU_SEPARATOR, + + MENU_SD_WRITE_TEST, + + MENU_SEPARATOR, + MENU_EEPROM_GET_CONFIG, + MENU_EEPROM_GET_ENTRIES, + MENU_QUESTION }; int freeRam2() { // dirty hack because putting it in namespace doesn't compile @@ -61,7 +68,7 @@ namespace debug { void waitForSerial() { while (!Serial); - Serial.begin(DEBUG_SERIAL_SPEED); + Serial.println("Starting !"); } int freeRam() { @@ -72,15 +79,17 @@ namespace debug { if (!Serial) return GPSTRACKER_DEBUG_COMMAND::NONE; uint8_t command; - - while (command > static_cast(GPSTRACKER_DEBUG_COMMAND::RTC_SET)) { - for (uint8_t i = 0; i < flash::getFlashArraySize(MENU_ENTRIES); i++) { - Serial.println(reinterpret_cast(pgm_read_word(MENU_ENTRIES[i]))); + size_t menuSize = flash::getArraySize(MENU_ENTRIES); + + do { + for (uint8_t i = 0; i < menuSize; i++) { + Serial.println(reinterpret_cast(pgm_read_word(&MENU_ENTRIES[i]))); } while (!Serial.available()); command = static_cast(Serial.parseInt()); - } + while (Serial.available()) Serial.read(); + } while (command > static_cast(GPSTRACKER_DEBUG_COMMAND::EEPROM_GET_ENTRIES)); return static_cast(command); } @@ -88,20 +97,22 @@ namespace debug { void getAndDisplayGpsPosition() { SIM808_GPS_STATUS gpsStatus = gps::acquireCurrentPosition(GPS_DEFAULT_TOTAL_TIMEOUT_MS); - Log.notice(F("%d %s"), gpsStatus, gps::lastPosition); + Log.notice(F("%d %s\n"), gpsStatus, gps::lastPosition); } void getAndDisplayBattery() { + hardware::sim808::powerOn(); SIM808ChargingStatus status = hardware::sim808::device.getChargingState(); + hardware::sim808::powerOff(); - Log.notice(F("%d %d%% %dmV"), status.state, status.level, status.voltage); + Log.notice(F("%d %d%% %dmV\n"), status.state, status.level, status.voltage); } void getAndDisplayRtcTime() { tmElements_t time; rtc::getTime(time); - Log.notice(F("%d/%d/%d %d:%d:%d"), time.Year, time.Month, time.Day, time.Hour, time.Minute, time.Second); + Log.notice(F("%d/%d/%d %d:%d:%d\n"), tmYearToCalendar(time.Year), time.Month, time.Day, time.Hour, time.Minute, time.Second); } void getAndDisplayEepromConfig() { @@ -109,7 +120,7 @@ namespace debug { config::read(); hardware::i2c::eepromPowerOff(); - Log.notice(F("%s, %s, %d, %d"), config::value.seed, config::value.version, config::value.firstEntry, config::value.lastEntry); + Log.notice(F("%s, %s, %d, %d\n"), config::value.seed, config::value.version, config::value.firstEntry, config::value.lastEntry); } void getAndDisplayEepromPositions() { @@ -119,7 +130,7 @@ namespace debug { do { positions::get(currentEntryIndex, currentEntry); - Log.notice(F("%d%%, %dmV, %d, %s"), currentEntry.battery.level, currentEntry.battery.voltage, currentEntry.status, currentEntry.position); + Log.notice(F("%d%%, %dmV, %d, %s\n"), currentEntry.battery.level, currentEntry.battery.voltage, currentEntry.status, currentEntry.position); } while (currentEntryIndex != config::value.lastEntry); diff --git a/GpsTracker/Debug.h b/GpsTracker/Debug.h index a736f3a..69206db 100644 --- a/GpsTracker/Debug.h +++ b/GpsTracker/Debug.h @@ -24,7 +24,7 @@ #endif -#define DEBUG_SERIAL_SPEED 9600 +#define DEBUG_SERIAL_SPEED 115200 namespace debug { diff --git a/GpsTracker/Flash.h b/GpsTracker/Flash.h index 15ab915..653d417 100644 --- a/GpsTracker/Flash.h +++ b/GpsTracker/Flash.h @@ -4,8 +4,8 @@ namespace flash { - template size_t getFlashArraySize(T(&)[N]) { return N; } - template void readFromFlash(const T *source, T &dest) { + template size_t getArraySize(T(&)[N]) { return N; } + template void read(const T *source, T &dest) { memcpy_P(&dest, source, sizeof(T)); } } \ No newline at end of file diff --git a/GpsTracker/MainUnit.cpp b/GpsTracker/MainUnit.cpp index 4750691..515dce0 100644 --- a/GpsTracker/MainUnit.cpp +++ b/GpsTracker/MainUnit.cpp @@ -21,7 +21,7 @@ namespace mainunit { } void sleep(period_t period) { - Log.verbose(F("Sleeping for period : %d"), period); + Log.notice(F("Sleeping for period : %d"), period); LowPower.powerDown(period, ADC_OFF, BOD_OFF); @@ -30,11 +30,12 @@ namespace mainunit { } void deepSleep(uint16_t seconds) { - Log.verbose(F("Deep sleeping for %d seconds"), seconds); + Log.notice(F("Deep sleeping for %d seconds"), seconds); interruptIn(seconds); + Log.verbose("interruptIn done !"); LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF); - + Log.verbose("hola"); Log.verbose(reinterpret_cast(pgm_read_word(WOKE_UP))); } } \ No newline at end of file diff --git a/GpsTracker/Rtc.cpp b/GpsTracker/Rtc.cpp index 053916d..4a066a6 100644 --- a/GpsTracker/Rtc.cpp +++ b/GpsTracker/Rtc.cpp @@ -48,10 +48,14 @@ namespace rtc { } void setAlarm(tmElements_t &time) { + tmElements_t currentTime; + getTime(currentTime); + Log.verbose(F("Current time : %d/%d/%d %d:%d:%d\n"), tmYearToCalendar(currentTime.Year), currentTime.Month, currentTime.Day, currentTime.Hour, currentTime.Minute, currentTime.Second); + Log.notice(F("Set alarm to : %d/%d/%d %d:%d:%d\n"), tmYearToCalendar(time.Year), time.Month, time.Day, time.Hour, time.Minute, time.Second); details::writeTimeToRegisters(time); - RTC.writeAlarm1(DS3231_ALM_S); + RTC.writeAlarm1(DS3231_ALM_DTHMS); - RTC.control(DS3231_A1_FLAG, DS3231_OFF); + RTC.control(DS3231_A1_FLAG, DS3231_OFF); //reset Alarm 1 flag RTC.control(DS3231_A1_INT_ENABLE, DS3231_ON); //Alarm 1 ON RTC.control(DS3231_INT_ENABLE, DS3231_ON); //INTCN ON }