UNTESTED interim commit with refactoring

This commit is contained in:
2020-11-13 14:19:30 +03:00
parent 544252fb14
commit 118fd25186
24 changed files with 1373 additions and 592 deletions

View File

@@ -129,7 +129,7 @@ void out_AC::InsertData(byte data[], size_t size){
/////////////////////////////////
publishTopic(item->itemArr->name,(long)set_tmp,"/set");
publishTopic(item->itemArr->name, (long)cur_tmp, "/temp");
if (cur_tmp!=255) publishTopic(item->itemArr->name, (long)cur_tmp, "/temp");
////////////////////////////////////
s_mode[0]='\0';
@@ -148,6 +148,9 @@ void out_AC::InsertData(byte data[], size_t size){
else if (mode == 0x04){
strcpy_P(s_mode,DRY_P);
}
else if (mode == 109){
strcpy_P(s_mode,ERROR_P);
}
publishTopic(item->itemArr->name, (long) mode, "/mode");
@@ -259,7 +262,8 @@ delay(100);
return INTERVAL_POLLING;
};
int out_AC::Ctrl(short cmd, short n, int * Parameters, int suffixCode, char* subItem)
//int out_AC::Ctrl(short cmd, short n, int * Parameters, int suffixCode, char* subItem)
int out_AC::Ctrl(itemCmd cmd, int suffixCode, char* subItem)
{char s_mode[10];
// Some additional Subitems
if (strcmp_P(subItem, LOCK_P) == 0) suffixCode = S_LOCK;
@@ -267,12 +271,14 @@ int out_AC::Ctrl(short cmd, short n, int * Parameters, int suffixCode, char* su
else if (strcmp_P(subItem, QUIET_P) == 0) suffixCode = S_QUIET;
else if (strcmp_P(subItem, RAW_P) == 0) suffixCode = S_RAW;
if (cmd.isCommand() && !suffixCode) suffixCode=S_CMD; //if some known command find, but w/o correct suffix - got it
//data[B_POWER] = power;
// debugSerial<<F(".");
switch(suffixCode)
{
case S_SET:
set_tmp = Parameters[0];
set_tmp = cmd.getInt();
if (set_tmp >= 10 && set_tmp <= 30)
{
data[B_SET_TMP] = set_tmp -16;
@@ -282,7 +288,7 @@ int out_AC::Ctrl(short cmd, short n, int * Parameters, int suffixCode, char* su
case S_CMD:
s_mode[0]='\0';
switch (cmd)
switch (cmd.getCmd())
{
case CMD_ON:
case CMD_XON:
@@ -340,7 +346,7 @@ int out_AC::Ctrl(short cmd, short n, int * Parameters, int suffixCode, char* su
case S_FAN:
s_mode[0]='\0';
switch (cmd)
switch (cmd.getCmd())
{
case CMD_AUTO:
data[B_FAN_SPD] = 3;
@@ -359,18 +365,20 @@ int out_AC::Ctrl(short cmd, short n, int * Parameters, int suffixCode, char* su
strcpy_P(s_mode,LOW_P);
break;
default:
if (n) data[B_FAN_SPD] = Parameters[0];
//if (n) data[B_FAN_SPD] = Parameters[0];
data[B_FAN_SPD] = cmd.getInt();
//TODO - mapping digits to speed
}
publishTopic(item->itemArr->name,s_mode,"/fan");
break;
case S_MODE:
data[B_MODE] = Parameters[0];
//data[B_MODE] = Parameters[0];
data[B_MODE] = cmd.getInt();
break;
case S_LOCK:
switch (cmd)
switch (cmd.getCmd())
{
case CMD_ON:
data[B_LOCK_REM] = 80;
@@ -382,7 +390,7 @@ int out_AC::Ctrl(short cmd, short n, int * Parameters, int suffixCode, char* su
break;
case S_SWING:
switch (cmd)
switch (cmd.getCmd())
{
case CMD_ON:
data[B_LOCK_REM] = 3;
@@ -391,12 +399,13 @@ int out_AC::Ctrl(short cmd, short n, int * Parameters, int suffixCode, char* su
data[B_LOCK_REM] = 0;
break;
default:
if (n) data[B_SWING] = Parameters[0];
//if (n) data[B_SWING] = Parameters[0];
data[B_SWING] = cmd.getInt();
}
break;
case S_QUIET:
switch (cmd)
switch (cmd.getCmd())
{
case CMD_ON:
data[B_POWER] |= 8;