Merge pull request #45 from vas-dav/logging

Logging
This commit is contained in:
RedHawk
2023-05-15 13:05:25 +03:00
committed by GitHub
6 changed files with 226 additions and 23 deletions

View File

@@ -8,7 +8,9 @@
#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"
#include "Clock.h"
extern Clock *global_clock;
extern QueueHandle_t logging_queue;
/* ================= Settings ================== */
@@ -46,8 +48,10 @@ extern QueueHandle_t logging_queue;
xQueueSend(logging_queue, (void*)message, portMAX_DELAY); \
}
static void create_log_line(const char * _status,
static void create_log_line(const TimeFromStart _timestamp,
const char * _status,
const char * _location,
const char * _func,
const size_t _line,
const char * _fmt, ...)
{
@@ -58,9 +62,15 @@ static void create_log_line(const char * _status,
va_end(args);
char buffer [LOG_BUFFER_MAX_CAP] = {0};
int buffer_len = snprintf(buffer, LOG_BUFFER_MAX_CAP,
"[%s] [File: %s] [Line: %d] %.*s",
"[%02zu:%02zu:%02zu:%02zu:%03zu]:[%s] In [File: %s] [Func: %s] [Line: %zu]\r\n %.*s",
_timestamp.days,
_timestamp.hours,
_timestamp.minutes,
_timestamp.seconds,
_timestamp.milliseconds,
_status,
_location,
_func,
_line,
message_len,
message);
@@ -68,18 +78,18 @@ static void create_log_line(const char * _status,
}
#define LOG_INFO(fmt, ...) \
create_log_line(C_INFO, __FILE__, __LINE__, fmt, ##__VA_ARGS__);
#define LOG_INFO( fmt, ...) \
create_log_line(global_clock->getTimeFromStart(), C_INFO, __FILE__, __func__, __LINE__, fmt, ##__VA_ARGS__);
#define LOG_WARNING(fmt, ...) \
create_log_line(C_WARN, __FILE__, __LINE__, fmt, ##__VA_ARGS__);
create_log_line(global_clock->getTimeFromStart(), C_WARN, __FILE__, __func__, __LINE__, fmt, ##__VA_ARGS__);
#define LOG_ERROR(fmt, ...) \
create_log_line(C_ERROR, __FILE__, __LINE__, fmt, ##__VA_ARGS__);
create_log_line(global_clock->getTimeFromStart(), C_ERROR, __FILE__, __func__, __LINE__, fmt, ##__VA_ARGS__);
#if LOG_DEBUG_MESSAGES
#define LOG_DEBUG(fmt, ...) \
create_log_line(C_DEBUG, __FILE__, __LINE__, fmt, ##__VA_ARGS__);
create_log_line(global_clock->getTimeFromStart(), C_DEBUG, __FILE__, __func__, __LINE__, fmt, ##__VA_ARGS__);
#else
#define LOG_DEBUG(fmt, ...)
#endif

View File

@@ -14,7 +14,6 @@
#include "Logging.h"
#include "UserInterface.h"
#include "queue.h"
#include "Logging.h"
static const char* rotary_direction[] =
{
@@ -25,12 +24,18 @@ static const char* rotary_direction[] =
};
QueueHandle_t logging_queue;
Clock *global_clock = new Clock();
Master::Master(ThreadCommon::QueueManager* qm) : _qm(qm)
{
LOG_DEBUG("Creating Master");
}
Master::~Master()
{
LOG_ERROR("Master was deleted");
}
void Master::HandleEventType(Event* e, Event::EventType type)
{
switch (type)
@@ -40,6 +45,7 @@ void Master::HandleEventType(Event* e, Event::EventType type)
case Event::Rotary:
//Comes from rotary, goes to manager
_qm->send<Event>(ThreadCommon::QueueManager::manager_event_master, e, 0);
//LOG_WARNING("Timestamp: %zus, Clock: %zu, Chip freq: %zu", LPC_SCT1->COUNT_U / Chip_Clock_GetMainClockRate(), LPC_SCT1->COUNT_U, Chip_Clock_GetMainClockRate());
LOG_DEBUG("Rotary: %s has been forwarded to manager", rotary_direction[e->getDataOf(type)]);
break;
case Event::InternalTemp:
@@ -79,7 +85,8 @@ void Master::taskFunction() {
{
HandleEventType(&data, i);
}
}
}
global_clock->updateClock();
}
}

View File

@@ -20,7 +20,7 @@
class Master {
public:
Master(ThreadCommon::QueueManager* qm);
virtual ~Master() = default;
virtual ~Master();
void taskFunction();
private: