Add support for gzipped binaries

Add support for gzipped binaries
This commit is contained in:
Theo Arends 2020-01-06 14:52:04 +01:00
parent 4a432fc2cd
commit 95fc96d563
5 changed files with 27 additions and 14 deletions

View File

@ -52,7 +52,7 @@ The following binary downloads have been compiled with ESP8266/Arduino library c
## Changelog
### Version 8.1.0.2
### Version 8.1.0.3
- Change Lights: simplified gamma correction and 10 bits internal computation
- Fix Sonoff Bridge, Sc, L1, iFan03 and CSE7766 serial interface to forced speed, config and disable logging
@ -62,6 +62,7 @@ The following binary downloads have been compiled with ESP8266/Arduino library c
- Fix LCD line and column positioning (#7387)
- Fix Display handling of hexadecimal escape characters (#7387)
- Add command ``SetOption79 0/1`` to enable reset of counters at teleperiod time by Andre Thomas (#7355)
- Add command ``SetOption82 0/1`` to limit the CT range for Alexa to 200..380
- Add command ``ShutterButton <parameters>`` to control shutter(s) by to-scho (#7403)
- Add SerialConfig to ``Status 1``
- Add WifiPower to ``Status 5``
@ -71,3 +72,4 @@ The following binary downloads have been compiled with ESP8266/Arduino library c
- Add optional support for Prometheus using file xsns_91_prometheus.ino (#7216)
- Add experimental support for NRF24L01 as BLE-bridge for Mijia Bluetooth sensors by Christian Baars (#7394)
- Add support to BMP driver to enter reset state (sleep enable) when deep sleep is used in Tasmota
- Add support for gzipped binaries

View File

@ -1,17 +1,21 @@
## Unreleased (development)
### 8.1.0.3 20200106
- Add support for gzipped binaries
### 8.1.0.2 20191230
- Add support for ``AdcParam`` parameters to control ADC0 Current Transformer Apparent Power formula by Jodi Dillon (#7100)
- Add optional support for Prometheus using file xsns_91_prometheus.ino (#7216)
- Add command ``ShutterButton <parameters>`` to control shutter(s) by to-scho (#7403)
- Add experimental support for NRF24L01 as BLE-bridge for Mijia Bluetooth sensors by Christian Baars (#7394)
- Add support to BMP driver to enter reset state (sleep enable) when deep sleep is used in Tasmota
- Fix LCD line and column positioning (#7387)
- Fix Display handling of hexadecimal escape characters (#7387)
- Fix Improved fade linearity with gamma correction
- Fix wrong gamma correction for Module 48 lights (PWM5 for CT)
- Add SetOption82 to limit the CT range for Alexa to 200..380
- Add support for ``AdcParam`` parameters to control ADC0 Current Transformer Apparent Power formula by Jodi Dillon (#7100)
- Add optional support for Prometheus using file xsns_91_prometheus.ino (#7216)
- Add command ``ShutterButton <parameters>`` to control shutter(s) by to-scho (#7403)
- Add command ``SetOption82 0/1`` to limit the CT range for Alexa to 200..380
- Add experimental support for NRF24L01 as BLE-bridge for Mijia Bluetooth sensors by Christian Baars (#7394)
- Add support to BMP driver to enter reset state (sleep enable) when deep sleep is used in Tasmota
### 8.1.0.1 20191225

View File

@ -359,6 +359,11 @@ uint32_t OtaVersion(void)
bool found = false;
for (uint32_t address = start_address; address < end_address; address = address + FLASH_SECTOR_SIZE) {
ESP.flashRead(address, (uint32_t*)buffer, FLASH_SECTOR_SIZE);
if ((address == start_address) && (0x1F == (buffer[0] & 0xFF))) {
version[1] = 0xFFFFFFFF; // Ota file is gzipped and can not be checked for compatibility
found = true;
break;
}
for (uint32_t i = 0; i < (FLASH_SECTOR_SIZE / 4); i++) {
version[0] = version[1];
version[1] = version[2];

View File

@ -20,7 +20,7 @@
#ifndef _TASMOTA_VERSION_H_
#define _TASMOTA_VERSION_H_
const uint32_t VERSION = 0x08010002;
const uint32_t VERSION = 0x08010003;
// Lowest compatible version
const uint32_t VERSION_COMPATIBLE = 0x07010006;

View File

@ -2270,16 +2270,18 @@ void HandleUploadLoop(void)
} else
#endif
{
if (upload.buf[0] != 0xE9) {
if ((upload.buf[0] != 0xE9) && (upload.buf[0] != 0x1F)) { // 0x1F is gzipped 0xE9
Web.upload_error = 3; // Magic byte is not 0xE9
return;
}
uint32_t bin_flash_size = ESP.magicFlashChipSize((upload.buf[3] & 0xf0) >> 4);
if(bin_flash_size > ESP.getFlashChipRealSize()) {
Web.upload_error = 4; // Program flash size is larger than real flash size
return;
if (0xE9 == upload.buf[0]) {
uint32_t bin_flash_size = ESP.magicFlashChipSize((upload.buf[3] & 0xf0) >> 4);
if (bin_flash_size > ESP.getFlashChipRealSize()) {
Web.upload_error = 4; // Program flash size is larger than real flash size
return;
}
// upload.buf[2] = 3; // Force DOUT - ESP8285
}
// upload.buf[2] = 3; // Force DOUT - ESP8285
}
}
}