From fa894996a951ae1382d6026b4c9ec3c60b7d5606 Mon Sep 17 00:00:00 2001 From: Fred Gleason Date: Fri, 14 Feb 2020 17:28:24 -0500 Subject: [PATCH] 2020-02-14 Fred Gleason * Fixed a regression in the BroadcastTools SS16.4 switcher driver that could cause deadlocks and intermittent operation. --- ChangeLog | 3 +++ lib/rdttydevice.cpp | 2 ++ ripcd/btss164.cpp | 8 +------- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index f709fa93..65f7ff59 100644 --- a/ChangeLog +++ b/ChangeLog @@ -19533,3 +19533,6 @@ * Cleaned up a compiler warning in 'lib/rdcae.cpp'. 2020-02-07 Fred Gleason * Incremented the package version to 3.2.1int1. +2020-02-14 Fred Gleason + * Fixed a regression in the BroadcastTools SS16.4 switcher driver + that could cause deadlocks and intermittent operation. diff --git a/lib/rdttydevice.cpp b/lib/rdttydevice.cpp index 40df6b3d..d23ee8b6 100644 --- a/lib/rdttydevice.cpp +++ b/lib/rdttydevice.cpp @@ -55,6 +55,8 @@ bool RDTTYDevice::open(QIODevice::OpenMode mode) int flags=O_NONBLOCK|O_NOCTTY; struct termios term; + QIODevice::open(mode); + tty_mode=mode; if((mode&QIODevice::ReadWrite)==QIODevice::ReadWrite) { flags|=O_RDWR; diff --git a/ripcd/btss164.cpp b/ripcd/btss164.cpp index e22fdaca..5612efb2 100644 --- a/ripcd/btss164.cpp +++ b/ripcd/btss164.cpp @@ -53,6 +53,7 @@ BtSs164::BtSs164(RDMatrix *matrix,QObject *parent) // RDTty *tty=new RDTty(rda->station()->name(),matrix->port(RDMatrix::Primary)); bt_device=new RDTTYDevice(); + connect(bt_device,SIGNAL(readyRead()),this,SLOT(processStatus())); if(tty->active()) { bt_device->setName(tty->port()); bt_device->setSpeed(tty->baudRate()); @@ -69,13 +70,6 @@ BtSs164::BtSs164(RDMatrix *matrix,QObject *parent) connect(bt_gpi_oneshot,SIGNAL(timeout(int)),this,SLOT(gpiOneshotData(int))); bt_gpo_oneshot=new RDOneShot(this); connect(bt_gpo_oneshot,SIGNAL(timeout(int)),this,SLOT(gpoOneshotData(int))); - - // - // The Poll Timer - // - QTimer *timer=new QTimer(this,"poll_timer"); - connect(timer,SIGNAL(timeout()),this,SLOT(processStatus())); - timer->start(BTSS164_POLL_INTERVAL); }