NMEA2000 status for web status page
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
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."},
|
||||
|
||||
@@ -58,6 +58,7 @@ private:
|
||||
uint32_t txTimeouts = 0;
|
||||
// GwIntervalRunner timers;
|
||||
bool disabled = false;
|
||||
bool tx_offline = false;
|
||||
unsigned long lastRecoveryStart = 0;
|
||||
|
||||
};
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user