mirror of https://github.com/arendst/Tasmota.git
Merge branch 'development' into release
This commit is contained in:
commit
ceba3bda63
|
@ -91,7 +91,7 @@ typedef union { // Restricted by MISRA-C Rule 18.4 bu
|
||||||
uint32_t grouptopic_mode : 1; // bit 25 (v7.0.0.1) - SetOption75 - GroupTopic replaces %topic% (0) or fixed topic cmnd/grouptopic (1)
|
uint32_t grouptopic_mode : 1; // bit 25 (v7.0.0.1) - SetOption75 - GroupTopic replaces %topic% (0) or fixed topic cmnd/grouptopic (1)
|
||||||
uint32_t bootcount_update : 1; // bit 26 (v7.0.0.4) - SetOption76 - Enable incrementing bootcount when deepsleep is enabled
|
uint32_t bootcount_update : 1; // bit 26 (v7.0.0.4) - SetOption76 - Enable incrementing bootcount when deepsleep is enabled
|
||||||
uint32_t slider_dimmer_stay_on : 1; // bit 27 (v7.0.0.6) - SetOption77 - Do not power off if slider moved to far left
|
uint32_t slider_dimmer_stay_on : 1; // bit 27 (v7.0.0.6) - SetOption77 - Do not power off if slider moved to far left
|
||||||
uint32_t spare28 : 1;
|
uint32_t compatibility_check : 1; // bit 28 (v7.1.2.6) - SetOption78 - Disable OTA compatibility check
|
||||||
uint32_t spare29 : 1;
|
uint32_t spare29 : 1;
|
||||||
uint32_t shutter_mode : 1; // bit 30 (v6.6.0.14) - SetOption80 - Enable shutter support
|
uint32_t shutter_mode : 1; // bit 30 (v6.6.0.14) - SetOption80 - Enable shutter support
|
||||||
uint32_t pcf8574_ports_inverted : 1; // bit 31 (v6.6.0.14) - SetOption81 - Invert all ports on PCF8574 devices
|
uint32_t pcf8574_ports_inverted : 1; // bit 31 (v6.6.0.14) - SetOption81 - Invert all ports on PCF8574 devices
|
||||||
|
@ -428,7 +428,7 @@ struct SYSCFG {
|
||||||
unsigned long weight_calibration; // 7C4
|
unsigned long weight_calibration; // 7C4
|
||||||
unsigned long energy_frequency_calibration; // 7C8 also used by HX711 to save last weight
|
unsigned long energy_frequency_calibration; // 7C8 also used by HX711 to save last weight
|
||||||
uint16_t web_refresh; // 7CC
|
uint16_t web_refresh; // 7CC
|
||||||
char mems[MAX_RULE_MEMS][10]; // 7CE
|
char mems[MAX_RULE_MEMS][10]; // 7CE - Used by scripter as script_pram
|
||||||
|
|
||||||
char rules[MAX_RULE_SETS][MAX_RULE_SIZE]; // 800 uses 512 bytes in v5.12.0m, 3 x 512 bytes in v5.14.0b
|
char rules[MAX_RULE_SETS][MAX_RULE_SIZE]; // 800 uses 512 bytes in v5.12.0m, 3 x 512 bytes in v5.14.0b
|
||||||
|
|
||||||
|
|
|
@ -345,6 +345,10 @@ void SetFlashModeDout(void)
|
||||||
|
|
||||||
uint32_t OtaVersion(void)
|
uint32_t OtaVersion(void)
|
||||||
{
|
{
|
||||||
|
if (Settings.flag3.compatibility_check) {
|
||||||
|
return 0xFFFFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
eboot_command ebcmd;
|
eboot_command ebcmd;
|
||||||
eboot_command_read(&ebcmd);
|
eboot_command_read(&ebcmd);
|
||||||
uint32_t start_address = ebcmd.args[0];
|
uint32_t start_address = ebcmd.args[0];
|
||||||
|
|
|
@ -511,9 +511,8 @@ const char kUploadErrors[] PROGMEM =
|
||||||
D_UPLOAD_ERR_1 "|" D_UPLOAD_ERR_2 "|" D_UPLOAD_ERR_3 "|" D_UPLOAD_ERR_4 "|" D_UPLOAD_ERR_5 "|" D_UPLOAD_ERR_6 "|" D_UPLOAD_ERR_7 "|" D_UPLOAD_ERR_8 "|" D_UPLOAD_ERR_9
|
D_UPLOAD_ERR_1 "|" D_UPLOAD_ERR_2 "|" D_UPLOAD_ERR_3 "|" D_UPLOAD_ERR_4 "|" D_UPLOAD_ERR_5 "|" D_UPLOAD_ERR_6 "|" D_UPLOAD_ERR_7 "|" D_UPLOAD_ERR_8 "|" D_UPLOAD_ERR_9
|
||||||
#ifdef USE_RF_FLASH
|
#ifdef USE_RF_FLASH
|
||||||
"|" D_UPLOAD_ERR_10 "|" D_UPLOAD_ERR_11 "|" D_UPLOAD_ERR_12 "|" D_UPLOAD_ERR_13
|
"|" D_UPLOAD_ERR_10 "|" D_UPLOAD_ERR_11 "|" D_UPLOAD_ERR_12 "|" D_UPLOAD_ERR_13
|
||||||
#else
|
|
||||||
"|" D_UPLOAD_ERR_14
|
|
||||||
#endif
|
#endif
|
||||||
|
"|" D_UPLOAD_ERR_14
|
||||||
;
|
;
|
||||||
|
|
||||||
const uint16_t DNS_PORT = 53;
|
const uint16_t DNS_PORT = 53;
|
||||||
|
@ -2141,9 +2140,10 @@ void HandleUploadDone(void)
|
||||||
if (Web.upload_error) {
|
if (Web.upload_error) {
|
||||||
WSContentSend_P(PSTR("%06x'>" D_FAILED "</font></b><br><br>"), WebColor(COL_TEXT_WARNING));
|
WSContentSend_P(PSTR("%06x'>" D_FAILED "</font></b><br><br>"), WebColor(COL_TEXT_WARNING));
|
||||||
#ifdef USE_RF_FLASH
|
#ifdef USE_RF_FLASH
|
||||||
if (Web.upload_error < 14) {
|
if (Web.upload_error < 15) {
|
||||||
#else
|
#else
|
||||||
if (Web.upload_error < 11) {
|
if ((Web.upload_error < 10) || (14 == Web.upload_error)) {
|
||||||
|
if (14 == Web.upload_error) { Web.upload_error = 10; }
|
||||||
#endif
|
#endif
|
||||||
GetTextIndexed(error, sizeof(error), Web.upload_error -1, kUploadErrors);
|
GetTextIndexed(error, sizeof(error), Web.upload_error -1, kUploadErrors);
|
||||||
} else {
|
} else {
|
||||||
|
@ -2238,7 +2238,7 @@ void HandleUploadLoop(void)
|
||||||
Update.end(); // End esp8266 update session
|
Update.end(); // End esp8266 update session
|
||||||
Web.upload_file_type = UPL_EFM8BB1;
|
Web.upload_file_type = UPL_EFM8BB1;
|
||||||
|
|
||||||
Web.upload_error = SnfBrUpdateInit();
|
Web.upload_error = SnfBrUpdateInit(); // 10, 11
|
||||||
if (Web.upload_error != 0) { return; }
|
if (Web.upload_error != 0) { return; }
|
||||||
} else
|
} else
|
||||||
#endif // USE_RF_FLASH
|
#endif // USE_RF_FLASH
|
||||||
|
@ -2246,7 +2246,7 @@ void HandleUploadLoop(void)
|
||||||
if ((WEMOS == my_module_type) && (upload.buf[0] == ':')) { // Check if this is a ARDUINO SLAVE hex file
|
if ((WEMOS == my_module_type) && (upload.buf[0] == ':')) { // Check if this is a ARDUINO SLAVE hex file
|
||||||
Update.end(); // End esp8266 update session
|
Update.end(); // End esp8266 update session
|
||||||
Web.upload_file_type = UPL_TASMOTASLAVE;
|
Web.upload_file_type = UPL_TASMOTASLAVE;
|
||||||
Web.upload_error = TasmotaSlave_UpdateInit();
|
Web.upload_error = TasmotaSlave_UpdateInit(); // 0
|
||||||
if (Web.upload_error != 0) { return; }
|
if (Web.upload_error != 0) { return; }
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
|
@ -2281,13 +2281,13 @@ void HandleUploadLoop(void)
|
||||||
free(efm8bb1_update);
|
free(efm8bb1_update);
|
||||||
efm8bb1_update = nullptr;
|
efm8bb1_update = nullptr;
|
||||||
if (result != 0) {
|
if (result != 0) {
|
||||||
Web.upload_error = abs(result); // 2 = Not enough space, 8 = File invalid
|
Web.upload_error = abs(result); // 2 = Not enough space, 8 = File invalid, 12, 13
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ssize_t result = rf_search_and_write(upload.buf, upload.currentSize);
|
ssize_t result = rf_search_and_write(upload.buf, upload.currentSize);
|
||||||
if (result < 0) {
|
if (result < 0) {
|
||||||
Web.upload_error = abs(result);
|
Web.upload_error = abs(result); // 8, 12, 13
|
||||||
return;
|
return;
|
||||||
} else if (result > 0) {
|
} else if (result > 0) {
|
||||||
if ((size_t)result > upload.currentSize) {
|
if ((size_t)result > upload.currentSize) {
|
||||||
|
@ -2379,7 +2379,7 @@ void HandleUploadLoop(void)
|
||||||
}
|
}
|
||||||
if (OtaVersion() < VERSION_COMPATIBLE) {
|
if (OtaVersion() < VERSION_COMPATIBLE) {
|
||||||
AbandonOta();
|
AbandonOta();
|
||||||
Web.upload_error = 10; // Not compatible
|
Web.upload_error = 14; // Not compatible
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue