Merge branch 'audio-enhance'

merge-requests/5/merge
Roeland Jansen 2021-08-30 10:05:56 +02:00
commit c46eb65974
9 zmienionych plików z 122 dodań i 43 usunięć

Wyświetl plik

@ -218,9 +218,8 @@ void pttyHandler::receiveDataIn(int fd) {
civId = (quint8)inPortData[lastFE + 2]; civId = (quint8)inPortData[lastFE + 2];
qInfo(logSerial()) << "pty remote CI-V changed:" << hex << (quint8)civId; qInfo(logSerial()) << "pty remote CI-V changed:" << hex << (quint8)civId;
} }
// filter C-IV transceive command before forwarding on.
// filter 1A 05 01 12/27 = C-IV transceive command before forwarding on. if (inPortData.contains(rigCaps.transceiveCommand))
if (inPortData.contains(QByteArrayLiteral("\x1a\x05\x01\x12")) || inPortData.contains(QByteArrayLiteral("\x1a\x05\x01\x27")))
{ {
//qInfo(logSerial()) << "Filtered transceive command"; //qInfo(logSerial()) << "Filtered transceive command";
//printHex(inPortData, false, true); //printHex(inPortData, false, true);
@ -331,4 +330,10 @@ void pttyHandler::printHex(const QByteArray& pdata, bool printVert, bool printHo
qDebug(logSerial()) << "----- End hex dump -----"; qDebug(logSerial()) << "----- End hex dump -----";
} }
void pttyHandler::receiveFoundRigID(rigCapabilities rigCaps) {
this->rigCaps = rigCaps;
qInfo(logSerial) << "Received rigCapabilities for" << rigCaps.modelName;
}

Wyświetl plik

@ -9,6 +9,8 @@
#include <QSocketNotifier> #include <QSocketNotifier>
#include <QtSerialPort/QSerialPort> #include <QtSerialPort/QSerialPort>
#include "rigidentities.h"
// This class abstracts the comm port in a useful way and connects to // This class abstracts the comm port in a useful way and connects to
// the command creator and command parser. // the command creator and command parser.
@ -27,6 +29,7 @@ private slots:
void receiveDataIn(int fd); // from physical port void receiveDataIn(int fd); // from physical port
void receiveDataFromRigToPtty(const QByteArray& data); void receiveDataFromRigToPtty(const QByteArray& data);
void debugThis(); void debugThis();
void receiveFoundRigID(rigCapabilities rigCaps);
signals: signals:
void haveTextMessage(QString message); // status, debug only void haveTextMessage(QString message); // status, debug only
@ -66,8 +69,9 @@ private:
mutable QMutex mutex; mutable QMutex mutex;
void printHex(const QByteArray& pdata, bool printVert, bool printHoriz); void printHex(const QByteArray& pdata, bool printVert, bool printHoriz);
bool disableTransceive = false; bool disableTransceive = false;
QSocketNotifier *ptReader = nullptr; QSocketNotifier *ptReader = Q_NULLPTR;
quint8 civId=0; quint8 civId=0;
rigCapabilities rigCaps;
}; };
#endif // PTTYHANDLER_H #endif // PTTYHANDLER_H

Wyświetl plik

@ -61,7 +61,6 @@ 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 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)));
@ -73,6 +72,9 @@ void rigCommander::commSetup(unsigned char rigCivAddr, QString rigSerialPort, qu
connect(this, SIGNAL(getMoreDebug()), comm, SLOT(debugThis())); connect(this, SIGNAL(getMoreDebug()), comm, SLOT(debugThis()));
connect(this, SIGNAL(getMoreDebug()), ptty, SLOT(debugThis())); connect(this, SIGNAL(getMoreDebug()), ptty, SLOT(debugThis()));
connect(this, SIGNAL(discoveredRigID(rigCapabilities)), ptty, SLOT(receiveFoundRigID(rigCapabilities)));
emit commReady(); emit commReady();
} }
@ -137,6 +139,8 @@ void rigCommander::commSetup(unsigned char rigCivAddr, udpPreferences prefs, aud
connect(ptty, SIGNAL(haveSerialPortError(QString, QString)), this, SLOT(handleSerialPortError(QString, QString))); connect(ptty, SIGNAL(haveSerialPortError(QString, QString)), this, SLOT(handleSerialPortError(QString, QString)));
connect(this, SIGNAL(getMoreDebug()), ptty, SLOT(debugThis())); connect(this, SIGNAL(getMoreDebug()), ptty, SLOT(debugThis()));
connect(this, SIGNAL(discoveredRigID(rigCapabilities)), ptty, SLOT(receiveFoundRigID(rigCapabilities)));
emit haveAfGain(rxSetup.localAFgain); emit haveAfGain(rxSetup.localAFgain);
} }
@ -553,18 +557,24 @@ void rigCommander::getSpectrumMode()
prepDataAndSend(specModePayload); prepDataAndSend(specModePayload);
} }
void rigCommander::setFrequency(freqt freq) void rigCommander::setFrequency(unsigned char vfo, freqt freq)
{ {
//QByteArray freqPayload = makeFreqPayload(freq);
QByteArray freqPayload = makeFreqPayload(freq); QByteArray freqPayload = makeFreqPayload(freq);
QByteArray cmdPayload; QByteArray cmdPayload;
cmdPayload.append(freqPayload); cmdPayload.append(freqPayload);
cmdPayload.prepend('\x00'); if (vfo == 0) {
rigState.vfoAFreq = freq;
cmdPayload.prepend('\x00');
}
else
{
rigState.vfoBFreq = freq;
cmdPayload.prepend(vfo);
cmdPayload.prepend('\x25');
}
//printHex(cmdPayload, false, true); //printHex(cmdPayload, false, true);
prepDataAndSend(cmdPayload); prepDataAndSend(cmdPayload);
rigState.vfoAFreq = freq;
} }
QByteArray rigCommander::makeFreqPayload(freqt freq) QByteArray rigCommander::makeFreqPayload(freqt freq)
@ -1348,6 +1358,9 @@ void rigCommander::parseLevels()
emit haveSql(level); emit haveSql(level);
rigState.squelch = level; rigState.squelch = level;
break; break;
case '\x09':
// CW Pitch - ignore for now
break;
case '\x0A': case '\x0A':
// TX RF level // TX RF level
emit haveTxPower(level); emit haveTxPower(level);
@ -1358,11 +1371,20 @@ void rigCommander::parseLevels()
emit haveMicGain(level); emit haveMicGain(level);
rigState.micGain = level; rigState.micGain = level;
break; break;
case '\x0C':
// CW Keying Speed - ignore for now
break;
case '\x0D':
// Notch filder setting - ignore for now
break;
case '\x0E': case '\x0E':
// compressor level // compressor level
emit haveCompLevel(level); emit haveCompLevel(level);
rigState.compLevel = level; rigState.compLevel = level;
break; break;
case '\x12':
// NB level - ignore for now
break;
case '\x15': case '\x15':
// monitor level // monitor level
emit haveMonitorLevel(level); emit haveMonitorLevel(level);
@ -2880,6 +2902,8 @@ void rigCommander::determineRigCaps()
rigCaps.bands.push_back(band630m); rigCaps.bands.push_back(band630m);
rigCaps.bands.push_back(band2200m); rigCaps.bands.push_back(band2200m);
rigCaps.modes = commonModes; rigCaps.modes = commonModes;
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x71");
break; break;
case modelR8600: case modelR8600:
rigCaps.modelName = QString("IC-R8600"); rigCaps.modelName = QString("IC-R8600");
@ -2915,6 +2939,7 @@ void rigCommander::determineRigCaps()
createMode(modeNXDN_VN, 0x19, "NXDN-VN"), createMode(modeNXDN_N, 0x20, "NXDN-N"), createMode(modeNXDN_VN, 0x19, "NXDN-VN"), createMode(modeNXDN_N, 0x20, "NXDN-N"),
createMode(modeDCR, 0x21, "DCR")}); createMode(modeDCR, 0x21, "DCR")});
rigCaps.scopeCenterSpans.insert(rigCaps.scopeCenterSpans.end(), {createScopeCenter(cs1M, "±1M"), createScopeCenter(cs2p5M, "±2.5M")}); rigCaps.scopeCenterSpans.insert(rigCaps.scopeCenterSpans.end(), {createScopeCenter(cs1M, "±1M"), createScopeCenter(cs2p5M, "±2.5M")});
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x92");
break; break;
case model9700: case model9700:
rigCaps.modelName = QString("IC-9700"); rigCaps.modelName = QString("IC-9700");
@ -2943,6 +2968,7 @@ void rigCommander::determineRigCaps()
rigCaps.modes = commonModes; rigCaps.modes = commonModes;
rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modeDV, 0x17, "DV"), rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modeDV, 0x17, "DV"),
createMode(modeDD, 0x22, "DD")}); createMode(modeDD, 0x22, "DD")});
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x01\x27");
break; break;
case model910h: case model910h:
rigCaps.modelName = QString("IC-910H"); rigCaps.modelName = QString("IC-910H");
@ -2965,6 +2991,7 @@ void rigCommander::determineRigCaps()
rigCaps.bsr[band70cm] = 0x02; rigCaps.bsr[band70cm] = 0x02;
rigCaps.bsr[band2m] = 0x01; rigCaps.bsr[band2m] = 0x01;
rigCaps.modes = commonModes; rigCaps.modes = commonModes;
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x58");
break; break;
case model7600: case model7600:
rigCaps.modelName = QString("IC-7600"); rigCaps.modelName = QString("IC-7600");
@ -2989,6 +3016,7 @@ void rigCommander::determineRigCaps()
rigCaps.modes = commonModes; rigCaps.modes = commonModes;
rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modePSK, 0x12, "PSK"), rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modePSK, 0x12, "PSK"),
createMode(modePSK_R, 0x13, "PSK-R")}); createMode(modePSK_R, 0x13, "PSK-R")});
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x97");
break; break;
case model7610: case model7610:
rigCaps.modelName = QString("IC-7610"); rigCaps.modelName = QString("IC-7610");
@ -3020,6 +3048,7 @@ void rigCommander::determineRigCaps()
rigCaps.bands.push_back(band2200m); rigCaps.bands.push_back(band2200m);
rigCaps.modes = commonModes; rigCaps.modes = commonModes;
rigCaps.hasRXAntenna = true; rigCaps.hasRXAntenna = true;
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x01\x12");
break; break;
case model7850: case model7850:
rigCaps.modelName = QString("IC-785x"); rigCaps.modelName = QString("IC-785x");
@ -3052,6 +3081,7 @@ void rigCommander::determineRigCaps()
rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modePSK, 0x12, "PSK"), rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modePSK, 0x12, "PSK"),
createMode(modePSK_R, 0x13, "PSK-R")}); createMode(modePSK_R, 0x13, "PSK-R")});
rigCaps.hasRXAntenna = true; rigCaps.hasRXAntenna = true;
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x01\x55");
break; break;
case model705: case model705:
rigCaps.modelName = QString("IC-705"); rigCaps.modelName = QString("IC-705");
@ -3088,6 +3118,7 @@ void rigCommander::determineRigCaps()
rigCaps.modes = commonModes; rigCaps.modes = commonModes;
rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modeWFM, 0x06, "WFM"), rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modeWFM, 0x06, "WFM"),
createMode(modeDV, 0x17, "DV")}); createMode(modeDV, 0x17, "DV")});
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x01\x31");
break; break;
case model7000: case model7000:
rigCaps.modelName = QString("IC-7000"); rigCaps.modelName = QString("IC-7000");
@ -3110,6 +3141,7 @@ void rigCommander::determineRigCaps()
rigCaps.bsr[band70cm] = 0x12; rigCaps.bsr[band70cm] = 0x12;
rigCaps.bsr[bandGen] = 0x13; rigCaps.bsr[bandGen] = 0x13;
rigCaps.modes = commonModes; rigCaps.modes = commonModes;
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x92");
break; break;
case model7410: case model7410:
rigCaps.modelName = QString("IC-7410"); rigCaps.modelName = QString("IC-7410");
@ -3131,6 +3163,7 @@ void rigCommander::determineRigCaps()
rigCaps.bands.push_back(bandGen); rigCaps.bands.push_back(bandGen);
rigCaps.bsr[bandGen] = 0x11; rigCaps.bsr[bandGen] = 0x11;
rigCaps.modes = commonModes; rigCaps.modes = commonModes;
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x40");
break; break;
case model7100: case model7100:
rigCaps.modelName = QString("IC-7100"); rigCaps.modelName = QString("IC-7100");
@ -3158,6 +3191,7 @@ void rigCommander::determineRigCaps()
rigCaps.modes = commonModes; rigCaps.modes = commonModes;
rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modeWFM, 0x06, "WFM"), rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modeWFM, 0x06, "WFM"),
createMode(modeDV, 0x17, "DV")}); createMode(modeDV, 0x17, "DV")});
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x95");
break; break;
case model7200: case model7200:
rigCaps.modelName = QString("IC-7200"); rigCaps.modelName = QString("IC-7200");
@ -3178,7 +3212,8 @@ void rigCommander::determineRigCaps()
rigCaps.bands.push_back(bandGen); rigCaps.bands.push_back(bandGen);
rigCaps.bsr[bandGen] = 0x11; rigCaps.bsr[bandGen] = 0x11;
rigCaps.modes = commonModes; rigCaps.modes = commonModes;
break; rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x03\x48");
break;
case model7700: case model7700:
rigCaps.modelName = QString("IC-7700"); rigCaps.modelName = QString("IC-7700");
rigCaps.rigctlModel = 3062; rigCaps.rigctlModel = 3062;
@ -3204,6 +3239,7 @@ void rigCommander::determineRigCaps()
rigCaps.modes = commonModes; rigCaps.modes = commonModes;
rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modePSK, 0x12, "PSK"), rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modePSK, 0x12, "PSK"),
createMode(modePSK_R, 0x13, "PSK-R")}); createMode(modePSK_R, 0x13, "PSK-R")});
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x95");
break; break;
case model706: case model706:
rigCaps.modelName = QString("IC-706"); rigCaps.modelName = QString("IC-706");
@ -3223,6 +3259,7 @@ void rigCommander::determineRigCaps()
rigCaps.bands.push_back(bandGen); rigCaps.bands.push_back(bandGen);
rigCaps.modes = commonModes; rigCaps.modes = commonModes;
rigCaps.modes.insert(rigCaps.modes.end(), createMode(modeWFM, 0x06, "WFM")); rigCaps.modes.insert(rigCaps.modes.end(), createMode(modeWFM, 0x06, "WFM"));
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00");
break; break;
case model718: case model718:
rigCaps.modelName = QString("IC-718"); rigCaps.modelName = QString("IC-718");
@ -3246,6 +3283,7 @@ void rigCommander::determineRigCaps()
createMode(modeCW, 0x03, "CW"), createMode(modeCW_R, 0x07, "CW-R"), createMode(modeCW, 0x03, "CW"), createMode(modeCW_R, 0x07, "CW-R"),
createMode(modeRTTY, 0x04, "RTTY"), createMode(modeRTTY_R, 0x08, "RTTY-R") createMode(modeRTTY, 0x04, "RTTY"), createMode(modeRTTY_R, 0x08, "RTTY-R")
}; };
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00");
break; break;
case model756pro: case model756pro:
rigCaps.modelName = QString("IC-756 Pro"); rigCaps.modelName = QString("IC-756 Pro");
@ -3265,6 +3303,7 @@ void rigCommander::determineRigCaps()
rigCaps.bands.push_back(bandGen); rigCaps.bands.push_back(bandGen);
rigCaps.bsr[bandGen] = 0x11; rigCaps.bsr[bandGen] = 0x11;
rigCaps.modes = commonModes; rigCaps.modes = commonModes;
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00");
break; break;
case model756proii: case model756proii:
rigCaps.modelName = QString("IC-756 Pro II"); rigCaps.modelName = QString("IC-756 Pro II");
@ -3284,6 +3323,7 @@ void rigCommander::determineRigCaps()
rigCaps.bands.push_back(bandGen); rigCaps.bands.push_back(bandGen);
rigCaps.bsr[bandGen] = 0x11; rigCaps.bsr[bandGen] = 0x11;
rigCaps.modes = commonModes; rigCaps.modes = commonModes;
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00");
break; break;
case model756proiii: case model756proiii:
rigCaps.modelName = QString("IC-756 Pro III"); rigCaps.modelName = QString("IC-756 Pro III");
@ -3303,6 +3343,7 @@ void rigCommander::determineRigCaps()
rigCaps.bands.push_back(bandGen); rigCaps.bands.push_back(bandGen);
rigCaps.bsr[bandGen] = 0x11; rigCaps.bsr[bandGen] = 0x11;
rigCaps.modes = commonModes; rigCaps.modes = commonModes;
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00");
break; break;
default: default:
rigCaps.modelName = QString("IC-0x%1").arg(rigCaps.modelID, 2, 16); rigCaps.modelName = QString("IC-0x%1").arg(rigCaps.modelID, 2, 16);
@ -3324,6 +3365,7 @@ void rigCommander::determineRigCaps()
rigCaps.bands.insert(rigCaps.bands.end(), standardVU.begin(), standardVU.end()); rigCaps.bands.insert(rigCaps.bands.end(), standardVU.begin(), standardVU.end());
rigCaps.bands.insert(rigCaps.bands.end(), {band23cm, band4m, band630m, band2200m, bandGen}); rigCaps.bands.insert(rigCaps.bands.end(), {band23cm, band4m, band630m, band2200m, bandGen});
rigCaps.modes = commonModes; rigCaps.modes = commonModes;
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00");
qInfo(logRig()) << "Found unknown rig: 0x" << QString("%1").arg(rigCaps.modelID, 2, 16); qInfo(logRig()) << "Found unknown rig: 0x" << QString("%1").arg(rigCaps.modelID, 2, 16);
break; break;
} }

Wyświetl plik

@ -171,7 +171,7 @@ public slots:
void getScopeMode(); void getScopeMode();
// Frequency, Mode, BSR: // Frequency, Mode, BSR:
void setFrequency(freqt freq); void setFrequency(unsigned char vfo, freqt freq);
void getFrequency(); void getFrequency();
void setMode(unsigned char mode, unsigned char modeFilter); void setMode(unsigned char mode, unsigned char modeFilter);
void setMode(mode_info); void setMode(mode_info);

Wyświetl plik

@ -57,7 +57,7 @@ rigCtlD::~rigCtlD()
void rigCtlD::receiveFrequency(freqt freq) void rigCtlD::receiveFrequency(freqt freq)
{ {
emit setFrequency(freq); emit setFrequency(0, freq);
} }
void rigCtlD::receiveStateInfo(rigStateStruct* state) void rigCtlD::receiveStateInfo(rigStateStruct* state)
@ -301,7 +301,7 @@ void rigCtlClient::socketReadyRead()
if (ok) { if (ok) {
freq.Hz = static_cast<int>(newFreq); freq.Hz = static_cast<int>(newFreq);
qDebug(logRigCtlD()) << QString("Set frequency: %1 (%2)").arg(freq.Hz).arg(command[1]); qDebug(logRigCtlD()) << QString("Set frequency: %1 (%2)").arg(freq.Hz).arg(command[1]);
emit parent->setFrequency(freq); emit parent->setFrequency(0, freq);
} }
} }
else if (command[0] == "1" || command[0] == "dump_caps") else if (command[0] == "1" || command[0] == "dump_caps")
@ -465,21 +465,46 @@ void rigCtlClient::socketReadyRead()
} }
response.append(resp); response.append(resp);
} }
else if (command[0] == "I" || command[0] == "set_split_freq") else if (command.length() > 1 && command[0] == "I" || command[0] == "set_split_freq")
{ {
setCommand = true; setCommand = true;
freqt freq;
bool ok = false;
double newFreq = 0.0f;
newFreq = command[1].toDouble(&ok);
if (ok) {
freq.Hz = static_cast<int>(newFreq);
qDebug(logRigCtlD()) << QString("set_split_freq: %1 (%2)").arg(freq.Hz).arg(command[1]);
emit parent->setFrequency(1, freq);
}
} }
else if (command[0] == "m" || command[0] == "get_mode") else if (command.length() > 2 && (command[0] == "X" || command[0] == "set_split_mode"))
{ {
setCommand = true;
}
else if (command.length() > 0 && (command[0] == "x" || command[0] == "get_split_mode"))
{
if (longReply) { if (longReply) {
response.append(QString("Mode: %1").arg(getMode(rigState->mode, rigState->datamode))); response.append(QString("TX Mode: %1").arg(getMode(rigState->mode, rigState->datamode)));
response.append(QString("Passband: %1").arg(getFilter(rigState->mode, rigState->filter))); response.append(QString("TX Passband: %1").arg(getFilter(rigState->mode, rigState->filter)));
} }
else { else {
response.append(QString("%1").arg(getMode(rigState->mode, rigState->datamode))); response.append(QString("%1").arg(getMode(rigState->mode, rigState->datamode)));
response.append(QString("%1").arg(getFilter(rigState->mode, rigState->filter))); response.append(QString("%1").arg(getFilter(rigState->mode, rigState->filter)));
} }
} }
else if (command[0] == "m" || command[0] == "get_mode")
{
if (longReply) {
response.append(QString("Mode: %1").arg(getMode(rigState->mode, rigState->datamode)));
response.append(QString("Passband: %1").arg(getFilter(rigState->mode, rigState->filter)));
}
else {
response.append(QString("%1").arg(getMode(rigState->mode, rigState->datamode)));
response.append(QString("%1").arg(getFilter(rigState->mode, rigState->filter)));
}
}
else if (command[0] == "M" || command[0] == "set_mode") else if (command[0] == "M" || command[0] == "set_mode")
{ {
// Set mode // Set mode
@ -973,8 +998,8 @@ void rigCtlClient::socketReadyRead()
} }
else if (command.length() > 1 && (command[0] == 0x87 || command[0] == "set_powerstat")) else if (command.length() > 1 && (command[0] == 0x87 || command[0] == "set_powerstat"))
{ {
setCommand = true; setCommand = true;
if (command[1] == "0") if (command[1] == "0")
{ {
emit parent->sendPowerOff(); emit parent->sendPowerOff();
} }

Wyświetl plik

@ -336,7 +336,7 @@ signals:
void onStarted(); void onStarted();
void onStopped(); void onStopped();
void sendData(QString data); void sendData(QString data);
void setFrequency(freqt freq); void setFrequency(unsigned char vfo, freqt freq);
void setPTT(bool state); void setPTT(bool state);
void setMode(unsigned char mode, unsigned char modeFilter); void setMode(unsigned char mode, unsigned char modeFilter);
void setDataMode(bool dataOn, unsigned char modeFilter); void setDataMode(bool dataOn, unsigned char modeFilter);

Wyświetl plik

@ -131,6 +131,8 @@ struct rigCapabilities {
unsigned char bsr[20] = {0}; unsigned char bsr[20] = {0};
std::vector <mode_info> modes; std::vector <mode_info> modes;
QByteArray transceiveCommand;
}; };

Wyświetl plik

@ -273,7 +273,7 @@ void wfmain::rigConnections()
connect(this, SIGNAL(setScopeMode(spectrumMode)), rig, SLOT(setSpectrumMode(spectrumMode))); connect(this, SIGNAL(setScopeMode(spectrumMode)), rig, SLOT(setSpectrumMode(spectrumMode)));
connect(this, SIGNAL(getScopeMode()), rig, SLOT(getScopeMode())); connect(this, SIGNAL(getScopeMode()), rig, SLOT(getScopeMode()));
connect(this, SIGNAL(setFrequency(freqt)), rig, SLOT(setFrequency(freqt))); connect(this, SIGNAL(setFrequency(unsigned char, freqt)), rig, SLOT(setFrequency(unsigned char, freqt)));
connect(this, SIGNAL(setScopeEdge(char)), rig, SLOT(setScopeEdge(char))); connect(this, SIGNAL(setScopeEdge(char)), rig, SLOT(setScopeEdge(char)));
connect(this, SIGNAL(setScopeSpan(char)), rig, SLOT(setScopeSpan(char))); connect(this, SIGNAL(setScopeSpan(char)), rig, SLOT(setScopeSpan(char)));
//connect(this, SIGNAL(getScopeMode()), rig, SLOT(getScopeMode())); //connect(this, SIGNAL(getScopeMode()), rig, SLOT(getScopeMode()));
@ -400,7 +400,7 @@ void wfmain::makeRig()
if (rigCtl != Q_NULLPTR) { if (rigCtl != Q_NULLPTR) {
connect(rig, SIGNAL(stateInfo(rigStateStruct*)), rigCtl, SLOT(receiveStateInfo(rigStateStruct*))); connect(rig, SIGNAL(stateInfo(rigStateStruct*)), rigCtl, SLOT(receiveStateInfo(rigStateStruct*)));
connect(this, SIGNAL(requestRigState()), rig, SLOT(sendState())); connect(this, SIGNAL(requestRigState()), rig, SLOT(sendState()));
connect(rigCtl, SIGNAL(setFrequency(freqt)), rig, SLOT(setFrequency(freqt))); connect(rigCtl, SIGNAL(setFrequency(unsigned char, freqt)), rig, SLOT(setFrequency(unsigned char, freqt)));
connect(rigCtl, SIGNAL(setMode(unsigned char, unsigned char)), rig, SLOT(setMode(unsigned char, unsigned char))); connect(rigCtl, SIGNAL(setMode(unsigned char, unsigned char)), rig, SLOT(setMode(unsigned char, unsigned char)));
connect(rigCtl, SIGNAL(setDataMode(bool, unsigned char)), rig, SLOT(setDataMode(bool, unsigned char))); connect(rigCtl, SIGNAL(setDataMode(bool, unsigned char)), rig, SLOT(setDataMode(bool, unsigned char)));
connect(rigCtl, SIGNAL(setPTT(bool)), rig, SLOT(setPTT(bool))); connect(rigCtl, SIGNAL(setPTT(bool)), rig, SLOT(setPTT(bool)));
@ -2011,7 +2011,7 @@ void wfmain::shortcutMinus()
f.MHzDouble = f.Hz / (double)1E6; f.MHzDouble = f.Hz / (double)1E6;
setUIFreq(); setUIFreq();
//emit setFrequency(f); //emit setFrequency(0,f);
issueCmd(cmdSetFreq, f); issueCmd(cmdSetFreq, f);
issueDelayedCommandUnique(cmdGetFreq); issueDelayedCommandUnique(cmdGetFreq);
} }
@ -2025,7 +2025,7 @@ void wfmain::shortcutPlus()
f.MHzDouble = f.Hz / (double)1E6; f.MHzDouble = f.Hz / (double)1E6;
setUIFreq(); setUIFreq();
//emit setFrequency(f); //emit setFrequency(0,f);
issueCmd(cmdSetFreq, f); issueCmd(cmdSetFreq, f);
issueDelayedCommandUnique(cmdGetFreq); issueDelayedCommandUnique(cmdGetFreq);
} }
@ -2039,7 +2039,7 @@ void wfmain::shortcutShiftMinus()
f.MHzDouble = f.Hz / (double)1E6; f.MHzDouble = f.Hz / (double)1E6;
setUIFreq(); setUIFreq();
//emit setFrequency(f); //emit setFrequency(0,f);
issueCmd(cmdSetFreq, f); issueCmd(cmdSetFreq, f);
issueDelayedCommandUnique(cmdGetFreq); issueDelayedCommandUnique(cmdGetFreq);
} }
@ -2053,7 +2053,7 @@ void wfmain::shortcutShiftPlus()
f.MHzDouble = f.Hz / (double)1E6; f.MHzDouble = f.Hz / (double)1E6;
setUIFreq(); setUIFreq();
//emit setFrequency(f); //emit setFrequency(0,f);
issueCmd(cmdSetFreq, f); issueCmd(cmdSetFreq, f);
issueDelayedCommandUnique(cmdGetFreq); issueDelayedCommandUnique(cmdGetFreq);
} }
@ -2067,7 +2067,7 @@ void wfmain::shortcutControlMinus()
f.MHzDouble = f.Hz / (double)1E6; f.MHzDouble = f.Hz / (double)1E6;
setUIFreq(); setUIFreq();
//emit setFrequency(f); //emit setFrequency(0,f);
issueCmd(cmdSetFreq, f); issueCmd(cmdSetFreq, f);
issueDelayedCommandUnique(cmdGetFreq); issueDelayedCommandUnique(cmdGetFreq);
} }
@ -2081,7 +2081,7 @@ void wfmain::shortcutControlPlus()
f.MHzDouble = f.Hz / (double)1E6; f.MHzDouble = f.Hz / (double)1E6;
setUIFreq(); setUIFreq();
//emit setFrequency(f); //emit setFrequency(0,f);
issueCmd(cmdSetFreq, f); issueCmd(cmdSetFreq, f);
issueDelayedCommandUnique(cmdGetFreq); issueDelayedCommandUnique(cmdGetFreq);
} }
@ -2095,7 +2095,7 @@ void wfmain::shortcutPageUp()
f.MHzDouble = f.Hz / (double)1E6; f.MHzDouble = f.Hz / (double)1E6;
setUIFreq(); setUIFreq();
//emit setFrequency(f); //emit setFrequency(0,f);
issueCmd(cmdSetFreq, f); issueCmd(cmdSetFreq, f);
issueDelayedCommandUnique(cmdGetFreq); issueDelayedCommandUnique(cmdGetFreq);
} }
@ -2109,7 +2109,7 @@ void wfmain::shortcutPageDown()
f.MHzDouble = f.Hz / (double)1E6; f.MHzDouble = f.Hz / (double)1E6;
setUIFreq(); setUIFreq();
//emit setFrequency(f); //emit setFrequency(0,f);
issueCmd(cmdSetFreq, f); issueCmd(cmdSetFreq, f);
issueDelayedCommandUnique(cmdGetFreq); issueDelayedCommandUnique(cmdGetFreq);
} }
@ -2350,7 +2350,7 @@ void wfmain::doCmd(commandtype cmddata)
{ {
lastFreqCmdTime_ms = QDateTime::currentMSecsSinceEpoch(); lastFreqCmdTime_ms = QDateTime::currentMSecsSinceEpoch();
freqt f = (*std::static_pointer_cast<freqt>(data)); freqt f = (*std::static_pointer_cast<freqt>(data));
emit setFrequency(f); emit setFrequency(0,f);
break; break;
} }
case cmdSetMode: case cmdSetMode:
@ -3041,6 +3041,7 @@ void wfmain::initPeriodicCommands()
if (rigCaps.hasRXAntenna) { if (rigCaps.hasRXAntenna) {
insertSlowPeriodicCommand(cmdGetAntenna, 128); insertSlowPeriodicCommand(cmdGetAntenna, 128);
} }
insertSlowPeriodicCommand(cmdGetDuplexMode, 128);
} }
void wfmain::insertPeriodicCommand(cmds cmd, unsigned char priority) void wfmain::insertPeriodicCommand(cmds cmd, unsigned char priority)
@ -3261,7 +3262,7 @@ void wfmain::handlePlotDoubleClick(QMouseEvent *me)
freqGo.Hz = roundFrequency(freqGo.Hz, tsWfScrollHz); freqGo.Hz = roundFrequency(freqGo.Hz, tsWfScrollHz);
freqGo.MHzDouble = (float)freqGo.Hz / 1E6; freqGo.MHzDouble = (float)freqGo.Hz / 1E6;
//emit setFrequency(freq); //emit setFrequency(0,freq);
issueCmd(cmdSetFreq, freqGo); issueCmd(cmdSetFreq, freqGo);
freq = freqGo; freq = freqGo;
setUIFreq(); setUIFreq();
@ -3286,7 +3287,7 @@ void wfmain::handleWFDoubleClick(QMouseEvent *me)
freqGo.Hz = roundFrequency(freqGo.Hz, tsWfScrollHz); freqGo.Hz = roundFrequency(freqGo.Hz, tsWfScrollHz);
freqGo.MHzDouble = (float)freqGo.Hz / 1E6; freqGo.MHzDouble = (float)freqGo.Hz / 1E6;
//emit setFrequency(freq); //emit setFrequency(0,freq);
issueCmd(cmdSetFreq, freqGo); issueCmd(cmdSetFreq, freqGo);
freq = freqGo; freq = freqGo;
setUIFreq(); setUIFreq();
@ -3341,7 +3342,7 @@ void wfmain::handleWFScroll(QWheelEvent *we)
f.MHzDouble = f.Hz / (double)1E6; f.MHzDouble = f.Hz / (double)1E6;
freq = f; freq = f;
//emit setFrequency(f); //emit setFrequency(0,f);
issueCmdUniquePriority(cmdSetFreq, f); issueCmdUniquePriority(cmdSetFreq, f);
ui->freqLabel->setText(QString("%1").arg(f.MHzDouble, 0, 'f')); ui->freqLabel->setText(QString("%1").arg(f.MHzDouble, 0, 'f'));
//issueDelayedCommandUnique(cmdGetFreq); //issueDelayedCommandUnique(cmdGetFreq);
@ -3758,7 +3759,7 @@ void wfmain::on_freqDial_valueChanged(int value)
ui->freqLabel->setText(QString("%1").arg(f.MHzDouble, 0, 'f')); ui->freqLabel->setText(QString("%1").arg(f.MHzDouble, 0, 'f'));
//emit setFrequency(f); //emit setFrequency(0,f);
issueCmdUniquePriority(cmdSetFreq, f); issueCmdUniquePriority(cmdSetFreq, f);
} else { } else {
ui->freqDial->blockSignals(true); ui->freqDial->blockSignals(true);
@ -3773,7 +3774,7 @@ void wfmain::receiveBandStackReg(freqt freqGo, char mode, char filter, bool data
// read the band stack and apply by sending out commands // read the band stack and apply by sending out commands
qInfo(logSystem()) << __func__ << "BSR received into main: Freq: " << freqGo.Hz << ", mode: " << (unsigned int)mode << ", filter: " << (unsigned int)filter << ", data mode: " << dataOn; qInfo(logSystem()) << __func__ << "BSR received into main: Freq: " << freqGo.Hz << ", mode: " << (unsigned int)mode << ", filter: " << (unsigned int)filter << ", data mode: " << dataOn;
//emit setFrequency(freq); //emit setFrequency(0,freq);
issueCmd(cmdSetFreq, freqGo); issueCmd(cmdSetFreq, freqGo);
setModeVal = (unsigned char) mode; setModeVal = (unsigned char) mode;
setFilterVal = (unsigned char) filter; setFilterVal = (unsigned char) filter;
@ -3843,7 +3844,7 @@ void wfmain::on_band4mbtn_clicked()
f.Hz = (70.200) * 1E6; f.Hz = (70.200) * 1E6;
} }
issueCmd(cmdSetFreq, f); issueCmd(cmdSetFreq, f);
//emit setFrequency(f); //emit setFrequency(0,f);
issueDelayedCommandUnique(cmdGetFreq); issueDelayedCommandUnique(cmdGetFreq);
ui->tabWidget->setCurrentIndex(0); ui->tabWidget->setCurrentIndex(0);
} }
@ -3910,7 +3911,7 @@ void wfmain::on_band60mbtn_clicked()
freqt f; freqt f;
f.Hz = (5.3305) * 1E6; f.Hz = (5.3305) * 1E6;
issueCmd(cmdSetFreq, f); issueCmd(cmdSetFreq, f);
//emit setFrequency(f); //emit setFrequency(0,f);
issueDelayedCommandUnique(cmdGetFreq); issueDelayedCommandUnique(cmdGetFreq);
ui->tabWidget->setCurrentIndex(0); ui->tabWidget->setCurrentIndex(0);
} }
@ -3931,7 +3932,7 @@ void wfmain::on_band630mbtn_clicked()
{ {
freqt f; freqt f;
f.Hz = 475 * 1E3; f.Hz = 475 * 1E3;
//emit setFrequency(f); //emit setFrequency(0,f);
issueCmd(cmdSetFreq, f); issueCmd(cmdSetFreq, f);
issueDelayedCommandUnique(cmdGetFreq); issueDelayedCommandUnique(cmdGetFreq);
ui->tabWidget->setCurrentIndex(0); ui->tabWidget->setCurrentIndex(0);
@ -3941,7 +3942,7 @@ void wfmain::on_band2200mbtn_clicked()
{ {
freqt f; freqt f;
f.Hz = 136 * 1E3; f.Hz = 136 * 1E3;
//emit setFrequency(f); //emit setFrequency(0,f);
issueCmd(cmdSetFreq, f); issueCmd(cmdSetFreq, f);
issueDelayedCommandUnique(cmdGetFreq); issueDelayedCommandUnique(cmdGetFreq);
ui->tabWidget->setCurrentIndex(0); ui->tabWidget->setCurrentIndex(0);
@ -5296,7 +5297,7 @@ void wfmain::on_enableRigctldChk_clicked(bool checked)
if (rig != Q_NULLPTR) { if (rig != Q_NULLPTR) {
// We are already connected to a rig. // We are already connected to a rig.
connect(rig, SIGNAL(stateInfo(rigStateStruct*)), rigCtl, SLOT(receiveStateInfo(rigStateStruct*))); connect(rig, SIGNAL(stateInfo(rigStateStruct*)), rigCtl, SLOT(receiveStateInfo(rigStateStruct*)));
connect(rigCtl, SIGNAL(setFrequency(freqt)), rig, SLOT(setFrequency(freqt))); connect(rigCtl, SIGNAL(setFrequency(unsigned char, freqt)), rig, SLOT(setFrequency(unsigned char, freqt)));
connect(rigCtl, SIGNAL(setMode(unsigned char, unsigned char)), rig, SLOT(setMode(unsigned char, unsigned char))); connect(rigCtl, SIGNAL(setMode(unsigned char, unsigned char)), rig, SLOT(setMode(unsigned char, unsigned char)));
connect(rigCtl, SIGNAL(setDataMode(bool, unsigned char)), rig, SLOT(setDataMode(bool, unsigned char))); connect(rigCtl, SIGNAL(setDataMode(bool, unsigned char)), rig, SLOT(setDataMode(bool, unsigned char)));
connect(rigCtl, SIGNAL(setPTT(bool)), rig, SLOT(setPTT(bool))); connect(rigCtl, SIGNAL(setPTT(bool)), rig, SLOT(setPTT(bool)));

Wyświetl plik

@ -58,7 +58,7 @@ signals:
// Frequency, mode, band: // Frequency, mode, band:
void getFrequency(); void getFrequency();
void setFrequency(freqt freq); void setFrequency(unsigned char vfo, freqt freq);
void getMode(); void getMode();
void setMode(unsigned char modeIndex, unsigned char modeFilter); void setMode(unsigned char modeIndex, unsigned char modeFilter);
void setMode(mode_info); void setMode(mode_info);