mirror of
https://github.com/anklimov/lighthub
synced 2025-12-06 11:49:51 +03:00
PreRelease+bin. Persistant&Config mgmt done+fixes
This commit is contained in:
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
BIN
compiled/mega2560slim-5100/firmware.bin
Executable file
BIN
compiled/mega2560slim-5100/firmware.bin
Executable file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
11484
compiled/nrf52840-5500
11484
compiled/nrf52840-5500
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -245,52 +245,93 @@ bool systemConfig::isValidSysConf()
|
||||
if (stream->write(EEPROM_signature[i]));
|
||||
stream->close();
|
||||
setETAG("");
|
||||
setSerialDebuglevel(7);
|
||||
setUdpDebuglevel(7);
|
||||
return true;
|
||||
}
|
||||
|
||||
///
|
||||
systemConfigFlags systemConfig::getConfigFlags()
|
||||
{
|
||||
systemConfigFlags flags;
|
||||
flags.configFlags32bit=0;
|
||||
flags.serialDebugLevel=7;
|
||||
flags.udpDebugLevel=7;
|
||||
|
||||
if (stream && isValidSysConf())
|
||||
{
|
||||
openStream('r');
|
||||
stream->seek(offsetof(systemConfigData,configFlags));
|
||||
stream->readBytes((uint8_t *) &flags,sizeof (flags));
|
||||
stream->close();
|
||||
}
|
||||
return flags;
|
||||
|
||||
}
|
||||
|
||||
bool systemConfig::setConfigFlags(systemConfigFlags flags)
|
||||
{
|
||||
if (!stream || !isValidSysConf()) return false;
|
||||
openStream('r');
|
||||
stream->seek(offsetof(systemConfigData,configFlags));
|
||||
|
||||
int bytes = stream->write((uint8_t *) &flags, sizeof (flags));
|
||||
stream->close();
|
||||
return bytes;
|
||||
|
||||
}
|
||||
|
||||
bool systemConfig::getSaveSuccedConfig()
|
||||
{
|
||||
return false;
|
||||
systemConfigFlags flags = getConfigFlags();
|
||||
return !flags.notSaveSuccedConfig;
|
||||
}
|
||||
|
||||
bool systemConfig::setSaveSuccedConfig(bool)
|
||||
bool systemConfig::setSaveSuccedConfig(bool flag)
|
||||
{
|
||||
return false;
|
||||
systemConfigFlags flags = getConfigFlags();
|
||||
flags.notSaveSuccedConfig=!flag;
|
||||
return setConfigFlags(flags);
|
||||
}
|
||||
|
||||
///
|
||||
bool systemConfig::getLoadHTTPConfig()
|
||||
{
|
||||
systemConfigFlags flags = getConfigFlags();
|
||||
return !flags.notGetConfigFromHTTP;
|
||||
}
|
||||
|
||||
bool systemConfig::setLoadHTTPConfig(bool load)
|
||||
{
|
||||
systemConfigFlags flags = getConfigFlags();
|
||||
flags.notGetConfigFromHTTP=!load;
|
||||
return setConfigFlags(flags);
|
||||
}
|
||||
|
||||
|
||||
bool systemConfig::setSerialDebuglevel(short level)
|
||||
{
|
||||
return false;
|
||||
systemConfigFlags flags = getConfigFlags();
|
||||
flags.serialDebugLevel=level;
|
||||
return setConfigFlags(flags);
|
||||
}
|
||||
|
||||
bool systemConfig::setUdpDebuglevel(short level)
|
||||
{
|
||||
return false;
|
||||
systemConfigFlags flags = getConfigFlags();
|
||||
flags.udpDebugLevel=level;
|
||||
return setConfigFlags(flags);
|
||||
}
|
||||
|
||||
|
||||
uint8_t systemConfig::getSerialDebuglevel()
|
||||
{
|
||||
return 7;
|
||||
systemConfigFlags flags = getConfigFlags();
|
||||
return flags.serialDebugLevel;
|
||||
}
|
||||
|
||||
uint8_t systemConfig::getUdpDebuglevel()
|
||||
{
|
||||
return 7;
|
||||
}
|
||||
|
||||
//
|
||||
bool systemConfig::setLoadHTTPConfig(bool load)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool systemConfig::getLoadHTTPConfig()
|
||||
{
|
||||
return false;
|
||||
systemConfigFlags flags = getConfigFlags();
|
||||
return flags.udpDebugLevel;
|
||||
}
|
||||
|
||||
String systemConfig::getETAG()
|
||||
|
||||
@@ -61,5 +61,8 @@ class systemConfig {
|
||||
bool saveETAG();
|
||||
bool loadETAG();
|
||||
|
||||
systemConfigFlags getConfigFlags();
|
||||
bool setConfigFlags(systemConfigFlags flags);
|
||||
|
||||
//bool Save();
|
||||
};
|
||||
@@ -1056,7 +1056,10 @@ if (status2Send) cmd.saveItem(this,status2Send);
|
||||
//debugSerial<<F("sts:")<<status2Send<<endl;
|
||||
|
||||
if (driver) //New style modular code
|
||||
{
|
||||
res = driver->Ctrl(cmd, subItem, toExecute);
|
||||
//if (res==-1) status2Send=0; ///////not working
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (itemType) {
|
||||
|
||||
@@ -343,7 +343,13 @@ uint16_t httpHandler(Client& client, String request, uint8_t method, long conten
|
||||
if (! result) return 404;
|
||||
return result;
|
||||
}
|
||||
else
|
||||
else if (method == HTTP_POST && request.startsWith(F("/config.json")))
|
||||
{
|
||||
sysConf.setLoadHTTPConfig(false);
|
||||
infoSerial<<(F("Config changed locally, portal disabled"))<<endl;
|
||||
sysConf.setETAG("");
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
return 0; //Unknown
|
||||
}
|
||||
@@ -574,21 +580,34 @@ lan_status lanLoop() {
|
||||
case LIBS_INITIALIZED:
|
||||
statusLED.set(ledRED|ledGREEN|((configLoaded)?ledBLINK:0));
|
||||
if (configLocked) return LIBS_INITIALIZED;
|
||||
|
||||
if (sysConf.getLoadHTTPConfig())
|
||||
{
|
||||
if (!configOk)
|
||||
{
|
||||
if (loadConfigFromHttp()) lanStatus = IP_READY_CONFIG_LOADED_CONNECTING_TO_BROKER;
|
||||
if (loadConfigFromHttp()==200) lanStatus = IP_READY_CONFIG_LOADED_CONNECTING_TO_BROKER;
|
||||
else if (configLoaded) {
|
||||
infoSerial<<F("Continue with previously loaded config")<<endl;
|
||||
lanStatus = IP_READY_CONFIG_LOADED_CONNECTING_TO_BROKER;
|
||||
}
|
||||
else lanStatus = READ_RE_CONFIG; //Load from NVRAM
|
||||
|
||||
else if (Ethernet.localIP()) lanStatus = DO_READ_RE_CONFIG;
|
||||
|
||||
else lanStatus = DO_REINIT; //Load from NVRAM
|
||||
}
|
||||
else
|
||||
{
|
||||
infoSerial<<F("Config is valid")<<endl;
|
||||
lanStatus = IP_READY_CONFIG_LOADED_CONNECTING_TO_BROKER;
|
||||
}
|
||||
} else
|
||||
{
|
||||
if (configLoaded)
|
||||
lanStatus = IP_READY_CONFIG_LOADED_CONNECTING_TO_BROKER;
|
||||
else
|
||||
lanStatus = DO_READ_RE_CONFIG;
|
||||
|
||||
infoSerial<<F("Loading config from portal disabled. use get ON to enable")<<endl;
|
||||
}
|
||||
break;
|
||||
|
||||
case IP_READY_CONFIG_LOADED_CONNECTING_TO_BROKER:
|
||||
@@ -625,6 +644,7 @@ lan_status lanLoop() {
|
||||
|
||||
case DO_REINIT: // Pause and re-init LAN
|
||||
//if (mqttClient.connected()) mqttClient.disconnect(); // Hmm hungs then cable disconnected
|
||||
// problem here - if no sockets - DHCP will failed. finally (())
|
||||
timerLanCheckTime = millis();// + 5000;
|
||||
lanStatus = REINIT;
|
||||
statusLED.set(ledRED|((configLoaded)?ledBLINK:0));
|
||||
@@ -652,13 +672,22 @@ lan_status lanLoop() {
|
||||
lanStatus = IP_READY_CONFIG_LOADED_CONNECTING_TO_BROKER;//2;
|
||||
break;
|
||||
|
||||
case DO_READ_RE_CONFIG: // Pause and re-read EEPROM
|
||||
timerLanCheckTime = millis();
|
||||
lanStatus = READ_RE_CONFIG;
|
||||
//statusLED.set(ledRED|((configLoaded)?ledBLINK:0));
|
||||
break;
|
||||
|
||||
case READ_RE_CONFIG: // Restore config from FLASH, re-init LAN
|
||||
if (isTimeOver(timerLanCheckTime,millis(),TIMEOUT_REINIT))
|
||||
{
|
||||
debugSerial<<F("Restoring config from EEPROM")<<endl;
|
||||
if (loadConfigFromEEPROM()) lanStatus = IP_READY_CONFIG_LOADED_CONNECTING_TO_BROKER;//2;
|
||||
else {
|
||||
//timerLanCheckTime = millis();// + 5000;
|
||||
lanStatus = DO_REINIT;//-10;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case DO_NOTHING:
|
||||
@@ -841,7 +870,7 @@ void ip_ready_config_loaded_connecting_to_broker() {
|
||||
if (!mqttArr || ((n = aJson.getArraySize(mqttArr)) < 2)) //At least device name and broker IP must be configured
|
||||
{
|
||||
errorSerial<<F("At least device name and broker IP must be configured")<<endl;
|
||||
lanStatus = READ_RE_CONFIG;
|
||||
lanStatus = DO_READ_RE_CONFIG;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1262,6 +1291,8 @@ setupSyslog();
|
||||
switch (it.itemType) {
|
||||
case CH_THERMO:
|
||||
if (cmd<1) it.setCmd(CMD_OFF);
|
||||
it.setFlag(SEND_COMMAND);
|
||||
if (it.itemVal) it.setFlag(SEND_PARAMETERS);
|
||||
pinMode(pin, OUTPUT);
|
||||
digitalWrite(pin, false); //Initially, all thermostates are LOW (OFF for electho heaters, open for water NO)
|
||||
debugSerial<<F("Thermo:")<<pin<<F("=LOW")<<F(";");
|
||||
@@ -1290,7 +1321,6 @@ setupSyslog();
|
||||
|
||||
printConfigSummary();
|
||||
configLoaded=true;
|
||||
if (sysConf.getSaveSuccedConfig()) cmdFunctionSave(0,NULL);
|
||||
ethClient.stop(); //Refresh MQTT connection
|
||||
configLocked--;
|
||||
}
|
||||
@@ -1547,23 +1577,29 @@ if (arg_cnt>1)
|
||||
|
||||
if (lanStatus>=HAVE_IP_ADDRESS)
|
||||
{
|
||||
configOk=false;
|
||||
lanStatus=LIBS_INITIALIZED;
|
||||
return 200;
|
||||
}
|
||||
errorSerial<<F("No IP adress")<<endl;
|
||||
return 500;
|
||||
|
||||
/*
|
||||
if (loadConfigFromHttp(arg_cnt, args))
|
||||
|
||||
int retCode=loadConfigFromHttp();
|
||||
if (retCode==200)
|
||||
{
|
||||
lanStatus =IP_READY_CONFIG_LOADED_CONNECTING_TO_BROKER;
|
||||
return 200;
|
||||
}
|
||||
else if (retCode == -1)
|
||||
{
|
||||
debugSerial<<F("Releasing socket and retry")<<endl;
|
||||
configOk=false;
|
||||
lanStatus=LIBS_INITIALIZED;
|
||||
ethClient.stop(); // Release MQTT socket
|
||||
return 201;
|
||||
}
|
||||
// Not Loaded
|
||||
if (configLoaded) lanStatus =IP_READY_CONFIG_LOADED_CONNECTING_TO_BROKER;
|
||||
else lanStatus = READ_RE_CONFIG;
|
||||
return 500; */
|
||||
else lanStatus = DO_READ_RE_CONFIG;
|
||||
return retCode;
|
||||
}
|
||||
errorSerial<<F("No IP adress")<<endl;
|
||||
return 500;
|
||||
}
|
||||
|
||||
void printBool(bool arg) { (arg) ? infoSerial<<F("+") : infoSerial<<F("-"); }
|
||||
@@ -1580,7 +1616,7 @@ void headerHandlerProc(String header)
|
||||
}
|
||||
}
|
||||
|
||||
bool loadConfigFromHttp()
|
||||
int loadConfigFromHttp()
|
||||
{
|
||||
//macAddress * mac = sysConf.getMAC();
|
||||
int responseStatusCode = 0;
|
||||
@@ -1625,14 +1661,13 @@ if (!sysConf.getServer(configServer,sizeof(configServer)))
|
||||
// FILE is the return STREAM type of the HTTPClient
|
||||
configStream = hclient.getURI(URI,NULL,get_header);
|
||||
responseStatusCode = hclient.getLastReturnCode();
|
||||
debugSerial<<F("http retcode ")<<responseStatusCode<<endl;delay(100);
|
||||
//debugSerial<<F("http retcode ")<<responseStatusCode<<endl;delay(100);
|
||||
//wdt_en();
|
||||
|
||||
if (configStream != NULL) {
|
||||
if (responseStatusCode == 200) {
|
||||
|
||||
infoSerial<<F("got Config\n"); delay(500);
|
||||
char c;
|
||||
aJsonFileStream as = aJsonFileStream(configStream);
|
||||
noInterrupts();
|
||||
cleanConf();
|
||||
@@ -1644,30 +1679,33 @@ if (!sysConf.getServer(configServer,sizeof(configServer)))
|
||||
{
|
||||
sysConf.setETAG("");
|
||||
errorSerial<<F("Config parsing failed\n");
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
applyConfig();
|
||||
if (configLoaded && sysConf.getSaveSuccedConfig()) cmdFunctionSave(0,NULL);
|
||||
infoSerial<<F("Done.\n");
|
||||
return true;
|
||||
return 200;
|
||||
}
|
||||
|
||||
}
|
||||
else if (responseStatusCode == 304)
|
||||
{
|
||||
errorSerial<<F("Config not changed\n");
|
||||
return false;
|
||||
infoSerial<<F("Config not changed\n");
|
||||
hclient.closeStream(configStream);
|
||||
return responseStatusCode;
|
||||
}
|
||||
else
|
||||
{
|
||||
errorSerial<<F("ERROR: Server returned ");
|
||||
hclient.closeStream(configStream);
|
||||
errorSerial<<responseStatusCode<<endl;
|
||||
return false;
|
||||
return responseStatusCode;
|
||||
}
|
||||
|
||||
} else {
|
||||
debugSerial<<F("failed to connect\n");
|
||||
return false;
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
#if defined(__SAM3X8E__) || defined(ARDUINO_ARCH_STM32) || defined (NRF5) //|| defined(ARDUINO_ARCH_AVR)//|| defined(ARDUINO_ARCH_ESP32) //|| defined(ARDUINO_ARCH_ESP8266)
|
||||
@@ -1713,32 +1751,33 @@ if (!sysConf.getServer(configServer,sizeof(configServer)))
|
||||
if (!root) {
|
||||
errorSerial<<F("Config parsing failed\n");
|
||||
sysConf.setETAG("");
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
debugSerial<<F("Parsed. Free:")<<freeRam()<<endl;
|
||||
//debugSerial<<response;
|
||||
applyConfig();
|
||||
infoSerial<<F("Done.\n");
|
||||
return true;
|
||||
if (configLoaded && sysConf.getSaveSuccedConfig()) cmdFunctionSave(0,NULL);
|
||||
return 200;
|
||||
}
|
||||
}
|
||||
else if (responseStatusCode == 304)
|
||||
{
|
||||
errorSerial<<F("Config not changed\n");
|
||||
htclient.stop();
|
||||
return false;
|
||||
return responseStatusCode;
|
||||
}
|
||||
else {
|
||||
errorSerial<<F("Config retrieving failed\n");
|
||||
htclient.stop();
|
||||
return false;
|
||||
return responseStatusCode;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
errorSerial<<F("Connect failed\n");
|
||||
return false;
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1784,36 +1823,36 @@ if (!sysConf.getServer(configServer,sizeof(configServer)))
|
||||
} else
|
||||
{
|
||||
httpClient.end();
|
||||
return false;
|
||||
return -1;
|
||||
}
|
||||
if (!root) {
|
||||
sysConf.setETAG("");
|
||||
errorSerial<<F("Config parsing failed\n");
|
||||
return false;
|
||||
return 0;
|
||||
} else {
|
||||
applyConfig();
|
||||
|
||||
if (configLoaded && sysConf.getSaveSuccedConfig()) cmdFunctionSave(0,NULL);
|
||||
infoSerial<<F("Done.\n");
|
||||
return true;
|
||||
return 200;
|
||||
}
|
||||
}
|
||||
else if (responseStatusCode == HTTP_CODE_NOT_MODIFIED)
|
||||
{
|
||||
httpClient.end();
|
||||
errorSerial<<F("Config not changed\n");
|
||||
return false;
|
||||
return responseStatusCode;
|
||||
}
|
||||
else
|
||||
{
|
||||
httpClient.end();
|
||||
errorSerial<<F("Config retrieving failed\n");
|
||||
return false;
|
||||
return responseStatusCode;
|
||||
}
|
||||
} else
|
||||
{
|
||||
errorSerial.printf("[HTTP] GET... failed, error: %s\n", httpClient.errorToString(responseStatusCode).c_str());
|
||||
httpClient.end();
|
||||
return false;
|
||||
return responseStatusCode;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -1890,11 +1929,11 @@ void setup_main() {
|
||||
if(SPIFFS.begin())
|
||||
#endif
|
||||
{
|
||||
debugSerial<<("SPIFFS Initialize....ok")<<endl;
|
||||
debugSerialPort.println("SPIFFS Initialize....ok");
|
||||
}
|
||||
else
|
||||
{
|
||||
debugSerial<<("SPIFFS Initialization...failed")<<endl;
|
||||
debugSerialPort.println("SPIFFS Initialization...failed");
|
||||
}
|
||||
#endif
|
||||
#else
|
||||
@@ -1909,7 +1948,7 @@ void setup_main() {
|
||||
|
||||
if (!sysConf.isValidSysConf())
|
||||
{
|
||||
infoSerial<<F("No valid EEPROM data")<<endl;
|
||||
debugSerialPort.println(F("No valid EEPROM data. Initializing."));
|
||||
sysConf.clear();
|
||||
}
|
||||
// scan_i2c_bus();
|
||||
|
||||
@@ -213,6 +213,7 @@ enum lan_status {
|
||||
DO_RECONNECT = 12,
|
||||
RECONNECT = 13,
|
||||
READ_RE_CONFIG = 14,
|
||||
DO_READ_RE_CONFIG = 15,
|
||||
DO_NOTHING = -15
|
||||
};
|
||||
|
||||
@@ -266,7 +267,7 @@ void saveFlash(short n, IPAddress& ip);
|
||||
int ipLoadFromFlash(short n, IPAddress &ip);
|
||||
*/
|
||||
|
||||
bool loadConfigFromHttp();
|
||||
int loadConfigFromHttp();
|
||||
|
||||
void preTransmission();
|
||||
|
||||
|
||||
@@ -53,6 +53,7 @@ void out_AC::InsertData(byte data[], size_t size){
|
||||
|
||||
char s_mode[10];
|
||||
set_tmp = data[B_SET_TMP]+16;
|
||||
if (set_tmp>40 || set_tmp<16) return;
|
||||
cur_tmp = data[B_CUR_TMP];
|
||||
mode = data[B_MODE];
|
||||
fan_spd = data[B_FAN_SPD];
|
||||
@@ -250,8 +251,8 @@ if (cause!=POLLING_SLOW) return 0;
|
||||
debugSerial.println ("Polling");
|
||||
SendData(qstn, sizeof(qstn)/sizeof(byte)); //Опрос кондиционера
|
||||
}
|
||||
delay(100);
|
||||
if(AC_Serial.available() > 0){
|
||||
///delay(100);
|
||||
if(AC_Serial.available() >= 37){ //was 0
|
||||
AC_Serial.readBytes(data, 37);
|
||||
while(AC_Serial.available()){
|
||||
delay(2);
|
||||
@@ -282,13 +283,14 @@ int out_AC::Ctrl(itemCmd cmd, char* subItem , bool toExecute)
|
||||
switch(suffixCode)
|
||||
{
|
||||
case S_SET:
|
||||
//case S_ESET:
|
||||
set_tmp = cmd.getInt();
|
||||
if (set_tmp >= 10 && set_tmp <= 30)
|
||||
if (set_tmp >= 16 && set_tmp <= 40)
|
||||
{
|
||||
//if (set_tmp>40 || set_tmp<16) set_temp=21;
|
||||
data[B_SET_TMP] = set_tmp -16;
|
||||
publishTopic(item->itemArr->name,(long) set_tmp,"/set");
|
||||
}
|
||||
else return -1;
|
||||
break;
|
||||
|
||||
case S_CMD:
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
#define WIFI_TIMEOUT 60000UL
|
||||
#define TIMEOUT_RECONNECT 10000UL
|
||||
#define TIMEOUT_REINIT 5000UL
|
||||
#define TIMEOUT_RETAIN 5000UL
|
||||
#define TIMEOUT_RETAIN 8000UL
|
||||
#define INTERVAL_1W 5000UL
|
||||
#define PERIOD_THERMOSTAT_FAILED (600 * 1000UL)>>8
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
#define MAXFLASHSTR 32
|
||||
#define PWDFLASHSTR 16
|
||||
#define EEPROM_SIGNATURE "LHC0"
|
||||
#define EEPROM_SIGNATURE "LHC1"
|
||||
#define EEPROM_SIGNATURE_LENGTH 4
|
||||
|
||||
//#define EEPROM_offsetJSON IFLASH_PAGE_SIZE
|
||||
@@ -18,20 +18,26 @@ const char EEPROM_signature[] = EEPROM_SIGNATURE;
|
||||
typedef uint8_t macAddress[6];
|
||||
|
||||
#pragma pack(push, 1)
|
||||
typedef union
|
||||
{
|
||||
uint32_t configFlags32bit;
|
||||
struct
|
||||
{
|
||||
uint8_t serialDebugLevel:3;
|
||||
uint8_t notGetConfigFromHTTP:1;
|
||||
uint8_t udpDebugLevel:3;
|
||||
uint8_t notSaveSuccedConfig:1;
|
||||
uint8_t spare2;
|
||||
uint16_t sysConfigHash;
|
||||
};
|
||||
} systemConfigFlags;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char signature[4];
|
||||
macAddress mac; //6 bytes
|
||||
union {
|
||||
uint16_t configFlags;
|
||||
struct
|
||||
{
|
||||
uint8_t serialDebugLevel:4;
|
||||
uint8_t syslogDebugLevel:4;
|
||||
uint8_t notGetConfigFromHTTP:1;
|
||||
uint8_t saveToFlash:1;
|
||||
};
|
||||
};
|
||||
uint16_t spare; //2 bytes
|
||||
systemConfigFlags configFlags; //4 bytes
|
||||
uint32_t ip;
|
||||
uint32_t dns;
|
||||
uint32_t gw;
|
||||
@@ -41,7 +47,5 @@ const char EEPROM_signature[] = EEPROM_SIGNATURE;
|
||||
flashpwd MQTTpwd;
|
||||
flashpwd OTApwd;
|
||||
flashstr ETAG;
|
||||
uint16_t sysConfigHash;
|
||||
|
||||
} systemConfigData;
|
||||
#pragma (pop)
|
||||
@@ -359,7 +359,7 @@ lib_deps =
|
||||
Adafruit Unified Sensor
|
||||
DHT sensor library
|
||||
https://github.com/arcao/Syslog.git
|
||||
;Streaming
|
||||
Streaming
|
||||
;;ClosedCube HDC1080
|
||||
;;SparkFun CCS811 Arduino Library@~1.0.7
|
||||
;Adafruit NeoPixel
|
||||
@@ -566,7 +566,7 @@ platform = atmelavr
|
||||
board = megaatmega2560
|
||||
monitor_baud = 115200
|
||||
framework = arduino
|
||||
upload_port = net:192.168.88.2:23000
|
||||
;upload_port = net:192.168.88.2:23000
|
||||
build_flags = !python get_build_flags.py mega2560-5100
|
||||
lib_ignore =
|
||||
;DS2482_OneWire //UNCOMMENT for software 1-wire driver
|
||||
@@ -620,8 +620,8 @@ framework = arduino
|
||||
board = due
|
||||
monitor_baud = 115200
|
||||
build_flags = !python get_build_flags.py lighthub21
|
||||
upload_command = /opt/local/sbin/arduinoOTA -address 192.168.11.172 -port 80 -username arduino -password password -b -upload /sketch -sketch $SOURCE ;sleep 6
|
||||
;upload_command = arduinoOTA -address 192.168.88.45 -port 80 -username arduino -password password -b -upload /sketch -sketch $SOURCE;sleep 6
|
||||
upload_command = arduinoOTA -address 192.168.11.172 -port 80 -username arduino -password password -b -upload /sketch -sketch $SOURCE ;sleep 6
|
||||
|
||||
upload_protocol = custom
|
||||
lib_ignore =
|
||||
;DS2482_OneWire //UNCOMMENT for software 1-wire driver
|
||||
|
||||
Reference in New Issue
Block a user