Refactoring/smoke tested

This commit is contained in:
2020-11-19 16:39:06 +03:00
parent 14ff55fd59
commit 9fa9e0f481
14 changed files with 369 additions and 910 deletions

View File

@@ -263,7 +263,7 @@ return INTERVAL_POLLING;
};
//int out_AC::Ctrl(short cmd, short n, int * Parameters, int suffixCode, char* subItem)
int out_AC::Ctrl(itemCmd cmd, char* subItem)
int out_AC::Ctrl(itemCmd cmd, char* subItem , bool toExecute)
{char s_mode[10];
int suffixCode = cmd.getSuffix();
// Some additional Subitems

View File

@@ -30,7 +30,7 @@ public:
int Status() override;
int isActive() override;
//int Ctrl(short cmd, short n=0, int * Parameters=NULL, int suffixCode=0, char* subItem=NULL) override;
int Ctrl(itemCmd cmd, char* subItem=NULL) override;
int Ctrl(itemCmd cmd, char* subItem=NULL, bool toExecute=true) override;
protected:
void InsertData(byte data[], size_t size);

View File

@@ -338,11 +338,11 @@ int out_Modbus::getChanType()
int out_Modbus::Ctrl(itemCmd cmd, char* subItem)
int out_Modbus::Ctrl(itemCmd cmd, char* subItem, bool toExecute)
{
int chActive = item->isActive();
bool toExecute = (chActive>0);
itemCmd st(ST_UINT32,CMD_VOID);
//int chActive = item->isActive();
//bool toExecute = (chActive>0);
//itemCmd st(ST_UINT32,CMD_VOID);
int suffixCode = cmd.getSuffix();
if (cmd.isCommand() && !suffixCode) suffixCode=S_CMD; //if some known command find, but w/o correct suffix - got it
@@ -355,58 +355,30 @@ toExecute = true;
debugSerial<<F("Forced execution");
case S_SET:
if (!cmd.isValue()) return 0;
//////item->setVal(st=Parameters[0]); //Store
if (!suffixCode)
{
if (chActive>0 && !st.getInt()) item->setCmd(CMD_OFF);
if (chActive==0 && st.getInt()) item->setCmd(CMD_ON);
item->SendStatus(SEND_COMMAND | SEND_PARAMETERS | SEND_DEFFERED);
// if (item->getExt()) item->setExt(millis()+maxOnTime); //Extend motor time
}
else item->SendStatus(SEND_PARAMETERS | SEND_DEFFERED);
//TODO
return 1;
//break;
case S_CMD:
//item->setCmd(cmd.getCmd());
st.loadItem(item);
switch (cmd.getCmd())
{
case CMD_ON:
//retrive stored values
st.loadItem(item);
if (st.getPercents() && (st.getPercents()<MIN_VOLUME) /* && send */) st.Percents(INIT_VOLUME);
st.saveItem(item);
if (st.getPercents()) //Stored smthng
{
item->SendStatus(SEND_COMMAND | SEND_PARAMETERS);
debugSerial<<F("Restored: ")<<st.getPercents()<<endl;
}
else
{
debugSerial<<F(": No stored values - default\n");
// Store
st.setDefault();
st.saveItem(item);
item->SendStatus(SEND_COMMAND | SEND_PARAMETERS );
}
// if (item->getExt()) item->setExt(millis()+maxOnTime); //Extend motor time
return 1;
case CMD_OFF:
item->SendStatus(SEND_COMMAND);
// if (item->getExt()) item->setExt(millis()+maxOnTime); //Extend motor time
return 1;
} //switch cmd
default:
debugSerial<<F("Unknown cmd ")<<cmd.getCmd()<<endl;
} //switch cmd
break;
default:
debugSerial<<F("Unknown suffix ")<<suffixCode<<endl;
} //switch suffix
debugSerial<<F("Unknown cmd")<<endl;
return 0;
}

View File

@@ -31,7 +31,7 @@ public:
int Status() override;
int isActive() override;
int getChanType() override;
int Ctrl(itemCmd cmd, char* subItem=NULL) override;
int Ctrl(itemCmd cmd, char* subItem=NULL, bool toExecute=true) override;
//int Ctrl(short cmd, short n=0, int * Parameters=NULL, int suffixCode=0, char* subItem=NULL) override;
protected:

View File

@@ -211,12 +211,12 @@ int out_Motor::getChanType()
int out_Motor::Ctrl(itemCmd cmd, char* subItem)
int out_Motor::Ctrl(itemCmd cmd, char* subItem , bool toExecute)
{
int chActive = item->isActive();
bool toExecute = (chActive>0);
//int chActive = item->isActive();
//bool toExecute = (chActive>0);
int suffixCode = cmd.getSuffix();
itemCmd st(ST_PERCENTS,CMD_VOID);
//itemCmd st(ST_PERCENTS,CMD_VOID);
if (cmd.isCommand() && !suffixCode) suffixCode=S_CMD; //if some known command find, but w/o correct suffix - got it
item->setFlag(ACTION_NEEDED);
@@ -229,6 +229,8 @@ toExecute = true;
debugSerial<<F("Forced execution");
case S_SET:
if (!cmd.isValue()) return 0;
if (item->getExt()) item->setExt(millis()+maxOnTime); //Extend motor time
/*
st.assignFrom(cmd);
//Store
st.saveItem(item);
@@ -240,7 +242,7 @@ case S_SET:
if (item->getExt()) item->setExt(millis()+maxOnTime); //Extend motor time
}
else item->SendStatus(SEND_PARAMETERS | SEND_DEFFERED);
*/
return 1;
//break;
@@ -249,10 +251,12 @@ case S_CMD:
switch (cmd.getCmd())
{
case CMD_ON:
/*
//retrive stored values
if (st.loadItem(item))
{
if (st.getPercents() && (st.getPercents()<MIN_VOLUME) /* && send */)
if (st.getPercents() && (st.getPercents()<MIN_VOLUME))
{ //Volume too low
st.Percents(INIT_VOLUME);
st.saveItem(item);
@@ -270,12 +274,12 @@ case S_CMD:
//item->setVal(st);
item->SendStatus(SEND_COMMAND | SEND_PARAMETERS );
}
*/
if (item->getExt()) item->setExt(millis()+maxOnTime); //Extend motor time
return 1;
case CMD_OFF:
item->SendStatus(SEND_COMMAND);
////item->SendStatus(SEND_COMMAND);
if (item->getExt()) item->setExt(millis()+maxOnTime); //Extend motor time
return 1;

View File

@@ -26,7 +26,7 @@ public:
int isActive() override;
int getChanType() override;
//int Ctrl(short cmd, short n=0, int * Parameters=NULL, int suffixCode=0, char* subItem=NULL) override;
int Ctrl(itemCmd cmd, char* subItem=NULL) override;
int Ctrl(itemCmd cmd, char* subItem=NULL, bool toExecute=true) override;
int8_t pinUp;
int8_t pinDown;