mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-28 21:26:33 +00:00
Change ESP32 pin allocation part 4
This commit is contained in:
parent
91df6c5ed3
commit
7177c7d8e0
@ -1211,24 +1211,15 @@ gpio_flag ModuleFlag(void)
|
||||
{
|
||||
gpio_flag flag;
|
||||
|
||||
#ifdef ESP8266
|
||||
if (USER_MODULE == Settings.module) {
|
||||
flag = Settings.user_template.flag;
|
||||
} else {
|
||||
#ifdef ESP8266
|
||||
memcpy_P(&flag, &kModules[Settings.module].flag, sizeof(gpio_flag));
|
||||
}
|
||||
#else // ESP32
|
||||
if (USER_MODULE == Settings.module) {
|
||||
/*
|
||||
gpio_flag gpio_adc0;
|
||||
memcpy_P(&gpio_adc0, &Settings.user_template.gp + ADC0_PIN - MIN_FLASH_PINS, sizeof(gpio_flag));
|
||||
flag = Settings.user_template.flag.data + gpio_adc0.data;
|
||||
*/
|
||||
memcpy_P(&flag, &Settings.user_template.gp + ADC0_PIN - MIN_FLASH_PINS, sizeof(gpio_flag));
|
||||
} else {
|
||||
memcpy_P(&flag, &kModules.gp + ADC0_PIN - MIN_FLASH_PINS, sizeof(gpio_flag));
|
||||
}
|
||||
memcpy_P(&flag, &kModules.flag, sizeof(gpio_flag));
|
||||
#endif // ESP8266 - ESP32
|
||||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
@ -1285,12 +1276,14 @@ bool ValidGPIO(uint32_t pin, uint32_t gpio)
|
||||
#endif // ESP8266 - ESP32
|
||||
}
|
||||
|
||||
#ifdef ESP8266
|
||||
bool ValidAdc(void)
|
||||
{
|
||||
gpio_flag flag = ModuleFlag();
|
||||
uint32_t template_adc0 = flag.data &15;
|
||||
return (ADC0_USER == template_adc0);
|
||||
}
|
||||
#endif // ESP8266
|
||||
|
||||
#ifdef ESP8266
|
||||
bool GetUsedInModule(uint32_t val, uint8_t *arr)
|
||||
|
@ -1371,6 +1371,7 @@ void GpioInit(void)
|
||||
my_module.io[i] = def_gp.io[i]; // Force Template override
|
||||
}
|
||||
}
|
||||
#ifdef ESP8266
|
||||
if ((Settings.my_adc0 >= ADC0_END) && (Settings.my_adc0 < ADC0_USER)) {
|
||||
Settings.my_adc0 = ADC0_NONE; // Fix not supported sensor ids in module
|
||||
}
|
||||
@ -1382,6 +1383,7 @@ void GpioInit(void)
|
||||
if ((template_adc0 > ADC0_NONE) && (template_adc0 < ADC0_USER)) {
|
||||
my_adc0 = template_adc0; // Force Template override
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef LEGACY_GPIO_ARRAY
|
||||
InitAllPins();
|
||||
|
@ -165,7 +165,7 @@ uint8_t devices_present = 0; // Max number of devices supported
|
||||
uint8_t seriallog_level; // Current copy of Settings.seriallog_level
|
||||
uint8_t syslog_level; // Current copy of Settings.syslog_level
|
||||
uint8_t my_module_type; // Current copy of Settings.module or user template type
|
||||
uint8_t my_adc0; // Active copy of Module ADC0
|
||||
uint8_t my_adc0 = 0; // Active copy of Module ADC0
|
||||
uint8_t last_source = 0; // Last command source
|
||||
uint8_t shutters_present = 0; // Number of actual define shutters
|
||||
uint8_t prepped_loglevel = 0; // Delayed log level message
|
||||
@ -286,16 +286,17 @@ void setup(void)
|
||||
for (uint32_t i = 0; i < ARRAY_SIZE(Settings.my_gp.io); i++) {
|
||||
Settings.my_gp.io[i] = GPIO_NONE; // Reset user defined GPIO disabling sensors
|
||||
}
|
||||
#ifdef ESP8266
|
||||
Settings.my_adc0 = ADC0_NONE; // Reset user defined ADC0 disabling sensors
|
||||
#endif
|
||||
}
|
||||
if (RtcReboot.fast_reboot_count > Settings.param[P_BOOT_LOOP_OFFSET] +4) { // Restarted 6 times
|
||||
#ifdef ESP8266
|
||||
Settings.module = SONOFF_BASIC; // Reset module to Sonoff Basic
|
||||
// Settings.last_module = SONOFF_BASIC;
|
||||
#endif // ESP8266
|
||||
#ifdef ESP32
|
||||
#else // ESP32
|
||||
Settings.module = WEMOS; // Reset module to Wemos
|
||||
#endif // ESP32
|
||||
#endif // ESP8266 - ESP32
|
||||
}
|
||||
AddLog_P2(LOG_LEVEL_INFO, PSTR(D_LOG_APPLICATION D_LOG_SOME_SETTINGS_RESET " (%d)"), RtcReboot.fast_reboot_count);
|
||||
}
|
||||
|
@ -190,7 +190,6 @@ enum UserSelectablePins {
|
||||
GPIO_HRXL_RX, // Data from MaxBotix HRXL sonar range sensor
|
||||
GPIO_ELECTRIQ_MOODL_TX, // ElectriQ iQ-wifiMOODL Serial TX
|
||||
GPIO_AS3935,
|
||||
/*
|
||||
ADC0_INPUT, // Analog input
|
||||
ADC0_TEMP, // Thermistor
|
||||
ADC0_LIGHT, // Light sensor
|
||||
@ -198,7 +197,6 @@ enum UserSelectablePins {
|
||||
ADC0_BUTTON_INV,
|
||||
ADC0_RANGE, // Range
|
||||
ADC0_CT_POWER, // Current
|
||||
*/
|
||||
GPIO_SENSOR_END };
|
||||
|
||||
enum ProgramSelectablePins {
|
||||
@ -284,13 +282,11 @@ const char kSensorNames[] PROGMEM =
|
||||
D_SENSOR_HRXL_RX "|"
|
||||
D_SENSOR_ELECTRIQ_MOODL "|"
|
||||
D_SENSOR_AS3935 "|"
|
||||
/*
|
||||
D_ANALOG_INPUT "|"
|
||||
D_TEMPERATURE "|" D_LIGHT "|"
|
||||
D_SENSOR_BUTTON "|" D_SENSOR_BUTTON "i|"
|
||||
D_RANGE "|"
|
||||
D_CT_POWER "|"
|
||||
*/
|
||||
;
|
||||
|
||||
const char kSensorNamesFixed[] PROGMEM =
|
||||
@ -583,54 +579,23 @@ const uint16_t kGpioNiceList[] PROGMEM = {
|
||||
AGPIO(GPIO_AS3935),
|
||||
#endif
|
||||
/*
|
||||
ADC0_INPUT, // Analog input
|
||||
ADC0_TEMP, // Thermistor
|
||||
ADC0_LIGHT, // Light sensor
|
||||
ADC0_BUTTON, // Button
|
||||
ADC0_BUTTON_INV,
|
||||
ADC0_RANGE, // Range
|
||||
ADC0_CT_POWER, // Current
|
||||
#ifndef USE_ADC_VCC
|
||||
AGPIO(ADC0_INPUT), // Analog input
|
||||
AGPIO(ADC0_TEMP), // Thermistor
|
||||
AGPIO(ADC0_LIGHT), // Light sensor
|
||||
AGPIO(ADC0_BUTTON), // Button
|
||||
AGPIO(ADC0_BUTTON_INV),
|
||||
AGPIO(ADC0_RANGE), // Range
|
||||
AGPIO(ADC0_CT_POWER), // Current
|
||||
#endif
|
||||
*/
|
||||
};
|
||||
|
||||
//********************************************************************************************
|
||||
|
||||
// User selectable ADC0 functionality
|
||||
enum UserSelectableAdc0 {
|
||||
ADC0_NONE, // Not used
|
||||
ADC0_INPUT, // Analog input
|
||||
ADC0_TEMP, // Thermistor
|
||||
ADC0_LIGHT, // Light sensor
|
||||
ADC0_BUTTON, // Button
|
||||
ADC0_BUTTON_INV,
|
||||
ADC0_RANGE, // Range
|
||||
ADC0_CT_POWER, // Current
|
||||
// ADC0_SWITCH, // Switch
|
||||
// ADC0_SWITCH_INV,
|
||||
ADC0_END };
|
||||
|
||||
// Programmer selectable ADC0 functionality
|
||||
enum ProgramSelectableAdc0 {
|
||||
ADC0_FIX_START = 14,
|
||||
ADC0_USER, // User configurable needs to be 15
|
||||
ADC0_MAX };
|
||||
|
||||
// Text in webpage Module Parameters and commands ADC
|
||||
const char kAdc0Names[] PROGMEM =
|
||||
D_SENSOR_NONE "|" D_ANALOG_INPUT "|"
|
||||
D_TEMPERATURE "|" D_LIGHT "|"
|
||||
D_SENSOR_BUTTON "|" D_SENSOR_BUTTON "i|"
|
||||
D_RANGE "|"
|
||||
D_CT_POWER "|"
|
||||
// D_SENSOR_SWITCH "|" D_SENSOR_SWITCH "i|"
|
||||
;
|
||||
|
||||
//********************************************************************************************
|
||||
|
||||
#define MAX_GPIO_PIN 40 // Number of supported GPIO
|
||||
#define MIN_FLASH_PINS 4 // Number of flash chip pins unusable for configuration (GPIO6, 7, 8 and 11)
|
||||
#define MAX_USER_PINS 36 // MAX_GPIO_PIN - MIN_FLASH_PINS
|
||||
#define ADC0_PIN 33 // Pin number of ADC0
|
||||
#define WEMOS_MODULE 0 // Wemos module
|
||||
|
||||
// 0 1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233343536373839
|
||||
|
@ -228,26 +228,24 @@ const char HTTP_SCRIPT_CONSOL[] PROGMEM =
|
||||
"wl(h);"; // Add console command key eventlistener after name has been synced with id (= wl(jd))
|
||||
|
||||
const char HTTP_MODULE_TEMPLATE_REPLACE[] PROGMEM =
|
||||
"}2%d'>%s (%d)}3"; // }2 and }3 are used in below os.replace
|
||||
const char HTTP_MODULE_TEMPLATE_NO_INDEX_REPLACE[] PROGMEM =
|
||||
"}2%d'>%s}3"; // }2 and }3 are used in below os.replace
|
||||
"}2%d'>%s (%d}3"; // }2 and }3 are used in below os.replace
|
||||
|
||||
const char HTTP_SCRIPT_MODULE_TEMPLATE[] PROGMEM =
|
||||
#ifdef ESP8266
|
||||
"var os;"
|
||||
"function sk(s,g){" // s = value, g = id and name
|
||||
"var o=os.replace(/}2/g,\"<option value='\").replace(/}3/g,\"</option>\");"
|
||||
"var o=os.replace(/}2/g,\"<option value='\").replace(/}3/g,\")</option>\");"
|
||||
"eb('g'+g).innerHTML=o;"
|
||||
"eb('g'+g).value=s;"
|
||||
"}"
|
||||
"}";
|
||||
#else // ESP32
|
||||
#ifndef FINAL_ESP32
|
||||
"var os;"
|
||||
"function sk(s,g){" // s = value, g = id and name
|
||||
"var o=os.replace(/}2/g,\"<option value='\").replace(/}3/g,\"</option>\");"
|
||||
"var o=os.replace(/}2/g,\"<option value='\").replace(/}3/g,\")</option>\");"
|
||||
"eb('g'+g).innerHTML=o;"
|
||||
"eb('g'+g).value=s;"
|
||||
"}"
|
||||
"}";
|
||||
#else // FINAL_ESP32
|
||||
"var os,hs;"
|
||||
"function ce(i,q){" // Create index select
|
||||
@ -265,14 +263,15 @@ const char HTTP_SCRIPT_MODULE_TEMPLATE[] PROGMEM =
|
||||
"t.style.visibility=(hs[s]>0)?'':'hidden';"
|
||||
"}"
|
||||
"function sk(s,g){" // s = value, g = id and name
|
||||
"var o=os.replace(/}2/g,\"<option value='\").replace(/}3/g,\"</option>\");"
|
||||
"var o=os.replace(/}2/g,\"<option value='\").replace(/}3/g,\")</option>\");"
|
||||
"eb('g'+g).innerHTML=o;"
|
||||
"eb('g'+g).value=s&0xffe0;"
|
||||
"eb('g'+g).value=(g<99)?s&0xffe0:s;"
|
||||
"if(g<99){ot(g,s);}"
|
||||
"}"
|
||||
"}";
|
||||
#endif // FINAL_ESP32
|
||||
#endif // ESP8266 - ESP32
|
||||
|
||||
const char HTTP_SCRIPT_TEMPLATE[] PROGMEM =
|
||||
"function ld(u,f){"
|
||||
"var x=new XMLHttpRequest();"
|
||||
"x.onreadystatechange=function(){"
|
||||
@ -282,9 +281,7 @@ const char HTTP_SCRIPT_MODULE_TEMPLATE[] PROGMEM =
|
||||
"};"
|
||||
"x.open('GET',u,true);"
|
||||
"x.send();"
|
||||
"}";
|
||||
|
||||
const char HTTP_SCRIPT_TEMPLATE[] PROGMEM =
|
||||
"}"
|
||||
"var c;" // Need a global for BASE
|
||||
"function x1(b){"
|
||||
"var i,j,g,k,o;"
|
||||
@ -296,7 +293,6 @@ const char HTTP_SCRIPT_TEMPLATE[] PROGMEM =
|
||||
"g=o.shift().split(',');" // GPIO - Array separator
|
||||
"os=\""; // }2'0'>None (0)}3}2'17'>Button1 (17)}3...
|
||||
const char HTTP_SCRIPT_TEMPLATE2[] PROGMEM =
|
||||
"\";"
|
||||
"j=0;"
|
||||
"for(i=0;i<" STR(MAX_USER_PINS) ";i++){" // Supports 13 GPIOs
|
||||
"if(6==i){j=9;}"
|
||||
@ -304,12 +300,12 @@ const char HTTP_SCRIPT_TEMPLATE2[] PROGMEM =
|
||||
"sk(g[i],j);" // Set GPIO
|
||||
"j++;"
|
||||
"}"
|
||||
"g=o.shift();" // FLAG
|
||||
"os=\""; // }2'0'>None (0)}3}2'17'>Analog (17)}3...
|
||||
"g=o.shift();"; // FLAG
|
||||
const char HTTP_SCRIPT_TEMPLATE3[] PROGMEM =
|
||||
"\";"
|
||||
"sk(g&15," STR(ADC0_PIN) ");" // Set ADC0
|
||||
"g>>=4;"
|
||||
"g>>=4;";
|
||||
const char HTTP_SCRIPT_TEMPLATE4[] PROGMEM =
|
||||
"for(i=0;i<" STR(GPIO_FLAG_USED) ";i++){"
|
||||
"p=(g>>i)&1;"
|
||||
"eb('c'+i).checked=p;" // Set FLAG checkboxes
|
||||
@ -324,10 +320,9 @@ const char HTTP_SCRIPT_TEMPLATE3[] PROGMEM =
|
||||
"var a='tp?t='+t;"
|
||||
"ld(a,x1);" // ?t related to WebGetArg("t", stemp, sizeof(stemp));
|
||||
"}"
|
||||
|
||||
"function sl(){"
|
||||
"os=\""; // }2'0'>Sonoff Basic (1)}3...
|
||||
const char HTTP_SCRIPT_TEMPLATE4[] PROGMEM =
|
||||
const char HTTP_SCRIPT_TEMPLATE5[] PROGMEM =
|
||||
"\";"
|
||||
"sk(" STR(WEMOS_MODULE) ",99);" // 17 = WEMOS
|
||||
"st(" STR(USER_MODULE) ");"
|
||||
@ -1477,13 +1472,32 @@ void HandleTemplateConfiguration(void)
|
||||
uint32_t midx = pgm_read_byte(kGpioNiceList + i);
|
||||
uint32_t ridx = midx;
|
||||
#else // FINAL_ESP32
|
||||
uint32_t ridx = pgm_read_word(kGpioNiceList + i);
|
||||
uint32_t ridx = pgm_read_word(kGpioNiceList + i) & 0xFFE0;
|
||||
uint32_t midx = ridx >> 5;
|
||||
#endif // FINAL_ESP32
|
||||
#endif // ESP8266 - ESP32
|
||||
WSContentSend_P(HTTP_MODULE_TEMPLATE_REPLACE, ridx, GetTextIndexed(stemp, sizeof(stemp), midx, kSensorNames), ridx);
|
||||
}
|
||||
WSContentSend_P(PSTR("\";"));
|
||||
|
||||
#ifdef ESP32
|
||||
#ifdef FINAL_ESP32
|
||||
WSContentSend_P(PSTR("hs=["));
|
||||
bool first_done = false;
|
||||
for (uint32_t i = 0; i < ARRAY_SIZE(kGpioNiceList); i++) {
|
||||
uint32_t midx = pgm_read_word(kGpioNiceList + i) & 0x001F;
|
||||
if (first_done) { WSContentSend_P(PSTR(",")); }
|
||||
WSContentSend_P(PSTR("%d"), midx);
|
||||
first_done = true;
|
||||
}
|
||||
WSContentSend_P(PSTR("];"));
|
||||
#endif // FINAL_ESP32
|
||||
#endif // ESP32
|
||||
|
||||
WSContentSend_P(HTTP_SCRIPT_TEMPLATE2);
|
||||
|
||||
#ifdef ESP8266
|
||||
WSContentSend_P(PSTR("os=\""));
|
||||
for (uint32_t i = 0; i < ADC0_END; i++) { // FLAG: }2'0'>None (0)}3}2'17'>Analog (17)}3...
|
||||
if (1 == i) {
|
||||
WSContentSend_P(HTTP_MODULE_TEMPLATE_REPLACE, ADC0_USER, D_SENSOR_USER, ADC0_USER); // }2'15'>User (15)}3
|
||||
@ -1491,11 +1505,14 @@ void HandleTemplateConfiguration(void)
|
||||
WSContentSend_P(HTTP_MODULE_TEMPLATE_REPLACE, i, GetTextIndexed(stemp, sizeof(stemp), i, kAdc0Names), i);
|
||||
}
|
||||
WSContentSend_P(HTTP_SCRIPT_TEMPLATE3);
|
||||
#endif
|
||||
|
||||
WSContentSend_P(HTTP_SCRIPT_TEMPLATE4);
|
||||
for (uint32_t i = 0; i < sizeof(kModuleNiceList); i++) { // "}2'%d'>%s (%d)}3" - "}2'0'>Sonoff Basic (1)}3"
|
||||
uint32_t midx = pgm_read_byte(kModuleNiceList + i);
|
||||
WSContentSend_P(HTTP_MODULE_TEMPLATE_REPLACE, midx, AnyModuleName(midx).c_str(), midx +1);
|
||||
}
|
||||
WSContentSend_P(HTTP_SCRIPT_TEMPLATE4);
|
||||
WSContentSend_P(HTTP_SCRIPT_TEMPLATE5);
|
||||
|
||||
WSContentSendStyle();
|
||||
WSContentSend_P(HTTP_FORM_TEMPLATE);
|
||||
@ -1507,18 +1524,35 @@ void HandleTemplateConfiguration(void)
|
||||
WSContentSend_P(HTTP_TABLE100);
|
||||
for (uint32_t i = 0; i < MAX_GPIO_PIN; i++) {
|
||||
if (!FlashPin(i)) {
|
||||
#ifdef ESP8266
|
||||
WSContentSend_P(PSTR("<tr><td><b><font color='#%06x'>" D_GPIO "%d</font></b></td><td%s><select id='g%d'></select></td></tr>"),
|
||||
((9==i)||(10==i)) ? WebColor(COL_TEXT_WARNING) : WebColor(COL_TEXT), i, (0==i) ? " style='width:200px'" : "", i);
|
||||
#else // ESP32
|
||||
#ifndef FINAL_ESP32
|
||||
WSContentSend_P(PSTR("<tr><td><b><font color='#%06x'>" D_GPIO "%d</font></b></td><td%s><select id='g%d'></select></td></tr>"),
|
||||
((9==i)||(10==i)) ? WebColor(COL_TEXT_WARNING) : WebColor(COL_TEXT), i, (0==i) ? " style='width:200px'" : "", i);
|
||||
#else // FINAL_ESP32
|
||||
WSContentSend_P(PSTR("<tr><td><b><font color='#%06x'>" D_GPIO "%d</font></b></td><td%s><select id='g%d' onchange='ot(%d,this.value)'></select></td>"),
|
||||
((9==i)||(10==i)) ? WebColor(COL_TEXT_WARNING) : WebColor(COL_TEXT), i, (0==i) ? " style='width:150px'" : "", i, i);
|
||||
WSContentSend_P(PSTR("<td style='width:50px'><select id='h%d'></select></td></tr>"), i);
|
||||
#endif // FINAL_ESP32
|
||||
#endif // ESP8266
|
||||
}
|
||||
}
|
||||
#ifdef ESP8266
|
||||
WSContentSend_P(PSTR("<tr><td><b><font color='#%06x'>" D_ADC "0</font></b></td><td><select id='g17'></select></td></tr>"), WebColor(COL_TEXT));
|
||||
#endif
|
||||
WSContentSend_P(PSTR("</table>"));
|
||||
|
||||
gpio_flag flag = ModuleFlag();
|
||||
#ifdef ESP8266
|
||||
if (flag.data > ADC0_USER) {
|
||||
#else // ESP32
|
||||
if (flag.data) {
|
||||
#endif // ESP32
|
||||
WSContentSend_P(HTTP_FORM_TEMPLATE_FLAG);
|
||||
}
|
||||
|
||||
WSContentSend_P(HTTP_FORM_END);
|
||||
WSContentSpaceButton(BUTTON_CONFIGURATION);
|
||||
WSContentStop();
|
||||
@ -1540,12 +1574,26 @@ void TemplateSaveSettings(void)
|
||||
snprintf_P(webindex, sizeof(webindex), PSTR("g%d"), j);
|
||||
WebGetArg(webindex, tmp, sizeof(tmp)); // GPIO
|
||||
uint32_t gpio = atoi(tmp);
|
||||
#ifdef ESP32
|
||||
#ifdef FINAL_ESP32
|
||||
char tmp2[8]; // WebGetArg numbers only
|
||||
char webindex2[5]; // WebGetArg name
|
||||
snprintf_P(webindex2, sizeof(webindex2), PSTR("h%d"), j);
|
||||
WebGetArg(webindex2, tmp2, sizeof(tmp2));
|
||||
uint32_t value2 = (!strlen(tmp2)) ? 0 : atoi(tmp2) -1;
|
||||
gpio += value2;
|
||||
#endif // FINAL_ESP32
|
||||
#endif // ESP32
|
||||
snprintf_P(svalue, sizeof(svalue), PSTR("%s%s%d"), svalue, (i>0)?",":"", gpio);
|
||||
j++;
|
||||
}
|
||||
|
||||
#ifdef ESP8266
|
||||
WebGetArg("g" STR(ADC0_PIN), tmp, sizeof(tmp)); // FLAG - ADC0
|
||||
uint32_t flag = atoi(tmp);
|
||||
#else // ESP32
|
||||
uint32_t flag = 0;
|
||||
#endif // ESP32
|
||||
for (uint32_t i = 0; i < GPIO_FLAG_USED; i++) {
|
||||
snprintf_P(webindex, sizeof(webindex), PSTR("c%d"), i);
|
||||
uint32_t state = Webserver->hasArg(webindex) << i +4; // FLAG
|
||||
@ -1597,24 +1645,18 @@ void HandleModuleConfiguration(void)
|
||||
#ifdef ESP8266
|
||||
midx = pgm_read_byte(kGpioNiceList + i);
|
||||
uint32_t ridx = midx;
|
||||
if (!GetUsedInModule(midx, cmodule.io)) {
|
||||
WSContentSend_P(HTTP_MODULE_TEMPLATE_REPLACE, ridx, GetTextIndexed(stemp, sizeof(stemp), midx, kSensorNames), ridx);
|
||||
}
|
||||
#else // ESP32
|
||||
#ifndef FINAL_ESP32
|
||||
midx = pgm_read_byte(kGpioNiceList + i);
|
||||
uint32_t ridx = midx;
|
||||
if (!GetUsedInModule(midx, cmodule.io)) {
|
||||
WSContentSend_P(HTTP_MODULE_TEMPLATE_REPLACE, ridx, GetTextIndexed(stemp, sizeof(stemp), midx, kSensorNames), ridx);
|
||||
}
|
||||
#else // FINAL_ESP32
|
||||
uint32_t ridx = pgm_read_word(kGpioNiceList + i) & 0xFFE0;
|
||||
midx = ridx >> 5;
|
||||
if (!GetUsedInModule(midx, cmodule.io)) {
|
||||
WSContentSend_P(HTTP_MODULE_TEMPLATE_NO_INDEX_REPLACE, ridx, GetTextIndexed(stemp, sizeof(stemp), midx, kSensorNames));
|
||||
}
|
||||
#endif // FINAL_ESP32
|
||||
#endif // ESP8266 - ESP32
|
||||
if (!GetUsedInModule(midx, cmodule.io)) {
|
||||
WSContentSend_P(HTTP_MODULE_TEMPLATE_REPLACE, ridx, GetTextIndexed(stemp, sizeof(stemp), midx, kSensorNames), ridx);
|
||||
}
|
||||
}
|
||||
WSContentSend_P(PSTR("\";"));
|
||||
|
||||
@ -1646,16 +1688,6 @@ void HandleModuleConfiguration(void)
|
||||
}
|
||||
WSContentSend_P(PSTR("\";sk(%d," STR(ADC0_PIN) ");"), Settings.my_adc0);
|
||||
#endif // USE_ADC_VCC
|
||||
#else // ESP32
|
||||
#ifndef FINAL_ESP32
|
||||
#ifndef USE_ADC_VCC
|
||||
WSContentSend_P(PSTR("os=\""));
|
||||
for (uint32_t j = 0; j < ADC0_END; j++) {
|
||||
WSContentSend_P(HTTP_MODULE_TEMPLATE_REPLACE, j, GetTextIndexed(stemp, sizeof(stemp), j, kAdc0Names), j);
|
||||
}
|
||||
WSContentSend_P(PSTR("\";sk(%d," STR(ADC0_PIN) ");"), Settings.my_adc0);
|
||||
#endif // USE_ADC_VCC
|
||||
#endif // No FINAL_ESP32
|
||||
#endif // ESP8266 - ESP32
|
||||
|
||||
WSContentSend_P(PSTR("}wl(sl);"));
|
||||
@ -1675,10 +1707,10 @@ void HandleModuleConfiguration(void)
|
||||
WSContentSend_P(PSTR("<tr><td style='width:140px'>%s <b>" D_GPIO "%d</b></td><td style='width:176px'><select id='g%d'></select></td></tr>"),
|
||||
(WEMOS==my_module_type)?stemp:"", i, i);
|
||||
#else // FINAL_ESP32
|
||||
WSContentSend_P(PSTR("<tr><td style='width:110px'>%s <b>" D_GPIO "%d</b></td><td style='width:156px'><select id='g%d' onchange='ot(%d,this.value)'></select></td>"),
|
||||
WSContentSend_P(PSTR("<tr><td style='width:116px'>%s <b>" D_GPIO "%d</b></td><td style='width:150px'><select id='g%d' onchange='ot(%d,this.value)'></select></td>"),
|
||||
(WEMOS==my_module_type)?stemp:"", i, i, i);
|
||||
WSContentSend_P(PSTR("<td style='width:50px'><select id='h%d'></select></td></tr>"), i);
|
||||
#endif //
|
||||
#endif // FINAL_ESP32
|
||||
#endif // ESP8266
|
||||
}
|
||||
}
|
||||
@ -1716,36 +1748,23 @@ void ModuleSaveSettings(void)
|
||||
snprintf_P(webindex, sizeof(webindex), PSTR("g%d"), i);
|
||||
WebGetArg(webindex, tmp, sizeof(tmp));
|
||||
uint32_t value = (!strlen(tmp)) ? 0 : atoi(tmp);
|
||||
#ifdef ESP8266
|
||||
Settings.my_gp.io[i] = value;
|
||||
#else // ESP32
|
||||
#ifndef FINAL_ESP32
|
||||
if (i == ADC0_PIN) {
|
||||
Settings.my_adc0 = value;
|
||||
} else {
|
||||
Settings.my_gp.io[i] = value;
|
||||
}
|
||||
#else // FINAL_ESP32
|
||||
#ifdef ESP32
|
||||
#ifdef FINAL_ESP32
|
||||
char tmp2[8]; // WebGetArg numbers only
|
||||
char webindex2[5]; // WebGetArg name
|
||||
snprintf_P(webindex2, sizeof(webindex2), PSTR("h%d"), i);
|
||||
WebGetArg(webindex2, tmp2, sizeof(tmp2));
|
||||
uint32_t value2 = (!strlen(tmp2)) ? 0 : atoi(tmp2) -1;
|
||||
value += value2;
|
||||
if (i == ADC0_PIN) {
|
||||
Settings.my_adc0 = value;
|
||||
} else {
|
||||
Settings.my_gp.io[i] = value;
|
||||
}
|
||||
#endif // FINAL_ESP32
|
||||
#endif // ESP8266 - ESP32
|
||||
Settings.my_gp.io[i] = value;
|
||||
gpios += F(", " D_GPIO ); gpios += String(i); gpios += F(" "); gpios += String(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
#ifdef ESP8266
|
||||
#ifndef USE_ADC_VCC
|
||||
// WebGetArg("g17", tmp, sizeof(tmp));
|
||||
WebGetArg("g" STR(ADC0_PIN), tmp, sizeof(tmp));
|
||||
Settings.my_adc0 = (!strlen(tmp)) ? 0 : atoi(tmp);
|
||||
gpios += F(", " D_ADC "0 "); gpios += String(Settings.my_adc0);
|
||||
|
@ -317,11 +317,18 @@ void AdcShow(bool json)
|
||||
\*********************************************************************************************/
|
||||
|
||||
const char kAdcCommands[] PROGMEM = "|" // No prefix
|
||||
D_CMND_ADC "|" D_CMND_ADCS "|" D_CMND_ADCPARAM;
|
||||
#ifdef ESP8266
|
||||
D_CMND_ADC "|" D_CMND_ADCS "|"
|
||||
#endif // ESP8266
|
||||
D_CMND_ADCPARAM;
|
||||
|
||||
void (* const AdcCommand[])(void) PROGMEM = {
|
||||
&CmndAdc, &CmndAdcs, &CmndAdcParam };
|
||||
#ifdef ESP8266
|
||||
&CmndAdc, &CmndAdcs,
|
||||
#endif // ESP8266
|
||||
&CmndAdcParam };
|
||||
|
||||
#ifdef ESP8266
|
||||
void CmndAdc(void)
|
||||
{
|
||||
if (ValidAdc() && (XdrvMailbox.payload >= 0) && (XdrvMailbox.payload < ADC0_END)) {
|
||||
@ -346,6 +353,7 @@ void CmndAdcs(void)
|
||||
}
|
||||
ResponseJsonEndEnd();
|
||||
}
|
||||
#endif // ESP8266
|
||||
|
||||
void CmndAdcParam(void)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user