2018-07-31 Fred Gleason <fredg@paravelsystems.com>

* Refactored 'RDMacro' to handle UTF-8 strings correctly.
This commit is contained in:
Fred Gleason
2018-07-31 12:54:08 -04:00
parent dbb0d9c415
commit 26c29e1d4e
47 changed files with 676 additions and 686 deletions

View File

@@ -124,14 +124,14 @@ void Bt16x2::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);
@@ -139,14 +139,14 @@ void Bt16x2::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") {
sprintf(str,"*%dOR%02dF",BT16X2_UNIT_ID,cmd->arg(2).toInt());
bt_device->writeBlock(str,6);
emit gpoChanged(bt_matrix,cmd->arg(2).toInt()-1,false);
@@ -167,21 +167,21 @@ void Bt16x2::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") {
sprintf(str,"*%dOR%02dL",BT16X2_UNIT_ID,cmd->arg(2).toInt());
bt_device->writeBlock(str,6);
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;
@@ -189,7 +189,7 @@ void Bt16x2::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") {
sprintf(str,"*%dOR%02dP",BT16X2_UNIT_ID,cmd->arg(2).toInt());
bt_device->writeBlock(str,6);
emit gpoChanged(bt_matrix,cmd->arg(2).toInt()-1,true);