kopia lustrzana https://gitlab.com/eliggett/wfview
Possibly the tone issue is solved.
rodzic
d503df03bd
commit
eea17e5e09
|
@ -313,25 +313,45 @@ 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
|
||||
qDebug() << "In repeater setup, have received mode: " << tmode;
|
||||
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);
|
||||
qDebug() << "Assuming tone None is correct";
|
||||
}
|
||||
|
||||
(void)tmode;
|
||||
}
|
||||
|
||||
void repeaterSetup::handleTone(quint16 tone)
|
||||
|
|
|
@ -1206,6 +1206,9 @@ 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;
|
||||
if(rigCaps.hasAdvancedRptrToneCmds)
|
||||
{
|
||||
|
@ -1225,6 +1228,20 @@ void rigCommander::setRptAccessMode(rptrAccessData_t rd)
|
|||
{
|
||||
case ratrNN:
|
||||
// No tone at all
|
||||
qDebug(logRig()) << "Tone off requested. state_TONE_enabled: " << state_TONE_Main_Enabled << ", state_TSQL_enabled: " << state_TSQL_Main_Enabled;
|
||||
qDebug(logRig()) << "state.getBool(TONEFUNC): " << state.getBool(TONEFUNC);
|
||||
qDebug(logRig()) << "state.getBool(TSQLFUNC): " << state.getBool(TSQLFUNC);
|
||||
qDebug(logRig()) << "turn off tone: " << rd.turnOffTone << ", turn off tsql: " << rd.turnOffTSQL;
|
||||
qDebug(logRig()) << "Using sequence? " << rd.usingSequence << ", sequence number: " << rd.sequence;
|
||||
if(rd.turnOffTone)
|
||||
{
|
||||
payload.append("\x16\x42\x00", 3); // TONE off
|
||||
} else if (rd.turnOffTSQL)
|
||||
{
|
||||
payload.append("\x16\x43\x00", 3); // TSQL off
|
||||
}
|
||||
|
||||
/*
|
||||
if(state.getBool(TONEFUNC))
|
||||
{
|
||||
payload.append("\x16\x42\x00", 3); // TONE off
|
||||
|
@ -1234,6 +1251,8 @@ void rigCommander::setRptAccessMode(rptrAccessData_t rd)
|
|||
// ?? turn off TSQL ??
|
||||
payload.append("\x16\x43\x00", 3); // TSQL off
|
||||
}
|
||||
*/
|
||||
|
||||
break;
|
||||
case ratrTN:
|
||||
// TONE on transmit only
|
||||
|
@ -1245,7 +1264,7 @@ void rigCommander::setRptAccessMode(rptrAccessData_t rd)
|
|||
break;
|
||||
case ratrNT:
|
||||
// Tone squelch and no tone transmit:
|
||||
payload.append("\x16\x43\x01", 3); // TSQL on
|
||||
payload.append("\x16\x43\x01", 3); // TSQL on, close enough here.
|
||||
// payload.append("\x16\x42\x00", 3); // TONE off
|
||||
break;
|
||||
default:
|
||||
|
@ -1253,6 +1272,7 @@ void rigCommander::setRptAccessMode(rptrAccessData_t rd)
|
|||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(rd.useSecondaryVFO && rigCaps.hasSpecifyMainSubCmd)
|
||||
{
|
||||
payload.prepend("\x29\x01");
|
||||
|
@ -2932,6 +2952,7 @@ void rigCommander::parseRegister16()
|
|||
//"INDEX: 00 01 02 03 "
|
||||
//"DATA: 16 5d 00 fd "
|
||||
// ^-- mode info here
|
||||
rptAccessTxRx ra;
|
||||
|
||||
switch(payloadIn.at(1))
|
||||
{
|
||||
|
@ -2954,9 +2975,25 @@ void rigCommander::parseRegister16()
|
|||
break;
|
||||
case '\x42':
|
||||
state.set(TONEFUNC, payloadIn.at(2) != 0, false);
|
||||
state_TONE_Main_Enabled = (bool)payloadIn.at(2);
|
||||
if(payloadIn.at(2)==1)
|
||||
{
|
||||
ra = ratrTONEon;
|
||||
} else {
|
||||
ra = ratrTONEoff;
|
||||
}
|
||||
emit haveRptAccessMode(ra);
|
||||
break;
|
||||
case '\x43':
|
||||
state.set(TSQLFUNC, payloadIn.at(2) != 0, false);
|
||||
state_TSQL_Main_Enabled = (bool)payloadIn.at(2);
|
||||
if(payloadIn.at(2)==1)
|
||||
{
|
||||
ra = ratrTSQLon;
|
||||
} else {
|
||||
ra = ratrTSQLoff;
|
||||
}
|
||||
emit haveRptAccessMode(ra);
|
||||
break;
|
||||
case '\x44':
|
||||
state.set(COMPFUNC, payloadIn.at(2) != 0, false);
|
||||
|
|
|
@ -451,6 +451,11 @@ private:
|
|||
struct rigCapabilities rigCaps;
|
||||
|
||||
rigstate state;
|
||||
// These are temporary measurements for debugging:
|
||||
bool state_TONE_Main_Enabled = false;
|
||||
bool state_TSQL_Main_Enabled = false;
|
||||
bool state_TONE_Sub_Enabled = false;
|
||||
bool state_TSQL_Sub_Enabled = false;
|
||||
|
||||
bool haveRigCaps;
|
||||
model_kind model;
|
||||
|
|
50
wfmain.cpp
50
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()));
|
||||
|
@ -427,7 +429,10 @@ void wfmain::rigConnections()
|
|||
//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)));
|
||||
|
||||
|
@ -3471,7 +3476,10 @@ void wfmain:: getInitialRigState()
|
|||
{
|
||||
issueDelayedCommand(cmdGetDTCS);
|
||||
}
|
||||
// TODO: decide which one!
|
||||
issueDelayedCommand(cmdGetRptAccessMode);
|
||||
issueDelayedCommand(cmdGetToneEnabled);
|
||||
issueDelayedCommand(cmdGetTSQLEnabled);
|
||||
|
||||
if(rigCaps.hasAntennaSel)
|
||||
{
|
||||
|
@ -3771,7 +3779,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:
|
||||
|
@ -7867,8 +7911,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: ---------- //
|
||||
|
|
2
wfmain.h
2
wfmain.h
|
@ -120,6 +120,8 @@ signals:
|
|||
void setTSQL(rptrTone_t t);
|
||||
void getToneEnabled();
|
||||
void getTSQLEnabled();
|
||||
void setToneEnabled(bool enabled);
|
||||
void setTSQLEnabled(bool enabled);
|
||||
void setRptDuplexOffset(freqt f);
|
||||
void getRptDuplexOffset();
|
||||
|
||||
|
|
|
@ -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, cmdGetToneEnabled, cmdGetTSQLEnabled, 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