NMEA2000 status for web status page

This commit is contained in:
2026-03-01 11:55:18 +01:00
parent d13c1ef8c1
commit 294f1731c9
5 changed files with 22 additions and 4 deletions

View File

@@ -44,6 +44,8 @@
// WIFI AP
#define WIFI_CHANNEL 9
#define WIFI_MAX_STA 2
#define WIFI_SSID "OBPKP61"
#define WIFI_PASS "keypad61"
// NMEA2000 defaults
#define N2K_DEFAULT_NODEID 124

View File

@@ -37,12 +37,20 @@ bool Nmea2kTwai::CANSendFrame(unsigned long id, unsigned char len, const unsigne
if (rt == ESP_ERR_TIMEOUT) {
if (txTimeouts < TIMEOUT_OFFLINE) {
txTimeouts++;
} else if (!tx_offline) {
tx_offline = true;
LOGW(TAG, "twai tx offline timeout reached");
}
}
LOGW(TAG, "twai transmit for %ld failed: %x", LOGID(id), (int)rt);
if (txTimeouts > 0 && !tx_offline) {
LOGW(TAG, "twai transmit for %ld failed: %x", LOGID(id), (int)rt);
} else {
// TODO log every <n> seconds a offline message
}
return false;
}
txTimeouts = 0;
tx_offline = false;
LOGV(TAG, "twai transmit id %ld, len %d", LOGID(id), (int)len);
return true;
}
@@ -231,6 +239,7 @@ const char * Nmea2kTwai::stateStr(const Nmea2kTwai::STATE &st)
}
return "ERROR";
}
const Nmea2kTwai::ManufacturerEntry Nmea2kTwai::ManufacturerTable[] = {
{0, "Reserved"},
{69, "ARKS Enterprises, Inc."},

View File

@@ -58,6 +58,7 @@ private:
uint32_t txTimeouts = 0;
// GwIntervalRunner timers;
bool disabled = false;
bool tx_offline = false;
unsigned long lastRecoveryStart = 0;
};

View File

@@ -37,8 +37,8 @@ static const char* TAG = "MAIN";
uint64_t chipid = ESP.getEfuseMac();
uint8_t loglevel = 5;
const char* wifi_ssid = "OBPKP61";
const char* wifi_pass = "keypad61";
const char* wifi_ssid = WIFI_SSID;
const char* wifi_pass = WIFI_PASS;
bool ap_hidden = false;
bool ap_enabled = true;
@@ -347,7 +347,6 @@ void setup() {
WiFi.persistent(false);
WiFi.mode(WIFI_MODE_AP);
// IPAddress ap_addr(192, 168, 15, 1);
IPAddress ap_addr;
ap_addr.fromString(apip);
@@ -436,6 +435,7 @@ void setup() {
NMEA2000.ExtendTransmitMessages(TransmitPGNs);
pN2kDeviceList = new tN2kDeviceList(&NMEA2000);
// Debug: NMEA2000.EnableForward(true);
NMEA2000.Open();
led_init();

View File

@@ -208,6 +208,12 @@ void webserver_init() {
doc["n2kDestA"] = config.getString("n2kDestA");
doc["n2kDestB"] = config.getString("n2kDestB");
doc["n2kDestC"] = config.getString("n2kDestC");
Nmea2kTwai::Status n2kState = NMEA2000.getStatus();
Nmea2kTwai::STATE driverState = n2kState.state;
doc["n2kstate"] = NMEA2000.stateStr(driverState);
doc["n2knode"] = NMEA2000.GetN2kSource();
doc["status"] = "OK";
String out;
serializeJson(doc, out);