kopia lustrzana https://gitlab.com/eliggett/wfview
Experimental support for split mode in rigctld
rodzic
57e68571af
commit
bf16dfe19a
|
@ -557,18 +557,24 @@ void rigCommander::getSpectrumMode()
|
|||
prepDataAndSend(specModePayload);
|
||||
}
|
||||
|
||||
void rigCommander::setFrequency(freqt freq)
|
||||
void rigCommander::setFrequency(unsigned char vfo, freqt freq)
|
||||
{
|
||||
//QByteArray freqPayload = makeFreqPayload(freq);
|
||||
QByteArray freqPayload = makeFreqPayload(freq);
|
||||
QByteArray cmdPayload;
|
||||
|
||||
cmdPayload.append(freqPayload);
|
||||
cmdPayload.prepend('\x00');
|
||||
|
||||
if (vfo == 0) {
|
||||
rigState.vfoAFreq = freq;
|
||||
cmdPayload.prepend('\x00');
|
||||
}
|
||||
else
|
||||
{
|
||||
rigState.vfoBFreq = freq;
|
||||
cmdPayload.prepend(vfo);
|
||||
cmdPayload.prepend('\x25');
|
||||
}
|
||||
//printHex(cmdPayload, false, true);
|
||||
prepDataAndSend(cmdPayload);
|
||||
rigState.vfoAFreq = freq;
|
||||
}
|
||||
|
||||
QByteArray rigCommander::makeFreqPayload(freqt freq)
|
||||
|
|
|
@ -171,7 +171,7 @@ public slots:
|
|||
void getScopeMode();
|
||||
|
||||
// Frequency, Mode, BSR:
|
||||
void setFrequency(freqt freq);
|
||||
void setFrequency(unsigned char vfo, freqt freq);
|
||||
void getFrequency();
|
||||
void setMode(unsigned char mode, unsigned char modeFilter);
|
||||
void setMode(mode_info);
|
||||
|
|
41
rigctld.cpp
41
rigctld.cpp
|
@ -57,7 +57,7 @@ rigCtlD::~rigCtlD()
|
|||
|
||||
void rigCtlD::receiveFrequency(freqt freq)
|
||||
{
|
||||
emit setFrequency(freq);
|
||||
emit setFrequency(0, freq);
|
||||
}
|
||||
|
||||
void rigCtlD::receiveStateInfo(rigStateStruct* state)
|
||||
|
@ -301,7 +301,7 @@ void rigCtlClient::socketReadyRead()
|
|||
if (ok) {
|
||||
freq.Hz = static_cast<int>(newFreq);
|
||||
qDebug(logRigCtlD()) << QString("Set frequency: %1 (%2)").arg(freq.Hz).arg(command[1]);
|
||||
emit parent->setFrequency(freq);
|
||||
emit parent->setFrequency(0, freq);
|
||||
}
|
||||
}
|
||||
else if (command[0] == "1" || command[0] == "dump_caps")
|
||||
|
@ -465,21 +465,46 @@ void rigCtlClient::socketReadyRead()
|
|||
}
|
||||
response.append(resp);
|
||||
}
|
||||
else if (command[0] == "I" || command[0] == "set_split_freq")
|
||||
else if (command.length() > 1 && command[0] == "I" || command[0] == "set_split_freq")
|
||||
{
|
||||
setCommand = true;
|
||||
freqt freq;
|
||||
bool ok = false;
|
||||
double newFreq = 0.0f;
|
||||
newFreq = command[1].toDouble(&ok);
|
||||
if (ok) {
|
||||
freq.Hz = static_cast<int>(newFreq);
|
||||
qDebug(logRigCtlD()) << QString("set_split_freq: %1 (%2)").arg(freq.Hz).arg(command[1]);
|
||||
emit parent->setFrequency(1, freq);
|
||||
}
|
||||
}
|
||||
else if (command[0] == "m" || command[0] == "get_mode")
|
||||
else if (command.length() > 2 && (command[0] == "X" || command[0] == "set_split_mode"))
|
||||
{
|
||||
setCommand = true;
|
||||
}
|
||||
else if (command.length() > 0 && (command[0] == "x" || command[0] == "get_split_mode"))
|
||||
{
|
||||
if (longReply) {
|
||||
response.append(QString("Mode: %1").arg(getMode(rigState->mode, rigState->datamode)));
|
||||
response.append(QString("Passband: %1").arg(getFilter(rigState->mode, rigState->filter)));
|
||||
response.append(QString("TX Mode: %1").arg(getMode(rigState->mode, rigState->datamode)));
|
||||
response.append(QString("TX Passband: %1").arg(getFilter(rigState->mode, rigState->filter)));
|
||||
}
|
||||
else {
|
||||
response.append(QString("%1").arg(getMode(rigState->mode, rigState->datamode)));
|
||||
response.append(QString("%1").arg(getFilter(rigState->mode, rigState->filter)));
|
||||
}
|
||||
}
|
||||
|
||||
else if (command[0] == "m" || command[0] == "get_mode")
|
||||
{
|
||||
if (longReply) {
|
||||
response.append(QString("Mode: %1").arg(getMode(rigState->mode, rigState->datamode)));
|
||||
response.append(QString("Passband: %1").arg(getFilter(rigState->mode, rigState->filter)));
|
||||
}
|
||||
else {
|
||||
response.append(QString("%1").arg(getMode(rigState->mode, rigState->datamode)));
|
||||
response.append(QString("%1").arg(getFilter(rigState->mode, rigState->filter)));
|
||||
}
|
||||
}
|
||||
else if (command[0] == "M" || command[0] == "set_mode")
|
||||
{
|
||||
// Set mode
|
||||
|
@ -973,8 +998,8 @@ void rigCtlClient::socketReadyRead()
|
|||
}
|
||||
else if (command.length() > 1 && (command[0] == 0x87 || command[0] == "set_powerstat"))
|
||||
{
|
||||
setCommand = true;
|
||||
if (command[1] == "0")
|
||||
setCommand = true;
|
||||
if (command[1] == "0")
|
||||
{
|
||||
emit parent->sendPowerOff();
|
||||
}
|
||||
|
|
|
@ -336,7 +336,7 @@ signals:
|
|||
void onStarted();
|
||||
void onStopped();
|
||||
void sendData(QString data);
|
||||
void setFrequency(freqt freq);
|
||||
void setFrequency(unsigned char vfo, freqt freq);
|
||||
void setPTT(bool state);
|
||||
void setMode(unsigned char mode, unsigned char modeFilter);
|
||||
void setDataMode(bool dataOn, unsigned char modeFilter);
|
||||
|
|
43
wfmain.cpp
43
wfmain.cpp
|
@ -273,7 +273,7 @@ void wfmain::rigConnections()
|
|||
connect(this, SIGNAL(setScopeMode(spectrumMode)), rig, SLOT(setSpectrumMode(spectrumMode)));
|
||||
connect(this, SIGNAL(getScopeMode()), rig, SLOT(getScopeMode()));
|
||||
|
||||
connect(this, SIGNAL(setFrequency(freqt)), rig, SLOT(setFrequency(freqt)));
|
||||
connect(this, SIGNAL(setFrequency(unsigned char, freqt)), rig, SLOT(setFrequency(unsigned char, freqt)));
|
||||
connect(this, SIGNAL(setScopeEdge(char)), rig, SLOT(setScopeEdge(char)));
|
||||
connect(this, SIGNAL(setScopeSpan(char)), rig, SLOT(setScopeSpan(char)));
|
||||
//connect(this, SIGNAL(getScopeMode()), rig, SLOT(getScopeMode()));
|
||||
|
@ -400,7 +400,7 @@ void wfmain::makeRig()
|
|||
if (rigCtl != Q_NULLPTR) {
|
||||
connect(rig, SIGNAL(stateInfo(rigStateStruct*)), rigCtl, SLOT(receiveStateInfo(rigStateStruct*)));
|
||||
connect(this, SIGNAL(requestRigState()), rig, SLOT(sendState()));
|
||||
connect(rigCtl, SIGNAL(setFrequency(freqt)), rig, SLOT(setFrequency(freqt)));
|
||||
connect(rigCtl, SIGNAL(setFrequency(unsigned char, freqt)), rig, SLOT(setFrequency(unsigned char, freqt)));
|
||||
connect(rigCtl, SIGNAL(setMode(unsigned char, unsigned char)), rig, SLOT(setMode(unsigned char, unsigned char)));
|
||||
connect(rigCtl, SIGNAL(setDataMode(bool, unsigned char)), rig, SLOT(setDataMode(bool, unsigned char)));
|
||||
connect(rigCtl, SIGNAL(setPTT(bool)), rig, SLOT(setPTT(bool)));
|
||||
|
@ -2011,7 +2011,7 @@ void wfmain::shortcutMinus()
|
|||
|
||||
f.MHzDouble = f.Hz / (double)1E6;
|
||||
setUIFreq();
|
||||
//emit setFrequency(f);
|
||||
//emit setFrequency(0,f);
|
||||
issueCmd(cmdSetFreq, f);
|
||||
issueDelayedCommandUnique(cmdGetFreq);
|
||||
}
|
||||
|
@ -2025,7 +2025,7 @@ void wfmain::shortcutPlus()
|
|||
|
||||
f.MHzDouble = f.Hz / (double)1E6;
|
||||
setUIFreq();
|
||||
//emit setFrequency(f);
|
||||
//emit setFrequency(0,f);
|
||||
issueCmd(cmdSetFreq, f);
|
||||
issueDelayedCommandUnique(cmdGetFreq);
|
||||
}
|
||||
|
@ -2039,7 +2039,7 @@ void wfmain::shortcutShiftMinus()
|
|||
|
||||
f.MHzDouble = f.Hz / (double)1E6;
|
||||
setUIFreq();
|
||||
//emit setFrequency(f);
|
||||
//emit setFrequency(0,f);
|
||||
issueCmd(cmdSetFreq, f);
|
||||
issueDelayedCommandUnique(cmdGetFreq);
|
||||
}
|
||||
|
@ -2053,7 +2053,7 @@ void wfmain::shortcutShiftPlus()
|
|||
|
||||
f.MHzDouble = f.Hz / (double)1E6;
|
||||
setUIFreq();
|
||||
//emit setFrequency(f);
|
||||
//emit setFrequency(0,f);
|
||||
issueCmd(cmdSetFreq, f);
|
||||
issueDelayedCommandUnique(cmdGetFreq);
|
||||
}
|
||||
|
@ -2067,7 +2067,7 @@ void wfmain::shortcutControlMinus()
|
|||
|
||||
f.MHzDouble = f.Hz / (double)1E6;
|
||||
setUIFreq();
|
||||
//emit setFrequency(f);
|
||||
//emit setFrequency(0,f);
|
||||
issueCmd(cmdSetFreq, f);
|
||||
issueDelayedCommandUnique(cmdGetFreq);
|
||||
}
|
||||
|
@ -2081,7 +2081,7 @@ void wfmain::shortcutControlPlus()
|
|||
|
||||
f.MHzDouble = f.Hz / (double)1E6;
|
||||
setUIFreq();
|
||||
//emit setFrequency(f);
|
||||
//emit setFrequency(0,f);
|
||||
issueCmd(cmdSetFreq, f);
|
||||
issueDelayedCommandUnique(cmdGetFreq);
|
||||
}
|
||||
|
@ -2095,7 +2095,7 @@ void wfmain::shortcutPageUp()
|
|||
|
||||
f.MHzDouble = f.Hz / (double)1E6;
|
||||
setUIFreq();
|
||||
//emit setFrequency(f);
|
||||
//emit setFrequency(0,f);
|
||||
issueCmd(cmdSetFreq, f);
|
||||
issueDelayedCommandUnique(cmdGetFreq);
|
||||
}
|
||||
|
@ -2109,7 +2109,7 @@ void wfmain::shortcutPageDown()
|
|||
|
||||
f.MHzDouble = f.Hz / (double)1E6;
|
||||
setUIFreq();
|
||||
//emit setFrequency(f);
|
||||
//emit setFrequency(0,f);
|
||||
issueCmd(cmdSetFreq, f);
|
||||
issueDelayedCommandUnique(cmdGetFreq);
|
||||
}
|
||||
|
@ -2350,7 +2350,7 @@ void wfmain::doCmd(commandtype cmddata)
|
|||
{
|
||||
lastFreqCmdTime_ms = QDateTime::currentMSecsSinceEpoch();
|
||||
freqt f = (*std::static_pointer_cast<freqt>(data));
|
||||
emit setFrequency(f);
|
||||
emit setFrequency(0,f);
|
||||
break;
|
||||
}
|
||||
case cmdSetMode:
|
||||
|
@ -3041,6 +3041,7 @@ void wfmain::initPeriodicCommands()
|
|||
if (rigCaps.hasRXAntenna) {
|
||||
insertSlowPeriodicCommand(cmdGetAntenna, 128);
|
||||
}
|
||||
insertSlowPeriodicCommand(cmdGetDuplexMode, 128);
|
||||
}
|
||||
|
||||
void wfmain::insertPeriodicCommand(cmds cmd, unsigned char priority)
|
||||
|
@ -3261,7 +3262,7 @@ void wfmain::handlePlotDoubleClick(QMouseEvent *me)
|
|||
freqGo.Hz = roundFrequency(freqGo.Hz, tsWfScrollHz);
|
||||
freqGo.MHzDouble = (float)freqGo.Hz / 1E6;
|
||||
|
||||
//emit setFrequency(freq);
|
||||
//emit setFrequency(0,freq);
|
||||
issueCmd(cmdSetFreq, freqGo);
|
||||
freq = freqGo;
|
||||
setUIFreq();
|
||||
|
@ -3286,7 +3287,7 @@ void wfmain::handleWFDoubleClick(QMouseEvent *me)
|
|||
freqGo.Hz = roundFrequency(freqGo.Hz, tsWfScrollHz);
|
||||
freqGo.MHzDouble = (float)freqGo.Hz / 1E6;
|
||||
|
||||
//emit setFrequency(freq);
|
||||
//emit setFrequency(0,freq);
|
||||
issueCmd(cmdSetFreq, freqGo);
|
||||
freq = freqGo;
|
||||
setUIFreq();
|
||||
|
@ -3341,7 +3342,7 @@ void wfmain::handleWFScroll(QWheelEvent *we)
|
|||
f.MHzDouble = f.Hz / (double)1E6;
|
||||
freq = f;
|
||||
|
||||
//emit setFrequency(f);
|
||||
//emit setFrequency(0,f);
|
||||
issueCmdUniquePriority(cmdSetFreq, f);
|
||||
ui->freqLabel->setText(QString("%1").arg(f.MHzDouble, 0, 'f'));
|
||||
//issueDelayedCommandUnique(cmdGetFreq);
|
||||
|
@ -3758,7 +3759,7 @@ void wfmain::on_freqDial_valueChanged(int value)
|
|||
|
||||
ui->freqLabel->setText(QString("%1").arg(f.MHzDouble, 0, 'f'));
|
||||
|
||||
//emit setFrequency(f);
|
||||
//emit setFrequency(0,f);
|
||||
issueCmdUniquePriority(cmdSetFreq, f);
|
||||
} else {
|
||||
ui->freqDial->blockSignals(true);
|
||||
|
@ -3773,7 +3774,7 @@ void wfmain::receiveBandStackReg(freqt freqGo, char mode, char filter, bool data
|
|||
// read the band stack and apply by sending out commands
|
||||
|
||||
qInfo(logSystem()) << __func__ << "BSR received into main: Freq: " << freqGo.Hz << ", mode: " << (unsigned int)mode << ", filter: " << (unsigned int)filter << ", data mode: " << dataOn;
|
||||
//emit setFrequency(freq);
|
||||
//emit setFrequency(0,freq);
|
||||
issueCmd(cmdSetFreq, freqGo);
|
||||
setModeVal = (unsigned char) mode;
|
||||
setFilterVal = (unsigned char) filter;
|
||||
|
@ -3843,7 +3844,7 @@ void wfmain::on_band4mbtn_clicked()
|
|||
f.Hz = (70.200) * 1E6;
|
||||
}
|
||||
issueCmd(cmdSetFreq, f);
|
||||
//emit setFrequency(f);
|
||||
//emit setFrequency(0,f);
|
||||
issueDelayedCommandUnique(cmdGetFreq);
|
||||
ui->tabWidget->setCurrentIndex(0);
|
||||
}
|
||||
|
@ -3910,7 +3911,7 @@ void wfmain::on_band60mbtn_clicked()
|
|||
freqt f;
|
||||
f.Hz = (5.3305) * 1E6;
|
||||
issueCmd(cmdSetFreq, f);
|
||||
//emit setFrequency(f);
|
||||
//emit setFrequency(0,f);
|
||||
issueDelayedCommandUnique(cmdGetFreq);
|
||||
ui->tabWidget->setCurrentIndex(0);
|
||||
}
|
||||
|
@ -3931,7 +3932,7 @@ void wfmain::on_band630mbtn_clicked()
|
|||
{
|
||||
freqt f;
|
||||
f.Hz = 475 * 1E3;
|
||||
//emit setFrequency(f);
|
||||
//emit setFrequency(0,f);
|
||||
issueCmd(cmdSetFreq, f);
|
||||
issueDelayedCommandUnique(cmdGetFreq);
|
||||
ui->tabWidget->setCurrentIndex(0);
|
||||
|
@ -3941,7 +3942,7 @@ void wfmain::on_band2200mbtn_clicked()
|
|||
{
|
||||
freqt f;
|
||||
f.Hz = 136 * 1E3;
|
||||
//emit setFrequency(f);
|
||||
//emit setFrequency(0,f);
|
||||
issueCmd(cmdSetFreq, f);
|
||||
issueDelayedCommandUnique(cmdGetFreq);
|
||||
ui->tabWidget->setCurrentIndex(0);
|
||||
|
@ -5296,7 +5297,7 @@ void wfmain::on_enableRigctldChk_clicked(bool checked)
|
|||
if (rig != Q_NULLPTR) {
|
||||
// We are already connected to a rig.
|
||||
connect(rig, SIGNAL(stateInfo(rigStateStruct*)), rigCtl, SLOT(receiveStateInfo(rigStateStruct*)));
|
||||
connect(rigCtl, SIGNAL(setFrequency(freqt)), rig, SLOT(setFrequency(freqt)));
|
||||
connect(rigCtl, SIGNAL(setFrequency(unsigned char, freqt)), rig, SLOT(setFrequency(unsigned char, freqt)));
|
||||
connect(rigCtl, SIGNAL(setMode(unsigned char, unsigned char)), rig, SLOT(setMode(unsigned char, unsigned char)));
|
||||
connect(rigCtl, SIGNAL(setDataMode(bool, unsigned char)), rig, SLOT(setDataMode(bool, unsigned char)));
|
||||
connect(rigCtl, SIGNAL(setPTT(bool)), rig, SLOT(setPTT(bool)));
|
||||
|
|
2
wfmain.h
2
wfmain.h
|
@ -58,7 +58,7 @@ signals:
|
|||
|
||||
// Frequency, mode, band:
|
||||
void getFrequency();
|
||||
void setFrequency(freqt freq);
|
||||
void setFrequency(unsigned char vfo, freqt freq);
|
||||
void getMode();
|
||||
void setMode(unsigned char modeIndex, unsigned char modeFilter);
|
||||
void setMode(mode_info);
|
||||
|
|
Ładowanie…
Reference in New Issue