Fixes to TCP server and attempt auto port detection on non-linux!

merge-requests/9/merge
Phil Taylor 2022-04-08 14:40:05 +01:00
rodzic 0aaf5de976
commit 1f25ca67e8
6 zmienionych plików z 101 dodań i 73 usunięć

Wyświetl plik

@ -40,7 +40,7 @@ rigCommander::~rigCommander()
} }
void rigCommander::commSetup(unsigned char rigCivAddr, QString rigSerialPort, quint32 rigBaudRate, QString vsp) void rigCommander::commSetup(unsigned char rigCivAddr, QString rigSerialPort, quint32 rigBaudRate, QString vsp,quint16 tcpPort)
{ {
// construct // construct
// TODO: Bring this parameter and the comm port from the UI. // TODO: Bring this parameter and the comm port from the UI.
@ -61,7 +61,11 @@ void rigCommander::commSetup(unsigned char rigCivAddr, QString rigSerialPort, qu
comm = new commHandler(rigSerialPort, rigBaudRate); comm = new commHandler(rigSerialPort, rigBaudRate);
ptty = new pttyHandler(vsp); ptty = new pttyHandler(vsp);
tcp = new tcpServer(); if (tcpPort > 0) {
tcp = new tcpServer(this);
tcp->startServer(tcpPort);
}
// data from the comm port to the program: // data from the comm port to the program:
connect(comm, SIGNAL(haveDataFromPort(QByteArray)), this, SLOT(handleNewData(QByteArray))); connect(comm, SIGNAL(haveDataFromPort(QByteArray)), this, SLOT(handleNewData(QByteArray)));
@ -69,12 +73,13 @@ void rigCommander::commSetup(unsigned char rigCivAddr, QString rigSerialPort, qu
// data from the ptty to the rig: // data from the ptty to the rig:
connect(ptty, SIGNAL(haveDataFromPort(QByteArray)), comm, SLOT(receiveDataFromUserToRig(QByteArray))); connect(ptty, SIGNAL(haveDataFromPort(QByteArray)), comm, SLOT(receiveDataFromUserToRig(QByteArray)));
// data from the tcp port to the rig:
connect(tcp, SIGNAL(readyRead(QByteArray)), comm, SLOT(receiveDataFromUserToRig(QByteArray)));
// data from the program to the comm port: // data from the program to the comm port:
connect(this, SIGNAL(dataForComm(QByteArray)), comm, SLOT(receiveDataFromUserToRig(QByteArray))); connect(this, SIGNAL(dataForComm(QByteArray)), comm, SLOT(receiveDataFromUserToRig(QByteArray)));
connect(this, SIGNAL(dataForComm(QByteArray)), tcp, SLOT(dataToPort(QByteArray))); if (tcpPort > 0) {
// data from the tcp port to the rig:
connect(tcp, SIGNAL(receiveData(QByteArray)), comm, SLOT(receiveDataFromUserToRig(QByteArray)));
connect(comm, SIGNAL(haveDataFromPort(QByteArray)), tcp, SLOT(sendData(QByteArray)));
}
connect(this, SIGNAL(toggleRTS(bool)), comm, SLOT(setRTS(bool))); connect(this, SIGNAL(toggleRTS(bool)), comm, SLOT(setRTS(bool)));
// data from the rig to the ptty: // data from the rig to the ptty:
@ -93,7 +98,7 @@ void rigCommander::commSetup(unsigned char rigCivAddr, QString rigSerialPort, qu
} }
void rigCommander::commSetup(unsigned char rigCivAddr, udpPreferences prefs, audioSetup rxSetup, audioSetup txSetup, QString vsp) void rigCommander::commSetup(unsigned char rigCivAddr, udpPreferences prefs, audioSetup rxSetup, audioSetup txSetup, QString vsp, quint16 tcpPort)
{ {
// construct // construct
// TODO: Bring this parameter and the comm port from the UI. // TODO: Bring this parameter and the comm port from the UI.
@ -128,19 +133,16 @@ void rigCommander::commSetup(unsigned char rigCivAddr, udpPreferences prefs, aud
ptty = new pttyHandler(vsp); ptty = new pttyHandler(vsp);
tcp = new tcpServer(this); if (tcpPort > 0) {
tcp->startServer(5010); tcp = new tcpServer(this);
tcp->startServer(tcpPort);
}
// Data from UDP to the program // Data from UDP to the program
connect(udp, SIGNAL(haveDataFromPort(QByteArray)), this, SLOT(handleNewData(QByteArray))); connect(udp, SIGNAL(haveDataFromPort(QByteArray)), this, SLOT(handleNewData(QByteArray)));
// data from the rig to the ptty: // data from the rig to the ptty:
connect(udp, SIGNAL(haveDataFromPort(QByteArray)), ptty, SLOT(receiveDataFromRigToPtty(QByteArray))); connect(udp, SIGNAL(haveDataFromPort(QByteArray)), ptty, SLOT(receiveDataFromRigToPtty(QByteArray)));
// data from the rig to tcp:
connect(udp, SIGNAL(haveDataFromPort(QByteArray)), tcp, SLOT(sendData(QByteArray)));
// Audio from UDP // Audio from UDP
connect(udp, SIGNAL(haveAudioData(audioPacket)), this, SLOT(receiveAudioData(audioPacket))); connect(udp, SIGNAL(haveAudioData(audioPacket)), this, SLOT(receiveAudioData(audioPacket)));
@ -150,8 +152,11 @@ void rigCommander::commSetup(unsigned char rigCivAddr, udpPreferences prefs, aud
// data from the ptty to the rig: // data from the ptty to the rig:
connect(ptty, SIGNAL(haveDataFromPort(QByteArray)), udp, SLOT(receiveDataFromUserToRig(QByteArray))); connect(ptty, SIGNAL(haveDataFromPort(QByteArray)), udp, SLOT(receiveDataFromUserToRig(QByteArray)));
// data from the tcp port to the Rig: if (tcpPort > 0) {
connect(tcp, SIGNAL(receiveData(QByteArray)), udp, SLOT(receiveDataFromUserToRig(QByteArray))); // data from the tcp port to the rig:
connect(tcp, SIGNAL(receiveData(QByteArray)), udp, SLOT(receiveDataFromUserToRig(QByteArray)));
connect(udp, SIGNAL(haveDataFromPort(QByteArray)), tcp, SLOT(sendData(QByteArray)));
}
connect(this, SIGNAL(haveChangeLatency(quint16)), udp, SLOT(changeLatency(quint16))); connect(this, SIGNAL(haveChangeLatency(quint16)), udp, SLOT(changeLatency(quint16)));
connect(this, SIGNAL(haveSetVolume(unsigned char)), udp, SLOT(setVolume(unsigned char))); connect(this, SIGNAL(haveSetVolume(unsigned char)), udp, SLOT(setVolume(unsigned char)));

Wyświetl plik

@ -79,8 +79,8 @@ public:
public slots: public slots:
void process(); void process();
void commSetup(unsigned char rigCivAddr, QString rigSerialPort, quint32 rigBaudRate, QString vsp); void commSetup(unsigned char rigCivAddr, QString rigSerialPort, quint32 rigBaudRate, QString vsp, quint16 tcp);
void commSetup(unsigned char rigCivAddr, udpPreferences prefs, audioSetup rxSetup, audioSetup txSetup, QString vsp); void commSetup(unsigned char rigCivAddr, udpPreferences prefs, audioSetup rxSetup, audioSetup txSetup, QString vsp, quint16 tcp);
void closeComm(); void closeComm();
void stateUpdated(); void stateUpdated();
void setRTSforPTT(bool enabled); void setRTSforPTT(bool enabled);

Wyświetl plik

@ -89,7 +89,7 @@ void servermain::openRig()
{ {
//qInfo(logSystem()) << "Got rig"; //qInfo(logSystem()) << "Got rig";
QMetaObject::invokeMethod(radio->rig, [=]() { QMetaObject::invokeMethod(radio->rig, [=]() {
radio->rig->commSetup(radio->civAddr, radio->serialPort, radio->baudRate, QString("none")); radio->rig->commSetup(radio->civAddr, radio->serialPort, radio->baudRate, QString("none"),prefs.tcpPort);
}, Qt::QueuedConnection); }, Qt::QueuedConnection);
} }
} }
@ -115,8 +115,6 @@ void servermain::makeRig()
connect(radio->rig, SIGNAL(haveStatusUpdate(networkStatus)), this, SLOT(receiveStatusUpdate(networkStatus))); connect(radio->rig, SIGNAL(haveStatusUpdate(networkStatus)), this, SLOT(receiveStatusUpdate(networkStatus)));
// Rig comm setup: // Rig comm setup:
//connect(this, SIGNAL(sendCommSetup(unsigned char, udpPreferences, audioSetup, audioSetup, QString)), radio->rig, SLOT(commSetup(unsigned char, udpPreferences, audioSetup, audioSetup, QString)));
//connect(this, SIGNAL(sendCommSetup(unsigned char, QString, quint32, QString)), radio->rig, SLOT(commSetup(unsigned char, QString, quint32, QString)));
connect(this, SIGNAL(setRTSforPTT(bool)), radio->rig, SLOT(setRTSforPTT(bool))); connect(this, SIGNAL(setRTSforPTT(bool)), radio->rig, SLOT(setRTSforPTT(bool)));
connect(radio->rig, SIGNAL(haveBaudRate(quint32)), this, SLOT(receiveBaudRate(quint32))); connect(radio->rig, SIGNAL(haveBaudRate(quint32)), this, SLOT(receiveBaudRate(quint32)));
@ -420,6 +418,7 @@ void servermain::setDefPrefs()
defPrefs.serialPortRadio = QString("auto"); defPrefs.serialPortRadio = QString("auto");
defPrefs.serialPortBaud = 115200; defPrefs.serialPortBaud = 115200;
defPrefs.localAFgain = 255; defPrefs.localAFgain = 255;
defPrefs.tcpPort = 0;
udpDefPrefs.ipAddress = QString(""); udpDefPrefs.ipAddress = QString("");
udpDefPrefs.controlLANPort = 50001; udpDefPrefs.controlLANPort = 50001;

Wyświetl plik

@ -154,8 +154,8 @@ signals:
void sayFrequency(); void sayFrequency();
void sayMode(); void sayMode();
void sayAll(); void sayAll();
void sendCommSetup(unsigned char rigCivAddr, QString rigSerialPort, quint32 rigBaudRate,QString vsp); void sendCommSetup(unsigned char rigCivAddr, QString rigSerialPort, quint32 rigBaudRate,QString vsp, quint16 tcp);
void sendCommSetup(unsigned char rigCivAddr, udpPreferences prefs, audioSetup rxSetup, audioSetup txSetup, QString vsp); void sendCommSetup(unsigned char rigCivAddr, udpPreferences prefs, audioSetup rxSetup, audioSetup txSetup, QString vsp, quint16 tcp);
void sendCloseComm(); void sendCloseComm();
void sendChangeLatency(quint16 latency); void sendChangeLatency(quint16 latency);
void initServer(); void initServer();
@ -242,6 +242,7 @@ private:
audioSetup txAudio; audioSetup txAudio;
rigCapabilities rigCaps; rigCapabilities rigCaps;
bool haveRigCaps = false; bool haveRigCaps = false;
quint16 tcpPort;
} prefs; } prefs;
preferences defPrefs; preferences defPrefs;

Wyświetl plik

@ -188,13 +188,12 @@ void wfmain::openRig()
ui->lanEnableBtn->setChecked(true); ui->lanEnableBtn->setChecked(true);
usingLAN = true; usingLAN = true;
// We need to setup the tx/rx audio: // We need to setup the tx/rx audio:
emit sendCommSetup(prefs.radioCIVAddr, udpPrefs, rxSetup, txSetup, prefs.virtualSerialPort); emit sendCommSetup(prefs.radioCIVAddr, udpPrefs, rxSetup, txSetup, prefs.virtualSerialPort, prefs.tcpPort);
} else { } else {
ui->serialEnableBtn->setChecked(true); ui->serialEnableBtn->setChecked(true);
if( (prefs.serialPortRadio.toLower() == QString("auto")) && (serialPortCL.isEmpty())) if( (prefs.serialPortRadio.toLower() == QString("auto")) && (serialPortCL.isEmpty()))
{ {
findSerialPort(); findSerialPort();
} else { } else {
if(serialPortCL.isEmpty()) if(serialPortCL.isEmpty())
{ {
@ -204,7 +203,7 @@ void wfmain::openRig()
} }
} }
usingLAN = false; usingLAN = false;
emit sendCommSetup(prefs.radioCIVAddr, serialPortRig, prefs.serialPortBaud,prefs.virtualSerialPort); emit sendCommSetup(prefs.radioCIVAddr, serialPortRig, prefs.serialPortBaud,prefs.virtualSerialPort, prefs.tcpPort);
ui->statusBar->showMessage(QString("Connecting to rig using serial port ").append(serialPortRig), 1000); ui->statusBar->showMessage(QString("Connecting to rig using serial port ").append(serialPortRig), 1000);
} }
@ -426,8 +425,8 @@ void wfmain::makeRig()
connect(rig, SIGNAL(setRadioUsage(quint8, quint8, QString, QString)), selRad, SLOT(setInUse(quint8, quint8, QString, QString))); connect(rig, SIGNAL(setRadioUsage(quint8, quint8, QString, QString)), selRad, SLOT(setInUse(quint8, quint8, QString, QString)));
connect(selRad, SIGNAL(selectedRadio(quint8)), rig, SLOT(setCurrentRadio(quint8))); connect(selRad, SIGNAL(selectedRadio(quint8)), rig, SLOT(setCurrentRadio(quint8)));
// Rig comm setup: // Rig comm setup:
connect(this, SIGNAL(sendCommSetup(unsigned char, udpPreferences, audioSetup, audioSetup, QString)), rig, SLOT(commSetup(unsigned char, udpPreferences, audioSetup, audioSetup, QString))); connect(this, SIGNAL(sendCommSetup(unsigned char, udpPreferences, audioSetup, audioSetup, QString, quint16)), rig, SLOT(commSetup(unsigned char, udpPreferences, audioSetup, audioSetup, QString, quint16)));
connect(this, SIGNAL(sendCommSetup(unsigned char, QString, quint32,QString)), rig, SLOT(commSetup(unsigned char, QString, quint32,QString))); connect(this, SIGNAL(sendCommSetup(unsigned char, QString, quint32,QString, quint16)), rig, SLOT(commSetup(unsigned char, QString, quint32,QString, quint16)));
connect(this, SIGNAL(setRTSforPTT(bool)), rig, SLOT(setRTSforPTT(bool))); connect(this, SIGNAL(setRTSforPTT(bool)), rig, SLOT(setRTSforPTT(bool)));
connect(rig, SIGNAL(haveBaudRate(quint32)), this, SLOT(receiveBaudRate(quint32))); connect(rig, SIGNAL(haveBaudRate(quint32)), this, SLOT(receiveBaudRate(quint32)));
@ -477,49 +476,68 @@ void wfmain::findSerialPort()
{ {
// Find the ICOM radio connected, or, if none, fall back to OS default. // Find the ICOM radio connected, or, if none, fall back to OS default.
// qInfo(logSystem()) << "Searching for serial port..."; // qInfo(logSystem()) << "Searching for serial port...";
QDirIterator it73("/dev/serial/by-id", QStringList() << "*IC-7300*", QDir::Files, QDirIterator::Subdirectories); bool found = false;
QDirIterator it97("/dev/serial", QStringList() << "*IC-9700*A*", QDir::Files, QDirIterator::Subdirectories); // First try to find first Icom port:
QDirIterator it785x("/dev/serial", QStringList() << "*IC-785*A*", QDir::Files, QDirIterator::Subdirectories); foreach(const QSerialPortInfo & serialPortInfo, QSerialPortInfo::availablePorts())
QDirIterator it705("/dev/serial", QStringList() << "*IC-705*A", QDir::Files, QDirIterator::Subdirectories); {
QDirIterator it7610("/dev/serial", QStringList() << "*IC-7610*A", QDir::Files, QDirIterator::Subdirectories); if (serialPortInfo.serialNumber().left(3) == "IC-") {
QDirIterator itR8600("/dev/serial", QStringList() << "*IC-R8600*A", QDir::Files, QDirIterator::Subdirectories); qInfo(logSystem()) << "Serial Port found: " << serialPortInfo.portName() << "Manufacturer:" << serialPortInfo.manufacturer() << "Product ID" << serialPortInfo.description() << "S/N" << serialPortInfo.serialNumber();
#if defined(Q_OS_LINUX) || defined(Q_OS_MAC)
serialPortRig = (QString("/dev/") + serialPortInfo.portName());
#else
serialPortRig = serialPortInfo.portName();
#endif
found = true;
break;
}
}
if(!it73.filePath().isEmpty()) if (!found) {
{ QDirIterator it73("/dev/serial/by-id", QStringList() << "*IC-7300*", QDir::Files, QDirIterator::Subdirectories);
// IC-7300 QDirIterator it97("/dev/serial", QStringList() << "*IC-9700*A*", QDir::Files, QDirIterator::Subdirectories);
serialPortRig = it73.filePath(); // first QDirIterator it785x("/dev/serial", QStringList() << "*IC-785*A*", QDir::Files, QDirIterator::Subdirectories);
} else if(!it97.filePath().isEmpty()) QDirIterator it705("/dev/serial", QStringList() << "*IC-705*A", QDir::Files, QDirIterator::Subdirectories);
{ QDirIterator it7610("/dev/serial", QStringList() << "*IC-7610*A", QDir::Files, QDirIterator::Subdirectories);
// IC-9700 QDirIterator itR8600("/dev/serial", QStringList() << "*IC-R8600*A", QDir::Files, QDirIterator::Subdirectories);
serialPortRig = it97.filePath();
} else if(!it785x.filePath().isEmpty()) if(!it73.filePath().isEmpty())
{ {
// IC-785x // IC-7300
serialPortRig = it785x.filePath(); serialPortRig = it73.filePath(); // first
} else if(!it705.filePath().isEmpty()) } else if(!it97.filePath().isEmpty())
{ {
// IC-705 // IC-9700
serialPortRig = it705.filePath(); serialPortRig = it97.filePath();
} else if(!it7610.filePath().isEmpty()) } else if(!it785x.filePath().isEmpty())
{ {
// IC-7610 // IC-785x
serialPortRig = it7610.filePath(); serialPortRig = it785x.filePath();
} else if(!itR8600.filePath().isEmpty()) } else if(!it705.filePath().isEmpty())
{ {
// IC-R8600 // IC-705
serialPortRig = itR8600.filePath(); serialPortRig = it705.filePath();
} else { } else if(!it7610.filePath().isEmpty())
//fall back: {
qInfo(logSystem()) << "Could not find Icom serial port. Falling back to OS default. Use --port to specify, or modify preferences."; // IC-7610
serialPortRig = it7610.filePath();
} else if(!itR8600.filePath().isEmpty())
{
// IC-R8600
serialPortRig = itR8600.filePath();
}
else {
//fall back:
qInfo(logSystem()) << "Could not find Icom serial port. Falling back to OS default. Use --port to specify, or modify preferences.";
#ifdef Q_OS_MAC #ifdef Q_OS_MAC
serialPortRig = QString("/dev/tty.SLAB_USBtoUART"); serialPortRig = QString("/dev/tty.SLAB_USBtoUART");
#endif #endif
#ifdef Q_OS_LINUX #ifdef Q_OS_LINUX
serialPortRig = QString("/dev/ttyUSB0"); serialPortRig = QString("/dev/ttyUSB0");
#endif #endif
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
serialPortRig = QString("COM1"); serialPortRig = QString("COM1");
#endif #endif
}
} }
} }
@ -1177,7 +1195,7 @@ void wfmain::setSerialDevicesUI()
{ {
portList.append(serialPortInfo.portName()); portList.append(serialPortInfo.portName());
#if defined(Q_OS_LINUX) || defined(Q_OS_MAC) #if defined(Q_OS_LINUX) || defined(Q_OS_MAC)
ui->serialDeviceListCombo->addItem(QString("/dev/")+serialPortInfo.portName(), i++); ui->serialDeviceListCombo->addItem(QString("/dev/") + serialPortInfo.portName(), i++);
#else #else
ui->serialDeviceListCombo->addItem(serialPortInfo.portName(), i++); ui->serialDeviceListCombo->addItem(serialPortInfo.portName(), i++);
//qInfo(logSystem()) << "Serial Port found: " << serialPortInfo.portName() << "Manufacturer:" << serialPortInfo.manufacturer() << "Product ID" << serialPortInfo.description() << "S/N" << serialPortInfo.serialNumber(); //qInfo(logSystem()) << "Serial Port found: " << serialPortInfo.portName() << "Manufacturer:" << serialPortInfo.manufacturer() << "Product ID" << serialPortInfo.description() << "S/N" << serialPortInfo.serialNumber();
@ -1202,18 +1220,18 @@ void wfmain::setSerialDevicesUI()
#ifdef Q_OS_MAC #ifdef Q_OS_MAC
QString vspName = QStandardPaths::standardLocations(QStandardPaths::DownloadLocation)[0] + "/rig-pty"; QString vspName = QStandardPaths::standardLocations(QStandardPaths::DownloadLocation)[0] + "/rig-pty";
#else #else
QString vspName=QDir::homePath()+"/rig-pty"; QString vspName = QDir::homePath() + "/rig-pty";
#endif #endif
for (i=1;i<8;i++) { for (i = 1; i < 8; i++) {
ui->vspCombo->addItem(vspName + QString::number(i)); ui->vspCombo->addItem(vspName + QString::number(i));
if (QFile::exists(vspName+QString::number(i))) { if (QFile::exists(vspName + QString::number(i))) {
auto * model = qobject_cast<QStandardItemModel*>(ui->vspCombo->model()); auto* model = qobject_cast<QStandardItemModel*>(ui->vspCombo->model());
auto *item = model->item(ui->vspCombo->count()-1); auto* item = model->item(ui->vspCombo->count() - 1);
item->setEnabled(false); item->setEnabled(false);
} }
} }
ui->vspCombo->addItem(vspName+QString::number(i)); ui->vspCombo->addItem(vspName + QString::number(i));
ui->vspCombo->addItem(QString("None"), i++); ui->vspCombo->addItem(QString("None"), i++);
#endif #endif
@ -1370,6 +1388,7 @@ void wfmain::setDefPrefs()
defPrefs.confirmExit = true; defPrefs.confirmExit = true;
defPrefs.confirmPowerOff = true; defPrefs.confirmPowerOff = true;
defPrefs.meter2Type = meterNone; defPrefs.meter2Type = meterNone;
defPrefs.tcpPort = 0;
udpDefPrefs.ipAddress = QString(""); udpDefPrefs.ipAddress = QString("");
udpDefPrefs.controlLANPort = 50001; udpDefPrefs.controlLANPort = 50001;
@ -1515,6 +1534,8 @@ void wfmain::loadSettings()
ui->lanEnableBtn->setChecked(prefs.enableLAN); ui->lanEnableBtn->setChecked(prefs.enableLAN);
ui->connectBtn->setEnabled(true); ui->connectBtn->setEnabled(true);
prefs.tcpPort = settings->value("TcpServerPort", defPrefs.tcpPort).toInt();
prefs.enableRigCtlD = settings->value("EnableRigCtlD", defPrefs.enableRigCtlD).toBool(); prefs.enableRigCtlD = settings->value("EnableRigCtlD", defPrefs.enableRigCtlD).toBool();
ui->enableRigctldChk->setChecked(prefs.enableRigCtlD); ui->enableRigctldChk->setChecked(prefs.enableRigCtlD);
prefs.rigCtlPort = settings->value("RigCtlPort", defPrefs.rigCtlPort).toInt(); prefs.rigCtlPort = settings->value("RigCtlPort", defPrefs.rigCtlPort).toInt();
@ -1966,6 +1987,7 @@ void wfmain::saveSettings()
settings->beginGroup("LAN"); settings->beginGroup("LAN");
settings->setValue("EnableLAN", prefs.enableLAN); settings->setValue("EnableLAN", prefs.enableLAN);
settings->setValue("EnableRigCtlD", prefs.enableRigCtlD); settings->setValue("EnableRigCtlD", prefs.enableRigCtlD);
settings->setValue("TcpServerPort", prefs.tcpPort);
settings->setValue("RigCtlPort", prefs.rigCtlPort); settings->setValue("RigCtlPort", prefs.rigCtlPort);
settings->setValue("IPAddress", udpPrefs.ipAddress); settings->setValue("IPAddress", udpPrefs.ipAddress);
settings->setValue("ControlLANPort", udpPrefs.controlLANPort); settings->setValue("ControlLANPort", udpPrefs.controlLANPort);

Wyświetl plik

@ -164,8 +164,8 @@ signals:
void sayFrequency(); void sayFrequency();
void sayMode(); void sayMode();
void sayAll(); void sayAll();
void sendCommSetup(unsigned char rigCivAddr, QString rigSerialPort, quint32 rigBaudRate,QString vsp); void sendCommSetup(unsigned char rigCivAddr, QString rigSerialPort, quint32 rigBaudRate,QString vsp, quint16 tcp);
void sendCommSetup(unsigned char rigCivAddr, udpPreferences prefs, audioSetup rxSetup, audioSetup txSetup, QString vsp); void sendCommSetup(unsigned char rigCivAddr, udpPreferences prefs, audioSetup rxSetup, audioSetup txSetup, QString vsp, quint16 tcp);
void sendCloseComm(); void sendCloseComm();
void sendChangeLatency(quint16 latency); void sendChangeLatency(quint16 latency);
void initServer(); void initServer();
@ -764,6 +764,7 @@ private:
bool confirmExit; bool confirmExit;
bool confirmPowerOff; bool confirmPowerOff;
meterKind meter2Type; meterKind meter2Type;
quint16 tcpPort;
// plot scheme // plot scheme
} prefs; } prefs;