update logs
parent
583eee9745
commit
b639de0dd7
|
|
@ -17,18 +17,17 @@
|
||||||
#include "img_converters.h"
|
#include "img_converters.h"
|
||||||
#include "soc/soc.h"
|
#include "soc/soc.h"
|
||||||
#include "soc/rtc_cntl_reg.h"
|
#include "soc/rtc_cntl_reg.h"
|
||||||
|
|
||||||
#include "cfg.h"
|
#include "cfg.h"
|
||||||
|
|
||||||
#include "exif.h"
|
#include "exif.h"
|
||||||
#include "FS.h"
|
|
||||||
#include "SD_MMC.h"
|
|
||||||
|
|
||||||
#include "Camera_cfg.h"
|
#include "Camera_cfg.h"
|
||||||
#include "Arduino.h"
|
#include "Arduino.h"
|
||||||
#include "mcu_cfg.h"
|
#include "mcu_cfg.h"
|
||||||
#include "var.h"
|
#include "var.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
|
|
||||||
|
class Configuration;
|
||||||
|
|
||||||
struct PhotoExifData_t {
|
struct PhotoExifData_t {
|
||||||
const uint8_t *header;
|
const uint8_t *header;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ Logs::Logs() {
|
||||||
LogLevel = LogLevel_Verbose;
|
LogLevel = LogLevel_Verbose;
|
||||||
FileMaxSize = 1024;
|
FileMaxSize = 1024;
|
||||||
NtpTimeSynced = false;
|
NtpTimeSynced = false;
|
||||||
|
LogMsg = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -37,6 +38,7 @@ Logs::Logs(String i_FilePath, String i_FileName) {
|
||||||
LogLevel = LogLevel_Verbose;
|
LogLevel = LogLevel_Verbose;
|
||||||
FileMaxSize = 1024;
|
FileMaxSize = 1024;
|
||||||
NtpTimeSynced = false;
|
NtpTimeSynced = false;
|
||||||
|
LogMsg = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -52,6 +54,7 @@ Logs::Logs(LogLevel_enum i_LogLevel, String i_FilePath, String i_FileName) {
|
||||||
LogLevel = i_LogLevel;
|
LogLevel = i_LogLevel;
|
||||||
FileMaxSize = 1024;
|
FileMaxSize = 1024;
|
||||||
NtpTimeSynced = false;
|
NtpTimeSynced = false;
|
||||||
|
LogMsg = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -67,6 +70,7 @@ Logs::Logs(String i_FilePath, String i_FileName, uint16_t i_FileSize) {
|
||||||
LogLevel = LogLevel_Verbose;
|
LogLevel = LogLevel_Verbose;
|
||||||
FileMaxSize = i_FileSize;
|
FileMaxSize = i_FileSize;
|
||||||
NtpTimeSynced = false;
|
NtpTimeSynced = false;
|
||||||
|
LogMsg = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -83,6 +87,7 @@ Logs::Logs(LogLevel_enum i_LogLevel, String i_FilePath, String i_FileName, uint1
|
||||||
LogLevel = i_LogLevel;
|
LogLevel = i_LogLevel;
|
||||||
FileMaxSize = i_FileSize;
|
FileMaxSize = i_FileSize;
|
||||||
NtpTimeSynced = false;
|
NtpTimeSynced = false;
|
||||||
|
LogMsg = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -104,19 +109,19 @@ void Logs::Init() {
|
||||||
CheckMaxLogFileSize();
|
CheckMaxLogFileSize();
|
||||||
|
|
||||||
/* added first message to log file after start MCU */
|
/* added first message to log file after start MCU */
|
||||||
String msg = F("----------------------------------------------------------------\n");
|
LogMsg = F("----------------------------------------------------------------\n");
|
||||||
msg += F("Start MCU!\nSW Version: ");
|
LogMsg += F("Start MCU!\nSW Version: ");
|
||||||
msg += String(SW_VERSION);
|
LogMsg += String(SW_VERSION);
|
||||||
msg += F(" ,Build: ");
|
LogMsg += F(" ,Build: ");
|
||||||
msg += String(SW_BUILD);
|
LogMsg += String(SW_BUILD);
|
||||||
msg += "\n";
|
LogMsg += "\n";
|
||||||
msg += F("Verbose mode: ");
|
LogMsg += F("Verbose mode: ");
|
||||||
msg += (true == CONSOLE_VERBOSE_DEBUG) ? "true" : "false";
|
LogMsg += (true == CONSOLE_VERBOSE_DEBUG) ? "true" : "false";
|
||||||
msg += "\n";
|
LogMsg += "\n";
|
||||||
msg += F("Log level: ");
|
LogMsg += F("Log level: ");
|
||||||
msg += String(LogLevel);
|
LogMsg += String(LogLevel);
|
||||||
msg += "\n";
|
LogMsg += "\n";
|
||||||
AppendFile(SD_MMC, FilePath + FileName, msg);
|
AppendFile(SD_MMC, FilePath + FileName, LogMsg);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
Serial.println(F("Micro-SD card not found! Disable logs"));
|
Serial.println(F("Micro-SD card not found! Disable logs"));
|
||||||
|
|
@ -142,7 +147,7 @@ void Logs::SetLogLevel(LogLevel_enum level) {
|
||||||
*/
|
*/
|
||||||
void Logs::AddEvent(LogLevel_enum level, String msg, bool newLine, bool date) {
|
void Logs::AddEvent(LogLevel_enum level, String msg, bool newLine, bool date) {
|
||||||
if (LogLevel >= level) {
|
if (LogLevel >= level) {
|
||||||
String LogMsg = "";
|
LogMsg = "";
|
||||||
|
|
||||||
if (true == date) {
|
if (true == date) {
|
||||||
LogMsg += GetSystemTime();
|
LogMsg += GetSystemTime();
|
||||||
|
|
@ -174,7 +179,7 @@ void Logs::AddEvent(LogLevel_enum level, String msg, bool newLine, bool date) {
|
||||||
*/
|
*/
|
||||||
void Logs::AddEvent(LogLevel_enum level, const __FlashStringHelper *msg, String parameters, bool newLine, bool date) {
|
void Logs::AddEvent(LogLevel_enum level, const __FlashStringHelper *msg, String parameters, bool newLine, bool date) {
|
||||||
if (LogLevel >= level) {
|
if (LogLevel >= level) {
|
||||||
String LogMsg = "";
|
LogMsg = "";
|
||||||
|
|
||||||
if (true == date) {
|
if (true == date) {
|
||||||
LogMsg += GetSystemTime();
|
LogMsg += GetSystemTime();
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ private:
|
||||||
String FilePath; ///< log file patch
|
String FilePath; ///< log file patch
|
||||||
uint16_t FileMaxSize; ///< log file max size
|
uint16_t FileMaxSize; ///< log file max size
|
||||||
bool NtpTimeSynced; ///< status NTP time sync
|
bool NtpTimeSynced; ///< status NTP time sync
|
||||||
|
String LogMsg; ///< log message
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Logs();
|
Logs();
|
||||||
|
|
|
||||||
|
|
@ -44,10 +44,10 @@
|
||||||
#define STATUS_LED_ERROR 100 ///< time for blink status LED when is module in the error state [ms]
|
#define STATUS_LED_ERROR 100 ///< time for blink status LED when is module in the error state [ms]
|
||||||
|
|
||||||
/* ------------------- TASKS --------------------*/
|
/* ------------------- TASKS --------------------*/
|
||||||
#define TASK_SYSTEM 1000 ///< system task interval [ms]
|
#define TASK_SYSTEM 2000 ///< system task interval [ms]
|
||||||
#define TASK_SDCARD 30000 ///< sd card task interval [ms]
|
#define TASK_SDCARD 30000 ///< sd card task interval [ms]
|
||||||
#define TASK_WIFI 30000 ///< wifi reconnect interval. Checking when is signal lost [ms]
|
#define TASK_WIFI 30000 ///< wifi reconnect interval. Checking when is signal lost [ms]
|
||||||
#define TASK_SERIAL_CFG 1000 ///< serial cfg task interval [ms]
|
#define TASK_SERIAL_CFG 2000 ///< serial cfg task interval [ms]
|
||||||
#define TASK_STREAM_TELEMETRY 30000 ///< stream telemetry task interval [ms]
|
#define TASK_STREAM_TELEMETRY 30000 ///< stream telemetry task interval [ms]
|
||||||
#define TASK_WIFI_WATCHDOG 20000 ///< wifi watchdog task interval [ms]
|
#define TASK_WIFI_WATCHDOG 20000 ///< wifi watchdog task interval [ms]
|
||||||
#define TASK_PHOTO_SEND 1000 ///< photo send task interval [ms]
|
#define TASK_PHOTO_SEND 1000 ///< photo send task interval [ms]
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@ private:
|
||||||
uint32_t CardFreeMB; ///< Card free size
|
uint32_t CardFreeMB; ///< Card free size
|
||||||
uint8_t FreeSpacePercent; ///< Free space in percent
|
uint8_t FreeSpacePercent; ///< Free space in percent
|
||||||
uint8_t UsedSpacePercent; ///< Used space in percent
|
uint8_t UsedSpacePercent; ///< Used space in percent
|
||||||
|
File file; ///< File object
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MicroSd();
|
MicroSd();
|
||||||
|
|
|
||||||
|
|
@ -448,10 +448,10 @@ void System_TaskWifiManagement(void *pvParameters) {
|
||||||
|
|
||||||
/* wifi reconnect after signal lost */
|
/* wifi reconnect after signal lost */
|
||||||
SystemWifiMngt.WiFiReconnect();
|
SystemWifiMngt.WiFiReconnect();
|
||||||
SystemLog.AddEvent(LogLevel_Info, "Free RAM: " + String(ESP.getFreeHeap()) + " bytes");
|
SystemLog.AddEvent(LogLevel_Info, "Free RAM: " + String(ESP.getFreeHeap()) + " B");
|
||||||
SystemLog.AddEvent(LogLevel_Info, "Free SPIRAM: " + String(ESP.getFreePsram()) + " bytes");
|
SystemLog.AddEvent(LogLevel_Info, "Free SPIRAM: " + String(ESP.getFreePsram()) + " B");
|
||||||
SystemLog.AddEvent(LogLevel_Info, "Temperature: " + String(temperatureRead()) + " *C");
|
SystemLog.AddEvent(LogLevel_Info, "Temperature: " + String(temperatureRead()) + " *C");
|
||||||
SystemLog.AddEvent(LogLevel_Verbose, F("WiFiManagement task. Stack free size: "), String(uxTaskGetStackHighWaterMark(NULL)) + " bytes");
|
SystemLog.AddEvent(LogLevel_Verbose, F("WiFiManagement task. Stack free size: "), String(uxTaskGetStackHighWaterMark(NULL)) + "B");
|
||||||
SystemLog.AddEvent(LogLevel_Verbose, F("WiFi status: "), String(WiFi.status()));
|
SystemLog.AddEvent(LogLevel_Verbose, F("WiFi status: "), String(WiFi.status()));
|
||||||
|
|
||||||
/* reset wdg */
|
/* reset wdg */
|
||||||
|
|
@ -476,7 +476,7 @@ void System_TaskMain(void *pvParameters) {
|
||||||
/* for ota update */
|
/* for ota update */
|
||||||
esp_task_wdt_reset();
|
esp_task_wdt_reset();
|
||||||
System_Main();
|
System_Main();
|
||||||
SystemLog.AddEvent(LogLevel_Verbose, F("System task. Stack free size: "), String(uxTaskGetStackHighWaterMark(NULL)) + " bytes");
|
SystemLog.AddEvent(LogLevel_Verbose, F("System task. Stack free size: "), String(uxTaskGetStackHighWaterMark(NULL)) + "B");
|
||||||
|
|
||||||
/* reset wdg */
|
/* reset wdg */
|
||||||
esp_task_wdt_reset();
|
esp_task_wdt_reset();
|
||||||
|
|
@ -518,7 +518,7 @@ void System_TaskCaptureAndSendPhoto(void *pvParameters) {
|
||||||
Connect.IncreaseSendingIntervalCounter();
|
Connect.IncreaseSendingIntervalCounter();
|
||||||
}
|
}
|
||||||
|
|
||||||
SystemLog.AddEvent(LogLevel_Verbose, F("Photo processing task. Stack free size: "), String(uxTaskGetStackHighWaterMark(NULL)) + " bytes");
|
SystemLog.AddEvent(LogLevel_Verbose, F("Photo processing task. Stack free size: "), String(uxTaskGetStackHighWaterMark(NULL)) + "B");
|
||||||
|
|
||||||
/* reset wdg */
|
/* reset wdg */
|
||||||
esp_task_wdt_reset();
|
esp_task_wdt_reset();
|
||||||
|
|
@ -558,7 +558,7 @@ void System_TaskSdCardCheck(void *pvParameters) {
|
||||||
SystemLog.CheckMaxLogFileSize();
|
SystemLog.CheckMaxLogFileSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
SystemLog.AddEvent(LogLevel_Verbose, F("MicroSdCard task. Stack free size: "), String(uxTaskGetStackHighWaterMark(NULL)) + " bytes");
|
SystemLog.AddEvent(LogLevel_Verbose, F("MicroSdCard task. Stack free size: "), String(uxTaskGetStackHighWaterMark(NULL)) + "B");
|
||||||
|
|
||||||
/* reset wdg */
|
/* reset wdg */
|
||||||
esp_task_wdt_reset();
|
esp_task_wdt_reset();
|
||||||
|
|
@ -581,7 +581,7 @@ void System_TaskSerialCfg(void *pvParameters) {
|
||||||
while (1) {
|
while (1) {
|
||||||
esp_task_wdt_reset();
|
esp_task_wdt_reset();
|
||||||
SystemSerialCfg.ProcessIncommingData();
|
SystemSerialCfg.ProcessIncommingData();
|
||||||
SystemLog.AddEvent(LogLevel_Verbose, F("SerialCfg task. Stack free size: "), String(uxTaskGetStackHighWaterMark(NULL)) + " bytes");
|
SystemLog.AddEvent(LogLevel_Verbose, F("SerialCfg task. Stack free size: "), String(uxTaskGetStackHighWaterMark(NULL)) + "B");
|
||||||
|
|
||||||
/* reset wdg */
|
/* reset wdg */
|
||||||
esp_task_wdt_reset();
|
esp_task_wdt_reset();
|
||||||
|
|
@ -603,7 +603,7 @@ void System_TaskStreamTelemetry(void *pvParameters) {
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
esp_task_wdt_reset();
|
esp_task_wdt_reset();
|
||||||
SystemLog.AddEvent(LogLevel_Verbose, F("StreamTelemetry task. Stack free size: "), String(uxTaskGetStackHighWaterMark(NULL)) + " bytes");
|
SystemLog.AddEvent(LogLevel_Verbose, F("StreamTelemetry task. Stack free size: "), String(uxTaskGetStackHighWaterMark(NULL)) + "B");
|
||||||
if (SystemCamera.GetStreamStatus()) {
|
if (SystemCamera.GetStreamStatus()) {
|
||||||
char buf[80] = { '\0' };
|
char buf[80] = { '\0' };
|
||||||
sprintf(buf, "Stream, average data in %dsec. FPS: %.1f, Size: %uKB", (TASK_STREAM_TELEMETRY / SECOND_TO_MILISECOND), SystemCamera.StreamGetFrameAverageFps(), SystemCamera.StreamGetFrameAverageSize());
|
sprintf(buf, "Stream, average data in %dsec. FPS: %.1f, Size: %uKB", (TASK_STREAM_TELEMETRY / SECOND_TO_MILISECOND), SystemCamera.StreamGetFrameAverageFps(), SystemCamera.StreamGetFrameAverageSize());
|
||||||
|
|
@ -633,7 +633,7 @@ void System_TaskSysLed(void *pvParameters) {
|
||||||
system_led.toggle();
|
system_led.toggle();
|
||||||
/* reset wdg */
|
/* reset wdg */
|
||||||
esp_task_wdt_reset();
|
esp_task_wdt_reset();
|
||||||
SystemLog.AddEvent(LogLevel_Verbose, F("SystemLed task. Stack free size: "), String(uxTaskGetStackHighWaterMark(NULL)) + " bytes");
|
SystemLog.AddEvent(LogLevel_Verbose, F("SystemLed task. Stack free size: "), String(uxTaskGetStackHighWaterMark(NULL)) + "B");
|
||||||
|
|
||||||
/* next start task */
|
/* next start task */
|
||||||
vTaskDelayUntil(&xLastWakeTime, system_led.getTimer() / portTICK_PERIOD_MS);
|
vTaskDelayUntil(&xLastWakeTime, system_led.getTimer() / portTICK_PERIOD_MS);
|
||||||
|
|
@ -653,7 +653,7 @@ void System_TaskWiFiWatchdog(void *pvParameters) {
|
||||||
while (1) {
|
while (1) {
|
||||||
esp_task_wdt_reset();
|
esp_task_wdt_reset();
|
||||||
SystemWifiMngt.WiFiWatchdog();
|
SystemWifiMngt.WiFiWatchdog();
|
||||||
SystemLog.AddEvent(LogLevel_Verbose, F("WiFiWatchdog task. Stack free size: "), String(uxTaskGetStackHighWaterMark(NULL)) + " bytes");
|
SystemLog.AddEvent(LogLevel_Verbose, F("WiFiWatchdog task. Stack free size: "), String(uxTaskGetStackHighWaterMark(NULL)) + "B");
|
||||||
|
|
||||||
/* reset wdg */
|
/* reset wdg */
|
||||||
esp_task_wdt_reset();
|
esp_task_wdt_reset();
|
||||||
|
|
@ -693,7 +693,7 @@ void System_TaskSdCardRemove(void *pvParameters) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SystemLog.AddEvent(LogLevel_Verbose, F("MicroSdCard task. Stack free size: "), String(uxTaskGetStackHighWaterMark(NULL)) + " bytes");
|
SystemLog.AddEvent(LogLevel_Verbose, F("MicroSdCard task. Stack free size: "), String(uxTaskGetStackHighWaterMark(NULL)) + "B");
|
||||||
|
|
||||||
/* reset wdg */
|
/* reset wdg */
|
||||||
esp_task_wdt_reset();
|
esp_task_wdt_reset();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue