mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-10-11 17:13:47 +02:00
2020-02-17 Fred Gleason <fredg@paravelsystems.com>
* Removed Q3Socket dependency from the Quartz 1 switcher driver.
This commit is contained in:
@@ -19629,3 +19629,5 @@
|
|||||||
2020-02-17 Fred Gleason <fredg@paravelsystems.com>
|
2020-02-17 Fred Gleason <fredg@paravelsystems.com>
|
||||||
* Removed Q3Socket dependency from the Modbus switcher
|
* Removed Q3Socket dependency from the Modbus switcher
|
||||||
driver.
|
driver.
|
||||||
|
2020-02-17 Fred Gleason <fredg@paravelsystems.com>
|
||||||
|
* Removed Q3Socket dependency from the Quartz 1 switcher driver.
|
||||||
|
@@ -55,62 +55,62 @@ Quartz1::Quartz1(RDMatrix *matrix,QObject *parent)
|
|||||||
//
|
//
|
||||||
// Reconnection Timers
|
// Reconnection Timers
|
||||||
//
|
//
|
||||||
QSignalMapper *mapper=new QSignalMapper(this,"reconnect_mapper");
|
QSignalMapper *mapper=new QSignalMapper(this);
|
||||||
connect(mapper,SIGNAL(mapped(int)),this,SLOT(ipConnect(int)));
|
connect(mapper,SIGNAL(mapped(int)),this,SLOT(ipConnect(int)));
|
||||||
for(int i=0;i<2;i++) {
|
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);
|
mapper->setMapping(sas_reconnect_timer[i],i);
|
||||||
connect(sas_reconnect_timer[i],SIGNAL(timeout()),mapper,SLOT(map()));
|
connect(sas_reconnect_timer[i],SIGNAL(timeout()),mapper,SLOT(map()));
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Initialize the connections
|
// 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)));
|
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)),
|
connect(closed_mapper,SIGNAL(mapped(int)),
|
||||||
this,SLOT(connectionClosedData(int)));
|
this,SLOT(connectionClosedData(int)));
|
||||||
for(int i=0;i<2;i++) {
|
for(int i=0;i<2;i++) {
|
||||||
switch(sas_porttype[i]) {
|
switch(sas_porttype[i]) {
|
||||||
case RDMatrix::TtyPort:
|
case RDMatrix::TtyPort:
|
||||||
tty=new RDTty(rda->station()->name(),sas_port[i]);
|
tty=new RDTty(rda->station()->name(),sas_port[i]);
|
||||||
sas_device[i]=new RDTTYDevice();
|
sas_device[i]=new RDTTYDevice();
|
||||||
if(tty->active()) {
|
if(tty->active()) {
|
||||||
sas_device[i]->setName(tty->port());
|
sas_device[i]->setName(tty->port());
|
||||||
sas_device[i]->setSpeed(tty->baudRate());
|
sas_device[i]->setSpeed(tty->baudRate());
|
||||||
sas_device[i]->setWordLength(tty->dataBits());
|
sas_device[i]->setWordLength(tty->dataBits());
|
||||||
sas_device[i]->setParity(tty->parity());
|
sas_device[i]->setParity(tty->parity());
|
||||||
sas_device[i]->open(QIODevice::Unbuffered|
|
sas_device[i]->open(QIODevice::Unbuffered|
|
||||||
QIODevice::WriteOnly);
|
QIODevice::WriteOnly);
|
||||||
}
|
|
||||||
delete tty;
|
|
||||||
|
|
||||||
case RDMatrix::TcpPort:
|
|
||||||
sas_socket[i]=new Q3Socket(this,"sas_socket");
|
|
||||||
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()),
|
|
||||||
closed_mapper,SLOT(map()));
|
|
||||||
switch(i) {
|
|
||||||
case 0:
|
|
||||||
connect(sas_socket[i],SIGNAL(error(int)),
|
|
||||||
this,SLOT(error0Data(int)));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 1:
|
|
||||||
connect(sas_socket[i],SIGNAL(error(int)),
|
|
||||||
this,SLOT(error1Data(int)));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
ipConnect(i);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case RDMatrix::NoPort:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
delete tty;
|
||||||
|
|
||||||
|
case RDMatrix::TcpPort:
|
||||||
|
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(disconnected()),
|
||||||
|
closed_mapper,SLOT(map()));
|
||||||
|
switch(i) {
|
||||||
|
case 0:
|
||||||
|
connect(sas_socket[i],SIGNAL(error(QAbstractSocket::SocketError)),
|
||||||
|
this,SLOT(error0Data(QAbstractSocket::SocketError)));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
connect(sas_socket[i],SIGNAL(error(QAbstractSocket::SocketError)),
|
||||||
|
this,SLOT(error1Data(QAbstractSocket::SocketError)));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ipConnect(i);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RDMatrix::NoPort:
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -210,41 +210,42 @@ void Quartz1::connectionClosedData(int conn)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Quartz1::errorData(int conn,int err)
|
void Quartz1::errorData(int conn,QAbstractSocket::SocketError err)
|
||||||
{
|
{
|
||||||
switch((Q3Socket::Error)err) {
|
switch(err) {
|
||||||
case Q3Socket::ErrConnectionRefused:
|
case QAbstractSocket::ConnectionRefusedError:
|
||||||
rda->syslog(LOG_WARNING,
|
rda->syslog(LOG_WARNING,
|
||||||
"connection to Quartz1 device at %s:%d refused, attempting reconnect",
|
"connection to Quartz1 device at %s:%d refused, attempting reconnect",
|
||||||
(const char *)sas_ipaddress[conn].toString().toUtf8(),
|
(const char *)sas_ipaddress[conn].toString().toUtf8(),
|
||||||
sas_ipport[conn]);
|
sas_ipport[conn]);
|
||||||
sas_reconnect_timer[conn]->start(QUARTZ1_RECONNECT_INTERVAL,true);
|
sas_reconnect_timer[conn]->start(QUARTZ1_RECONNECT_INTERVAL,true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Q3Socket::ErrHostNotFound:
|
case QAbstractSocket::HostNotFoundError:
|
||||||
rda->syslog(LOG_WARNING,
|
rda->syslog(LOG_WARNING,
|
||||||
"error on connection to Quartz1 device at %s:%d: Host Not Found",
|
"error on connection to Quartz1 device at %s:%d: Host Not Found",
|
||||||
(const char *)sas_ipaddress[conn].toString().toUtf8(),
|
(const char *)sas_ipaddress[conn].toString().toUtf8(),
|
||||||
sas_ipport[conn]);
|
sas_ipport[conn]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Q3Socket::ErrSocketRead:
|
default:
|
||||||
rda->syslog(LOG_WARNING,
|
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",
|
||||||
(const char *)sas_ipaddress[conn].toString().toUtf8(),
|
err,
|
||||||
sas_ipport[conn]);
|
(const char *)sas_ipaddress[conn].toString().toUtf8(),
|
||||||
break;
|
sas_ipport[conn]);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Quartz1::error0Data(int err)
|
void Quartz1::error0Data(QAbstractSocket::SocketError err)
|
||||||
{
|
{
|
||||||
errorData(0,err);
|
errorData(0,err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Quartz1::error1Data(int err)
|
void Quartz1::error1Data(QAbstractSocket::SocketError err)
|
||||||
{
|
{
|
||||||
errorData(1,err);
|
errorData(1,err);
|
||||||
}
|
}
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// A Rivendell switcher driver for the Quartz Type 1 Switcher Protocol
|
// 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
|
// 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
|
// it under the terms of the GNU General Public License version 2 as
|
||||||
@@ -21,8 +21,8 @@
|
|||||||
#ifndef QUARTZ1_H
|
#ifndef QUARTZ1_H
|
||||||
#define QUARTZ1_H
|
#define QUARTZ1_H
|
||||||
|
|
||||||
#include <q3socket.h>
|
|
||||||
#include <qhostaddress.h>
|
#include <qhostaddress.h>
|
||||||
|
#include <qtcpsocket.h>
|
||||||
#include <qtimer.h>
|
#include <qtimer.h>
|
||||||
|
|
||||||
#include <rd.h>
|
#include <rd.h>
|
||||||
@@ -51,14 +51,14 @@ class Quartz1 : public Switcher
|
|||||||
void ipConnect(int conn);
|
void ipConnect(int conn);
|
||||||
void connectedData(int conn);
|
void connectedData(int conn);
|
||||||
void connectionClosedData(int conn);
|
void connectionClosedData(int conn);
|
||||||
void errorData(int conn,int err);
|
void errorData(int conn,QAbstractSocket::SocketError err);
|
||||||
void error0Data(int err);
|
void error0Data(QAbstractSocket::SocketError err);
|
||||||
void error1Data(int err);
|
void error1Data(QAbstractSocket::SocketError err);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void SendCommand(const char *str);
|
void SendCommand(const char *str);
|
||||||
RDTTYDevice *sas_device[2];
|
RDTTYDevice *sas_device[2];
|
||||||
Q3Socket *sas_socket[2];
|
QTcpSocket *sas_socket[2];
|
||||||
char sas_buffer[2][QUARTZ1_MAX_LENGTH];
|
char sas_buffer[2][QUARTZ1_MAX_LENGTH];
|
||||||
unsigned sas_ptr[2];
|
unsigned sas_ptr[2];
|
||||||
QHostAddress sas_ipaddress[2];
|
QHostAddress sas_ipaddress[2];
|
||||||
|
Reference in New Issue
Block a user