kopia lustrzana https://gitlab.com/eliggett/wfview
Merge branch 'morecontrols' into band-switching
commit
180b7b0095
|
@ -97,10 +97,10 @@ void cwSender::on_stopBtn_clicked()
|
|||
ui->statusbar->showMessage("Stopping CW transmission.", 3000);
|
||||
}
|
||||
|
||||
void cwSender::on_textToSendEdit_returnPressed()
|
||||
{
|
||||
on_sendBtn_clicked();
|
||||
}
|
||||
//void cwSender::on_textToSendEdit_returnPressed()
|
||||
//{
|
||||
// on_sendBtn_clicked();
|
||||
//}
|
||||
|
||||
void cwSender::on_breakinCombo_activated(int brkmode)
|
||||
{
|
||||
|
|
|
@ -45,7 +45,7 @@ private slots:
|
|||
|
||||
void on_stopBtn_clicked();
|
||||
|
||||
void on_textToSendEdit_returnPressed();
|
||||
//void on_textToSendEdit_returnPressed();
|
||||
|
||||
void on_breakinCombo_activated(int index);
|
||||
|
||||
|
|
|
@ -313,25 +313,43 @@ void repeaterSetup::receiveDuplexMode(duplexMode dm)
|
|||
|
||||
void repeaterSetup::handleRptAccessMode(rptAccessTxRx tmode)
|
||||
{
|
||||
// ratrXY
|
||||
// X = Transmit (T)one or (N)one or (D)CS
|
||||
// Y = Receive (T)sql or (N)one or (D)CS
|
||||
switch(tmode)
|
||||
{
|
||||
case ratrNN:
|
||||
ui->toneNone->setChecked(true);
|
||||
break;
|
||||
case ratrTT:
|
||||
ui->toneTSQL->setChecked(true);
|
||||
break;
|
||||
case ratrTN:
|
||||
ui->toneTone->setChecked(true);
|
||||
break;
|
||||
case ratrDD:
|
||||
ui->toneDTCS->setChecked(true);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
case ratrNN:
|
||||
ui->toneNone->setChecked(true);
|
||||
break;
|
||||
case ratrTT:
|
||||
case ratrNT:
|
||||
ui->toneTSQL->setChecked(true);
|
||||
break;
|
||||
case ratrTN:
|
||||
ui->toneTone->setChecked(true);
|
||||
break;
|
||||
case ratrDD:
|
||||
ui->toneDTCS->setChecked(true);
|
||||
break;
|
||||
case ratrTONEoff:
|
||||
ui->toneTone->setChecked(false);
|
||||
break;
|
||||
case ratrTONEon:
|
||||
ui->toneTone->setChecked(true);
|
||||
break;
|
||||
case ratrTSQLoff:
|
||||
ui->toneTSQL->setChecked(false);
|
||||
break;
|
||||
case ratrTSQLon:
|
||||
ui->toneTSQL->setChecked(true);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if( !ui->toneTSQL->isChecked() && !ui->toneTone->isChecked() && !ui->toneDTCS->isChecked())
|
||||
{
|
||||
ui->toneNone->setChecked(true);
|
||||
}
|
||||
|
||||
(void)tmode;
|
||||
}
|
||||
|
||||
void repeaterSetup::handleTone(quint16 tone)
|
||||
|
@ -480,11 +498,6 @@ void repeaterSetup::on_rptAutoBtn_clicked()
|
|||
emit setDuplexMode(dmDupAutoOn);
|
||||
}
|
||||
|
||||
void repeaterSetup::on_rptReadRigBtn_clicked()
|
||||
{
|
||||
emit getDuplexMode();
|
||||
}
|
||||
|
||||
void repeaterSetup::on_rptToneCombo_activated(int tindex)
|
||||
{
|
||||
quint16 tone=0;
|
||||
|
@ -594,23 +607,6 @@ void repeaterSetup::on_toneDTCS_clicked()
|
|||
// TODO: DTCS with subband
|
||||
}
|
||||
|
||||
void repeaterSetup::on_debugBtn_clicked()
|
||||
{
|
||||
// TODO: Move these four commands to wfview's startup command list (place at the end)
|
||||
//emit getTone();
|
||||
//emit getTSQL();
|
||||
//emit getDTCS();
|
||||
emit getRptAccessMode();
|
||||
}
|
||||
|
||||
//void repeaterSetup::on_splitOffsetSetBtn_clicked()
|
||||
//{
|
||||
// freqt txFreq;
|
||||
// bool ok = true;
|
||||
// txFreq.Hz = ui->splitTransmitFreqEdit->text().toDouble(&ok) * 1E6;
|
||||
// emit setTransmitFrequency(txFreq);
|
||||
//}
|
||||
|
||||
quint64 repeaterSetup::getFreqHzFromKHzString(QString khz)
|
||||
{
|
||||
// This function takes a string containing a number in KHz,
|
||||
|
@ -822,3 +818,12 @@ void repeaterSetup::on_rptrOffsetEdit_returnPressed()
|
|||
{
|
||||
this->on_rptrOffsetSetBtn_clicked();
|
||||
}
|
||||
|
||||
void repeaterSetup::on_setSplitRptrToneChk_clicked(bool checked)
|
||||
{
|
||||
if(checked)
|
||||
{
|
||||
on_setRptrSubVFOBtn_clicked();
|
||||
on_setToneSubVFOBtn_clicked();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -65,10 +65,8 @@ private slots:
|
|||
void on_rptDupPlusBtn_clicked();
|
||||
void on_rptDupMinusBtn_clicked();
|
||||
void on_rptAutoBtn_clicked();
|
||||
void on_rptReadRigBtn_clicked();
|
||||
void on_rptToneCombo_activated(int index);
|
||||
void on_rptDTCSCombo_activated(int index);
|
||||
void on_debugBtn_clicked();
|
||||
void on_toneNone_clicked();
|
||||
void on_toneTone_clicked();
|
||||
void on_toneTSQL_clicked();
|
||||
|
@ -108,6 +106,8 @@ private slots:
|
|||
|
||||
void on_splitTransmitFreqEdit_returnPressed();
|
||||
|
||||
void on_setSplitRptrToneChk_clicked(bool checked);
|
||||
|
||||
private:
|
||||
Ui::repeaterSetup *ui;
|
||||
freqt currentMainFrequency;
|
||||
|
|
|
@ -1206,10 +1206,56 @@ void rigCommander::setRptAccessMode(rptAccessTxRx ratr)
|
|||
|
||||
void rigCommander::setRptAccessMode(rptrAccessData_t rd)
|
||||
{
|
||||
// NB: This function is the only recommended
|
||||
// function to be used for toggling tone and tone squelch.
|
||||
|
||||
QByteArray payload;
|
||||
payload.setRawData("\x16\x5D", 2);
|
||||
payload.append((unsigned char)rd.accessMode);
|
||||
if(rd.useSecondaryVFO)
|
||||
if(rigCaps.hasAdvancedRptrToneCmds)
|
||||
{
|
||||
// IC-9700 basically
|
||||
payload.setRawData("\x16\x5D", 2);
|
||||
payload.append((unsigned char)rd.accessMode);
|
||||
} else {
|
||||
// These radios either don't support DCS or
|
||||
// we just haven't added DCS yet.
|
||||
|
||||
// 16 42 00 = TONE off
|
||||
// 16 42 01 = TONE on
|
||||
// 16 43 00 = TSQL off
|
||||
// 16 43 01 = TSQL on
|
||||
|
||||
switch(rd.accessMode)
|
||||
{
|
||||
case ratrNN:
|
||||
// No tone at all
|
||||
if(rd.turnOffTone)
|
||||
{
|
||||
payload.append("\x16\x42\x00", 3); // TONE off
|
||||
} else if (rd.turnOffTSQL)
|
||||
{
|
||||
payload.append("\x16\x43\x00", 3); // TSQL off
|
||||
}
|
||||
break;
|
||||
case ratrTN:
|
||||
// TONE on transmit only
|
||||
payload.append("\x16\x42\x01", 3); // TONE on
|
||||
break;
|
||||
case ratrTT:
|
||||
// Tone on transmit and TSQL
|
||||
payload.append("\x16\x43\x01", 3); // TSQL on
|
||||
break;
|
||||
case ratrNT:
|
||||
// Tone squelch and no tone transmit:
|
||||
payload.append("\x16\x43\x01", 3); // TSQL on, close enough here.
|
||||
// payload.append("\x16\x42\x00", 3); // TONE off
|
||||
break;
|
||||
default:
|
||||
qWarning(logRig()) << "Cannot set tone mode" << (unsigned char)rd.accessMode << "on rig model" << rigCaps.modelName;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(rd.useSecondaryVFO && rigCaps.hasSpecifyMainSubCmd)
|
||||
{
|
||||
payload.prepend("\x29\x01");
|
||||
}
|
||||
|
@ -2888,6 +2934,7 @@ void rigCommander::parseRegister16()
|
|||
//"INDEX: 00 01 02 03 "
|
||||
//"DATA: 16 5d 00 fd "
|
||||
// ^-- mode info here
|
||||
rptAccessTxRx ra;
|
||||
|
||||
switch(payloadIn.at(1))
|
||||
{
|
||||
|
@ -2910,9 +2957,23 @@ void rigCommander::parseRegister16()
|
|||
break;
|
||||
case '\x42':
|
||||
state.set(TONEFUNC, payloadIn.at(2) != 0, false);
|
||||
if(payloadIn.at(2)==1)
|
||||
{
|
||||
ra = ratrTONEon;
|
||||
} else {
|
||||
ra = ratrTONEoff;
|
||||
}
|
||||
emit haveRptAccessMode(ra);
|
||||
break;
|
||||
case '\x43':
|
||||
state.set(TSQLFUNC, payloadIn.at(2) != 0, false);
|
||||
if(payloadIn.at(2)==1)
|
||||
{
|
||||
ra = ratrTSQLon;
|
||||
} else {
|
||||
ra = ratrTSQLoff;
|
||||
}
|
||||
emit haveRptAccessMode(ra);
|
||||
break;
|
||||
case '\x44':
|
||||
state.set(COMPFUNC, payloadIn.at(2) != 0, false);
|
||||
|
@ -3531,6 +3592,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x01\x27");
|
||||
rigCaps.hasVFOMS = true;
|
||||
rigCaps.hasVFOAB = true;
|
||||
rigCaps.hasAdvancedRptrToneCmds = true;
|
||||
break;
|
||||
case model910h:
|
||||
rigCaps.modelName = QString("IC-910H");
|
||||
|
@ -4244,6 +4306,17 @@ void rigCommander::parseSpectrum()
|
|||
return;
|
||||
}
|
||||
|
||||
if(payloadIn.length() >= 15)
|
||||
{
|
||||
bool outOfRange = (bool)payloadIn[16];
|
||||
if(outOfRange != wasOutOfRange)
|
||||
{
|
||||
emit haveScopeOutOfRange(outOfRange);
|
||||
wasOutOfRange = outOfRange;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// unsigned char waveInfo = payloadIn[06]; // really just one byte?
|
||||
//qInfo(logRig()) << "Spectrum Data received: " << sequence << "/" << sequenceMax << " mode: " << scopeMode << " waveInfo: " << waveInfo << " length: " << payloadIn.length();
|
||||
|
||||
|
@ -4774,7 +4847,7 @@ void rigCommander::setToneSql(bool enabled)
|
|||
prepDataAndSend(payload);
|
||||
}
|
||||
|
||||
void rigCommander::getToneSql()
|
||||
void rigCommander::getToneSqlEnabled()
|
||||
{
|
||||
QByteArray payload;
|
||||
payload.setRawData("\x16\x43", 2);
|
||||
|
@ -5152,7 +5225,7 @@ void rigCommander::stateUpdated()
|
|||
if (i.value()._valid) {
|
||||
setToneSql(state.getBool(TSQLFUNC));
|
||||
}
|
||||
getToneSql();
|
||||
getToneSqlEnabled();
|
||||
break;
|
||||
case COMPFUNC:
|
||||
if (i.value()._valid) {
|
||||
|
|
|
@ -112,7 +112,7 @@ public slots:
|
|||
void setToneEnabled(bool enabled);
|
||||
void getToneEnabled();
|
||||
void setToneSql(bool enabled);
|
||||
void getToneSql();
|
||||
void getToneSqlEnabled();
|
||||
void setCompressor(bool enabled);
|
||||
void getCompressor();
|
||||
void setMonitor(bool enabled);
|
||||
|
@ -291,6 +291,7 @@ signals:
|
|||
void haveSpectrumMode(spectrumMode spectmode);
|
||||
void haveScopeEdge(char edge);
|
||||
void haveSpectrumRefLevel(int level);
|
||||
void haveScopeOutOfRange(bool outOfRange);
|
||||
|
||||
// Rig ID:
|
||||
void haveRigID(rigCapabilities rigCaps);
|
||||
|
@ -457,6 +458,7 @@ private:
|
|||
quint16 spectAmpMax;
|
||||
quint16 spectLenMax;
|
||||
spectrumMode oldScopeMode;
|
||||
bool wasOutOfRange = false;
|
||||
|
||||
bool usingNativeLAN; // indicates using OEM LAN connection (705,7610,9700,7850)
|
||||
bool lookingForRig;
|
||||
|
|
|
@ -152,6 +152,8 @@ struct rigCapabilities {
|
|||
bool hasVFOMS = false;
|
||||
bool hasVFOAB = true; // 0x07 [00||01]
|
||||
|
||||
bool hasAdvancedRptrToneCmds = false;
|
||||
|
||||
std::vector <unsigned char> attenuators;
|
||||
std::vector <unsigned char> preamps;
|
||||
std::vector <unsigned char> antennas;
|
||||
|
|
106
wfmain.cpp
106
wfmain.cpp
|
@ -389,6 +389,8 @@ void wfmain::rigConnections()
|
|||
connect(rig, SIGNAL(haveDuplexMode(duplexMode)), rpt, SLOT(receiveDuplexMode(duplexMode)));
|
||||
connect(this, SIGNAL(getRptDuplexOffset()), rig, SLOT(getRptDuplexOffset()));
|
||||
connect(rig, SIGNAL(haveRptOffsetFrequency(freqt)), rpt, SLOT(handleRptOffsetFrequency(freqt)));
|
||||
|
||||
// These are the current tone frequency or DCS code selected:
|
||||
connect(rpt, SIGNAL(getTone()), rig, SLOT(getTone()));
|
||||
connect(rpt, SIGNAL(getTSQL()), rig, SLOT(getTSQL()));
|
||||
connect(rpt, SIGNAL(getDTCS()), rig, SLOT(getDTCS()));
|
||||
|
@ -399,13 +401,38 @@ void wfmain::rigConnections()
|
|||
connect(this->rpt, &repeaterSetup::setTSQL,
|
||||
[=](const rptrTone_t &t) { issueCmd(cmdSetTSQL, t);});
|
||||
|
||||
// TODO: struct with the DCS components and command queue entry
|
||||
connect(rpt, SIGNAL(setDTCS(quint16,bool,bool)), rig, SLOT(setDTCS(quint16,bool,bool)));
|
||||
connect(rpt, SIGNAL(getRptAccessMode()), rig, SLOT(getRptAccessMode()));
|
||||
|
||||
//connect(rpt, SIGNAL(getRptAccessMode()), rig, SLOT(getRptAccessMode()));
|
||||
connect(this->rpt, &repeaterSetup::getRptAccessMode,
|
||||
[=]() {
|
||||
if(rigCaps.hasAdvancedRptrToneCmds) {
|
||||
issueDelayedCommand(cmdGetRptAccessMode);
|
||||
} else {
|
||||
issueDelayedCommand(cmdGetToneEnabled);
|
||||
issueDelayedCommand(cmdGetTSQLEnabled);
|
||||
}
|
||||
});
|
||||
|
||||
// How to understand the reply of getToneEnabled, getTSQLEnabled
|
||||
// ......
|
||||
// it's currently only read into rigState.
|
||||
// We could emit a signal from rigCommander, turn it into
|
||||
// a rptrAccess data type and feed that to rptr.
|
||||
// But there will be two replies, and we need to somehow
|
||||
// understand both before forming a sensible reply to
|
||||
// the rptr setup.
|
||||
// If we don't care, then it just works but we don't know the current state.
|
||||
|
||||
|
||||
//connect(rpt, SIGNAL(setRptAccessMode(rptAccessTxRx)), rig, SLOT(setRptAccessMode(rptAccessTxRx)));
|
||||
|
||||
connect(this->rpt, &repeaterSetup::setRptAccessMode,
|
||||
[=](const rptrAccessData_t &rd) { issueCmd(cmdSetRptAccessMode, rd);});
|
||||
[=](const rptrAccessData_t &rd) {
|
||||
issueCmd(cmdSetRptAccessMode, rd);
|
||||
});
|
||||
|
||||
connect(this, SIGNAL(setRepeaterAccessMode(rptrAccessData_t)), rig, SLOT(setRptAccessMode(rptrAccessData_t)));
|
||||
connect(this, SIGNAL(setTone(rptrTone_t)), rig, SLOT(setTone(rptrTone_t)));
|
||||
|
||||
|
@ -422,6 +449,9 @@ void wfmain::rigConnections()
|
|||
this->splitModeEnabled = false;
|
||||
});
|
||||
|
||||
connect(this, SIGNAL(getToneEnabled()), rig, SLOT(getToneEnabled()));
|
||||
connect(this, SIGNAL(getTSQLEnabled()), rig, SLOT(getToneSqlEnabled()));
|
||||
|
||||
connect(this->rpt, &repeaterSetup::setTransmitFrequency,
|
||||
[=](const freqt &transmitFreq) { issueCmd(cmdSetFreq, transmitFreq);});
|
||||
connect(this->rpt, &repeaterSetup::setTransmitMode,
|
||||
|
@ -457,6 +487,7 @@ void wfmain::rigConnections()
|
|||
|
||||
connect(rig, SIGNAL(haveSpectrumData(QByteArray, double, double)), this, SLOT(receiveSpectrumData(QByteArray, double, double)));
|
||||
connect(rig, SIGNAL(haveSpectrumMode(spectrumMode)), this, SLOT(receiveSpectrumMode(spectrumMode)));
|
||||
connect(rig, SIGNAL(haveScopeOutOfRange(bool)), this, SLOT(handleScopeOutOfRange(bool)));
|
||||
connect(this, SIGNAL(setScopeMode(spectrumMode)), rig, SLOT(setSpectrumMode(spectrumMode)));
|
||||
connect(this, SIGNAL(getScopeMode()), rig, SLOT(getScopeMode()));
|
||||
|
||||
|
@ -3445,7 +3476,11 @@ void wfmain:: getInitialRigState()
|
|||
{
|
||||
issueDelayedCommand(cmdGetDTCS);
|
||||
}
|
||||
issueDelayedCommand(cmdGetRptAccessMode);
|
||||
|
||||
if(rigCaps.hasCTCSS || rigCaps.hasDTCS)
|
||||
{
|
||||
issueDelayedCommand(cmdGetRptAccessMode);
|
||||
}
|
||||
|
||||
if(rigCaps.hasAntennaSel)
|
||||
{
|
||||
|
@ -3745,7 +3780,43 @@ void wfmain::doCmd(commandtype cmddata)
|
|||
case cmdSetRptAccessMode:
|
||||
{
|
||||
rptrAccessData_t rd = (*std::static_pointer_cast<rptrAccessData_t>(data));
|
||||
if(rd.accessMode==ratrNN && !rigCaps.hasAdvancedRptrToneCmds)
|
||||
{
|
||||
rd.usingSequence = true;
|
||||
switch(rd.sequence)
|
||||
{
|
||||
case 0:
|
||||
rd.turnOffTone = true;
|
||||
rd.turnOffTSQL = false;
|
||||
break;
|
||||
case 1:
|
||||
rd.turnOffTSQL = true;
|
||||
rd.turnOffTone = false;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
emit setRepeaterAccessMode(rd);
|
||||
rd.sequence++;
|
||||
|
||||
if(rd.sequence == 1)
|
||||
issueCmd(cmdSetRptAccessMode, rd);
|
||||
|
||||
break;
|
||||
}
|
||||
case cmdSetToneEnabled:
|
||||
{
|
||||
// This command is not aware of which VFO to use
|
||||
bool toneEnabled = (*std::static_pointer_cast<bool>(data));
|
||||
emit setToneEnabled(toneEnabled);
|
||||
break;
|
||||
}
|
||||
case cmdSetTSQLEnabled:
|
||||
{
|
||||
// This command is not aware of which VFO to use
|
||||
bool toneEnabled = (*std::static_pointer_cast<bool>(data));
|
||||
emit setTSQLEnabled(toneEnabled);
|
||||
break;
|
||||
}
|
||||
case cmdSetRptDuplexOffset:
|
||||
|
@ -3950,7 +4021,19 @@ void wfmain::doCmd(cmds cmd)
|
|||
emit getDTCS();
|
||||
break;
|
||||
case cmdGetRptAccessMode:
|
||||
emit getRptAccessMode();
|
||||
if(rigCaps.hasAdvancedRptrToneCmds) {
|
||||
emit getRptAccessMode();
|
||||
} else {
|
||||
// Get both TONE and TSQL enabled status
|
||||
emit getToneEnabled();
|
||||
issueDelayedCommand(cmdGetTSQLEnabled);
|
||||
}
|
||||
break;
|
||||
case cmdGetToneEnabled:
|
||||
emit getToneEnabled();
|
||||
break;
|
||||
case cmdGetTSQLEnabled:
|
||||
emit getTSQLEnabled();
|
||||
break;
|
||||
case cmdDispEnable:
|
||||
emit scopeDisplayEnable();
|
||||
|
@ -5087,6 +5170,17 @@ void wfmain::receiveSpectrumMode(spectrumMode spectMode)
|
|||
setUISpectrumControlsToMode(spectMode);
|
||||
}
|
||||
|
||||
void wfmain::handleScopeOutOfRange(bool outOfRange)
|
||||
{
|
||||
if(outOfRange)
|
||||
{
|
||||
ui->scopeOutOfRangeLabel->setText("OUT OF RANGE");
|
||||
ui->scopeOutOfRangeLabel->setStyleSheet("QLabel { background-color : red; color : blue; }");
|
||||
} else {
|
||||
ui->scopeOutOfRangeLabel->setText("");
|
||||
ui->scopeOutOfRangeLabel->setStyleSheet("");
|
||||
}
|
||||
}
|
||||
|
||||
void wfmain::handlePlotDoubleClick(QMouseEvent *me)
|
||||
{
|
||||
|
@ -7822,8 +7916,8 @@ void wfmain::on_underlayAverageBuffer_toggled(bool checked)
|
|||
void wfmain::on_debugBtn_clicked()
|
||||
{
|
||||
qInfo(logSystem()) << "Debug button pressed.";
|
||||
qDebug(logSystem()) << "Query for repeater duplex offset 0x0C headed out";
|
||||
issueDelayedCommand(cmdGetRptDuplexOffset);
|
||||
qDebug(logSystem()) << "Query for repeater access mode (tone, tsql, etc) sent.";
|
||||
issueDelayedCommand(cmdGetRptAccessMode);
|
||||
}
|
||||
|
||||
// ---------- color helper functions: ---------- //
|
||||
|
|
5
wfmain.h
5
wfmain.h
|
@ -118,6 +118,10 @@ signals:
|
|||
void setRepeaterAccessMode(rptrAccessData_t rd);
|
||||
void setTone(rptrTone_t t);
|
||||
void setTSQL(rptrTone_t t);
|
||||
void getToneEnabled();
|
||||
void getTSQLEnabled();
|
||||
void setToneEnabled(bool enabled);
|
||||
void setTSQLEnabled(bool enabled);
|
||||
void setRptDuplexOffset(freqt f);
|
||||
void getRptDuplexOffset();
|
||||
|
||||
|
@ -281,6 +285,7 @@ private slots:
|
|||
void receiveSpectrumData(QByteArray spectrum, double startFreq, double endFreq);
|
||||
void receiveSpectrumMode(spectrumMode spectMode);
|
||||
void receiveSpectrumSpan(freqt freqspan, bool isSub);
|
||||
void handleScopeOutOfRange(bool outOfRange);
|
||||
void receivePTTstatus(bool pttOn);
|
||||
void receiveDataModeStatus(bool dataOn);
|
||||
void receiveBandStackReg(freqt f, char mode, char filter, bool dataOn); // freq, mode, (filter,) datamode
|
||||
|
|
29
wfmain.ui
29
wfmain.ui
|
@ -6,7 +6,7 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1012</width>
|
||||
<width>1042</width>
|
||||
<height>660</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">
|
||||
|
@ -117,6 +117,19 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="scopeOutOfRangeLabel">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>5</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="customEdgeBtn">
|
||||
<property name="toolTip">
|
||||
|
@ -1808,6 +1821,7 @@
|
|||
<font>
|
||||
<family>DejaVu Sans Mono</family>
|
||||
<pointsize>14</pointsize>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
|
@ -3430,8 +3444,8 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>790</width>
|
||||
<height>302</height>
|
||||
<width>570</width>
|
||||
<height>224</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
|
@ -5441,6 +5455,7 @@
|
|||
<widget class="QPushButton" name="exitBtn">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>50</weight>
|
||||
<bold>false</bold>
|
||||
</font>
|
||||
</property>
|
||||
|
@ -5459,8 +5474,8 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1012</width>
|
||||
<height>22</height>
|
||||
<width>1042</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
|
@ -5488,7 +5503,7 @@
|
|||
<connections/>
|
||||
<buttongroups>
|
||||
<buttongroup name="buttonGroup"/>
|
||||
<buttongroup name="pollingButtonGroup"/>
|
||||
<buttongroup name="underlayButtonGroup"/>
|
||||
<buttongroup name="pollingButtonGroup"/>
|
||||
</buttongroups>
|
||||
</ui>
|
||||
|
|
|
@ -98,12 +98,20 @@ enum rptAccessTxRx {
|
|||
ratrDN=0x06, // "DTCS(T)"
|
||||
ratrTD=0x07, // "TONE(T) / TSQL(R)"
|
||||
ratrDT=0x08, // "DTCS(T) / TSQL(R)"
|
||||
ratrTT=0x09 // "TONE(T) / TSQL(R)"
|
||||
ratrTT=0x09, // "TONE(T) / TSQL(R)"
|
||||
ratrTONEoff,
|
||||
ratrTONEon,
|
||||
ratrTSQLoff,
|
||||
ratrTSQLon
|
||||
};
|
||||
|
||||
struct rptrAccessData_t {
|
||||
rptAccessTxRx accessMode = ratrNN;
|
||||
bool useSecondaryVFO = false;
|
||||
bool turnOffTone = false;
|
||||
bool turnOffTSQL = false;
|
||||
bool usingSequence = false;
|
||||
int sequence = 0;
|
||||
};
|
||||
|
||||
struct mode_info {
|
||||
|
@ -153,7 +161,9 @@ enum cmds {
|
|||
cmdGetCurrentModLevel, cmdStartRegularPolling, cmdStopRegularPolling, cmdQueNormalSpeed,
|
||||
cmdGetVdMeter, cmdGetIdMeter, cmdGetSMeter, cmdGetCenterMeter, cmdGetPowerMeter,
|
||||
cmdGetSWRMeter, cmdGetALCMeter, cmdGetCompMeter, cmdGetTxRxMeter,
|
||||
cmdGetTone, cmdGetTSQL, cmdGetDTCS, cmdGetRptAccessMode, cmdSetTone, cmdSetTSQL, cmdSetRptAccessMode, cmdSetRptDuplexOffset, cmdGetRptDuplexOffset,
|
||||
cmdGetTone, cmdGetTSQL, cmdGetToneEnabled, cmdGetTSQLEnabled, cmdGetDTCS,
|
||||
cmdSetToneEnabled, cmdSetTSQLEnabled, cmdGetRptAccessMode, cmdSetTone, cmdSetTSQL,
|
||||
cmdSetRptAccessMode, cmdSetRptDuplexOffset, cmdGetRptDuplexOffset,
|
||||
cmdSelVFO, cmdVFOSwap, cmdVFOEqualAB, cmdVFOEqualMS,
|
||||
cmdGetPreamp, cmdGetAttenuator, cmdGetAntenna,
|
||||
cmdGetBandStackReg, cmdGetKeySpeed, cmdSetKeySpeed, cmdGetBreakMode, cmdSetBreakMode, cmdSendCW, cmdStopCW,
|
||||
|
|
Ładowanie…
Reference in New Issue