2020-02-17 Fred Gleason <fredg@paravelsystems.com>

* Removed Q3Socket dependency from the Quartz 1 switcher driver.
This commit is contained in:
Fred Gleason
2020-02-17 09:51:03 -05:00
parent b5ad09d92c
commit f800d87e81
3 changed files with 74 additions and 71 deletions

View File

@@ -19629,3 +19629,5 @@
2020-02-17 Fred Gleason <fredg@paravelsystems.com>
* Removed Q3Socket dependency from the Modbus switcher
driver.
2020-02-17 Fred Gleason <fredg@paravelsystems.com>
* Removed Q3Socket dependency from the Quartz 1 switcher driver.

View File

@@ -55,10 +55,10 @@ Quartz1::Quartz1(RDMatrix *matrix,QObject *parent)
//
// Reconnection Timers
//
QSignalMapper *mapper=new QSignalMapper(this,"reconnect_mapper");
QSignalMapper *mapper=new QSignalMapper(this);
connect(mapper,SIGNAL(mapped(int)),this,SLOT(ipConnect(int)));
for(int i=0;i<2;i++) {
sas_reconnect_timer[i]=new QTimer(this,"sas_reconnect_timer");
sas_reconnect_timer[i]=new QTimer(this);
mapper->setMapping(sas_reconnect_timer[i],i);
connect(sas_reconnect_timer[i],SIGNAL(timeout()),mapper,SLOT(map()));
}
@@ -66,9 +66,9 @@ Quartz1::Quartz1(RDMatrix *matrix,QObject *parent)
//
// Initialize the connections
//
QSignalMapper *connected_mapper=new QSignalMapper(this,"connected_mapper");
QSignalMapper *connected_mapper=new QSignalMapper(this);
connect(connected_mapper,SIGNAL(mapped(int)),this,SLOT(connectedData(int)));
QSignalMapper *closed_mapper=new QSignalMapper(this,"closed_mapper");
QSignalMapper *closed_mapper=new QSignalMapper(this);
connect(closed_mapper,SIGNAL(mapped(int)),
this,SLOT(connectionClosedData(int)));
for(int i=0;i<2;i++) {
@@ -87,22 +87,22 @@ Quartz1::Quartz1(RDMatrix *matrix,QObject *parent)
delete tty;
case RDMatrix::TcpPort:
sas_socket[i]=new Q3Socket(this,"sas_socket");
sas_socket[i]=new QTcpSocket(this);
connected_mapper->setMapping(sas_socket[i],i);
connect(sas_socket[i],SIGNAL(connected()),
connected_mapper,SLOT(map()));
closed_mapper->setMapping(sas_socket[i],i);
connect(sas_socket[i],SIGNAL(connectionClosed()),
connect(sas_socket[i],SIGNAL(disconnected()),
closed_mapper,SLOT(map()));
switch(i) {
case 0:
connect(sas_socket[i],SIGNAL(error(int)),
this,SLOT(error0Data(int)));
connect(sas_socket[i],SIGNAL(error(QAbstractSocket::SocketError)),
this,SLOT(error0Data(QAbstractSocket::SocketError)));
break;
case 1:
connect(sas_socket[i],SIGNAL(error(int)),
this,SLOT(error1Data(int)));
connect(sas_socket[i],SIGNAL(error(QAbstractSocket::SocketError)),
this,SLOT(error1Data(QAbstractSocket::SocketError)));
break;
}
ipConnect(i);
@@ -210,10 +210,10 @@ void Quartz1::connectionClosedData(int conn)
}
void Quartz1::errorData(int conn,int err)
void Quartz1::errorData(int conn,QAbstractSocket::SocketError err)
{
switch((Q3Socket::Error)err) {
case Q3Socket::ErrConnectionRefused:
switch(err) {
case QAbstractSocket::ConnectionRefusedError:
rda->syslog(LOG_WARNING,
"connection to Quartz1 device at %s:%d refused, attempting reconnect",
(const char *)sas_ipaddress[conn].toString().toUtf8(),
@@ -221,16 +221,17 @@ void Quartz1::errorData(int conn,int err)
sas_reconnect_timer[conn]->start(QUARTZ1_RECONNECT_INTERVAL,true);
break;
case Q3Socket::ErrHostNotFound:
case QAbstractSocket::HostNotFoundError:
rda->syslog(LOG_WARNING,
"error on connection to Quartz1 device at %s:%d: Host Not Found",
(const char *)sas_ipaddress[conn].toString().toUtf8(),
sas_ipport[conn]);
break;
case Q3Socket::ErrSocketRead:
default:
rda->syslog(LOG_WARNING,
"error on connection to Quartz1 device at %s:%d: Socket Read Error",
"error %d on connection to Quartz1 device at %s:%d",
err,
(const char *)sas_ipaddress[conn].toString().toUtf8(),
sas_ipport[conn]);
break;
@@ -238,13 +239,13 @@ void Quartz1::errorData(int conn,int err)
}
void Quartz1::error0Data(int err)
void Quartz1::error0Data(QAbstractSocket::SocketError err)
{
errorData(0,err);
}
void Quartz1::error1Data(int err)
void Quartz1::error1Data(QAbstractSocket::SocketError err)
{
errorData(1,err);
}

View File

@@ -2,7 +2,7 @@
//
// A Rivendell switcher driver for the Quartz Type 1 Switcher Protocol
//
// (C) Copyright 2002-2004,2008,2016 Fred Gleason <fredg@paravelsystems.com>
// (C) Copyright 2002-2020 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
@@ -21,8 +21,8 @@
#ifndef QUARTZ1_H
#define QUARTZ1_H
#include <q3socket.h>
#include <qhostaddress.h>
#include <qtcpsocket.h>
#include <qtimer.h>
#include <rd.h>
@@ -51,14 +51,14 @@ class Quartz1 : public Switcher
void ipConnect(int conn);
void connectedData(int conn);
void connectionClosedData(int conn);
void errorData(int conn,int err);
void error0Data(int err);
void error1Data(int err);
void errorData(int conn,QAbstractSocket::SocketError err);
void error0Data(QAbstractSocket::SocketError err);
void error1Data(QAbstractSocket::SocketError err);
private:
void SendCommand(const char *str);
RDTTYDevice *sas_device[2];
Q3Socket *sas_socket[2];
QTcpSocket *sas_socket[2];
char sas_buffer[2][QUARTZ1_MAX_LENGTH];
unsigned sas_ptr[2];
QHostAddress sas_ipaddress[2];