mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-24 19:26:37 +00:00
Module/Gpio re-design - consolidate internal templates - phase 3
Module/Gpio re-design - consolidate internal templates - phase 3
This commit is contained in:
parent
3c612c4fca
commit
2d8916a9fa
@ -1206,6 +1206,39 @@ String ModuleName(void)
|
|||||||
return AnyModuleName(Settings.module);
|
return AnyModuleName(Settings.module);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GetInternalTemplate(void* ptr, uint32_t module, uint32_t option) {
|
||||||
|
uint8_t module_template = pgm_read_byte(kModuleTemplateList + module);
|
||||||
|
|
||||||
|
// AddLog_P2(LOG_LEVEL_DEBUG, PSTR("DBG: Template %d, Option %d"), module_template, option);
|
||||||
|
|
||||||
|
uint8_t internal_template[sizeof(mytmplt)] = { GPIO_NONE };
|
||||||
|
if (module_template < TMP_WEMOS) {
|
||||||
|
memcpy_P(&internal_template, &kModules8266[module_template], 6);
|
||||||
|
memcpy_P(&internal_template[8], &kModules8266[module_template].gp.io[6], 6);
|
||||||
|
} else {
|
||||||
|
memcpy_P(&internal_template, &kModules8285[module_template - TMP_WEMOS], sizeof(mytmplt));
|
||||||
|
}
|
||||||
|
|
||||||
|
// AddLogBuffer(LOG_LEVEL_DEBUG, (uint8_t *)&internal_template, sizeof(mytmplt));
|
||||||
|
|
||||||
|
uint32_t index = 0;
|
||||||
|
uint32_t size = sizeof(mycfgio); // kmodule[module_template].gp
|
||||||
|
switch (option) {
|
||||||
|
case 2: {
|
||||||
|
index = sizeof(internal_template) -1; // kModules[module_template].flag
|
||||||
|
size = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 3: {
|
||||||
|
size = sizeof(internal_template); // kmodule[module_template]
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
memcpy(ptr, &internal_template[index], size);
|
||||||
|
|
||||||
|
// AddLogBuffer(LOG_LEVEL_DEBUG, (uint8_t *)ptr, size);
|
||||||
|
}
|
||||||
|
|
||||||
void ModuleGpios(myio *gp)
|
void ModuleGpios(myio *gp)
|
||||||
{
|
{
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
@ -1221,8 +1254,7 @@ void ModuleGpios(myio *gp)
|
|||||||
memcpy(&src, &Settings.user_template.gp, sizeof(mycfgio));
|
memcpy(&src, &Settings.user_template.gp, sizeof(mycfgio));
|
||||||
} else {
|
} else {
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
uint8_t module_template = pgm_read_byte(kModuleTemplateList + Settings.module);
|
GetInternalTemplate(&src, Settings.module, 1);
|
||||||
memcpy_P(&src, &kModules[module_template].gp, sizeof(mycfgio));
|
|
||||||
#else // ESP32
|
#else // ESP32
|
||||||
memcpy_P(&src, &kModules.gp, sizeof(mycfgio));
|
memcpy_P(&src, &kModules.gp, sizeof(mycfgio));
|
||||||
#endif // ESP8266 - ESP32
|
#endif // ESP8266 - ESP32
|
||||||
@ -1251,8 +1283,7 @@ gpio_flag ModuleFlag(void)
|
|||||||
flag = Settings.user_template.flag;
|
flag = Settings.user_template.flag;
|
||||||
} else {
|
} else {
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
uint8_t module_template = pgm_read_byte(kModuleTemplateList + Settings.module);
|
GetInternalTemplate(&flag, Settings.module, 2);
|
||||||
memcpy_P(&flag, &kModules[module_template].flag, sizeof(gpio_flag));
|
|
||||||
#else // ESP32
|
#else // ESP32
|
||||||
memcpy_P(&flag, &kModules.flag, sizeof(gpio_flag));
|
memcpy_P(&flag, &kModules.flag, sizeof(gpio_flag));
|
||||||
#endif // ESP8266 - ESP32
|
#endif // ESP8266 - ESP32
|
||||||
@ -1268,8 +1299,7 @@ void ModuleDefault(uint32_t module)
|
|||||||
char name[TOPSZ];
|
char name[TOPSZ];
|
||||||
SettingsUpdateText(SET_TEMPLATE_NAME, GetTextIndexed(name, sizeof(name), module, kModuleNames));
|
SettingsUpdateText(SET_TEMPLATE_NAME, GetTextIndexed(name, sizeof(name), module, kModuleNames));
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
uint8_t module_template = pgm_read_byte(kModuleTemplateList + module);
|
GetInternalTemplate(&Settings.user_template, module, 3);
|
||||||
memcpy_P(&Settings.user_template, &kModules[module_template], sizeof(mytmplt));
|
|
||||||
#else // ESP32
|
#else // ESP32
|
||||||
memcpy_P(&Settings.user_template, &kModules, sizeof(mytmplt));
|
memcpy_P(&Settings.user_template, &kModules, sizeof(mytmplt));
|
||||||
#endif // ESP8266 - ESP32
|
#endif // ESP8266 - ESP32
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user