kopia lustrzana https://gitlab.com/eliggett/wfview
First look at a passband indicator
rodzic
70101487a3
commit
d8e244f33a
|
@ -872,6 +872,35 @@ void rigCommander::getDuplexMode()
|
|||
prepDataAndSend(payload);
|
||||
}
|
||||
|
||||
void rigCommander::getPassband()
|
||||
{
|
||||
QByteArray payload;
|
||||
payload.setRawData("\x1A\x03", 2);
|
||||
|
||||
/*
|
||||
int cmd;
|
||||
if (mode == modeLSB || mode == modeUSB || mode == modeLSB_D || mode == modeUSB_D)
|
||||
cmd = 1;
|
||||
else if (mode == modeAM)
|
||||
cmd = 4;
|
||||
else if (mode == modeFM)
|
||||
cmd = 7;
|
||||
else if (mode == modeCW || mode == modeCW_R)
|
||||
cmd = 10;
|
||||
else if (mode == modeRTTY || mode == modeRTTY_R)
|
||||
cmd = 11;
|
||||
else if (mode == modePSK || mode == modePSK_R)
|
||||
cmd = 12;
|
||||
else
|
||||
cmd = 1;
|
||||
|
||||
payload.append(bcdEncodeInt(cmd));
|
||||
*/
|
||||
|
||||
qDebug() << "Requesting Passband" << payload;
|
||||
prepDataAndSend(payload);
|
||||
}
|
||||
|
||||
void rigCommander::getTransmitFrequency()
|
||||
{
|
||||
QByteArray payload;
|
||||
|
@ -2511,6 +2540,9 @@ void rigCommander::parseRegisters1A()
|
|||
// band stacking register
|
||||
parseBandStackReg();
|
||||
break;
|
||||
case '\x03':
|
||||
emit havePassband(bcdHexToUChar((quint8)payloadIn[2]));
|
||||
break;
|
||||
case '\x04':
|
||||
state.set(AGC, (quint8)payloadIn[2], false);
|
||||
break;
|
||||
|
|
|
@ -157,6 +157,8 @@ public slots:
|
|||
void setManualNotch(bool enabled);
|
||||
void getManualNotch();
|
||||
|
||||
void getPassband();
|
||||
|
||||
// Repeater:
|
||||
void setDuplexMode(duplexMode dm);
|
||||
void getDuplexMode();
|
||||
|
@ -321,6 +323,7 @@ signals:
|
|||
void haveBandStackReg(freqt f, char mode, char filter, bool dataOn);
|
||||
void haveRitEnabled(bool ritEnabled);
|
||||
void haveRitFrequency(int ritHz);
|
||||
void havePassband(quint8 pass);
|
||||
|
||||
// Repeater:
|
||||
void haveDuplexMode(duplexMode);
|
||||
|
|
52
wfmain.cpp
52
wfmain.cpp
|
@ -61,6 +61,7 @@ wfmain::wfmain(const QString settingsFile, const QString logFile, bool debugMode
|
|||
qRegisterMetaType<spectrumMode>();
|
||||
qRegisterMetaType<freqt>();
|
||||
qRegisterMetaType<mode_info>();
|
||||
qRegisterMetaType<mode_kind>();
|
||||
qRegisterMetaType<audioPacket>();
|
||||
qRegisterMetaType <audioSetup>();
|
||||
qRegisterMetaType <SERVERCONFIG>();
|
||||
|
@ -283,6 +284,7 @@ void wfmain::rigConnections()
|
|||
connect(this, SIGNAL(scopeDisplayEnable()), rig, SLOT(enableSpectrumDisplay()));
|
||||
connect(rig, SIGNAL(haveMode(unsigned char, unsigned char)), this, SLOT(receiveMode(unsigned char, unsigned char)));
|
||||
connect(rig, SIGNAL(haveDataMode(bool)), this, SLOT(receiveDataModeStatus(bool)));
|
||||
connect(rig, SIGNAL(havePassband(quint8)), this, SLOT(receivePassband(quint8)));
|
||||
|
||||
connect(rpt, SIGNAL(getDuplexMode()), rig, SLOT(getDuplexMode()));
|
||||
connect(rpt, SIGNAL(setDuplexMode(duplexMode)), rig, SLOT(setDuplexMode(duplexMode)));
|
||||
|
@ -302,6 +304,7 @@ void wfmain::rigConnections()
|
|||
|
||||
|
||||
connect(this, SIGNAL(getDuplexMode()), rig, SLOT(getDuplexMode()));
|
||||
connect(this, SIGNAL(getPassband()), rig, SLOT(getPassband()));
|
||||
connect(this, SIGNAL(getTone()), rig, SLOT(getTone()));
|
||||
connect(this, SIGNAL(getTSQL()), rig, SLOT(getTSQL()));
|
||||
connect(this, SIGNAL(getRptAccessMode()), rig, SLOT(getRptAccessMode()));
|
||||
|
@ -676,10 +679,16 @@ void wfmain::setupPlots()
|
|||
|
||||
wf = ui->waterfall;
|
||||
|
||||
passbandIndicator = new QCPItemRect(plot);
|
||||
passbandIndicator->setAntialiased(true);
|
||||
passbandIndicator->setPen(QPen(Qt::red));
|
||||
passbandIndicator->setBrush(QBrush(Qt::red));
|
||||
|
||||
freqIndicatorLine = new QCPItemLine(plot);
|
||||
freqIndicatorLine->setAntialiased(true);
|
||||
freqIndicatorLine->setPen(QPen(Qt::blue));
|
||||
|
||||
|
||||
ui->plot->addGraph(); // primary
|
||||
ui->plot->addGraph(0, 0); // secondary, peaks, same axis as first.
|
||||
ui->plot->addLayer( "Top Layer", ui->plot->layer("main"));
|
||||
|
@ -707,6 +716,9 @@ void wfmain::setupPlots()
|
|||
freqIndicatorLine->start->setCoords(0.5, 0);
|
||||
freqIndicatorLine->end->setCoords(0.5, 160);
|
||||
|
||||
passbandIndicator->topLeft->setCoords(0.5, 0);
|
||||
passbandIndicator->bottomRight->setCoords(0.5, 160);
|
||||
|
||||
// Plot user interaction
|
||||
connect(plot, SIGNAL(mouseDoubleClick(QMouseEvent*)), this, SLOT(handlePlotDoubleClick(QMouseEvent*)));
|
||||
connect(wf, SIGNAL(mouseDoubleClick(QMouseEvent*)), this, SLOT(handleWFDoubleClick(QMouseEvent*)));
|
||||
|
@ -2982,6 +2994,9 @@ void wfmain::doCmd(cmds cmd)
|
|||
case cmdGetDuplexMode:
|
||||
emit getDuplexMode();
|
||||
break;
|
||||
case cmdGetPassband:
|
||||
emit getPassband();
|
||||
break;
|
||||
case cmdGetTone:
|
||||
emit getTone();
|
||||
break;
|
||||
|
@ -3576,6 +3591,9 @@ void wfmain::initPeriodicCommands()
|
|||
insertSlowPeriodicCommand(cmdGetAntenna, 128);
|
||||
}
|
||||
insertSlowPeriodicCommand(cmdGetDuplexMode, 128);
|
||||
|
||||
// Get passband
|
||||
insertPeriodicCommand(cmdGetPassband, 128);
|
||||
}
|
||||
|
||||
void wfmain::insertPeriodicCommand(cmds cmd, unsigned char priority)
|
||||
|
@ -3750,6 +3768,20 @@ void wfmain::receiveSpectrumData(QByteArray spectrum, double startFreq, double e
|
|||
{
|
||||
freqIndicatorLine->start->setCoords(freq.MHzDouble,0);
|
||||
freqIndicatorLine->end->setCoords(freq.MHzDouble,rigCaps.spectAmpMax);
|
||||
|
||||
if (currentModeIndex == modeCW || currentModeIndex == modeRTTY || currentModeIndex == modeAM) {
|
||||
passbandIndicator->topLeft->setCoords(freq.MHzDouble - (passBand/2), 0);
|
||||
passbandIndicator->bottomRight->setCoords(freq.MHzDouble + (passBand/2), rigCaps.spectAmpMax);
|
||||
}
|
||||
else if (currentModeIndex == modeLSB) {
|
||||
passbandIndicator->topLeft->setCoords(freq.MHzDouble - passBand - 0.0001, 0);
|
||||
passbandIndicator->bottomRight->setCoords(freq.MHzDouble - 0.0001, rigCaps.spectAmpMax);
|
||||
}
|
||||
else if (currentModeIndex == modeUSB) {
|
||||
passbandIndicator->topLeft->setCoords(freq.MHzDouble + 0.0001, 0);
|
||||
passbandIndicator->bottomRight->setCoords(freq.MHzDouble + 0.0001 + passBand, rigCaps.spectAmpMax);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(underlayMode == underlayPeakHold)
|
||||
|
@ -5259,6 +5291,24 @@ void wfmain::receiveLANGain(unsigned char level)
|
|||
processModLevel(inputLAN, level);
|
||||
}
|
||||
|
||||
void wfmain::receivePassband(quint8 pass)
|
||||
{
|
||||
int calc;
|
||||
if (currentModeIndex == modeAM) {
|
||||
calc = 200 + (pass * 200);
|
||||
}
|
||||
else if (pass <= 10)
|
||||
{
|
||||
calc = 50 + (pass * 50);
|
||||
}
|
||||
else {
|
||||
calc = 600 + ((pass - 10) * 100);
|
||||
}
|
||||
passBand = (double)(calc / 1000000.0);
|
||||
|
||||
qInfo() << "Got Passband" << passBand << "(" << pass << ")";
|
||||
}
|
||||
|
||||
void wfmain::receiveMeter(meterKind inMeter, unsigned char level)
|
||||
{
|
||||
|
||||
|
@ -6562,6 +6612,8 @@ void wfmain::useColorPreset(colorPrefsType *cp)
|
|||
plot->yAxis->setTickPen(cp->axisColor);
|
||||
|
||||
freqIndicatorLine->setPen(QPen(cp->tuningLine));
|
||||
//passbandIndicator->setPen(QPen(cp->tuningLine));
|
||||
//passbandIndicator->setBrush(QBrush(cp->tuningLine));
|
||||
|
||||
plot->graph(0)->setPen(QPen(cp->spectrumLine));
|
||||
plot->graph(0)->setBrush(QBrush(cp->spectrumFill));
|
||||
|
|
10
wfmain.h
10
wfmain.h
|
@ -75,7 +75,7 @@ signals:
|
|||
void setRigID(unsigned char rigID);
|
||||
void setRTSforPTT(bool enabled);
|
||||
|
||||
// Power
|
||||
|
||||
void sendPowerOn();
|
||||
void sendPowerOff();
|
||||
|
||||
|
@ -98,6 +98,7 @@ signals:
|
|||
|
||||
// Repeater:
|
||||
void getDuplexMode();
|
||||
void getPassband();
|
||||
void getTone();
|
||||
void getTSQL();
|
||||
void getDTCS();
|
||||
|
@ -239,7 +240,7 @@ private slots:
|
|||
void receiveRITValue(int ritValHz);
|
||||
void receiveModInput(rigInput input, bool dataOn);
|
||||
//void receiveDuplexMode(duplexMode dm);
|
||||
|
||||
void receivePassband(quint8 pass);
|
||||
|
||||
|
||||
// Levels:
|
||||
|
@ -665,6 +666,7 @@ private:
|
|||
QCustomPlot *plot; // line plot
|
||||
QCustomPlot *wf; // waterfall image
|
||||
QCPItemLine * freqIndicatorLine;
|
||||
QCPItemRect* passbandIndicator;
|
||||
void setAppTheme(bool isCustom);
|
||||
void prepareWf();
|
||||
void prepareWf(unsigned int wfLength);
|
||||
|
@ -779,6 +781,7 @@ private:
|
|||
double wfCeiling = 160;
|
||||
double oldPlotFloor = -1;
|
||||
double oldPlotCeiling = 999;
|
||||
double passBand = 0.0;
|
||||
|
||||
QVector <QByteArray> wfimage;
|
||||
unsigned int wfLengthMax;
|
||||
|
@ -800,7 +803,7 @@ private:
|
|||
cmdGetDataMode, cmdSetModeFilter, cmdSetDataModeOn, cmdSetDataModeOff, cmdGetRitEnabled, cmdGetRitValue,
|
||||
cmdSpecOn, cmdSpecOff, cmdDispEnable, cmdDispDisable, cmdGetRxGain, cmdSetRxRfGain, cmdGetAfGain, cmdSetAfGain,
|
||||
cmdGetSql, cmdSetSql, cmdGetIFShift, cmdSetIFShift, cmdGetTPBFInner, cmdSetTPBFInner,
|
||||
cmdGetTPBFOuter, cmdSetTPBFOuter, cmdGetATUStatus,
|
||||
cmdGetTPBFOuter, cmdSetTPBFOuter, cmdGetATUStatus, cmdGetPassband,
|
||||
cmdSetATU, cmdStartATU, cmdGetSpectrumMode,
|
||||
cmdGetSpectrumSpan, cmdScopeCenterMode, cmdScopeFixedMode, cmdGetPTT, cmdSetPTT,
|
||||
cmdGetTxPower, cmdSetTxPower, cmdGetMicGain, cmdSetMicGain, cmdSetModLevel,
|
||||
|
@ -1043,6 +1046,7 @@ Q_DECLARE_METATYPE(struct networkAudioLevels)
|
|||
Q_DECLARE_METATYPE(enum rigInput)
|
||||
Q_DECLARE_METATYPE(enum meterKind)
|
||||
Q_DECLARE_METATYPE(enum spectrumMode)
|
||||
Q_DECLARE_METATYPE(enum mode_kind)
|
||||
Q_DECLARE_METATYPE(QList<radio_cap_packet>)
|
||||
Q_DECLARE_METATYPE(rigstate*)
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue