From e147e0e72fc28f2711e0a7307a7e6c774acfb53a Mon Sep 17 00:00:00 2001 From: Ing-Dom Date: Fri, 29 Dec 2023 11:27:06 +0100 Subject: [PATCH] wip --- src/knx/application_layer.cpp | 6 ++++-- src/knx/logger.cpp | 9 +++++++++ src/knx/logger.h | 21 +++++++++++++++++---- 3 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 src/knx/logger.cpp diff --git a/src/knx/application_layer.cpp b/src/knx/application_layer.cpp index 1e8ccec6..25f9045e 100644 --- a/src/knx/application_layer.cpp +++ b/src/knx/application_layer.cpp @@ -7,6 +7,7 @@ #include "string.h" #include "bits.h" #include +#include "logger.h" const SecurityControl ApplicationLayer::noSecurity {.toolAccess=false, .dataSecurity=DataSecurity::None}; @@ -97,8 +98,9 @@ void ApplicationLayer::dataGroupConfirm(AckType ack, HopCountType hopType, Prior _savedAsapWriteRequest = 0; break; default: - print("datagroup-confirm: unhandled APDU-Type: "); - println(apdu.type()); + KNX_LOG_INFO("datagroup-confirm: unhandled APDU-Type: 0x%04x", apdu.type()); + //print("datagroup-confirm: unhandled APDU-Type: 0x%04x", apdu.type()); + //println(apdu.type()); } } diff --git a/src/knx/logger.cpp b/src/knx/logger.cpp new file mode 100644 index 00000000..3265e163 --- /dev/null +++ b/src/knx/logger.cpp @@ -0,0 +1,9 @@ + +#include "logger.h" + +void KnxLogger::log(const char* message, va_list& values) +{ + printf(message, values); +} + +KnxLogger knxLogger; \ No newline at end of file diff --git a/src/knx/logger.h b/src/knx/logger.h index 98450da7..2c2c26c3 100644 --- a/src/knx/logger.h +++ b/src/knx/logger.h @@ -12,8 +12,21 @@ */ +#pragma once #include +#include + +#include "platform.h" + + +class KnxLogger +{ + public: + void log(const char* message, va_list& values); +}; + +extern KnxLogger knxLogger; constexpr uint64_t KNX_LOG_LVL_ERROR = 1; @@ -46,26 +59,26 @@ template __attribute__((always_inline)) constexpr void KNX_LOG_TRACE(Args&&... args) { if constexpr((LOGLEVEL >= KNX_LOG_LVL_TRACE) && (x & LOGAREAS)) - printf(std::forward(args)...); + knxLogger.log(std::forward(args)...); } template __attribute__((always_inline)) constexpr void KNX_LOG_DEBUG(Args&&... args) { if constexpr((LOGLEVEL >= KNX_LOG_LVL_DEBUG) && (x & LOGAREAS)) - printf(std::forward(args)...); + knxLogger.log(std::forward(args)...); } template __attribute__((always_inline)) constexpr void KNX_LOG_INFO(Args&&... args) { if constexpr((LOGLEVEL >= KNX_LOG_LVL_INFO) && (x & LOGAREAS)) - printf(std::forward(args)...); + knxLogger.log(std::forward(args)...); } template __attribute__((always_inline)) constexpr void KNX_LOG_ERROR(Args&&... args) { if constexpr((LOGLEVEL >= KNX_LOG_LVL_ERROR) && (x & LOGAREAS)) - printf(std::forward(args)...); + knxLogger.log(std::forward(args)...); } \ No newline at end of file