mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-28 13:16:32 +00:00
Update xdrv_10_rules.ino
Move const to flash
This commit is contained in:
parent
3cb39bec24
commit
ee2660b2bc
@ -88,16 +88,7 @@
|
||||
#define COMPARE_OPERATOR_BIGGER_EQUAL 6
|
||||
#define COMPARE_OPERATOR_SMALLER_EQUAL 7
|
||||
#define MAXIMUM_COMPARE_OPERATOR COMPARE_OPERATOR_SMALLER_EQUAL
|
||||
char* compare_operators[] = {
|
||||
"=",
|
||||
">",
|
||||
"<",
|
||||
"|",
|
||||
"==",
|
||||
"!=",
|
||||
">=",
|
||||
"<="
|
||||
};
|
||||
const char kCompareOperators[] PROGMEM = "=\0>\0<\0|\0==!=>=<=";
|
||||
|
||||
enum RulesCommands { CMND_RULE, CMND_RULETIMER, CMND_EVENT, CMND_VAR, CMND_MEM, CMND_ADD, CMND_SUB, CMND_MULT, CMND_SCALE, CMND_CALC_RESOLUTION };
|
||||
const char kRulesCommands[] PROGMEM = D_CMND_RULE "|" D_CMND_RULETIMER "|" D_CMND_EVENT "|" D_CMND_VAR "|" D_CMND_MEM "|" D_CMND_ADD "|" D_CMND_SUB "|" D_CMND_MULT "|" D_CMND_SCALE "|" D_CMND_CALC_RESOLUTION ;
|
||||
@ -149,9 +140,11 @@ bool RulesRuleMatch(uint8_t rule_set, String &event, String &rule)
|
||||
|
||||
String rule_name = rule.substring(pos +1); // "CURRENT>0.100" or "BOOT" or "%var1%" or "MINUTE|5"
|
||||
|
||||
char compare_operator[3];
|
||||
int8_t compare = COMPARE_OPERATOR_NONE;
|
||||
for (int8_t i = MAXIMUM_COMPARE_OPERATOR; i >= 0; i--) {
|
||||
if ((pos = rule_name.indexOf(compare_operators[i])) > 0) {
|
||||
snprintf_P(compare_operator, sizeof(compare_operator), kCompareOperators + (i *2));
|
||||
if ((pos = rule_name.indexOf(compare_operator)) > 0) {
|
||||
compare = i;
|
||||
break;
|
||||
}
|
||||
@ -160,7 +153,7 @@ bool RulesRuleMatch(uint8_t rule_set, String &event, String &rule)
|
||||
char rule_svalue[CMDSZ] = { 0 };
|
||||
double rule_value = 0;
|
||||
if (compare != COMPARE_OPERATOR_NONE) {
|
||||
String rule_param = rule_name.substring(pos + strlen(compare_operators[compare]));
|
||||
String rule_param = rule_name.substring(pos + strlen(compare_operator));
|
||||
for (uint8_t i = 0; i < MAX_RULE_VARS; i++) {
|
||||
snprintf_P(stemp, sizeof(stemp), PSTR("%%VAR%d%%"), i +1);
|
||||
if (rule_param.startsWith(stemp)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user