kopia lustrzana https://gitlab.com/eliggett/wfview
Merge remote-tracking branch 'origin/rigs' into audio-enhance
commit
0f48959a75
BIN
.swo
BIN
.swo
Plik binarny nie jest wyświetlany.
17
CHANGELOG
17
CHANGELOG
|
@ -1,5 +1,22 @@
|
|||
# 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
|
||||
|
||||
Remove duplicate setPriority()
|
||||
|
|
7
WHATSNEW
7
WHATSNEW
|
@ -10,3 +10,10 @@ The following highlights are in this 1.x-release:
|
|||
rigctl basic split support
|
||||
rigctl prevents switching off civ transceive
|
||||
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
|
||||
|
|
|
@ -12,7 +12,7 @@ aboutbox::aboutbox(QWidget *parent) :
|
|||
ui->logoBtn->setIcon(QIcon(":resources/wfview.png"));
|
||||
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 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.");
|
||||
|
|
|
@ -45,6 +45,7 @@ commHandler::commHandler(QString portName, quint32 baudRate)
|
|||
baudrate = baudRate;
|
||||
stopbits = 1;
|
||||
this->portName = portName;
|
||||
this->PTTviaRTS = false;
|
||||
|
||||
setupComm(); // basic parameters
|
||||
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()
|
||||
{
|
||||
bool success;
|
||||
|
|
|
@ -18,9 +18,14 @@ public:
|
|||
commHandler();
|
||||
commHandler(QString portName, quint32 baudRate);
|
||||
bool serialError;
|
||||
bool rtsStatus();
|
||||
|
||||
~commHandler();
|
||||
|
||||
public slots:
|
||||
void setUseRTSforPTT(bool useRTS);
|
||||
void setRTS(bool rtsOn);
|
||||
|
||||
private slots:
|
||||
void receiveDataIn(); // from physical port
|
||||
void receiveDataFromUserToRig(const QByteArray &data);
|
||||
|
@ -38,6 +43,7 @@ private:
|
|||
void openPort();
|
||||
void closePort();
|
||||
|
||||
|
||||
void sendDataOut(const QByteArray &writeData); // out to radio
|
||||
void debugMe();
|
||||
void hexPrint();
|
||||
|
@ -63,6 +69,8 @@ private:
|
|||
bool havePt;
|
||||
QString ptDevSlave;
|
||||
|
||||
bool PTTviaRTS = false;
|
||||
|
||||
bool isConnected; // port opened
|
||||
mutable QMutex mutex;
|
||||
void printHex(const QByteArray &pdata, bool printVert, bool printHoriz);
|
||||
|
|
136
rigcommander.cpp
136
rigcommander.cpp
|
@ -63,6 +63,7 @@ void rigCommander::commSetup(unsigned char rigCivAddr, QString rigSerialPort, qu
|
|||
connect(ptty, SIGNAL(haveDataFromPort(QByteArray)), comm, SLOT(receiveDataFromUserToRig(QByteArray)));
|
||||
// data from the program to the comm port:
|
||||
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:
|
||||
connect(comm, SIGNAL(haveDataFromPort(QByteArray)), ptty, SLOT(receiveDataFromRigToPtty(QByteArray)));
|
||||
|
@ -236,6 +237,9 @@ void rigCommander::findRigs()
|
|||
data.append(payloadSuffix);
|
||||
|
||||
emit dataForComm(data);
|
||||
// HACK for testing radios that do not respond to rig ID queries:
|
||||
//this->model = model736;
|
||||
//this->determineRigCaps();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -989,10 +993,15 @@ void rigCommander::getSatelliteMode()
|
|||
|
||||
void rigCommander::getPTT()
|
||||
{
|
||||
if(rigCaps.useRTSforPTT)
|
||||
{
|
||||
emit havePTTStatus(comm->rtsStatus());
|
||||
} else {
|
||||
QByteArray payload;
|
||||
payload.setRawData("\x1C\x00", 2);
|
||||
prepDataAndSend(payload);
|
||||
}
|
||||
}
|
||||
|
||||
void rigCommander::getBandStackReg(char band, char regCode)
|
||||
{
|
||||
|
@ -1008,9 +1017,14 @@ void rigCommander::setPTT(bool pttOn)
|
|||
|
||||
if(pttAllowed)
|
||||
{
|
||||
if(rigCaps.useRTSforPTT)
|
||||
{
|
||||
emit toggleRTS(pttOn);
|
||||
} else {
|
||||
QByteArray payload("\x1C\x00", 2);
|
||||
payload.append((char)pttOn);
|
||||
prepDataAndSend(payload);
|
||||
}
|
||||
rigState.ptt = pttOn;
|
||||
}
|
||||
}
|
||||
|
@ -1359,6 +1373,17 @@ void rigCommander::parseLevels()
|
|||
emit haveSql(level);
|
||||
rigState.squelch = level;
|
||||
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':
|
||||
// CW Pitch - ignore for now
|
||||
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)
|
||||
{
|
||||
QByteArray payload("\x14\x0A");
|
||||
|
@ -1889,6 +1935,24 @@ void rigCommander::getAfGain()
|
|||
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()
|
||||
{
|
||||
QByteArray payload("\x14\x03");
|
||||
|
@ -2824,6 +2888,9 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasCTCSS = false;
|
||||
rigCaps.hasDTCS = false;
|
||||
|
||||
rigCaps.hasTBPF = false;
|
||||
rigCaps.hasIFShift = false;
|
||||
|
||||
rigCaps.spectSeqMax = 0;
|
||||
rigCaps.spectAmpMax = 0;
|
||||
rigCaps.spectLenMax = 0;
|
||||
|
@ -2852,6 +2919,7 @@ void rigCommander::determineRigCaps()
|
|||
|
||||
rigCaps.hasTransmit = true;
|
||||
rigCaps.hasPTTCommand = true;
|
||||
rigCaps.useRTSforPTT = false;
|
||||
|
||||
// Common, reasonable defaults for most supported HF rigs:
|
||||
rigCaps.bsr[band160m] = 0x01;
|
||||
|
@ -2894,6 +2962,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasWiFi = false;
|
||||
rigCaps.hasATU = true;
|
||||
rigCaps.hasCTCSS = true;
|
||||
rigCaps.hasTBPF = true;
|
||||
rigCaps.attenuators.push_back('\x20');
|
||||
rigCaps.preamps.push_back('\x01');
|
||||
rigCaps.preamps.push_back('\x02');
|
||||
|
@ -2922,6 +2991,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasCTCSS = true;
|
||||
rigCaps.hasDTCS = true;
|
||||
rigCaps.hasDV = true;
|
||||
rigCaps.hasTBPF = true;
|
||||
rigCaps.attenuators.push_back('\x10');
|
||||
rigCaps.attenuators.push_back('\x20');
|
||||
rigCaps.attenuators.push_back('\x30');
|
||||
|
@ -2959,6 +3029,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasDV = true;
|
||||
rigCaps.hasCTCSS = true;
|
||||
rigCaps.hasDTCS = true;
|
||||
rigCaps.hasTBPF = true;
|
||||
rigCaps.attenuators.push_back('\x10');
|
||||
rigCaps.preamps.push_back('\x01');
|
||||
rigCaps.bands = standardVU;
|
||||
|
@ -3007,6 +3078,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasATU = true;
|
||||
rigCaps.hasCTCSS = false;
|
||||
rigCaps.hasDTCS = false;
|
||||
rigCaps.hasTBPF = true;
|
||||
rigCaps.attenuators.insert(rigCaps.attenuators.end(), {0x00, 0x06, 0x12, 0x18});
|
||||
rigCaps.preamps.push_back('\x01');
|
||||
rigCaps.preamps.push_back('\x02');
|
||||
|
@ -3033,6 +3105,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasEthernet = true;
|
||||
rigCaps.hasWiFi = false;
|
||||
rigCaps.hasCTCSS = true;
|
||||
rigCaps.hasTBPF = true;
|
||||
rigCaps.attenuators.insert(rigCaps.attenuators.end(),
|
||||
{'\x03', '\x06', '\x09', '\x12',\
|
||||
'\x15', '\x18', '\x21', '\x24',\
|
||||
|
@ -3067,6 +3140,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasWiFi = false;
|
||||
rigCaps.hasATU = true;
|
||||
rigCaps.hasCTCSS = true;
|
||||
rigCaps.hasTBPF = true;
|
||||
rigCaps.attenuators.insert(rigCaps.attenuators.end(),
|
||||
{'\x03', '\x06', '\x09',
|
||||
'\x12', '\x15', '\x18', '\x21'});
|
||||
|
@ -3101,6 +3175,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasATU = true;
|
||||
rigCaps.hasCTCSS = true;
|
||||
rigCaps.hasDTCS = true;
|
||||
rigCaps.hasTBPF = true;
|
||||
rigCaps.attenuators.insert(rigCaps.attenuators.end(),{ '\x10' , '\x20'});
|
||||
rigCaps.preamps.push_back('\x01');
|
||||
rigCaps.preamps.push_back('\x02');
|
||||
|
@ -3133,6 +3208,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasATU = true;
|
||||
rigCaps.hasCTCSS = true;
|
||||
rigCaps.hasDTCS = true;
|
||||
rigCaps.hasTBPF = true;
|
||||
rigCaps.attenuators.push_back('\x12');
|
||||
rigCaps.preamps.push_back('\x01');
|
||||
rigCaps.bands = standardHF;
|
||||
|
@ -3156,6 +3232,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasATU = true;
|
||||
rigCaps.hasCTCSS = true;
|
||||
rigCaps.hasDTCS = true;
|
||||
rigCaps.hasTBPF = true;
|
||||
rigCaps.attenuators.push_back('\x20');
|
||||
rigCaps.preamps.push_back('\x01');
|
||||
rigCaps.preamps.push_back('\x02');
|
||||
|
@ -3179,6 +3256,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasATU = true;
|
||||
rigCaps.hasCTCSS = true;
|
||||
rigCaps.hasDTCS = true;
|
||||
rigCaps.hasTBPF = true;
|
||||
rigCaps.attenuators.push_back('\x12');
|
||||
rigCaps.preamps.push_back('\x01');
|
||||
rigCaps.preamps.push_back('\x02');
|
||||
|
@ -3207,6 +3285,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasATU = true;
|
||||
rigCaps.hasCTCSS = true;
|
||||
rigCaps.hasDTCS = true;
|
||||
rigCaps.hasTBPF = true;
|
||||
rigCaps.attenuators.push_back('\x20');
|
||||
rigCaps.preamps.push_back('\x01');
|
||||
rigCaps.bands = standardHF;
|
||||
|
@ -3226,6 +3305,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasEthernet = true;
|
||||
rigCaps.hasWiFi = false;
|
||||
rigCaps.hasCTCSS = true;
|
||||
rigCaps.hasTBPF = true;
|
||||
rigCaps.attenuators.insert(rigCaps.attenuators.end(),
|
||||
{'\x06', '\x12', '\x18'});
|
||||
rigCaps.preamps.push_back('\x01');
|
||||
|
@ -3253,6 +3333,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasFDcomms = false;
|
||||
rigCaps.hasATU = true;
|
||||
rigCaps.hasPTTCommand = false;
|
||||
rigCaps.useRTSforPTT = true;
|
||||
rigCaps.hasDataModes = false;
|
||||
rigCaps.attenuators.push_back('\x20');
|
||||
rigCaps.bands = standardHF;
|
||||
|
@ -3273,6 +3354,8 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasFDcomms = false;
|
||||
rigCaps.hasATU = false;
|
||||
rigCaps.hasPTTCommand = false;
|
||||
rigCaps.useRTSforPTT = true;
|
||||
rigCaps.hasIFShift = true;
|
||||
rigCaps.hasDataModes = false;
|
||||
rigCaps.attenuators.push_back('\x20');
|
||||
rigCaps.preamps.push_back('\x01');
|
||||
|
@ -3286,6 +3369,28 @@ void rigCommander::determineRigCaps()
|
|||
};
|
||||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00");
|
||||
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:
|
||||
rigCaps.modelName = QString("IC-756 Pro");
|
||||
rigCaps.rigctlModel = 3027;
|
||||
|
@ -3296,6 +3401,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasWiFi = false;
|
||||
rigCaps.hasFDcomms = false;
|
||||
rigCaps.hasATU = true;
|
||||
rigCaps.hasTBPF = true;
|
||||
rigCaps.preamps.push_back('\x01');
|
||||
rigCaps.preamps.push_back('\x02');
|
||||
rigCaps.attenuators.insert(rigCaps.attenuators.end(),{ '\x06' , '\x12', '\x18'});
|
||||
|
@ -3316,6 +3422,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasWiFi = false;
|
||||
rigCaps.hasFDcomms = false;
|
||||
rigCaps.hasATU = true;
|
||||
rigCaps.hasTBPF = true;
|
||||
rigCaps.preamps.push_back('\x01');
|
||||
rigCaps.preamps.push_back('\x02');
|
||||
rigCaps.attenuators.insert(rigCaps.attenuators.end(),{ '\x06' , '\x12', '\x18'});
|
||||
|
@ -3336,6 +3443,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasWiFi = false;
|
||||
rigCaps.hasFDcomms = false;
|
||||
rigCaps.hasATU = true;
|
||||
rigCaps.hasTBPF = true;
|
||||
rigCaps.preamps.push_back('\x01');
|
||||
rigCaps.preamps.push_back('\x02');
|
||||
rigCaps.attenuators.insert(rigCaps.attenuators.end(),{ '\x06' , '\x12', '\x18'});
|
||||
|
@ -3346,6 +3454,34 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.modes = commonModes;
|
||||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00");
|
||||
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:
|
||||
rigCaps.modelName = QString("IC-0x%1").arg(rigCaps.modelID, 2, 16);
|
||||
rigCaps.hasSpectrum = false;
|
||||
|
|
|
@ -215,6 +215,9 @@ public slots:
|
|||
void getRfGain();
|
||||
void getAfGain();
|
||||
void getSql();
|
||||
void getIFShift();
|
||||
void getTPBFInner();
|
||||
void getTPBFOuter();
|
||||
void getTxLevel();
|
||||
void getMicGain();
|
||||
void getCompLevel();
|
||||
|
@ -232,6 +235,9 @@ public slots:
|
|||
void setSquelch(unsigned char level);
|
||||
void setRfGain(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 setMicGain(unsigned char gain);
|
||||
void setUSBGain(unsigned char gain);
|
||||
|
@ -316,6 +322,7 @@ signals:
|
|||
void haveSerialPortError(const QString port, const QString errorText);
|
||||
void haveStatusUpdate(const QString text);
|
||||
void dataForComm(const QByteArray &outData);
|
||||
void toggleRTS(bool rtsOn);
|
||||
|
||||
// UDP:
|
||||
void haveChangeLatency(quint16 value);
|
||||
|
@ -356,6 +363,9 @@ signals:
|
|||
void haveRfGain(unsigned char level);
|
||||
void haveAfGain(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 haveMicGain(unsigned char level);
|
||||
void haveCompLevel(unsigned char level);
|
||||
|
|
|
@ -67,6 +67,9 @@ model_kind determineRadioModel(unsigned char rigID)
|
|||
case model756proiii:
|
||||
rig = model756proiii;
|
||||
break;
|
||||
case model9100:
|
||||
rig = model9100;
|
||||
break;
|
||||
default:
|
||||
rig = modelUnknown;
|
||||
break;
|
||||
|
|
|
@ -29,10 +29,12 @@ enum model_kind {
|
|||
model705 = 0xA4,
|
||||
model706 = 0x58,
|
||||
model718 = 0x5E,
|
||||
model736 = 0x40,
|
||||
model756pro = 0x5C,
|
||||
model756proii = 0x64,
|
||||
model756proiii = 0x6E,
|
||||
model910h = 0x60,
|
||||
model9100 = 0x7C,
|
||||
modelUnknown = 0xFF
|
||||
};
|
||||
|
||||
|
@ -116,10 +118,13 @@ struct rigCapabilities {
|
|||
|
||||
bool hasTransmit;
|
||||
bool hasPTTCommand;
|
||||
bool useRTSforPTT;
|
||||
bool hasAttenuator;
|
||||
bool hasPreamp;
|
||||
bool hasAntennaSel;
|
||||
bool hasDataModes;
|
||||
bool hasIFShift;
|
||||
bool hasTBPF;
|
||||
|
||||
bool hasRXAntenna;
|
||||
|
||||
|
|
|
@ -6,11 +6,100 @@ transceiverAdjustments::transceiverAdjustments(QWidget *parent) :
|
|||
ui(new Ui::transceiverAdjustments)
|
||||
{
|
||||
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()
|
||||
{
|
||||
rigCaps.inputs.clear();
|
||||
rigCaps.preamps.clear();
|
||||
rigCaps.attenuators.clear();
|
||||
rigCaps.antennas.clear();
|
||||
|
||||
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);
|
||||
}
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
#ifndef TRANSCEIVERADJUSTMENTS_H
|
||||
#define TRANSCEIVERADJUSTMENTS_H
|
||||
|
||||
#include <sys/param.h>
|
||||
|
||||
#include <QWidget>
|
||||
#include "rigidentities.h"
|
||||
|
||||
|
||||
namespace Ui {
|
||||
class transceiverAdjustments;
|
||||
|
@ -15,8 +19,30 @@ public:
|
|||
explicit transceiverAdjustments(QWidget *parent = 0);
|
||||
~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:
|
||||
Ui::transceiverAdjustments *ui;
|
||||
rigCapabilities rigCaps;
|
||||
bool haveRigCaps = false;
|
||||
int previousIFShift = 128;
|
||||
};
|
||||
|
||||
#endif // TRANSCEIVERADJUSTMENTS_H
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>680</width>
|
||||
<height>339</height>
|
||||
<width>832</width>
|
||||
<height>337</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
|
@ -29,13 +29,13 @@
|
|||
<number>10</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<widget class="QGroupBox" name="transmitterControlsGroupBox">
|
||||
<property name="title">
|
||||
<string>Transmitter</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<layout class="QVBoxLayout" name="compVertLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
|
@ -49,14 +49,20 @@
|
|||
<number>0</number>
|
||||
</property>
|
||||
<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">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkBox">
|
||||
<widget class="QCheckBox" name="compChkBox">
|
||||
<property name="text">
|
||||
<string>Comp</string>
|
||||
</property>
|
||||
|
@ -65,16 +71,22 @@
|
|||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<layout class="QVBoxLayout" name="bassTxVertLayout">
|
||||
<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">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<widget class="QLabel" name="bassTxLabel">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
|
@ -89,16 +101,22 @@
|
|||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<layout class="QVBoxLayout" name="trebleTxVertLayout">
|
||||
<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">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<widget class="QLabel" name="trebleTxLabel">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
|
@ -106,23 +124,29 @@
|
|||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Trebble</string>
|
||||
<string>Treble</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_10">
|
||||
<layout class="QVBoxLayout" name="tbdVertLayout">
|
||||
<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">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_6">
|
||||
<widget class="QLabel" name="tbdLabel">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
|
@ -140,22 +164,28 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<widget class="QGroupBox" name="receiverControlsGroupBox">
|
||||
<property name="title">
|
||||
<string>Receiver</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_8">
|
||||
<layout class="QVBoxLayout" name="bassRxVertLayout">
|
||||
<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">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<widget class="QLabel" name="bassRxLabel">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
|
@ -170,16 +200,22 @@
|
|||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<layout class="QVBoxLayout" name="trebleRxVertLayout">
|
||||
<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">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<widget class="QLabel" name="trebleRxLabel">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
|
@ -187,23 +223,32 @@
|
|||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Trebble</string>
|
||||
<string>Treble</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_9">
|
||||
<layout class="QVBoxLayout" name="IFShiftVertLayout">
|
||||
<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">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_5">
|
||||
<widget class="QLabel" name="IFShiftLabel">
|
||||
<property name="text">
|
||||
<string>IF Shift</string>
|
||||
</property>
|
||||
|
@ -212,16 +257,100 @@
|
|||
</layout>
|
||||
</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>
|
||||
<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">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</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">
|
||||
<string>NR</string>
|
||||
</property>
|
||||
|
@ -230,16 +359,22 @@
|
|||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||
<layout class="QVBoxLayout" name="NBRxVertLayout">
|
||||
<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">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkBox_3">
|
||||
<widget class="QCheckBox" name="NBRxChkBox">
|
||||
<property name="text">
|
||||
<string>NB</string>
|
||||
</property>
|
||||
|
@ -248,16 +383,22 @@
|
|||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_11">
|
||||
<layout class="QVBoxLayout" name="notchRxVertLayout">
|
||||
<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">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkBox_4">
|
||||
<widget class="QCheckBox" name="notchRxChkBox">
|
||||
<property name="text">
|
||||
<string>Notch</string>
|
||||
</property>
|
||||
|
@ -266,40 +407,40 @@
|
|||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_3">
|
||||
<widget class="QGroupBox" name="bandwidthGroupBox">
|
||||
<property name="title">
|
||||
<string>Bandwidth</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_12">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_7">
|
||||
<widget class="QLabel" name="lowBandwidthLabel">
|
||||
<property name="text">
|
||||
<string>Low</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="comboBox_2"/>
|
||||
<widget class="QComboBox" name="lowBandwidthCombo"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_8">
|
||||
<widget class="QLabel" name="highBandwidthLabel">
|
||||
<property name="text">
|
||||
<string>High</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="comboBox"/>
|
||||
<widget class="QComboBox" name="highBandwidthCombo"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_9">
|
||||
<widget class="QLabel" name="filterBandwidthLabel">
|
||||
<property name="text">
|
||||
<string>Filter</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="comboBox_3"/>
|
||||
<widget class="QComboBox" name="filterBandwidthCombo"/>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
|
|
96
wfmain.cpp
96
wfmain.cpp
|
@ -296,6 +296,9 @@ void wfmain::rigConnections()
|
|||
connect(this, SIGNAL(getRfGain()), rig, SLOT(getRfGain()));
|
||||
connect(this, SIGNAL(getAfGain()), rig, SLOT(getAfGain()));
|
||||
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(getMicGain()), rig, SLOT(getMicGain()));
|
||||
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(setAfGain(unsigned char)), rig, SLOT(setAfGain(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(setMicGain(unsigned char)), rig, SLOT(setMicGain(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(haveAfGain(unsigned char)), this, SLOT(receiveAfGain(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(haveMicGain(unsigned char)), this, SLOT(receiveMicGain(unsigned char)));
|
||||
connect(rig, SIGNAL(haveSpectrumRefLevel(int)), this, SLOT(receiveSpectrumRefLevel(int)));
|
||||
|
@ -807,6 +816,20 @@ void wfmain::setupMainUI()
|
|||
[=](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)
|
||||
|
@ -2239,6 +2262,14 @@ void wfmain:: getInitialRigState()
|
|||
issueDelayedCommand(cmdGetRitEnabled);
|
||||
issueDelayedCommand(cmdGetRitValue);
|
||||
|
||||
if(rigCaps.hasIFShift)
|
||||
issueDelayedCommand(cmdGetIFShift);
|
||||
if(rigCaps.hasTBPF)
|
||||
{
|
||||
issueDelayedCommand(cmdGetTPBFInner);
|
||||
issueDelayedCommand(cmdGetTPBFOuter);
|
||||
}
|
||||
|
||||
if(rigCaps.hasSpectrum)
|
||||
{
|
||||
issueDelayedCommand(cmdGetSpectrumMode);
|
||||
|
@ -2440,6 +2471,24 @@ void wfmain::doCmd(commandtype cmddata)
|
|||
emit setSql(sqlLevel);
|
||||
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:
|
||||
{
|
||||
bool pttrequest = (*std::static_pointer_cast<bool>(data));
|
||||
|
@ -2582,6 +2631,15 @@ void wfmain::doCmd(cmds cmd)
|
|||
case cmdGetSql:
|
||||
emit getSql();
|
||||
break;
|
||||
case cmdGetIFShift:
|
||||
emit getIfShift();
|
||||
break;
|
||||
case cmdGetTPBFInner:
|
||||
emit getTPBFInner();
|
||||
break;
|
||||
case cmdGetTPBFOuter:
|
||||
emit getTPBFOuter();
|
||||
break;
|
||||
case cmdGetTxPower:
|
||||
emit getTxPower();
|
||||
break;
|
||||
|
@ -2907,6 +2965,7 @@ void wfmain::receiveRigID(rigCapabilities rigCaps)
|
|||
// Added so that server receives rig capabilities.
|
||||
emit sendRigCaps(rigCaps);
|
||||
rpt->setRig(rigCaps);
|
||||
trxadj->setRig(rigCaps);
|
||||
|
||||
// Set the mode combo box up:
|
||||
|
||||
|
@ -3028,6 +3087,7 @@ void wfmain::receiveRigID(rigCapabilities rigCaps)
|
|||
|
||||
setBandButtons();
|
||||
|
||||
|
||||
ui->tuneEnableChk->setEnabled(rigCaps.hasATU);
|
||||
ui->tuneNowBtn->setEnabled(rigCaps.hasATU);
|
||||
|
||||
|
@ -4090,6 +4150,21 @@ void wfmain::receiveSql(unsigned char 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()
|
||||
{
|
||||
issueDelayedCommand(cmdStartATU);
|
||||
|
@ -4353,6 +4428,20 @@ void wfmain::on_sqlSlider_valueChanged(int value)
|
|||
issueCmd(cmdSetSql, (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)
|
||||
{
|
||||
|
@ -5377,11 +5466,16 @@ void wfmain::on_rigctldPortTxt_editingFinished()
|
|||
}
|
||||
}
|
||||
|
||||
void wfmain::on_moreControlsBtn_clicked()
|
||||
{
|
||||
trxadj->show();
|
||||
}
|
||||
|
||||
// --- DEBUG FUNCTION ---
|
||||
void wfmain::on_debugBtn_clicked()
|
||||
{
|
||||
qInfo(logSystem()) << "Debug button pressed.";
|
||||
//trxadj->show();
|
||||
trxadj->show();
|
||||
//setRadioTimeDatePrep();
|
||||
//wf->setInteraction(QCP::iRangeZoom, true);
|
||||
//wf->setInteraction(QCP::iRangeDrag, true);
|
||||
|
|
34
wfmain.h
34
wfmain.h
|
@ -85,6 +85,9 @@ signals:
|
|||
void getRfGain();
|
||||
void getAfGain();
|
||||
void getSql();
|
||||
void getIfShift();
|
||||
void getTPBFInner();
|
||||
void getTPBFOuter();
|
||||
void getTxPower();
|
||||
void getMicGain();
|
||||
void getSpectrumRefLevel();
|
||||
|
@ -94,6 +97,13 @@ signals:
|
|||
void setRfGain(unsigned char level);
|
||||
void setAfGain(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 setCompLevel(unsigned char);
|
||||
void setTxPower(unsigned char);
|
||||
|
@ -213,6 +223,13 @@ private slots:
|
|||
void receiveRfGain(unsigned char level);
|
||||
void receiveAfGain(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 receiveMicGain(unsigned char gain);
|
||||
void receiveCompLevel(unsigned char compLevel);
|
||||
|
@ -478,6 +495,8 @@ private slots:
|
|||
void on_rigctldPortTxt_editingFinished();
|
||||
|
||||
|
||||
void on_moreControlsBtn_clicked();
|
||||
|
||||
private:
|
||||
Ui::wfmain *ui;
|
||||
void closeEvent(QCloseEvent *event);
|
||||
|
@ -600,13 +619,18 @@ private:
|
|||
unsigned char setModeVal=0;
|
||||
unsigned char setFilterVal=0;
|
||||
|
||||
enum cmds {cmdNone, cmdGetRigID, cmdGetRigCIV, cmdGetFreq, cmdSetFreq, cmdGetMode, cmdSetMode, cmdGetDataMode, cmdSetModeFilter,
|
||||
cmdSetDataModeOn, cmdSetDataModeOff, cmdGetRitEnabled, cmdGetRitValue,
|
||||
enum cmds {cmdNone, cmdGetRigID, cmdGetRigCIV, cmdGetFreq, cmdSetFreq, cmdGetMode, cmdSetMode,
|
||||
cmdGetDataMode, cmdSetModeFilter, cmdSetDataModeOn, cmdSetDataModeOff, cmdGetRitEnabled, cmdGetRitValue,
|
||||
cmdSpecOn, cmdSpecOff, cmdDispEnable, cmdDispDisable, cmdGetRxGain, cmdSetRxRfGain, cmdGetAfGain, cmdSetAfGain,
|
||||
cmdGetSql, cmdSetSql, cmdGetATUStatus, cmdSetATU, cmdStartATU, cmdGetSpectrumMode, cmdGetSpectrumSpan, cmdScopeCenterMode, cmdScopeFixedMode, cmdGetPTT, cmdSetPTT,
|
||||
cmdGetTxPower, cmdSetTxPower, cmdGetMicGain, cmdSetMicGain, cmdSetModLevel, cmdGetSpectrumRefLevel, cmdGetDuplexMode, cmdGetModInput, cmdGetModDataInput,
|
||||
cmdGetSql, cmdSetSql, cmdGetIFShift, cmdSetIFShift, cmdGetTPBFInner, cmdSetTPBFInner,
|
||||
cmdGetTPBFOuter, cmdSetTPBFOuter, cmdGetATUStatus,
|
||||
cmdSetATU, cmdStartATU, cmdGetSpectrumMode,
|
||||
cmdGetSpectrumSpan, cmdScopeCenterMode, cmdScopeFixedMode, cmdGetPTT, cmdSetPTT,
|
||||
cmdGetTxPower, cmdSetTxPower, cmdGetMicGain, cmdSetMicGain, cmdSetModLevel,
|
||||
cmdGetSpectrumRefLevel, cmdGetDuplexMode, cmdGetModInput, cmdGetModDataInput,
|
||||
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,
|
||||
cmdSetTime, cmdSetDate, cmdSetUTCOffset};
|
||||
|
||||
|
|
24
wfmain.ui
24
wfmain.ui
|
@ -6,7 +6,7 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>934</width>
|
||||
<width>941</width>
|
||||
<height>582</height>
|
||||
</rect>
|
||||
</property>
|
||||
|
@ -18,7 +18,7 @@
|
|||
<item>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="currentIndex">
|
||||
<number>3</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="mainTab">
|
||||
<attribute name="title">
|
||||
|
@ -465,6 +465,16 @@
|
|||
</property>
|
||||
</widget>
|
||||
</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>
|
||||
</item>
|
||||
<item>
|
||||
|
@ -852,6 +862,9 @@
|
|||
<height>50</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Transmit and Receive button</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Transmit</string>
|
||||
</property>
|
||||
|
@ -885,6 +898,9 @@
|
|||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="rptSetupBtn">
|
||||
<property name="toolTip">
|
||||
<string>Show the repeater tone and offset window</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Repeater</string>
|
||||
</property>
|
||||
|
@ -2814,8 +2830,8 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>934</width>
|
||||
<height>21</height>
|
||||
<width>941</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
|
|
Ładowanie…
Reference in New Issue