mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-21 09:46:31 +00:00
Allow negative values for AdcParam/AdcGpio INPUT, TEMP and RANGE parameters (#22809)
This commit is contained in:
parent
fc8485d91b
commit
ddcdc85520
@ -13,6 +13,7 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
### Changed
|
||||
- ESP32 Platform from 2024.12.30 to 2025.01.30, Framework (Arduino Core) from v3.1.0.241206 to v3.1.1.250109 and IDF to 5.3.2 (#22792)
|
||||
- Allow negative values for AdcParam/AdcGpio INPUT, TEMP and RANGE parameters (#22809)
|
||||
|
||||
### Fixed
|
||||
|
||||
|
@ -141,6 +141,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
|
||||
- ESP32 Platform from 2024.12.30 to 2025.01.30, Framework (Arduino Core) from v3.1.0.241206 to v3.1.1.250109 and IDF to 5.3.2 [#22792](https://github.com/arendst/Tasmota/issues/22792)
|
||||
- GPIOViewer from v1.5.6 to v1.5.9 (No functional change)
|
||||
- Postpone save_data during light animation when fade is Off
|
||||
- Allow negative values for AdcParam/AdcGpio INPUT, TEMP and RANGE parameters [#22809](https://github.com/arendst/Tasmota/issues/22809)
|
||||
- Command `Pixels` has backwards compatible arguments fixing #22755 [#22791](https://github.com/arendst/Tasmota/issues/22791)
|
||||
- ESP32 disable PSRAM check (and on restart some relay toggles) with `#define DISABLE_PSRAMCHECK true` [#21266](https://github.com/arendst/Tasmota/issues/21266)
|
||||
- Berry bit-shift operators to `int64` [#22709](https://github.com/arendst/Tasmota/issues/22709)
|
||||
|
@ -1055,8 +1055,8 @@ void CmndAdcParam(void) {
|
||||
if ((GPIO_ADC_INPUT == adc_type) ||
|
||||
(GPIO_ADC_TEMP == adc_type) ||
|
||||
(GPIO_ADC_RANGE == adc_type)) {
|
||||
Adc[channel].param[2] = abs(strtol(ArgV(argument, 4), nullptr, 10)); // param3 = abs(int)
|
||||
Adc[channel].param[3] = abs(strtol(ArgV(argument, 5), nullptr, 10)); // param4 = abs(int)
|
||||
Adc[channel].param[2] = strtol(ArgV(argument, 4), nullptr, 10); // param3 = int
|
||||
Adc[channel].param[3] = strtol(ArgV(argument, 5), nullptr, 10); // param4 = int
|
||||
} else {
|
||||
Adc[channel].param[2] = (int)(CharToFloat(ArgV(argument, 4)) * 10000); // param3 = float
|
||||
if (ArgC() > 4) {
|
||||
@ -1068,7 +1068,7 @@ void CmndAdcParam(void) {
|
||||
if (GPIO_ADC_PH == adc_type) {
|
||||
float phLow = CharToFloat(ArgV(argument, 2));
|
||||
Adc[channel].param[0] = phLow * ANALOG_PH_DECIMAL_MULTIPLIER; // param1 = float
|
||||
// Adc[channel].param[1] = strtol(ArgV(argument, 3), nullptr, 10); // param2 = int
|
||||
// Adc[channel].param[1] = strtol(ArgV(argument, 3), nullptr, 10); // param2 = int
|
||||
float phHigh = CharToFloat(ArgV(argument, 4));
|
||||
Adc[channel].param[2] = phHigh * ANALOG_PH_DECIMAL_MULTIPLIER; // param3 = float
|
||||
Adc[channel].param[3] = strtol(ArgV(argument, 5), nullptr, 10); // param4 = int
|
||||
@ -1084,9 +1084,9 @@ void CmndAdcParam(void) {
|
||||
}
|
||||
}
|
||||
if (GPIO_ADC_MQ == adc_type) {
|
||||
float a = CharToFloat(ArgV(argument, 3)); // param2 = float
|
||||
float b = CharToFloat(ArgV(argument, 4)); // param3 = float
|
||||
float ratioMQCleanAir = CharToFloat(ArgV(argument, 5)); // param4 = float
|
||||
float a = CharToFloat(ArgV(argument, 3)); // param2 = float
|
||||
float b = CharToFloat(ArgV(argument, 4)); // param3 = float
|
||||
float ratioMQCleanAir = CharToFloat(ArgV(argument, 5)); // param4 = float
|
||||
if ((0 == a) && (0 == b) && (0 == ratioMQCleanAir)) {
|
||||
if (2 == Adc[channel].param[0]) { // param1 = int
|
||||
a = 574.25;
|
||||
@ -1115,7 +1115,7 @@ void CmndAdcParam(void) {
|
||||
|
||||
// AddLog(LOG_LEVEL_INFO, PSTR("ADC: MQ reset mq%d, a = %2_f, b = %2_f, ratioMQCleanAir = %2_f"), Adc[channel].param[0], &a, &b, &ratioMQCleanAir);
|
||||
}
|
||||
} else { // Set default values based on current adc type
|
||||
} else { // Set default values based on current adc type
|
||||
// AdcParam 1
|
||||
AdcInitParams(channel);
|
||||
}
|
||||
@ -1124,7 +1124,7 @@ void CmndAdcParam(void) {
|
||||
|
||||
// AdcParam / AdcGpio
|
||||
AdcGetSettings(channel);
|
||||
Response_P(PSTR("{\"%s"), XdrvMailbox.command); // {"AdcParam or {"AdcGpio
|
||||
Response_P(PSTR("{\"%s"), XdrvMailbox.command); // {"AdcParam or {"AdcGpio
|
||||
if (strstr_P(XdrvMailbox.command, PSTR(D_CMND_ADCGPIO))) {
|
||||
#ifdef ESP8266
|
||||
ResponseAppend_P(PSTR("\":["));
|
||||
@ -1139,18 +1139,18 @@ void CmndAdcParam(void) {
|
||||
(GPIO_ADC_TEMP == adc_type) ||
|
||||
(GPIO_ADC_RANGE == adc_type) ||
|
||||
(GPIO_ADC_MQ == adc_type)) {
|
||||
ResponseAppend_P(PSTR(",%d,%d"), Adc[channel].param[2], Adc[channel].param[3]); // param3 = int, param4 = int
|
||||
ResponseAppend_P(PSTR(",%d,%d"), Adc[channel].param[2], Adc[channel].param[3]); // param3 = int, param4 = int
|
||||
}
|
||||
else {
|
||||
float param = (float)Adc[channel].param[2] / 10000;
|
||||
ResponseAppend_P(PSTR(",%*_f"), Decimals(Adc[channel].param[2]), ¶m); // param3 = float
|
||||
ResponseAppend_P(PSTR(",%*_f"), Decimals(Adc[channel].param[2]), ¶m); // param3 = float
|
||||
if ((GPIO_ADC_CT_POWER == adc_type) ||
|
||||
(GPIO_ADC_VOLTAGE == adc_type) ||
|
||||
(GPIO_ADC_CURRENT == adc_type)) {
|
||||
param = (float)Adc[channel].param[3] / 10000;
|
||||
ResponseAppend_P(PSTR(",%*_f"), Decimals(Adc[channel].param[3]), ¶m); // param4 = float
|
||||
ResponseAppend_P(PSTR(",%*_f"), Decimals(Adc[channel].param[3]), ¶m); // param4 = float
|
||||
} else {
|
||||
ResponseAppend_P(PSTR(",%d"), Adc[channel].param[3]); // param4 = int
|
||||
ResponseAppend_P(PSTR(",%d"), Adc[channel].param[3]); // param4 = int
|
||||
}
|
||||
}
|
||||
ResponseAppend_P(PSTR("]}"));
|
||||
|
Loading…
x
Reference in New Issue
Block a user