Logger refactoring

This commit is contained in:
Pavel-Savely Savianok 2024-06-15 14:35:21 +03:00
parent 654c1b031a
commit 944038c9d0
10 changed files with 127 additions and 58 deletions

5
program/SVET/.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,5 @@
{
"files.associations": {
"string": "cpp"
}
}

View File

@ -1,5 +1,6 @@
#include <Arduino.h>
#include "Logger.h"
#include "PerepheryCore/SerialCore.h"
/*
* Implementation of Logger instance. Docs on Logger.h
@ -17,12 +18,12 @@ Logger::Logger(
{
return;
}
Serial.begin(baudRate);
SerialCore::Start(baudRate);
}
Logger::~Logger()
{
Serial.end();
SerialCore::Stop();
}
const char *Logger::messageTypeToString(MessageType messageType)
@ -57,50 +58,31 @@ std::string Logger::getMessage(MessageType messageType, char *text, char *initia
return output;
}
void Logger::sendMessage(char *data, SerialColor color)
{
SerialCore::SetColor(color);
SerialCore::SendLine(data);
SerialCore::SetColor(WHITE);
}
void Logger::sendMessage(const char *data, SerialColor color)
{
SerialCore::SetColor(color);
SerialCore::SendLine(data);
SerialCore::SetColor(WHITE);
}
void Logger::Info(char *data, char *initiator)
{
// TODO: check core and user level
if (UseColor)
{
Serial.write(27);
Serial.print("[37m"); // White color
}
Serial.println(getMessage(MessageType::INFO, data, initiator).c_str());
if (UseColor)
{
Serial.write(27);
Serial.print("[37m");
}
sendMessage(getMessage(MessageType::INFO, data, initiator).c_str(), WHITE);
}
void Logger::Warn(char *data, char *initiator)
{
// TODO: check core and user level
if (UseColor)
{
Serial.write(27);
Serial.print("[33m"); // Orange color
}
Serial.println(getMessage(MessageType::WARN, data, initiator).c_str());
if (UseColor)
{
Serial.write(27);
Serial.print("[37m");
}
sendMessage(getMessage(MessageType::WARN, data, initiator).c_str(), ORANGE);
}
void Logger::Error(char *data, char *initiator)
{
// TODO: check core and user level
if (UseColor)
{
Serial.write(27);
Serial.print("[31m"); // Red color
}
Serial.println(getMessage(MessageType::ERROR, data, initiator).c_str());
if (UseColor)
{
Serial.write(27);
Serial.print("[37m");
}
sendMessage(getMessage(MessageType::ERROR, data, initiator).c_str(), RED);
}

View File

@ -1,25 +1,14 @@
#pragma once
#include <string>
#include "SerialColor.h"
#include "MessageType.h"
/*
* Definition of Logger instance.
* Writed on 14.06.2024 21:11
* By Lisoveliy
*/
// Next briefs added for set logger statuses, not explaining logger work!
/// @brief Type of messages for logger
enum MessageType
{
/// @brief For info, warn and error messages (default)
INFO,
/// @brief For warn and error messages
WARN,
/// @brief For only error messages
ERROR,
/// @brief For disable logger
NONE
};
/// @brief Logger instance for messages on Serial port
class Logger
{
@ -30,6 +19,8 @@ private:
const char *messageTypeToString(MessageType messageType);
std::string getMessage(MessageType messageType, char *text, char *initiator);
void sendMessage(char *output, SerialColor color);
void sendMessage(const char *output, SerialColor color);
public:
/// @brief Create instance of logger

View File

@ -0,0 +1,15 @@
#pragma once
// Next briefs added for set logger statuses, not explaining logger work!
/// @brief Type of messages for logger
enum MessageType
{
/// @brief For info, warn and error messages (default)
INFO,
/// @brief For warn and error messages
WARN,
/// @brief For only error messages
ERROR,
/// @brief For disable logger
NONE
};

View File

@ -0,0 +1,12 @@
#pragma once
/// @brief Color of serial output
enum SerialColor
{
/// @brief White color
WHITE,
/// @brief Red color
RED,
/// @brief Orange color
ORANGE
};

View File

@ -0,0 +1,65 @@
#pragma once
#include "Logger/SerialColor.h"
/*
* Definition of SerialCore.
* Writed on 15.06.2024 14:11
* By Lisoveliy
*/
namespace SerialCore
{
void Start(short baudRate);
void Stop();
void SendLine(char *data);
void SendLine(const char *data);
void SetColor(SerialColor color);
const char *GetEscapeColor(SerialColor color);
};
/*
* Implementation of SerialCore.
* Writed on 15.06.2024 14:12
* By Lisoveliy
*/
void SerialCore::Start(short baudRate)
{
Serial.begin(baudRate);
}
void SerialCore::Stop()
{
Serial.end();
}
void SerialCore::SendLine(char *data)
{
Serial.println(data);
}
void SerialCore::SendLine(const char *data)
{
Serial.println(data);
}
void SerialCore::SetColor(SerialColor color)
{
Serial.write(27);
Serial.print(GetEscapeColor(color)); // White color
}
const char *SerialCore::GetEscapeColor(SerialColor color)
{
switch (color)
{
case SerialColor::WHITE:
return "[37m";
case SerialColor::ORANGE:
return "[33m";
case SerialColor::RED:
return "[31m";
default:
return "";
}
}

View File

@ -1,5 +1,6 @@
#pragma once
#include "SVETBuilder/SVETBuilder.h"
#include "Logger/Logger.h"
#include <memory>
/*

View File

@ -1,6 +1,5 @@
#pragma once
#include "options/LoggerOptions/LoggerOptions.h"
#include <memory>
/*
* Definition of SVETBuilder.

View File

@ -1,5 +1,5 @@
#pragma once
#include <Logger/Logger.h>
#include "Logger/MessageType.h"
/*
* Definition of Logger Options.

View File

@ -1,6 +1,5 @@
#include <Arduino.h>
#include <memory>
#include "SVETBuilder/SVETBuilder.h"
#include "SVET.h"
std::unique_ptr<SVET> svet;
@ -15,9 +14,9 @@ void setup()
void loop()
{
logger->Info("Hello", "main.cpp");
logger->Warn("Warn asd", "main.cpp");
logger->Error("Warferr", "main.cpp");
delay(1000);
logger->Info("Hello INFO", "main.cpp");
logger->Warn("Hello WARN", "main.cpp");
logger->Error("Hello ERROR", "main.cpp");
svet->Loop();
}