mirror of https://github.com/arendst/Tasmota.git
commit
0ffd28bf21
|
@ -67,7 +67,7 @@ build_flags = ${core_active.build_flags}
|
||||||
|
|
||||||
; *********************************************************************
|
; *********************************************************************
|
||||||
; *** Use custom settings from file user_config_override.h
|
; *** Use custom settings from file user_config_override.h
|
||||||
-DUSE_CONFIG_OVERRIDE
|
; -DUSE_CONFIG_OVERRIDE
|
||||||
; *********************************************************************
|
; *********************************************************************
|
||||||
|
|
||||||
; *** Fix espressif8266@1.7.0 induced undesired all warnings
|
; *** Fix espressif8266@1.7.0 induced undesired all warnings
|
||||||
|
|
|
@ -1186,6 +1186,22 @@ chknext:
|
||||||
fvar=xPortGetCoreID();
|
fvar=xPortGetCoreID();
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
#ifdef USE_SCRIPT_TASK
|
||||||
|
if (!strncmp(vname,"ct(",3)) {
|
||||||
|
lp+=3;
|
||||||
|
lp=GetNumericResult(lp,OPER_EQU,&fvar,0);
|
||||||
|
while (*lp==' ') lp++;
|
||||||
|
float fvar1;
|
||||||
|
lp=GetNumericResult(lp,OPER_EQU,&fvar1,0);
|
||||||
|
while (*lp==' ') lp++;
|
||||||
|
float fvar2;
|
||||||
|
lp=GetNumericResult(lp,OPER_EQU,&fvar2,0);
|
||||||
|
lp++;
|
||||||
|
fvar=scripter_create_task(fvar,fvar1,fvar2);
|
||||||
|
len=0;
|
||||||
|
goto exit;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case 'd':
|
case 'd':
|
||||||
|
@ -5099,6 +5115,47 @@ bool RulesProcessEvent(char *json_event) {
|
||||||
if (bitRead(Settings.rule_enabled, 0)) Run_Scripter(">E",2,json_event);
|
if (bitRead(Settings.rule_enabled, 0)) Run_Scripter(">E",2,json_event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ESP32
|
||||||
|
#ifdef USE_SCRIPT_TASK
|
||||||
|
uint16_t task_timer1;
|
||||||
|
uint16_t task_timer2;
|
||||||
|
|
||||||
|
void script_task1(void *arg) {
|
||||||
|
while (1) {
|
||||||
|
delay(task_timer1);
|
||||||
|
Run_Scripter(">t1",3,0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void script_task2(void *arg) {
|
||||||
|
while (1) {
|
||||||
|
delay(task_timer2);
|
||||||
|
Run_Scripter(">t2",3,0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#ifndef STASK_STACK
|
||||||
|
#define STASK_STACK 4096
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef STASK_PRIO
|
||||||
|
#define STASK_PRIO 5
|
||||||
|
#endif
|
||||||
|
|
||||||
|
uint32_t scripter_create_task(uint32_t num, uint32_t time, uint32_t core) {
|
||||||
|
//return 0;
|
||||||
|
BaseType_t res=0;
|
||||||
|
if (core>1) {core = 1;}
|
||||||
|
if (num == 1) {
|
||||||
|
res = xTaskCreatePinnedToCore(script_task1, "T 1", STASK_STACK, NULL, STASK_PRIO, NULL, core);
|
||||||
|
task_timer1=time;
|
||||||
|
} else {
|
||||||
|
res = xTaskCreatePinnedToCore(script_task2, "T 2", STASK_STACK, NULL, STASK_PRIO, NULL, core);
|
||||||
|
task_timer2=time;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
#endif // USE_SCRIPT_TASK
|
||||||
|
#endif // ESP32
|
||||||
/*********************************************************************************************\
|
/*********************************************************************************************\
|
||||||
* Interface
|
* Interface
|
||||||
\*********************************************************************************************/
|
\*********************************************************************************************/
|
||||||
|
|
Loading…
Reference in New Issue