Logging improvements

This commit is contained in:
2026-01-28 20:17:22 +01:00
parent 564ed20720
commit 2eabe931d8
11 changed files with 162 additions and 107 deletions

View File

@@ -1,15 +1,19 @@
#include "../../include/main.h"
#include "Nmea2kTwai.h"
#include "driver/gpio.h"
#include "driver/twai.h"
#define LOGID(id) ((id >> 8) & 0x1ffff)
// Logging
static const char* TAG = "TWAI";
static const int TIMEOUT_OFFLINE = 256; // number of timeouts to consider offline
Nmea2kTwai::Nmea2kTwai(gpio_num_t _TxPin, gpio_num_t _RxPin, unsigned long recP, unsigned long logP):
tNMEA2000(), RxPin(_RxPin), TxPin(_TxPin)
{
if (RxPin < 0 || TxPin < 0){
if (RxPin < 0 || TxPin < 0) {
disabled = true;
} else {
// timers.addAction(logP,[this](){ logStatus(); });
@@ -27,32 +31,34 @@ bool Nmea2kTwai::CANSendFrame(unsigned long id, unsigned char len, const unsigne
message.identifier = id;
message.extd = 1;
message.data_length_code = len;
memcpy(message.data, buf,len);
memcpy(message.data, buf, len);
esp_err_t rt = twai_transmit(&message, 0);
if (rt != ESP_OK){
if (rt != ESP_OK) {
if (rt == ESP_ERR_TIMEOUT) {
if (txTimeouts < TIMEOUT_OFFLINE) txTimeouts++;
if (txTimeouts < TIMEOUT_OFFLINE) {
txTimeouts++;
}
}
// logDebug(LOG_MSG,"twai transmit for %ld failed: %x",LOGID(id),(int)rt);
LOGW(TAG, "twai transmit for %ld failed: %x", LOGID(id), (int)rt);
return false;
}
txTimeouts = 0;
// logDebug(LOG_MSG,"twai transmit id %ld, len %d",LOGID(id),(int)len);
LOGD(TAG, "twai transmit id %ld, len %d", LOGID(id), (int)len);
return true;
}
bool Nmea2kTwai::CANOpen()
{
if (disabled){
// logDebug(LOG_INFO,"CAN disabled");
if (disabled) {
LOGD(TAG, "CAN disabled");
return true;
}
esp_err_t rt = twai_start();
if (rt != ESP_OK){
// logDebug(LOG_ERR,"CANOpen failed: %x",(int)rt);
if (rt != ESP_OK) {
LOGE(TAG, "CANOpen failed: %x", (int)rt);
return false;
} else {
// logDebug(LOG_INFO, "CANOpen ok");
LOGI(TAG, "CANOpen ok");
}
return true;
}
@@ -73,10 +79,11 @@ bool Nmea2kTwai::CANGetFrame(unsigned long &id, unsigned char &len, unsigned cha
id = message.identifier;
len = message.data_length_code;
if (len > 8) {
// logDebug(LOG_DEBUG,"twai: received invalid message %lld, len %d",LOGID(id),len);
LOGD(TAG, "twai: received invalid message %lld, len %d", LOGID(id), len);
len = 8;
}
// logDebug(LOG_MSG,"twai rcv id=%ld,len=%d, ext=%d",LOGID(message.identifier),message.data_length_code,message.extd);
LOGD(TAG, "twai rcv id=%ld,len=%d, ext=%d",
LOGID(message.identifier), message.data_length_code, message.extd);
if (! message.rtr) {
memcpy(buf, message.data, message.data_length_code);
}

View File

@@ -30,11 +30,11 @@ public:
void loop();
static const char *stateStr(const STATE &st);
virtual bool CANOpen();
virtual ~Nmea2kTwai(){};
static const int LOG_ERR = 0;
static const int LOG_INFO = 1;
static const int LOG_DEBUG = 2;
static const int LOG_MSG = 3;
virtual ~Nmea2kTwai() {};
// static const int LOG_ERR = 0;
// static const int LOG_INFO = 1;
// static const int LOG_DEBUG = 2;
// static const int LOG_MSG = 3;
protected:
virtual bool CANSendFrame(unsigned long id, unsigned char len, const unsigned char *buf, bool wait_sent=true);