mirror of https://github.com/arendst/Tasmota.git
6.2.1.2 - Fix KNX PA exception
6.2.1.2 20180906 * Fix KNX PA exception. Regression from 6.2.1 buffer overflow (#3700, #3710)
This commit is contained in:
parent
3f1f3dec34
commit
359877489d
|
@ -1,4 +1,7 @@
|
||||||
/* 6.2.1.1 20180905
|
/* 6.2.1.2 20180906
|
||||||
|
* Fix KNX PA exception. Regression from 6.2.1 buffer overflow (#3700, #3710)
|
||||||
|
*
|
||||||
|
* 6.2.1.1 20180905
|
||||||
* Rewrite energy monitoring using energy sensor driver modules
|
* Rewrite energy monitoring using energy sensor driver modules
|
||||||
* Add Wifi channel number to state message (#3664)
|
* Add Wifi channel number to state message (#3664)
|
||||||
* Add support for Shelly 1 and basic support for Shelly 2 - No energy monitoring yet (#2789)
|
* Add support for Shelly 1 and basic support for Shelly 2 - No energy monitoring yet (#2789)
|
||||||
|
|
|
@ -64,7 +64,7 @@ typedef union { // Restricted by MISRA-C Rule 18.4 bu
|
||||||
uint32_t data; // Allow bit manipulation using SetOption
|
uint32_t data; // Allow bit manipulation using SetOption
|
||||||
struct { // SetOption50 .. SetOption81
|
struct { // SetOption50 .. SetOption81
|
||||||
uint32_t timers_enable : 1; // bit 0 (v6.1.1b)
|
uint32_t timers_enable : 1; // bit 0 (v6.1.1b)
|
||||||
uint32_t spare01 : 1;
|
uint32_t user_esp8285_enable : 1; // bit 1 (v6.1.1.14)
|
||||||
uint32_t spare02 : 1;
|
uint32_t spare02 : 1;
|
||||||
uint32_t spare03 : 1;
|
uint32_t spare03 : 1;
|
||||||
uint32_t spare04 : 1;
|
uint32_t spare04 : 1;
|
||||||
|
@ -94,7 +94,7 @@ typedef union { // Restricted by MISRA-C Rule 18.4 bu
|
||||||
uint32_t spare28 : 1;
|
uint32_t spare28 : 1;
|
||||||
uint32_t spare29 : 1;
|
uint32_t spare29 : 1;
|
||||||
uint32_t spare30 : 1;
|
uint32_t spare30 : 1;
|
||||||
uint32_t user_esp8285_enable : 1; // bit 31 (v6.1.1.14)
|
uint32_t spare31 : 1;
|
||||||
};
|
};
|
||||||
} SysBitfield3;
|
} SysBitfield3;
|
||||||
|
|
||||||
|
|
|
@ -843,9 +843,11 @@ void MqttDataHandler(char* topic, byte* data, unsigned int data_len)
|
||||||
else if ((CMND_GPIO == command_code) && (index < MAX_GPIO_PIN)) {
|
else if ((CMND_GPIO == command_code) && (index < MAX_GPIO_PIN)) {
|
||||||
mytmplt cmodule;
|
mytmplt cmodule;
|
||||||
memcpy_P(&cmodule, &kModules[Settings.module], sizeof(cmodule));
|
memcpy_P(&cmodule, &kModules[Settings.module], sizeof(cmodule));
|
||||||
if ((GPIO_USER == cmodule.gp.io[index]) && (payload >= 0) && (payload < GPIO_SENSOR_END)) {
|
// if ((GPIO_USER == cmodule.gp.io[index]) && (payload >= 0) && (payload < GPIO_SENSOR_END)) {
|
||||||
|
if ((GPIO_USER == ValidGPIO(index, cmodule.gp.io[index])) && (payload >= 0) && (payload < GPIO_SENSOR_END)) {
|
||||||
for (byte i = 0; i < MAX_GPIO_PIN; i++) {
|
for (byte i = 0; i < MAX_GPIO_PIN; i++) {
|
||||||
if ((GPIO_USER == cmodule.gp.io[i]) && (Settings.my_gp.io[i] == payload)) {
|
// if ((GPIO_USER == cmodule.gp.io[i]) && (Settings.my_gp.io[i] == payload)) {
|
||||||
|
if ((GPIO_USER == ValidGPIO(i, cmodule.gp.io[i])) && (Settings.my_gp.io[i] == payload)) {
|
||||||
Settings.my_gp.io[i] = 0;
|
Settings.my_gp.io[i] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -854,7 +856,8 @@ void MqttDataHandler(char* topic, byte* data, unsigned int data_len)
|
||||||
}
|
}
|
||||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{"));
|
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{"));
|
||||||
for (byte i = 0; i < MAX_GPIO_PIN; i++) {
|
for (byte i = 0; i < MAX_GPIO_PIN; i++) {
|
||||||
if (GPIO_USER == cmodule.gp.io[i]) {
|
// if (GPIO_USER == cmodule.gp.io[i]) {
|
||||||
|
if (GPIO_USER == ValidGPIO(i, cmodule.gp.io[i])) {
|
||||||
if (jsflg) snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,"), mqtt_data);
|
if (jsflg) snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,"), mqtt_data);
|
||||||
jsflg = 1;
|
jsflg = 1;
|
||||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s\"" D_CMND_GPIO "%d\":\"%d (%s)\""),
|
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s\"" D_CMND_GPIO "%d\":\"%d (%s)\""),
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
#ifndef _SONOFF_VERSION_H_
|
#ifndef _SONOFF_VERSION_H_
|
||||||
#define _SONOFF_VERSION_H_
|
#define _SONOFF_VERSION_H_
|
||||||
|
|
||||||
#define VERSION 0x06020101
|
#define VERSION 0x06020102
|
||||||
|
|
||||||
#define D_PROGRAMNAME "Sonoff-Tasmota"
|
#define D_PROGRAMNAME "Sonoff-Tasmota"
|
||||||
#define D_AUTHOR "Theo Arends"
|
#define D_AUTHOR "Theo Arends"
|
||||||
|
|
Loading…
Reference in New Issue