2019-07-23 Fred Gleason <fredg@paravelsystems.com>

* Fixed regressions that made serial device operation unreliable.
This commit is contained in:
Fred Gleason
2019-07-23 14:19:06 -04:00
parent 70c88ec498
commit c3cc94143a
29 changed files with 216 additions and 217 deletions

View File

@@ -2,7 +2,7 @@
//
// A Rivendell switcher driver for the BroadcastTools ACS 8.2
//
// (C) Copyright 2002-2004,2016-2018 Fred Gleason <fredg@paravelsystems.com>
// (C) Copyright 2002-2019 Fred Gleason <fredg@paravelsystems.com>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
@@ -151,7 +151,7 @@ void BtAcs82::processCommand(RDMacro *cmd)
}
if(cmd->arg(1).lower()=="o") {
sprintf(str,"*%dOR%dF",BTACS82_UNIT_ID,cmd->arg(2).toInt());
bt_device->writeBlock(str,6);
bt_device->write(str,6);
emit gpoChanged(bt_matrix,cmd->arg(2).toInt()-1,false);
}
}
@@ -166,7 +166,7 @@ void BtAcs82::processCommand(RDMacro *cmd)
else {
if(cmd->arg(3).toInt()==-1) { // Clear input
bt_gpi_mask[cmd->arg(2).toInt()-1]=false;
bt_device->writeBlock("*0SPA",5);
bt_device->write("*0SPA",5);
}
else {
if(cmd->arg(4).toInt()==0) { // Turn ON
@@ -179,7 +179,7 @@ void BtAcs82::processCommand(RDMacro *cmd)
}
if(cmd->arg(1).lower()=="o") {
sprintf(str,"*%dOR%dL",BTACS82_UNIT_ID,cmd->arg(2).toInt());
bt_device->writeBlock(str,6);
bt_device->write(str,6);
emit gpoChanged(bt_matrix,cmd->arg(2).toInt()-1,true);
}
}
@@ -194,7 +194,7 @@ void BtAcs82::processCommand(RDMacro *cmd)
}
if(cmd->arg(1).lower()=="o") {
sprintf(str,"*%dOR%dP",BTACS82_UNIT_ID,cmd->arg(2).toInt());
bt_device->writeBlock(str,6);
bt_device->write(str,6);
emit gpoChanged(bt_matrix,cmd->arg(2).toInt()-1,true);
bt_gpo_oneshot->start(cmd->arg(2).toInt()-1,500);
}
@@ -216,7 +216,7 @@ void BtAcs82::processCommand(RDMacro *cmd)
}
sprintf(str,"*%d%02d%d",BTACS82_UNIT_ID,
cmd->arg(1).toInt(),cmd->arg(2).toInt());
bt_device->writeBlock(str,5);
bt_device->write(str,5);
cmd->acknowledge(true);
emit rmlEcho(cmd);
break;
@@ -230,7 +230,7 @@ void BtAcs82::processCommand(RDMacro *cmd)
}
sprintf(str,"*%d%02dM%d",BTACS82_UNIT_ID,
cmd->arg(1).toInt(),cmd->arg(2).toInt());
bt_device->writeBlock(str,6);
bt_device->write(str,6);
cmd->acknowledge(true);
emit rmlEcho(cmd);
break;
@@ -244,21 +244,21 @@ void BtAcs82::processCommand(RDMacro *cmd)
}
if(cmd->arg(1).toInt()==0) {
sprintf(str,"*%dM%d",BTACS82_UNIT_ID,cmd->arg(2).toInt());
bt_device->writeBlock(str,4);
bt_device->write(str,4);
}
else {
sprintf(str,"*%d%02d%d",BTACS82_UNIT_ID,
cmd->arg(1).toInt(),cmd->arg(2).toInt());
bt_device->writeBlock(str,5);
bt_device->write(str,5);
for(int i=1;i<cmd->arg(1).toInt();i++) {
sprintf(str,"*%d%02dM%d",BTACS82_UNIT_ID,
i,cmd->arg(2).toInt());
bt_device->writeBlock(str,6);
bt_device->write(str,6);
}
for(int i=cmd->arg(1).toInt()+1;i<9;i++) {
sprintf(str,"*%d%02dM%d",BTACS82_UNIT_ID,
i,cmd->arg(2).toInt());
bt_device->writeBlock(str,6);
bt_device->write(str,6);
}
}
cmd->acknowledge(true);
@@ -292,7 +292,7 @@ void BtAcs82::processCommand(RDMacro *cmd)
}
sprintf(str,"*%dDM%02d%d",BTACS82_UNIT_ID,
cmd->arg(1).toInt(),lvl);
bt_device->writeBlock(str,7);
bt_device->write(str,7);
cmd->acknowledge(true);
emit rmlEcho(cmd);
break;
@@ -311,7 +311,7 @@ void BtAcs82::processStatus()
int n;
int gpi;
while((n=bt_device->readBlock(buffer,255))>0) {
while((n=bt_device->read(buffer,255))>0) {
for(int i=0;i<n;i++) {
switch(bt_istate) {
case 0:
@@ -425,7 +425,7 @@ void BtAcs82::processStatus()
void BtAcs82::gpiOneshotData(int value)
{
bt_gpi_mask[value]=false;
bt_device->writeBlock("*0SPA",5);
bt_device->write("*0SPA",5);
}