mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-10-11 09:03:40 +02:00
2018-07-31 Fred Gleason <fredg@paravelsystems.com>
* Refactored 'RDMacro' to handle UTF-8 strings correctly.
This commit is contained in:
@@ -128,14 +128,14 @@ void Acu1p::processCommand(RDMacro *cmd)
|
||||
switch(cmd->command()) {
|
||||
case RDMacro::GO:
|
||||
if((cmd->argQuantity()!=5)||
|
||||
((cmd->arg(1).toString().lower()!="i")&&
|
||||
(cmd->arg(1).toString().lower()!="o"))||
|
||||
((cmd->arg(1).lower()!="i")&&
|
||||
(cmd->arg(1).lower()!="o"))||
|
||||
(cmd->arg(2).toInt()<1)||(cmd->arg(3).toInt()>bt_gpos)||
|
||||
(cmd->arg(2).toInt()>bt_gpos)||
|
||||
((cmd->arg(3).toInt()!=1)&&(cmd->arg(3).toInt()!=0)&&
|
||||
(cmd->arg(1).toString().lower()!="i"))||
|
||||
(cmd->arg(1).lower()!="i"))||
|
||||
((cmd->arg(3).toInt()!=1)&&(cmd->arg(3).toInt()!=0)&&
|
||||
(cmd->arg(3).toInt()!=-1)&&(cmd->arg(1).toString().lower()=="i"))||
|
||||
(cmd->arg(3).toInt()!=-1)&&(cmd->arg(1).lower()=="i"))||
|
||||
(cmd->arg(4).toInt()<0)) {
|
||||
cmd->acknowledge(false);
|
||||
emit rmlEcho(cmd);
|
||||
@@ -143,14 +143,14 @@ void Acu1p::processCommand(RDMacro *cmd)
|
||||
}
|
||||
if(cmd->arg(3).toInt()==0) { // Turn OFF
|
||||
if(cmd->arg(4).toInt()==0) {
|
||||
if(cmd->arg(1).toString().lower()=="i") {
|
||||
if(cmd->arg(1).lower()=="i") {
|
||||
if(bt_gpi_state[cmd->arg(2).toInt()-1]) {
|
||||
emit gpiChanged(bt_matrix,cmd->arg(2).toInt()-1,false);
|
||||
bt_gpi_state[cmd->arg(2).toInt()-1]=false;
|
||||
}
|
||||
bt_gpi_mask[cmd->arg(2).toInt()-1]=true;
|
||||
}
|
||||
if(cmd->arg(1).toString().lower()=="o") {
|
||||
if(cmd->arg(1).lower()=="o") {
|
||||
SetRelay(cmd->arg(2).toInt()-1,false);
|
||||
emit gpoChanged(bt_matrix,cmd->arg(2).toInt()-1,false);
|
||||
}
|
||||
@@ -170,20 +170,20 @@ void Acu1p::processCommand(RDMacro *cmd)
|
||||
}
|
||||
else {
|
||||
if(cmd->arg(4).toInt()==0) { // Turn ON
|
||||
if(cmd->arg(1).toString().lower()=="i") {
|
||||
if(cmd->arg(1).lower()=="i") {
|
||||
if(!bt_gpi_state[cmd->arg(2).toInt()-1]) {
|
||||
emit gpiChanged(bt_matrix,cmd->arg(2).toInt()-1,true);
|
||||
bt_gpi_state[cmd->arg(2).toInt()-1]=true;
|
||||
}
|
||||
bt_gpi_mask[cmd->arg(2).toInt()-1]=true;
|
||||
}
|
||||
if(cmd->arg(1).toString().lower()=="o") {
|
||||
if(cmd->arg(1).lower()=="o") {
|
||||
SetRelay(cmd->arg(2).toInt()-1,true);
|
||||
emit gpoChanged(bt_matrix,cmd->arg(2).toInt()-1,true);
|
||||
}
|
||||
}
|
||||
else { // Pulse
|
||||
if(cmd->arg(1).toString().lower()=="i") {
|
||||
if(cmd->arg(1).lower()=="i") {
|
||||
if(!bt_gpi_state[cmd->arg(2).toInt()-1]) {
|
||||
emit gpiChanged(bt_matrix,cmd->arg(2).toInt()-1,true);
|
||||
bt_gpi_state[cmd->arg(2).toInt()-1]=true;
|
||||
@@ -191,7 +191,7 @@ void Acu1p::processCommand(RDMacro *cmd)
|
||||
bt_gpi_mask[cmd->arg(2).toInt()-1]=true;
|
||||
bt_gpi_oneshot->start(cmd->arg(2).toInt()-1,500);
|
||||
}
|
||||
if(cmd->arg(1).toString().lower()=="o") {
|
||||
if(cmd->arg(1).lower()=="o") {
|
||||
PulseRelay(cmd->arg(2).toInt()-1);
|
||||
emit gpoChanged(bt_matrix,cmd->arg(2).toInt()-1,true);
|
||||
bt_gpo_oneshot->start(cmd->arg(2).toInt()-1,500);
|
||||
|
Reference in New Issue
Block a user