Merge remote-tracking branch 'origin/rigs' into audio-enhance

merge-requests/7/head
Phil Taylor 2021-11-06 10:20:11 +00:00
commit 0f48959a75
16 zmienionych plików z 657 dodań i 61 usunięć

BIN
.swo

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -1,5 +1,22 @@
# CHANGELOG # CHANGELOG
- 20211022
Don't block until audio buffer has space
Bit of tidying
- 20211020
Tidy-up server shutdown
Trying to find cause of lockup when client disappears
- 20211006
Send TX/Freq changes multiple times with rigctld
bumped to 1.2d hopefully last testversion before 1.20
- 202109022 - 202109022
Remove duplicate setPriority() Remove duplicate setPriority()

Wyświetl plik

@ -10,3 +10,10 @@ The following highlights are in this 1.x-release:
rigctl basic split support rigctl basic split support
rigctl prevents switching off civ transceive rigctl prevents switching off civ transceive
added 25 kHz step added 25 kHz step
as a temporary measure sending multiple TX/FREQ change commands to the rig
when we use rigctld.
people should use "fake it" in wsjtx as the split code is not reliable.
tidied up udp server function for better reliability

Wyświetl plik

@ -12,7 +12,7 @@ aboutbox::aboutbox(QWidget *parent) :
ui->logoBtn->setIcon(QIcon(":resources/wfview.png")); ui->logoBtn->setIcon(QIcon(":resources/wfview.png"));
ui->logoBtn->setStyleSheet("Text-align:left"); ui->logoBtn->setStyleSheet("Text-align:left");
ui->topText->setText("wfview version 1.2c"); ui->topText->setText("wfview version 1.2d");
QString head = QString("<html><head></head><body>"); QString head = QString("<html><head></head><body>");
QString copyright = QString("Copyright 2017-2021 Elliott H. Liggett, W6EL. All rights reserved. wfview source code is <a href=\"https://gitlab.com/eliggett/wfview/-/blob/master/LICENSE\">licensed</a> under the GNU GPLv3."); QString copyright = QString("Copyright 2017-2021 Elliott H. Liggett, W6EL. All rights reserved. wfview source code is <a href=\"https://gitlab.com/eliggett/wfview/-/blob/master/LICENSE\">licensed</a> under the GNU GPLv3.");

Wyświetl plik

@ -45,6 +45,7 @@ commHandler::commHandler(QString portName, quint32 baudRate)
baudrate = baudRate; baudrate = baudRate;
stopbits = 1; stopbits = 1;
this->portName = portName; this->portName = portName;
this->PTTviaRTS = false;
setupComm(); // basic parameters setupComm(); // basic parameters
openPort(); openPort();
@ -162,6 +163,25 @@ void commHandler::receiveDataIn()
} }
} }
void commHandler::setRTS(bool rtsOn)
{
bool success = port->setRequestToSend(rtsOn);
if(!success)
{
qInfo(logSerial()) << "Error, could not set RTS on port " << portName;
}
}
bool commHandler::rtsStatus()
{
return port->isRequestToSend();
}
void commHandler::setUseRTSforPTT(bool PTTviaRTS)
{
this->PTTviaRTS = PTTviaRTS;
}
void commHandler::openPort() void commHandler::openPort()
{ {
bool success; bool success;

Wyświetl plik

@ -18,9 +18,14 @@ public:
commHandler(); commHandler();
commHandler(QString portName, quint32 baudRate); commHandler(QString portName, quint32 baudRate);
bool serialError; bool serialError;
bool rtsStatus();
~commHandler(); ~commHandler();
public slots:
void setUseRTSforPTT(bool useRTS);
void setRTS(bool rtsOn);
private slots: private slots:
void receiveDataIn(); // from physical port void receiveDataIn(); // from physical port
void receiveDataFromUserToRig(const QByteArray &data); void receiveDataFromUserToRig(const QByteArray &data);
@ -38,6 +43,7 @@ private:
void openPort(); void openPort();
void closePort(); void closePort();
void sendDataOut(const QByteArray &writeData); // out to radio void sendDataOut(const QByteArray &writeData); // out to radio
void debugMe(); void debugMe();
void hexPrint(); void hexPrint();
@ -63,6 +69,8 @@ private:
bool havePt; bool havePt;
QString ptDevSlave; QString ptDevSlave;
bool PTTviaRTS = false;
bool isConnected; // port opened bool isConnected; // port opened
mutable QMutex mutex; mutable QMutex mutex;
void printHex(const QByteArray &pdata, bool printVert, bool printHoriz); void printHex(const QByteArray &pdata, bool printVert, bool printHoriz);

Wyświetl plik

@ -63,6 +63,7 @@ void rigCommander::commSetup(unsigned char rigCivAddr, QString rigSerialPort, qu
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)));
connect(this, SIGNAL(toggleRTS(bool)), comm, SLOT(setRTS(bool)));
// data from the rig to the ptty: // data from the rig to the ptty:
connect(comm, SIGNAL(haveDataFromPort(QByteArray)), ptty, SLOT(receiveDataFromRigToPtty(QByteArray))); connect(comm, SIGNAL(haveDataFromPort(QByteArray)), ptty, SLOT(receiveDataFromRigToPtty(QByteArray)));
@ -236,6 +237,9 @@ void rigCommander::findRigs()
data.append(payloadSuffix); data.append(payloadSuffix);
emit dataForComm(data); emit dataForComm(data);
// HACK for testing radios that do not respond to rig ID queries:
//this->model = model736;
//this->determineRigCaps();
return; return;
} }
@ -989,9 +993,14 @@ void rigCommander::getSatelliteMode()
void rigCommander::getPTT() void rigCommander::getPTT()
{ {
QByteArray payload; if(rigCaps.useRTSforPTT)
payload.setRawData("\x1C\x00", 2); {
prepDataAndSend(payload); emit havePTTStatus(comm->rtsStatus());
} else {
QByteArray payload;
payload.setRawData("\x1C\x00", 2);
prepDataAndSend(payload);
}
} }
void rigCommander::getBandStackReg(char band, char regCode) void rigCommander::getBandStackReg(char band, char regCode)
@ -1008,9 +1017,14 @@ void rigCommander::setPTT(bool pttOn)
if(pttAllowed) if(pttAllowed)
{ {
QByteArray payload("\x1C\x00", 2); if(rigCaps.useRTSforPTT)
payload.append((char)pttOn); {
prepDataAndSend(payload); emit toggleRTS(pttOn);
} else {
QByteArray payload("\x1C\x00", 2);
payload.append((char)pttOn);
prepDataAndSend(payload);
}
rigState.ptt = pttOn; rigState.ptt = pttOn;
} }
} }
@ -1359,6 +1373,17 @@ void rigCommander::parseLevels()
emit haveSql(level); emit haveSql(level);
rigState.squelch = level; rigState.squelch = level;
break; break;
case '\x07':
// Twin BPF Inner, or, IF-Shift level
if(rigCaps.hasTBPF)
emit haveTPBFInner(level);
else
emit haveIFShift(level);
break;
case '\x08':
// Twin BPF Outer
emit haveTPBFOuter(level);
break;
case '\x09': case '\x09':
// CW Pitch - ignore for now // CW Pitch - ignore for now
break; break;
@ -1466,6 +1491,27 @@ void rigCommander::parseLevels()
} }
void rigCommander::setIFShift(unsigned char level)
{
QByteArray payload("\x14\x07");
payload.append(bcdEncodeInt(level));
prepDataAndSend(payload);
}
void rigCommander::setTPBFInner(unsigned char level)
{
QByteArray payload("\x14\x07");
payload.append(bcdEncodeInt(level));
prepDataAndSend(payload);
}
void rigCommander::setTPBFOuter(unsigned char level)
{
QByteArray payload("\x14\x08");
payload.append(bcdEncodeInt(level));
prepDataAndSend(payload);
}
void rigCommander::setTxPower(unsigned char power) void rigCommander::setTxPower(unsigned char power)
{ {
QByteArray payload("\x14\x0A"); QByteArray payload("\x14\x0A");
@ -1889,6 +1935,24 @@ void rigCommander::getAfGain()
prepDataAndSend(payload); prepDataAndSend(payload);
} }
void rigCommander::getIFShift()
{
QByteArray payload("\x14\x07");
prepDataAndSend(payload);
}
void rigCommander::getTPBFInner()
{
QByteArray payload("\x14\x07");
prepDataAndSend(payload);
}
void rigCommander::getTPBFOuter()
{
QByteArray payload("\x14\x08");
prepDataAndSend(payload);
}
void rigCommander::getSql() void rigCommander::getSql()
{ {
QByteArray payload("\x14\x03"); QByteArray payload("\x14\x03");
@ -2824,6 +2888,9 @@ void rigCommander::determineRigCaps()
rigCaps.hasCTCSS = false; rigCaps.hasCTCSS = false;
rigCaps.hasDTCS = false; rigCaps.hasDTCS = false;
rigCaps.hasTBPF = false;
rigCaps.hasIFShift = false;
rigCaps.spectSeqMax = 0; rigCaps.spectSeqMax = 0;
rigCaps.spectAmpMax = 0; rigCaps.spectAmpMax = 0;
rigCaps.spectLenMax = 0; rigCaps.spectLenMax = 0;
@ -2852,6 +2919,7 @@ void rigCommander::determineRigCaps()
rigCaps.hasTransmit = true; rigCaps.hasTransmit = true;
rigCaps.hasPTTCommand = true; rigCaps.hasPTTCommand = true;
rigCaps.useRTSforPTT = false;
// Common, reasonable defaults for most supported HF rigs: // Common, reasonable defaults for most supported HF rigs:
rigCaps.bsr[band160m] = 0x01; rigCaps.bsr[band160m] = 0x01;
@ -2894,6 +2962,7 @@ void rigCommander::determineRigCaps()
rigCaps.hasWiFi = false; rigCaps.hasWiFi = false;
rigCaps.hasATU = true; rigCaps.hasATU = true;
rigCaps.hasCTCSS = true; rigCaps.hasCTCSS = true;
rigCaps.hasTBPF = true;
rigCaps.attenuators.push_back('\x20'); rigCaps.attenuators.push_back('\x20');
rigCaps.preamps.push_back('\x01'); rigCaps.preamps.push_back('\x01');
rigCaps.preamps.push_back('\x02'); rigCaps.preamps.push_back('\x02');
@ -2922,6 +2991,7 @@ void rigCommander::determineRigCaps()
rigCaps.hasCTCSS = true; rigCaps.hasCTCSS = true;
rigCaps.hasDTCS = true; rigCaps.hasDTCS = true;
rigCaps.hasDV = true; rigCaps.hasDV = true;
rigCaps.hasTBPF = true;
rigCaps.attenuators.push_back('\x10'); rigCaps.attenuators.push_back('\x10');
rigCaps.attenuators.push_back('\x20'); rigCaps.attenuators.push_back('\x20');
rigCaps.attenuators.push_back('\x30'); rigCaps.attenuators.push_back('\x30');
@ -2959,6 +3029,7 @@ void rigCommander::determineRigCaps()
rigCaps.hasDV = true; rigCaps.hasDV = true;
rigCaps.hasCTCSS = true; rigCaps.hasCTCSS = true;
rigCaps.hasDTCS = true; rigCaps.hasDTCS = true;
rigCaps.hasTBPF = true;
rigCaps.attenuators.push_back('\x10'); rigCaps.attenuators.push_back('\x10');
rigCaps.preamps.push_back('\x01'); rigCaps.preamps.push_back('\x01');
rigCaps.bands = standardVU; rigCaps.bands = standardVU;
@ -3007,6 +3078,7 @@ void rigCommander::determineRigCaps()
rigCaps.hasATU = true; rigCaps.hasATU = true;
rigCaps.hasCTCSS = false; rigCaps.hasCTCSS = false;
rigCaps.hasDTCS = false; rigCaps.hasDTCS = false;
rigCaps.hasTBPF = true;
rigCaps.attenuators.insert(rigCaps.attenuators.end(), {0x00, 0x06, 0x12, 0x18}); rigCaps.attenuators.insert(rigCaps.attenuators.end(), {0x00, 0x06, 0x12, 0x18});
rigCaps.preamps.push_back('\x01'); rigCaps.preamps.push_back('\x01');
rigCaps.preamps.push_back('\x02'); rigCaps.preamps.push_back('\x02');
@ -3033,6 +3105,7 @@ void rigCommander::determineRigCaps()
rigCaps.hasEthernet = true; rigCaps.hasEthernet = true;
rigCaps.hasWiFi = false; rigCaps.hasWiFi = false;
rigCaps.hasCTCSS = true; rigCaps.hasCTCSS = true;
rigCaps.hasTBPF = true;
rigCaps.attenuators.insert(rigCaps.attenuators.end(), rigCaps.attenuators.insert(rigCaps.attenuators.end(),
{'\x03', '\x06', '\x09', '\x12',\ {'\x03', '\x06', '\x09', '\x12',\
'\x15', '\x18', '\x21', '\x24',\ '\x15', '\x18', '\x21', '\x24',\
@ -3067,6 +3140,7 @@ void rigCommander::determineRigCaps()
rigCaps.hasWiFi = false; rigCaps.hasWiFi = false;
rigCaps.hasATU = true; rigCaps.hasATU = true;
rigCaps.hasCTCSS = true; rigCaps.hasCTCSS = true;
rigCaps.hasTBPF = true;
rigCaps.attenuators.insert(rigCaps.attenuators.end(), rigCaps.attenuators.insert(rigCaps.attenuators.end(),
{'\x03', '\x06', '\x09', {'\x03', '\x06', '\x09',
'\x12', '\x15', '\x18', '\x21'}); '\x12', '\x15', '\x18', '\x21'});
@ -3101,6 +3175,7 @@ void rigCommander::determineRigCaps()
rigCaps.hasATU = true; rigCaps.hasATU = true;
rigCaps.hasCTCSS = true; rigCaps.hasCTCSS = true;
rigCaps.hasDTCS = true; rigCaps.hasDTCS = true;
rigCaps.hasTBPF = true;
rigCaps.attenuators.insert(rigCaps.attenuators.end(),{ '\x10' , '\x20'}); rigCaps.attenuators.insert(rigCaps.attenuators.end(),{ '\x10' , '\x20'});
rigCaps.preamps.push_back('\x01'); rigCaps.preamps.push_back('\x01');
rigCaps.preamps.push_back('\x02'); rigCaps.preamps.push_back('\x02');
@ -3133,6 +3208,7 @@ void rigCommander::determineRigCaps()
rigCaps.hasATU = true; rigCaps.hasATU = true;
rigCaps.hasCTCSS = true; rigCaps.hasCTCSS = true;
rigCaps.hasDTCS = true; rigCaps.hasDTCS = true;
rigCaps.hasTBPF = true;
rigCaps.attenuators.push_back('\x12'); rigCaps.attenuators.push_back('\x12');
rigCaps.preamps.push_back('\x01'); rigCaps.preamps.push_back('\x01');
rigCaps.bands = standardHF; rigCaps.bands = standardHF;
@ -3156,6 +3232,7 @@ void rigCommander::determineRigCaps()
rigCaps.hasATU = true; rigCaps.hasATU = true;
rigCaps.hasCTCSS = true; rigCaps.hasCTCSS = true;
rigCaps.hasDTCS = true; rigCaps.hasDTCS = true;
rigCaps.hasTBPF = true;
rigCaps.attenuators.push_back('\x20'); rigCaps.attenuators.push_back('\x20');
rigCaps.preamps.push_back('\x01'); rigCaps.preamps.push_back('\x01');
rigCaps.preamps.push_back('\x02'); rigCaps.preamps.push_back('\x02');
@ -3179,6 +3256,7 @@ void rigCommander::determineRigCaps()
rigCaps.hasATU = true; rigCaps.hasATU = true;
rigCaps.hasCTCSS = true; rigCaps.hasCTCSS = true;
rigCaps.hasDTCS = true; rigCaps.hasDTCS = true;
rigCaps.hasTBPF = true;
rigCaps.attenuators.push_back('\x12'); rigCaps.attenuators.push_back('\x12');
rigCaps.preamps.push_back('\x01'); rigCaps.preamps.push_back('\x01');
rigCaps.preamps.push_back('\x02'); rigCaps.preamps.push_back('\x02');
@ -3207,6 +3285,7 @@ void rigCommander::determineRigCaps()
rigCaps.hasATU = true; rigCaps.hasATU = true;
rigCaps.hasCTCSS = true; rigCaps.hasCTCSS = true;
rigCaps.hasDTCS = true; rigCaps.hasDTCS = true;
rigCaps.hasTBPF = true;
rigCaps.attenuators.push_back('\x20'); rigCaps.attenuators.push_back('\x20');
rigCaps.preamps.push_back('\x01'); rigCaps.preamps.push_back('\x01');
rigCaps.bands = standardHF; rigCaps.bands = standardHF;
@ -3226,6 +3305,7 @@ void rigCommander::determineRigCaps()
rigCaps.hasEthernet = true; rigCaps.hasEthernet = true;
rigCaps.hasWiFi = false; rigCaps.hasWiFi = false;
rigCaps.hasCTCSS = true; rigCaps.hasCTCSS = true;
rigCaps.hasTBPF = true;
rigCaps.attenuators.insert(rigCaps.attenuators.end(), rigCaps.attenuators.insert(rigCaps.attenuators.end(),
{'\x06', '\x12', '\x18'}); {'\x06', '\x12', '\x18'});
rigCaps.preamps.push_back('\x01'); rigCaps.preamps.push_back('\x01');
@ -3253,6 +3333,7 @@ void rigCommander::determineRigCaps()
rigCaps.hasFDcomms = false; rigCaps.hasFDcomms = false;
rigCaps.hasATU = true; rigCaps.hasATU = true;
rigCaps.hasPTTCommand = false; rigCaps.hasPTTCommand = false;
rigCaps.useRTSforPTT = true;
rigCaps.hasDataModes = false; rigCaps.hasDataModes = false;
rigCaps.attenuators.push_back('\x20'); rigCaps.attenuators.push_back('\x20');
rigCaps.bands = standardHF; rigCaps.bands = standardHF;
@ -3273,6 +3354,8 @@ void rigCommander::determineRigCaps()
rigCaps.hasFDcomms = false; rigCaps.hasFDcomms = false;
rigCaps.hasATU = false; rigCaps.hasATU = false;
rigCaps.hasPTTCommand = false; rigCaps.hasPTTCommand = false;
rigCaps.useRTSforPTT = true;
rigCaps.hasIFShift = true;
rigCaps.hasDataModes = false; rigCaps.hasDataModes = false;
rigCaps.attenuators.push_back('\x20'); rigCaps.attenuators.push_back('\x20');
rigCaps.preamps.push_back('\x01'); rigCaps.preamps.push_back('\x01');
@ -3286,6 +3369,28 @@ void rigCommander::determineRigCaps()
}; };
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00"); rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00");
break; break;
case model736:
rigCaps.modelName = QString("IC-736");
rigCaps.rigctlModel = 3020;
rigCaps.hasSpectrum = false;
rigCaps.inputs.clear();
rigCaps.hasLan = false;
rigCaps.hasEthernet = false;
rigCaps.hasWiFi = false;
rigCaps.hasFDcomms = false;
rigCaps.hasATU = false;
rigCaps.hasPTTCommand = false;
rigCaps.useRTSforPTT = true;
rigCaps.hasDataModes = false;
rigCaps.hasIFShift = true; // untested
rigCaps.attenuators.push_back('\x20');
rigCaps.preamps.push_back('\x01');
rigCaps.bands = standardHF;
rigCaps.modes = { createMode(modeLSB, 0x00, "LSB"), createMode(modeUSB, 0x01, "USB"),
createMode(modeAM, 0x02, "AM"), createMode(modeFM, 0x05, "FM"),
createMode(modeCW, 0x03, "CW"), createMode(modeCW_R, 0x07, "CW-R"),
};
break;
case model756pro: case model756pro:
rigCaps.modelName = QString("IC-756 Pro"); rigCaps.modelName = QString("IC-756 Pro");
rigCaps.rigctlModel = 3027; rigCaps.rigctlModel = 3027;
@ -3296,6 +3401,7 @@ void rigCommander::determineRigCaps()
rigCaps.hasWiFi = false; rigCaps.hasWiFi = false;
rigCaps.hasFDcomms = false; rigCaps.hasFDcomms = false;
rigCaps.hasATU = true; rigCaps.hasATU = true;
rigCaps.hasTBPF = true;
rigCaps.preamps.push_back('\x01'); rigCaps.preamps.push_back('\x01');
rigCaps.preamps.push_back('\x02'); rigCaps.preamps.push_back('\x02');
rigCaps.attenuators.insert(rigCaps.attenuators.end(),{ '\x06' , '\x12', '\x18'}); rigCaps.attenuators.insert(rigCaps.attenuators.end(),{ '\x06' , '\x12', '\x18'});
@ -3316,6 +3422,7 @@ void rigCommander::determineRigCaps()
rigCaps.hasWiFi = false; rigCaps.hasWiFi = false;
rigCaps.hasFDcomms = false; rigCaps.hasFDcomms = false;
rigCaps.hasATU = true; rigCaps.hasATU = true;
rigCaps.hasTBPF = true;
rigCaps.preamps.push_back('\x01'); rigCaps.preamps.push_back('\x01');
rigCaps.preamps.push_back('\x02'); rigCaps.preamps.push_back('\x02');
rigCaps.attenuators.insert(rigCaps.attenuators.end(),{ '\x06' , '\x12', '\x18'}); rigCaps.attenuators.insert(rigCaps.attenuators.end(),{ '\x06' , '\x12', '\x18'});
@ -3336,6 +3443,7 @@ void rigCommander::determineRigCaps()
rigCaps.hasWiFi = false; rigCaps.hasWiFi = false;
rigCaps.hasFDcomms = false; rigCaps.hasFDcomms = false;
rigCaps.hasATU = true; rigCaps.hasATU = true;
rigCaps.hasTBPF = true;
rigCaps.preamps.push_back('\x01'); rigCaps.preamps.push_back('\x01');
rigCaps.preamps.push_back('\x02'); rigCaps.preamps.push_back('\x02');
rigCaps.attenuators.insert(rigCaps.attenuators.end(),{ '\x06' , '\x12', '\x18'}); rigCaps.attenuators.insert(rigCaps.attenuators.end(),{ '\x06' , '\x12', '\x18'});
@ -3346,6 +3454,34 @@ void rigCommander::determineRigCaps()
rigCaps.modes = commonModes; rigCaps.modes = commonModes;
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00"); rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00");
break; break;
case model9100:
rigCaps.modelName = QString("IC-9100");
rigCaps.rigctlModel = 3068;
rigCaps.hasSpectrum = false;
rigCaps.inputs.append(inputUSB); // TODO, add commands for this radio's inputs
rigCaps.inputs.append(inputACC);
rigCaps.hasLan = false;
rigCaps.hasEthernet = false;
rigCaps.hasWiFi = false;
rigCaps.hasFDcomms = false;
rigCaps.hasATU = true;
rigCaps.hasDV = true;
rigCaps.hasTBPF = true;
rigCaps.preamps.push_back('\x01');
rigCaps.preamps.push_back('\x02');
rigCaps.attenuators.insert(rigCaps.attenuators.end(),{ '\x20' });
rigCaps.antennas = {0x00, 0x01};
rigCaps.bands = standardHF;
rigCaps.bands.insert(rigCaps.bands.end(), standardVU.begin(), standardVU.end());
rigCaps.bands.push_back(band23cm);
rigCaps.bands.push_back(bandGen);
rigCaps.bsr[band2m] = 0x11;
rigCaps.bsr[band70cm] = 0x12;
rigCaps.bsr[band23cm] = 0x13;
rigCaps.bsr[bandGen] = 0x14;
rigCaps.modes = commonModes;
rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modeDV, 0x17, "DV")});
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);
rigCaps.hasSpectrum = false; rigCaps.hasSpectrum = false;

Wyświetl plik

@ -215,6 +215,9 @@ public slots:
void getRfGain(); void getRfGain();
void getAfGain(); void getAfGain();
void getSql(); void getSql();
void getIFShift();
void getTPBFInner();
void getTPBFOuter();
void getTxLevel(); void getTxLevel();
void getMicGain(); void getMicGain();
void getCompLevel(); void getCompLevel();
@ -232,6 +235,9 @@ public slots:
void setSquelch(unsigned char level); void setSquelch(unsigned char level);
void setRfGain(unsigned char level); void setRfGain(unsigned char level);
void setAfGain(unsigned char level); void setAfGain(unsigned char level);
void setIFShift(unsigned char level);
void setTPBFInner(unsigned char level);
void setTPBFOuter(unsigned char level);
void setTxPower(unsigned char power); void setTxPower(unsigned char power);
void setMicGain(unsigned char gain); void setMicGain(unsigned char gain);
void setUSBGain(unsigned char gain); void setUSBGain(unsigned char gain);
@ -316,6 +322,7 @@ signals:
void haveSerialPortError(const QString port, const QString errorText); void haveSerialPortError(const QString port, const QString errorText);
void haveStatusUpdate(const QString text); void haveStatusUpdate(const QString text);
void dataForComm(const QByteArray &outData); void dataForComm(const QByteArray &outData);
void toggleRTS(bool rtsOn);
// UDP: // UDP:
void haveChangeLatency(quint16 value); void haveChangeLatency(quint16 value);
@ -356,6 +363,9 @@ signals:
void haveRfGain(unsigned char level); void haveRfGain(unsigned char level);
void haveAfGain(unsigned char level); void haveAfGain(unsigned char level);
void haveSql(unsigned char level); void haveSql(unsigned char level);
void haveTPBFInner(unsigned char level);
void haveTPBFOuter(unsigned char level);
void haveIFShift(unsigned char level);
void haveTxPower(unsigned char level); void haveTxPower(unsigned char level);
void haveMicGain(unsigned char level); void haveMicGain(unsigned char level);
void haveCompLevel(unsigned char level); void haveCompLevel(unsigned char level);

Wyświetl plik

@ -67,6 +67,9 @@ model_kind determineRadioModel(unsigned char rigID)
case model756proiii: case model756proiii:
rig = model756proiii; rig = model756proiii;
break; break;
case model9100:
rig = model9100;
break;
default: default:
rig = modelUnknown; rig = modelUnknown;
break; break;

Wyświetl plik

@ -29,10 +29,12 @@ enum model_kind {
model705 = 0xA4, model705 = 0xA4,
model706 = 0x58, model706 = 0x58,
model718 = 0x5E, model718 = 0x5E,
model736 = 0x40,
model756pro = 0x5C, model756pro = 0x5C,
model756proii = 0x64, model756proii = 0x64,
model756proiii = 0x6E, model756proiii = 0x6E,
model910h = 0x60, model910h = 0x60,
model9100 = 0x7C,
modelUnknown = 0xFF modelUnknown = 0xFF
}; };
@ -116,10 +118,13 @@ struct rigCapabilities {
bool hasTransmit; bool hasTransmit;
bool hasPTTCommand; bool hasPTTCommand;
bool useRTSforPTT;
bool hasAttenuator; bool hasAttenuator;
bool hasPreamp; bool hasPreamp;
bool hasAntennaSel; bool hasAntennaSel;
bool hasDataModes; bool hasDataModes;
bool hasIFShift;
bool hasTBPF;
bool hasRXAntenna; bool hasRXAntenna;

Wyświetl plik

@ -6,11 +6,100 @@ transceiverAdjustments::transceiverAdjustments(QWidget *parent) :
ui(new Ui::transceiverAdjustments) ui(new Ui::transceiverAdjustments)
{ {
ui->setupUi(this); ui->setupUi(this);
// request level updates #ifndef QT_DEBUG
ui->transmitterControlsGroupBox->setVisible(false); // no controls available so far
ui->bassRxLabel->setVisible(false);
ui->bassRxSlider->setVisible(false);
ui->trebleRxLabel->setVisible(false);
ui->trebleRxSlider->setVisible(false);
ui->NRRxCheckBox->setVisible(false);
ui->NRRxSlider->setVisible(false);
ui->notchRxChkBox->setVisible(false);
ui->notchRxSlider->setVisible(false);
ui->NBRxChkBox->setVisible(false);
ui->NBRxSlider->setVisible(false);
ui->bandwidthGroupBox->setVisible(false);
this->window()->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
this->window()->resize(QSizePolicy::Minimum, QSizePolicy::Minimum);
#endif
} }
transceiverAdjustments::~transceiverAdjustments() transceiverAdjustments::~transceiverAdjustments()
{ {
rigCaps.inputs.clear();
rigCaps.preamps.clear();
rigCaps.attenuators.clear();
rigCaps.antennas.clear();
delete ui; delete ui;
} }
void transceiverAdjustments::on_IFShiftSlider_valueChanged(int value)
{
if(rigCaps.hasIFShift)
{
emit setIFShift(value);
} else {
unsigned char inner = ui->TPBFInnerSlider->value();
unsigned char outer = ui->TPBFOuterSlider->value();
int shift = value - previousIFShift;
inner = MAX( 0, MIN(255,int (inner + shift)) );
outer = MAX( 0, MIN(255,int (outer + shift)) );
ui->TPBFInnerSlider->setValue(inner);
ui->TPBFOuterSlider->setValue(outer);
previousIFShift = value;
}
}
void transceiverAdjustments::on_TPBFInnerSlider_valueChanged(int value)
{
emit setTPBFInner(value);
}
void transceiverAdjustments::on_TPBFOuterSlider_valueChanged(int value)
{
emit setTPBFOuter(value);
}
void transceiverAdjustments::setRig(rigCapabilities rig)
{
this->rigCaps = rig;
if(!rigCaps.hasIFShift)
updateIFShift(128);
//ui->IFShiftSlider->setVisible(rigCaps.hasIFShift);
//ui->IFShiftLabel->setVisible(rigCaps.hasIFShift);
ui->TPBFInnerSlider->setVisible(rigCaps.hasTBPF);
ui->TPBFInnerLabel->setVisible(rigCaps.hasTBPF);
ui->TPBFOuterSlider->setVisible(rigCaps.hasTBPF);
ui->TPBFInnerLabel->setVisible(rigCaps.hasTBPF);
haveRigCaps = true;
}
// These are accessed by wfmain when we receive new values from rigCommander:
void transceiverAdjustments::updateIFShift(unsigned char level)
{
ui->IFShiftSlider->blockSignals(true);
ui->IFShiftSlider->setValue(level);
ui->IFShiftSlider->blockSignals(false);
}
void transceiverAdjustments::updateTPBFInner(unsigned char level)
{
ui->TPBFInnerSlider->blockSignals(true);
ui->TPBFInnerSlider->setValue(level);
ui->TPBFInnerSlider->blockSignals(false);
}
void transceiverAdjustments::updateTPBFOuter(unsigned char level)
{
ui->TPBFOuterSlider->blockSignals(true);
ui->TPBFOuterSlider->setValue(level);
ui->TPBFOuterSlider->blockSignals(false);
}

Wyświetl plik

@ -1,7 +1,11 @@
#ifndef TRANSCEIVERADJUSTMENTS_H #ifndef TRANSCEIVERADJUSTMENTS_H
#define TRANSCEIVERADJUSTMENTS_H #define TRANSCEIVERADJUSTMENTS_H
#include <sys/param.h>
#include <QWidget> #include <QWidget>
#include "rigidentities.h"
namespace Ui { namespace Ui {
class transceiverAdjustments; class transceiverAdjustments;
@ -15,8 +19,30 @@ public:
explicit transceiverAdjustments(QWidget *parent = 0); explicit transceiverAdjustments(QWidget *parent = 0);
~transceiverAdjustments(); ~transceiverAdjustments();
signals:
void setIFShift(unsigned char level);
void setTPBFInner(unsigned char level);
void setTPBFOuter(unsigned char level);
public slots:
void setRig(rigCapabilities rig);
void updateIFShift(unsigned char level);
void updateTPBFInner(unsigned char level);
void updateTPBFOuter(unsigned char level);
private slots:
void on_IFShiftSlider_valueChanged(int value);
void on_TPBFInnerSlider_valueChanged(int value);
void on_TPBFOuterSlider_valueChanged(int value);
private: private:
Ui::transceiverAdjustments *ui; Ui::transceiverAdjustments *ui;
rigCapabilities rigCaps;
bool haveRigCaps = false;
int previousIFShift = 128;
}; };
#endif // TRANSCEIVERADJUSTMENTS_H #endif // TRANSCEIVERADJUSTMENTS_H

Wyświetl plik

@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>680</width> <width>832</width>
<height>339</height> <height>337</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -29,13 +29,13 @@
<number>10</number> <number>10</number>
</property> </property>
<item> <item>
<widget class="QGroupBox" name="groupBox"> <widget class="QGroupBox" name="transmitterControlsGroupBox">
<property name="title"> <property name="title">
<string>Transmitter</string> <string>Transmitter</string>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout_2"> <layout class="QHBoxLayout" name="horizontalLayout_2">
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_2"> <layout class="QVBoxLayout" name="compVertLayout">
<property name="leftMargin"> <property name="leftMargin">
<number>0</number> <number>0</number>
</property> </property>
@ -49,14 +49,20 @@
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
<widget class="QSlider" name="verticalSlider"> <widget class="QSlider" name="compSlider">
<property name="minimumSize">
<size>
<width>0</width>
<height>230</height>
</size>
</property>
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="checkBox"> <widget class="QCheckBox" name="compChkBox">
<property name="text"> <property name="text">
<string>Comp</string> <string>Comp</string>
</property> </property>
@ -65,16 +71,22 @@
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_5"> <layout class="QVBoxLayout" name="bassTxVertLayout">
<item> <item>
<widget class="QSlider" name="verticalSlider_4"> <widget class="QSlider" name="bassTxSlider">
<property name="minimumSize">
<size>
<width>0</width>
<height>230</height>
</size>
</property>
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="label_4"> <widget class="QLabel" name="bassTxLabel">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>0</width> <width>0</width>
@ -89,16 +101,22 @@
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_4"> <layout class="QVBoxLayout" name="trebleTxVertLayout">
<item> <item>
<widget class="QSlider" name="verticalSlider_3"> <widget class="QSlider" name="trebleTxSlider">
<property name="minimumSize">
<size>
<width>0</width>
<height>230</height>
</size>
</property>
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="label_3"> <widget class="QLabel" name="trebleTxLabel">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>0</width> <width>0</width>
@ -106,23 +124,29 @@
</size> </size>
</property> </property>
<property name="text"> <property name="text">
<string>Trebble</string> <string>Treble</string>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_10"> <layout class="QVBoxLayout" name="tbdVertLayout">
<item> <item>
<widget class="QSlider" name="verticalSlider_9"> <widget class="QSlider" name="tbdSlider">
<property name="minimumSize">
<size>
<width>0</width>
<height>230</height>
</size>
</property>
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="label_6"> <widget class="QLabel" name="tbdLabel">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>0</width> <width>0</width>
@ -140,22 +164,28 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QGroupBox" name="groupBox_2"> <widget class="QGroupBox" name="receiverControlsGroupBox">
<property name="title"> <property name="title">
<string>Receiver</string> <string>Receiver</string>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout_3"> <layout class="QHBoxLayout" name="horizontalLayout_3">
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_8"> <layout class="QVBoxLayout" name="bassRxVertLayout">
<item> <item>
<widget class="QSlider" name="verticalSlider_5"> <widget class="QSlider" name="bassRxSlider">
<property name="minimumSize">
<size>
<width>0</width>
<height>230</height>
</size>
</property>
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="label"> <widget class="QLabel" name="bassRxLabel">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>0</width> <width>0</width>
@ -170,16 +200,22 @@
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_3"> <layout class="QVBoxLayout" name="trebleRxVertLayout">
<item> <item>
<widget class="QSlider" name="verticalSlider_2"> <widget class="QSlider" name="trebleRxSlider">
<property name="minimumSize">
<size>
<width>0</width>
<height>230</height>
</size>
</property>
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="label_2"> <widget class="QLabel" name="trebleRxLabel">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>0</width> <width>0</width>
@ -187,23 +223,32 @@
</size> </size>
</property> </property>
<property name="text"> <property name="text">
<string>Trebble</string> <string>Treble</string>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_9"> <layout class="QVBoxLayout" name="IFShiftVertLayout">
<item> <item>
<widget class="QSlider" name="verticalSlider_8"> <widget class="QSlider" name="IFShiftSlider">
<property name="minimumSize">
<size>
<width>0</width>
<height>230</height>
</size>
</property>
<property name="maximum">
<number>255</number>
</property>
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="label_5"> <widget class="QLabel" name="IFShiftLabel">
<property name="text"> <property name="text">
<string>IF Shift</string> <string>IF Shift</string>
</property> </property>
@ -212,16 +257,100 @@
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_7"> <layout class="QVBoxLayout" name="PBFInnerVertLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item> <item>
<widget class="QSlider" name="verticalSlider_6"> <widget class="QSlider" name="TPBFInnerSlider">
<property name="minimumSize">
<size>
<width>0</width>
<height>230</height>
</size>
</property>
<property name="maximum">
<number>255</number>
</property>
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="checkBox_2"> <widget class="QLabel" name="TPBFInnerLabel">
<property name="text">
<string>PBF Inner</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="TPBFOuterVertLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QSlider" name="TPBFOuterSlider">
<property name="minimumSize">
<size>
<width>0</width>
<height>230</height>
</size>
</property>
<property name="maximum">
<number>255</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="TPBFOuterLabel">
<property name="text">
<string>PBF Outer</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="NRRxVertLayout">
<item>
<widget class="QSlider" name="NRRxSlider">
<property name="minimumSize">
<size>
<width>0</width>
<height>230</height>
</size>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="NRRxCheckBox">
<property name="text"> <property name="text">
<string>NR</string> <string>NR</string>
</property> </property>
@ -230,16 +359,22 @@
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_6"> <layout class="QVBoxLayout" name="NBRxVertLayout">
<item> <item>
<widget class="QSlider" name="verticalSlider_7"> <widget class="QSlider" name="NBRxSlider">
<property name="minimumSize">
<size>
<width>0</width>
<height>230</height>
</size>
</property>
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="checkBox_3"> <widget class="QCheckBox" name="NBRxChkBox">
<property name="text"> <property name="text">
<string>NB</string> <string>NB</string>
</property> </property>
@ -248,16 +383,22 @@
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_11"> <layout class="QVBoxLayout" name="notchRxVertLayout">
<item> <item>
<widget class="QSlider" name="verticalSlider_10"> <widget class="QSlider" name="notchRxSlider">
<property name="minimumSize">
<size>
<width>0</width>
<height>230</height>
</size>
</property>
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="checkBox_4"> <widget class="QCheckBox" name="notchRxChkBox">
<property name="text"> <property name="text">
<string>Notch</string> <string>Notch</string>
</property> </property>
@ -266,40 +407,40 @@
</layout> </layout>
</item> </item>
<item> <item>
<widget class="QGroupBox" name="groupBox_3"> <widget class="QGroupBox" name="bandwidthGroupBox">
<property name="title"> <property name="title">
<string>Bandwidth</string> <string>Bandwidth</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_12"> <layout class="QVBoxLayout" name="verticalLayout_12">
<item> <item>
<widget class="QLabel" name="label_7"> <widget class="QLabel" name="lowBandwidthLabel">
<property name="text"> <property name="text">
<string>Low</string> <string>Low</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QComboBox" name="comboBox_2"/> <widget class="QComboBox" name="lowBandwidthCombo"/>
</item> </item>
<item> <item>
<widget class="QLabel" name="label_8"> <widget class="QLabel" name="highBandwidthLabel">
<property name="text"> <property name="text">
<string>High</string> <string>High</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QComboBox" name="comboBox"/> <widget class="QComboBox" name="highBandwidthCombo"/>
</item> </item>
<item> <item>
<widget class="QLabel" name="label_9"> <widget class="QLabel" name="filterBandwidthLabel">
<property name="text"> <property name="text">
<string>Filter</string> <string>Filter</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QComboBox" name="comboBox_3"/> <widget class="QComboBox" name="filterBandwidthCombo"/>
</item> </item>
<item> <item>
<spacer name="verticalSpacer"> <spacer name="verticalSpacer">

Wyświetl plik

@ -296,6 +296,9 @@ void wfmain::rigConnections()
connect(this, SIGNAL(getRfGain()), rig, SLOT(getRfGain())); connect(this, SIGNAL(getRfGain()), rig, SLOT(getRfGain()));
connect(this, SIGNAL(getAfGain()), rig, SLOT(getAfGain())); connect(this, SIGNAL(getAfGain()), rig, SLOT(getAfGain()));
connect(this, SIGNAL(getSql()), rig, SLOT(getSql())); connect(this, SIGNAL(getSql()), rig, SLOT(getSql()));
connect(this, SIGNAL(getIfShift()), rig, SLOT(getIFShift()));
connect(this, SIGNAL(getTPBFInner()), rig, SLOT(getTPBFInner()));
connect(this, SIGNAL(getTPBFOuter()), rig, SLOT(getTPBFOuter()));
connect(this, SIGNAL(getTxPower()), rig, SLOT(getTxLevel())); connect(this, SIGNAL(getTxPower()), rig, SLOT(getTxLevel()));
connect(this, SIGNAL(getMicGain()), rig, SLOT(getMicGain())); connect(this, SIGNAL(getMicGain()), rig, SLOT(getMicGain()));
connect(this, SIGNAL(getSpectrumRefLevel()), rig, SLOT(getSpectrumRefLevel())); connect(this, SIGNAL(getSpectrumRefLevel()), rig, SLOT(getSpectrumRefLevel()));
@ -306,6 +309,9 @@ void wfmain::rigConnections()
connect(this, SIGNAL(setRfGain(unsigned char)), rig, SLOT(setRfGain(unsigned char))); connect(this, SIGNAL(setRfGain(unsigned char)), rig, SLOT(setRfGain(unsigned char)));
connect(this, SIGNAL(setAfGain(unsigned char)), rig, SLOT(setAfGain(unsigned char))); connect(this, SIGNAL(setAfGain(unsigned char)), rig, SLOT(setAfGain(unsigned char)));
connect(this, SIGNAL(setSql(unsigned char)), rig, SLOT(setSquelch(unsigned char))); connect(this, SIGNAL(setSql(unsigned char)), rig, SLOT(setSquelch(unsigned char)));
connect(this, SIGNAL(setIFShift(unsigned char)), rig, SLOT(setIFShift(unsigned char)));
connect(this, SIGNAL(setTPBFInner(unsigned char)), rig, SLOT(setTPBFInner(unsigned char)));
connect(this, SIGNAL(setTPBFOuter(unsigned char)), rig, SLOT(setTPBFOuter(unsigned char)));
connect(this, SIGNAL(setTxPower(unsigned char)), rig, SLOT(setTxPower(unsigned char))); connect(this, SIGNAL(setTxPower(unsigned char)), rig, SLOT(setTxPower(unsigned char)));
connect(this, SIGNAL(setMicGain(unsigned char)), rig, SLOT(setMicGain(unsigned char))); connect(this, SIGNAL(setMicGain(unsigned char)), rig, SLOT(setMicGain(unsigned char)));
connect(this, SIGNAL(setMonitorLevel(unsigned char)), rig, SLOT(setMonitorLevel(unsigned char))); connect(this, SIGNAL(setMonitorLevel(unsigned char)), rig, SLOT(setMonitorLevel(unsigned char)));
@ -318,6 +324,9 @@ void wfmain::rigConnections()
connect(rig, SIGNAL(haveRfGain(unsigned char)), this, SLOT(receiveRfGain(unsigned char))); connect(rig, SIGNAL(haveRfGain(unsigned char)), this, SLOT(receiveRfGain(unsigned char)));
connect(rig, SIGNAL(haveAfGain(unsigned char)), this, SLOT(receiveAfGain(unsigned char))); connect(rig, SIGNAL(haveAfGain(unsigned char)), this, SLOT(receiveAfGain(unsigned char)));
connect(rig, SIGNAL(haveSql(unsigned char)), this, SLOT(receiveSql(unsigned char))); connect(rig, SIGNAL(haveSql(unsigned char)), this, SLOT(receiveSql(unsigned char)));
connect(rig, SIGNAL(haveIFShift(unsigned char)), trxadj, SLOT(updateIFShift(unsigned char)));
connect(rig, SIGNAL(haveTPBFInner(unsigned char)), trxadj, SLOT(updateTPBFInner(unsigned char)));
connect(rig, SIGNAL(haveTPBFOuter(unsigned char)), trxadj, SLOT(updateTPBFOuter(unsigned char)));
connect(rig, SIGNAL(haveTxPower(unsigned char)), this, SLOT(receiveTxPower(unsigned char))); connect(rig, SIGNAL(haveTxPower(unsigned char)), this, SLOT(receiveTxPower(unsigned char)));
connect(rig, SIGNAL(haveMicGain(unsigned char)), this, SLOT(receiveMicGain(unsigned char))); connect(rig, SIGNAL(haveMicGain(unsigned char)), this, SLOT(receiveMicGain(unsigned char)));
connect(rig, SIGNAL(haveSpectrumRefLevel(int)), this, SLOT(receiveSpectrumRefLevel(int))); connect(rig, SIGNAL(haveSpectrumRefLevel(int)), this, SLOT(receiveSpectrumRefLevel(int)));
@ -807,6 +816,20 @@ void wfmain::setupMainUI()
[=](const int &newValue) { statusFromSliderRaw("Waterfall Length", newValue);} [=](const int &newValue) { statusFromSliderRaw("Waterfall Length", newValue);}
); );
connect(this->trxadj, &transceiverAdjustments::setIFShift,
[=](const unsigned char &newValue) { issueCmdUniquePriority(cmdSetIFShift, newValue);}
);
connect(this->trxadj, &transceiverAdjustments::setTPBFInner,
[=](const unsigned char &newValue) { issueCmdUniquePriority(cmdSetTPBFInner, newValue);}
);
connect(this->trxadj, &transceiverAdjustments::setTPBFOuter,
[=](const unsigned char &newValue) { issueCmdUniquePriority(cmdSetTPBFOuter, newValue);}
);
} }
void wfmain::updateSizes(int tabIndex) void wfmain::updateSizes(int tabIndex)
@ -2239,6 +2262,14 @@ void wfmain:: getInitialRigState()
issueDelayedCommand(cmdGetRitEnabled); issueDelayedCommand(cmdGetRitEnabled);
issueDelayedCommand(cmdGetRitValue); issueDelayedCommand(cmdGetRitValue);
if(rigCaps.hasIFShift)
issueDelayedCommand(cmdGetIFShift);
if(rigCaps.hasTBPF)
{
issueDelayedCommand(cmdGetTPBFInner);
issueDelayedCommand(cmdGetTPBFOuter);
}
if(rigCaps.hasSpectrum) if(rigCaps.hasSpectrum)
{ {
issueDelayedCommand(cmdGetSpectrumMode); issueDelayedCommand(cmdGetSpectrumMode);
@ -2440,6 +2471,24 @@ void wfmain::doCmd(commandtype cmddata)
emit setSql(sqlLevel); emit setSql(sqlLevel);
break; break;
} }
case cmdSetIFShift:
{
unsigned char IFShiftLevel = (*std::static_pointer_cast<unsigned char>(data));
emit setIFShift(IFShiftLevel);
break;
}
case cmdSetTPBFInner:
{
unsigned char innterLevel = (*std::static_pointer_cast<unsigned char>(data));
emit setTPBFInner(innterLevel);
break;
}
case cmdSetTPBFOuter:
{
unsigned char outerLevel = (*std::static_pointer_cast<unsigned char>(data));
emit setTPBFOuter(outerLevel);
break;
}
case cmdSetPTT: case cmdSetPTT:
{ {
bool pttrequest = (*std::static_pointer_cast<bool>(data)); bool pttrequest = (*std::static_pointer_cast<bool>(data));
@ -2582,6 +2631,15 @@ void wfmain::doCmd(cmds cmd)
case cmdGetSql: case cmdGetSql:
emit getSql(); emit getSql();
break; break;
case cmdGetIFShift:
emit getIfShift();
break;
case cmdGetTPBFInner:
emit getTPBFInner();
break;
case cmdGetTPBFOuter:
emit getTPBFOuter();
break;
case cmdGetTxPower: case cmdGetTxPower:
emit getTxPower(); emit getTxPower();
break; break;
@ -2907,6 +2965,7 @@ void wfmain::receiveRigID(rigCapabilities rigCaps)
// Added so that server receives rig capabilities. // Added so that server receives rig capabilities.
emit sendRigCaps(rigCaps); emit sendRigCaps(rigCaps);
rpt->setRig(rigCaps); rpt->setRig(rigCaps);
trxadj->setRig(rigCaps);
// Set the mode combo box up: // Set the mode combo box up:
@ -3028,6 +3087,7 @@ void wfmain::receiveRigID(rigCapabilities rigCaps)
setBandButtons(); setBandButtons();
ui->tuneEnableChk->setEnabled(rigCaps.hasATU); ui->tuneEnableChk->setEnabled(rigCaps.hasATU);
ui->tuneNowBtn->setEnabled(rigCaps.hasATU); ui->tuneNowBtn->setEnabled(rigCaps.hasATU);
@ -4090,6 +4150,21 @@ void wfmain::receiveSql(unsigned char level)
ui->sqlSlider->setValue(level); ui->sqlSlider->setValue(level);
} }
void wfmain::receiveIFShift(unsigned char level)
{
trxadj->updateIFShift(level);
}
void wfmain::receiveTBPFInner(unsigned char level)
{
trxadj->updateTPBFInner(level);
}
void wfmain::receiveTBPFOuter(unsigned char level)
{
trxadj->updateTPBFOuter(level);
}
void wfmain::on_tuneNowBtn_clicked() void wfmain::on_tuneNowBtn_clicked()
{ {
issueDelayedCommand(cmdStartATU); issueDelayedCommand(cmdStartATU);
@ -4353,6 +4428,20 @@ void wfmain::on_sqlSlider_valueChanged(int value)
issueCmd(cmdSetSql, (unsigned char)value); issueCmd(cmdSetSql, (unsigned char)value);
//emit setSql((unsigned char)value); //emit setSql((unsigned char)value);
} }
// These three are from the transceiver adjustment window:
void wfmain::changeIFShift(unsigned char level)
{
//issueCmd(cmdSetIFShift, level);
issueCmdUniquePriority(cmdSetIFShift, level);
}
void wfmain::changeTPBFInner(unsigned char level)
{
issueCmdUniquePriority(cmdSetTPBFInner, level);
}
void wfmain::changeTPBFOuter(unsigned char level)
{
issueCmdUniquePriority(cmdSetTPBFOuter, level);
}
void wfmain::on_modeFilterCombo_activated(int index) void wfmain::on_modeFilterCombo_activated(int index)
{ {
@ -5377,11 +5466,16 @@ void wfmain::on_rigctldPortTxt_editingFinished()
} }
} }
void wfmain::on_moreControlsBtn_clicked()
{
trxadj->show();
}
// --- DEBUG FUNCTION --- // --- DEBUG FUNCTION ---
void wfmain::on_debugBtn_clicked() void wfmain::on_debugBtn_clicked()
{ {
qInfo(logSystem()) << "Debug button pressed."; qInfo(logSystem()) << "Debug button pressed.";
//trxadj->show(); trxadj->show();
//setRadioTimeDatePrep(); //setRadioTimeDatePrep();
//wf->setInteraction(QCP::iRangeZoom, true); //wf->setInteraction(QCP::iRangeZoom, true);
//wf->setInteraction(QCP::iRangeDrag, true); //wf->setInteraction(QCP::iRangeDrag, true);

Wyświetl plik

@ -85,6 +85,9 @@ signals:
void getRfGain(); void getRfGain();
void getAfGain(); void getAfGain();
void getSql(); void getSql();
void getIfShift();
void getTPBFInner();
void getTPBFOuter();
void getTxPower(); void getTxPower();
void getMicGain(); void getMicGain();
void getSpectrumRefLevel(); void getSpectrumRefLevel();
@ -94,6 +97,13 @@ signals:
void setRfGain(unsigned char level); void setRfGain(unsigned char level);
void setAfGain(unsigned char level); void setAfGain(unsigned char level);
void setSql(unsigned char level); void setSql(unsigned char level);
void setIFShift(unsigned char level);
void setTPBFInner(unsigned char level);
void setTPBFOuter(unsigned char level);
void setIFShiftWindow(unsigned char level);
void setTPBFInnerWindow(unsigned char level);
void setTPBFOuterWindow(unsigned char level);
void setMicGain(unsigned char); void setMicGain(unsigned char);
void setCompLevel(unsigned char); void setCompLevel(unsigned char);
void setTxPower(unsigned char); void setTxPower(unsigned char);
@ -213,6 +223,13 @@ private slots:
void receiveRfGain(unsigned char level); void receiveRfGain(unsigned char level);
void receiveAfGain(unsigned char level); void receiveAfGain(unsigned char level);
void receiveSql(unsigned char level); void receiveSql(unsigned char level);
void receiveIFShift(unsigned char level);
void receiveTBPFInner(unsigned char level);
void receiveTBPFOuter(unsigned char level);
// 'change' from data in transceiver controls window:
void changeIFShift(unsigned char level);
void changeTPBFInner(unsigned char level);
void changeTPBFOuter(unsigned char level);
void receiveTxPower(unsigned char power); void receiveTxPower(unsigned char power);
void receiveMicGain(unsigned char gain); void receiveMicGain(unsigned char gain);
void receiveCompLevel(unsigned char compLevel); void receiveCompLevel(unsigned char compLevel);
@ -478,6 +495,8 @@ private slots:
void on_rigctldPortTxt_editingFinished(); void on_rigctldPortTxt_editingFinished();
void on_moreControlsBtn_clicked();
private: private:
Ui::wfmain *ui; Ui::wfmain *ui;
void closeEvent(QCloseEvent *event); void closeEvent(QCloseEvent *event);
@ -600,13 +619,18 @@ private:
unsigned char setModeVal=0; unsigned char setModeVal=0;
unsigned char setFilterVal=0; unsigned char setFilterVal=0;
enum cmds {cmdNone, cmdGetRigID, cmdGetRigCIV, cmdGetFreq, cmdSetFreq, cmdGetMode, cmdSetMode, cmdGetDataMode, cmdSetModeFilter, enum cmds {cmdNone, cmdGetRigID, cmdGetRigCIV, cmdGetFreq, cmdSetFreq, cmdGetMode, cmdSetMode,
cmdSetDataModeOn, cmdSetDataModeOff, cmdGetRitEnabled, cmdGetRitValue, cmdGetDataMode, cmdSetModeFilter, cmdSetDataModeOn, cmdSetDataModeOff, cmdGetRitEnabled, cmdGetRitValue,
cmdSpecOn, cmdSpecOff, cmdDispEnable, cmdDispDisable, cmdGetRxGain, cmdSetRxRfGain, cmdGetAfGain, cmdSetAfGain, cmdSpecOn, cmdSpecOff, cmdDispEnable, cmdDispDisable, cmdGetRxGain, cmdSetRxRfGain, cmdGetAfGain, cmdSetAfGain,
cmdGetSql, cmdSetSql, cmdGetATUStatus, cmdSetATU, cmdStartATU, cmdGetSpectrumMode, cmdGetSpectrumSpan, cmdScopeCenterMode, cmdScopeFixedMode, cmdGetPTT, cmdSetPTT, cmdGetSql, cmdSetSql, cmdGetIFShift, cmdSetIFShift, cmdGetTPBFInner, cmdSetTPBFInner,
cmdGetTxPower, cmdSetTxPower, cmdGetMicGain, cmdSetMicGain, cmdSetModLevel, cmdGetSpectrumRefLevel, cmdGetDuplexMode, cmdGetModInput, cmdGetModDataInput, cmdGetTPBFOuter, cmdSetTPBFOuter, cmdGetATUStatus,
cmdSetATU, cmdStartATU, cmdGetSpectrumMode,
cmdGetSpectrumSpan, cmdScopeCenterMode, cmdScopeFixedMode, cmdGetPTT, cmdSetPTT,
cmdGetTxPower, cmdSetTxPower, cmdGetMicGain, cmdSetMicGain, cmdSetModLevel,
cmdGetSpectrumRefLevel, cmdGetDuplexMode, cmdGetModInput, cmdGetModDataInput,
cmdGetCurrentModLevel, cmdStartRegularPolling, cmdStopRegularPolling, cmdQueNormalSpeed, cmdGetCurrentModLevel, cmdStartRegularPolling, cmdStopRegularPolling, cmdQueNormalSpeed,
cmdGetVdMeter, cmdGetIdMeter, cmdGetSMeter, cmdGetCenterMeter, cmdGetPowerMeter, cmdGetSWRMeter, cmdGetALCMeter, cmdGetCompMeter, cmdGetTxRxMeter, cmdGetVdMeter, cmdGetIdMeter, cmdGetSMeter, cmdGetCenterMeter, cmdGetPowerMeter,
cmdGetSWRMeter, cmdGetALCMeter, cmdGetCompMeter, cmdGetTxRxMeter,
cmdGetTone, cmdGetTSQL, cmdGetDTCS, cmdGetRptAccessMode, cmdGetPreamp, cmdGetAttenuator, cmdGetAntenna, cmdGetTone, cmdGetTSQL, cmdGetDTCS, cmdGetRptAccessMode, cmdGetPreamp, cmdGetAttenuator, cmdGetAntenna,
cmdSetTime, cmdSetDate, cmdSetUTCOffset}; cmdSetTime, cmdSetDate, cmdSetUTCOffset};

Wyświetl plik

@ -6,7 +6,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>934</width> <width>941</width>
<height>582</height> <height>582</height>
</rect> </rect>
</property> </property>
@ -18,7 +18,7 @@
<item> <item>
<widget class="QTabWidget" name="tabWidget"> <widget class="QTabWidget" name="tabWidget">
<property name="currentIndex"> <property name="currentIndex">
<number>3</number> <number>0</number>
</property> </property>
<widget class="QWidget" name="mainTab"> <widget class="QWidget" name="mainTab">
<attribute name="title"> <attribute name="title">
@ -465,6 +465,16 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QPushButton" name="moreControlsBtn">
<property name="toolTip">
<string>Show additional controls</string>
</property>
<property name="text">
<string>Show More</string>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item> <item>
@ -852,6 +862,9 @@
<height>50</height> <height>50</height>
</size> </size>
</property> </property>
<property name="toolTip">
<string>Transmit and Receive button</string>
</property>
<property name="text"> <property name="text">
<string>Transmit</string> <string>Transmit</string>
</property> </property>
@ -885,6 +898,9 @@
</item> </item>
<item> <item>
<widget class="QPushButton" name="rptSetupBtn"> <widget class="QPushButton" name="rptSetupBtn">
<property name="toolTip">
<string>Show the repeater tone and offset window</string>
</property>
<property name="text"> <property name="text">
<string>Repeater</string> <string>Repeater</string>
</property> </property>
@ -2814,8 +2830,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>934</width> <width>941</width>
<height>21</height> <height>22</height>
</rect> </rect>
</property> </property>
</widget> </widget>