optional compile with CRASH support

This commit is contained in:
proddy
2019-03-12 23:03:26 +01:00
parent fb4b23d2cc
commit 630c10d8c8
3 changed files with 42 additions and 13 deletions

View File

@@ -291,7 +291,10 @@ void MyESP::_mqtt_setup() {
//mqttClient.onPublish([this](uint16_t packetId) { myDebug_P(PSTR("[MQTT] Publish ACK for PID %d"), packetId); }); //mqttClient.onPublish([this](uint16_t packetId) { myDebug_P(PSTR("[MQTT] Publish ACK for PID %d"), packetId); });
mqttClient.onMessage([this](char * topic, char * payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total) { _mqttOnMessage(topic, payload, len); }); mqttClient.onMessage(
[this](char * topic, char * payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total) {
_mqttOnMessage(topic, payload, len);
});
} }
// WiFI setup // WiFI setup
@@ -468,7 +471,10 @@ void MyESP::_consoleShowHelp() {
#else #else
String hostname = WiFi.hostname(); String hostname = WiFi.hostname();
#endif #endif
SerialAndTelnet.printf("* Hostname: %s IP: %s MAC: %s", hostname.c_str(), WiFi.localIP().toString().c_str(), WiFi.macAddress().c_str()); SerialAndTelnet.printf("* Hostname: %s IP: %s MAC: %s",
hostname.c_str(),
WiFi.localIP().toString().c_str(),
WiFi.macAddress().c_str());
#ifdef ARDUINO_BOARD #ifdef ARDUINO_BOARD
SerialAndTelnet.printf(" Board: %s", ARDUINO_BOARD); SerialAndTelnet.printf(" Board: %s", ARDUINO_BOARD);
#endif #endif
@@ -864,7 +870,17 @@ void MyESP::setWIFI(const char * wifi_ssid, const char * wifi_password, wifi_cal
} }
// init MQTT settings // init MQTT settings
void MyESP::setMQTT(const char * mqtt_host, const char * mqtt_username, const char * mqtt_password, const char * mqtt_base, unsigned long mqtt_keepalive, unsigned char mqtt_qos, bool mqtt_retain, const char * mqtt_will_topic, const char * mqtt_will_online_payload, const char * mqtt_will_offline_payload, mqtt_callback_f callback) { void MyESP::setMQTT(const char * mqtt_host,
const char * mqtt_username,
const char * mqtt_password,
const char * mqtt_base,
unsigned long mqtt_keepalive,
unsigned char mqtt_qos,
bool mqtt_retain,
const char * mqtt_will_topic,
const char * mqtt_will_online_payload,
const char * mqtt_will_offline_payload,
mqtt_callback_f callback) {
// can be empty // can be empty
if (!mqtt_host || *mqtt_host == 0x00) { if (!mqtt_host || *mqtt_host == 0x00) {
_mqtt_host = NULL; _mqtt_host = NULL;
@@ -1148,13 +1164,13 @@ int MyESP::getWifiQuality() {
return 2 * (dBm + 100); return 2 * (dBm + 100);
} }
#ifdef CRASH
/** /**
* Save crash information in EEPROM * Save crash information in EEPROM
* This function is called automatically if ESP8266 suffers an exception * This function is called automatically if ESP8266 suffers an exception
* It should be kept quick / consise to be able to execute before hardware wdt may kick in * It should be kept quick / consise to be able to execute before hardware wdt may kick in
*/ */
extern "C" void custom_crash_callback(struct rst_info * rst_info, uint32_t stack_start, uint32_t stack_end) { extern "C" void custom_crash_callback(struct rst_info * rst_info, uint32_t stack_start, uint32_t stack_end) {
// Note that 'EEPROM.begin' method is reserving a RAM buffer // Note that 'EEPROM.begin' method is reserving a RAM buffer
// The buffer size is SAVE_CRASH_EEPROM_OFFSET + SAVE_CRASH_SPACE_SIZE // The buffer size is SAVE_CRASH_EEPROM_OFFSET + SAVE_CRASH_SPACE_SIZE
EEPROM.begin(SAVE_CRASH_EEPROM_OFFSET + SAVE_CRASH_EEPROM_SIZE); EEPROM.begin(SAVE_CRASH_EEPROM_OFFSET + SAVE_CRASH_EEPROM_SIZE);
@@ -1295,6 +1311,17 @@ void MyESP::crashDump() {
} }
myDebug("<<<stack<<<"); myDebug("<<<stack<<<");
} }
#else
void MyESP::crashTest(uint8_t t) {
myDebug("[CRASH] disabled or not supported");
}
void MyESP::crashClear() {
myDebug("[CRASH] disabled or not supported");
}
void MyESP::crashDump() {
myDebug("[CRASH] disabled or not supported");
}
#endif
// setup MyESP // setup MyESP
void MyESP::begin(const char * app_hostname, const char * app_name, const char * app_version) { void MyESP::begin(const char * app_hostname, const char * app_name, const char * app_version) {

View File

@@ -19,10 +19,12 @@
#include <JustWifi.h> // https://github.com/xoseperez/justwifi #include <JustWifi.h> // https://github.com/xoseperez/justwifi
#include <TelnetSpy.h> // modified from https://github.com/yasheena/telnetspy #include <TelnetSpy.h> // modified from https://github.com/yasheena/telnetspy
#ifdef CRASH
#include "EEPROM.h" #include "EEPROM.h"
extern "C" { extern "C" {
void custom_crash_callback(struct rst_info*, uint32_t, uint32_t); void custom_crash_callback(struct rst_info*, uint32_t, uint32_t);
} }
#endif
#if defined(ARDUINO_ARCH_ESP32) #if defined(ARDUINO_ARCH_ESP32)
//#include <ESPmDNS.h> //#include <ESPmDNS.h>

View File

@@ -5,7 +5,7 @@ env_default = d1_mini
platform = espressif8266 platform = espressif8266
flash_mode = dout flash_mode = dout
build_flags_debug = -ggdb3 -Wall -Wextra -Werror -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-variable build_flags_debug = -ggdb3 -Wall -Wextra -Werror -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-variable -DCRASH
;build_flags_prod = -Os -DBUILD_TIME=$UNIX_TIME ;build_flags_prod = -Os -DBUILD_TIME=$UNIX_TIME
build_flags = ${common.build_flags_debug} build_flags = ${common.build_flags_debug}