[SYS] Update arduino core to 3.1.1 + refactor ino to cpp (#2177)
* Update arduino core to 3.1.1 * Fix Blufi build * Update arduinojson, fix build errors with idf * Fix narrowing * fix RF builds * WIP-Convert ino files to cpp * Fix pilight build * Fix Somfy actuator build. * Update esp32dev-rf partition * Fix Weatherstation build * Fix GFSunInverter build * Fix esp32dev-ir build * Fix ble-aws build * Fix eth builds * Fix m5Stack missing pins_arduino.h * Fix build errors for M5 stack/tough, others are upstream issues. * Fix RTL 433 build - remaining errors are from radolib * Fix nodemcu build * fix 2g builds * Fix serial build * Fix actuator on off builds * Fix SSD1306 build - remaining errors are from radiolib * Fix multiple definition of OTAserver_cert * Fix nodemcu rf2 build * Fix ADC builds * Fix sensor builds * Fix LORA builds * Fix multi-receiver builds - remaining errors are in radiolib * Fix fastled builds * Fix theegns board builds * Fix broker builds * Update fastled - old version failed all-test build * Fix RN8209 builds * Fix max temp actuator builds * Fix PWM builds * Fix C37 sensor builds * Fix HTU21 builds * Fix INA266 builds * Fix undefined variables in mqtt discovery * Fix webui build * Fix fastled invalid pin error * Fix wifi manual setup builds * Fix onewire/all-test build - bin too big error remaining * Fix theengs plug build * Fix rfbridge builds * Fix blufi builds * Fix undefined functions in serial * Fix preprocessor definition checks * Set IDF log level to erre * Add delay in loop to prevent watchdog timeout * Use xTaskCreateUniveral to support single core processors * Remove old HTTPUpdate files - upsteam fixed. * Cleanup and move common declarations to header file * Use custom partiton table to fix builds where bin is too large * Update M5StickC - fixs esp32-m5stick-c-ble build * Revert to Arduino core 2.x for builds with incompatible libs * Remove "Z" from file names and rename omg_common to TheengsCommon * Fix gateway name when using MAC with new Arduino core * Update IDF config to reduce loop task stack use * Update esp-nimble-cpp version, corrects BLE uppercase ID's * Update wifi manager to fix watchdog timeout error
This commit is contained in:
1 parent
6e77efb11b
commit
585df9a420
83 files changed
+1275
-1293
No files matched your search
@@ -0,0 +1,100 @@
|
||||
#pragma once
|
||||
|
||||
#include "User_config.h"
|
||||
|
||||
#define ARDUINOJSON_USE_LONG_LONG 1
|
||||
#define ARDUINOJSON_ENABLE_STD_STRING 1
|
||||
#include <ArduinoJson.h>
|
||||
#include <ArduinoLog.h>
|
||||
|
||||
#if defined(ESP32)
|
||||
# include <Preferences.h>
|
||||
extern Preferences preferences;
|
||||
#endif
|
||||
|
||||
// Flags definition for white list, black list, discovery management
|
||||
#define device_flags_init 0 << 0
|
||||
#define device_flags_isDisc 1 << 0
|
||||
#define device_flags_isWhiteL 1 << 1
|
||||
#define device_flags_isBlackL 1 << 2
|
||||
#define device_flags_connect 1 << 3
|
||||
#define isWhite(device) device->isWhtL
|
||||
#define isBlack(device) device->isBlkL
|
||||
#define isDiscovered(device) device->isDisc
|
||||
|
||||
enum GatewayState {
|
||||
WAITING_ONBOARDING,
|
||||
ONBOARDING,
|
||||
OFFLINE,
|
||||
NTWK_CONNECTED,
|
||||
BROKER_CONNECTED,
|
||||
PROCESSING,
|
||||
NTWK_DISCONNECTED,
|
||||
BROKER_DISCONNECTED,
|
||||
LOCAL_OTA_IN_PROGRESS,
|
||||
REMOTE_OTA_IN_PROGRESS,
|
||||
SLEEPING,
|
||||
ERROR
|
||||
};
|
||||
|
||||
enum PowerMode {
|
||||
DEACTIVATED = -1,
|
||||
ALWAYS_ON,
|
||||
INTERVAL,
|
||||
ACTION
|
||||
};
|
||||
|
||||
struct SYSConfig_s {
|
||||
bool mqtt; // if true the gateway will publish the received data on the MQTT broker
|
||||
bool serial; // if true the gateway will publish the received data on the SERIAL
|
||||
bool blufi; // if true the gateway will be accesible with blufi
|
||||
bool offline;
|
||||
bool discovery; // HA discovery convention
|
||||
#ifdef LED_ADDRESSABLE
|
||||
int rgbbrightness; // brightness of the RGB LED
|
||||
#endif
|
||||
enum PowerMode powerMode;
|
||||
};
|
||||
|
||||
extern GatewayState gatewayState;
|
||||
extern SYSConfig_s SYSConfig;
|
||||
extern bool ready_to_sleep;
|
||||
extern char mqtt_topic[];
|
||||
extern char gateway_name[];
|
||||
extern unsigned long lastDiscovery; // Time of the last discovery to trigger automaticaly to off after DiscoveryAutoOffTimer
|
||||
|
||||
extern bool enqueueJsonObject(const StaticJsonDocument<JSON_MSG_BUFFER>& jsonDoc, int timeout);
|
||||
extern bool enqueueJsonObject(const StaticJsonDocument<JSON_MSG_BUFFER>& jsonDoc);
|
||||
extern void buildTopicFromId(JsonObject& Jsondata, const char* origin);
|
||||
extern bool pubMQTT(const char* topic, const char* payload);
|
||||
extern bool pubMQTT(const char* topic, const char* payload, bool retainFlag);
|
||||
extern bool pubMQTT(String topic, const char* payload);
|
||||
extern bool pubMQTT(const char* topic, unsigned long payload);
|
||||
extern bool pubMQTT(const char* topic, unsigned long long payload);
|
||||
extern bool pubMQTT(const char* topic, String payload);
|
||||
extern bool pubMQTT(String topic, String payload);
|
||||
extern bool pubMQTT(String topic, int payload);
|
||||
extern bool pubMQTT(String topic, unsigned long long payload);
|
||||
extern bool pubMQTT(String topic, float payload);
|
||||
extern bool pubMQTT(const char* topic, float payload);
|
||||
extern bool pubMQTT(const char* topic, int payload);
|
||||
extern bool pubMQTT(const char* topic, unsigned int payload);
|
||||
extern bool pubMQTT(const char* topic, long payload);
|
||||
extern bool pubMQTT(const char* topic, double payload);
|
||||
extern bool pubMQTT(String topic, unsigned long payload);
|
||||
extern unsigned long uptime();
|
||||
extern bool cmpToMainTopic(const char*, const char*);
|
||||
extern bool pub(const char*, const char*, bool);
|
||||
extern bool pub(const char*, const char*);
|
||||
|
||||
template <typename T>
|
||||
void Config_update(JsonObject& data, const char* key, T& var) {
|
||||
if (data.containsKey(key)) {
|
||||
if (var != data[key].as<T>()) {
|
||||
var = data[key].as<T>();
|
||||
Log.notice(F("Config %s changed to: %T" CR), key, data[key].as<T>());
|
||||
} else {
|
||||
Log.notice(F("Config %s unchanged, currently: %T" CR), key, data[key].as<T>());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user