From 1e79d5d32d33cbf49bf5d1dcb8d1c22d0d2d260c Mon Sep 17 00:00:00 2001 From: Elliott Liggett Date: Thu, 19 Jan 2023 23:02:54 -0800 Subject: [PATCH] Changed transceiver adjustments to be horizontal. Added passband width control to the transceiver adjustments. --- transceiveradjustments.cpp | 43 ++++- transceiveradjustments.h | 11 +- transceiveradjustments.ui | 330 ++++++++++++++++++++++++------------- wfmain.cpp | 34 +++- 4 files changed, 298 insertions(+), 120 deletions(-) diff --git a/transceiveradjustments.cpp b/transceiveradjustments.cpp index c95d1e0..c9cc41e 100644 --- a/transceiveradjustments.cpp +++ b/transceiveradjustments.cpp @@ -6,7 +6,8 @@ transceiverAdjustments::transceiverAdjustments(QWidget *parent) : ui(new Ui::transceiverAdjustments) { ui->setupUi(this); -#ifndef QT_DEBUG + + // ---- These controls aren't finished yet: ui->transmitterControlsGroupBox->setVisible(false); // no controls available so far ui->bassRxLabel->setVisible(false); ui->bassRxSlider->setVisible(false); @@ -20,10 +21,13 @@ transceiverAdjustments::transceiverAdjustments(QWidget *parent) : ui->NBRxChkBox->setVisible(false); ui->NBRxSlider->setVisible(false); ui->bandwidthGroupBox->setVisible(false); + ui->otherGrpBox->setVisible(false); + // ---- + + // Resize to fit new visible contents: this->window()->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); this->window()->resize(QSizePolicy::Minimum, QSizePolicy::Minimum); -#endif this->setWindowTitle("TransceiverAdjustments"); } @@ -37,6 +41,15 @@ transceiverAdjustments::~transceiverAdjustments() delete ui; } +void transceiverAdjustments::setMaxPassband(quint16 maxHzAllowed) +{ + if( (maxHzAllowed <= 10E3) && (maxHzAllowed != 0) ) + { + maxHz = maxHzAllowed; + updatePassband(lastKnownPassband); + } +} + void transceiverAdjustments::on_IFShiftSlider_valueChanged(int value) { if(rigCaps.hasIFShift) @@ -104,6 +117,17 @@ void transceiverAdjustments::updateTPBFOuter(unsigned char level) ui->TPBFOuterSlider->blockSignals(false); } +void transceiverAdjustments::updatePassband(quint16 passbandHz) +{ + lastKnownPassband = passbandHz; + float l = 2.0*passbandHz/maxHz; + int val = exp10f(l); + //qDebug() << "Updating slider passband to " << passbandHz << "Hz using 1-100 value:" << val << "with l=" << l << "and max=" << maxHz; + ui->passbandWidthSlider->blockSignals(true); + ui->passbandWidthSlider->setValue(val); + ui->passbandWidthSlider->blockSignals(false); +} + void transceiverAdjustments::on_resetPBTbtn_clicked() { ui->TPBFInnerSlider->setValue(128); @@ -112,3 +136,18 @@ void transceiverAdjustments::on_resetPBTbtn_clicked() ui->IFShiftSlider->setValue(128); ui->IFShiftSlider->blockSignals(false); } + +void transceiverAdjustments::on_passbandWidthSlider_valueChanged(int value) +{ + // value is 1-100 + //float maxHz = 10E3; + float l = log10f(value); + float p = l*maxHz/2.0; + quint16 pbHz = (quint16)p; + if(pbHz != 0) + { + //qDebug() << "Setting passband, maxHZ" << maxHz << ", value: " << value << ", l:" << l << ", p:" << p << ", pbHz: " << pbHz; + lastKnownPassband = pbHz; + emit setPassband(pbHz); + } +} diff --git a/transceiveradjustments.h b/transceiveradjustments.h index eeaa1c0..0c4e576 100644 --- a/transceiveradjustments.h +++ b/transceiveradjustments.h @@ -4,8 +4,10 @@ #include - #include + +#include + #include "rigidentities.h" @@ -20,17 +22,20 @@ class transceiverAdjustments : public QWidget public: explicit transceiverAdjustments(QWidget *parent = 0); ~transceiverAdjustments(); + void setMaxPassband(quint16 maxHzAllowed); signals: void setIFShift(unsigned char level); void setTPBFInner(unsigned char level); void setTPBFOuter(unsigned char level); + void setPassband(quint16 passbandHz); public slots: void setRig(rigCapabilities rig); void updateIFShift(unsigned char level); void updateTPBFInner(unsigned char level); void updateTPBFOuter(unsigned char level); + void updatePassband(quint16 passbandHz); private slots: @@ -42,11 +47,15 @@ private slots: void on_resetPBTbtn_clicked(); + void on_passbandWidthSlider_valueChanged(int value); + private: Ui::transceiverAdjustments *ui; rigCapabilities rigCaps; bool haveRigCaps = false; int previousIFShift = 128; + float maxHz = 10E3; + quint16 lastKnownPassband = 3500; }; #endif // TRANSCEIVERADJUSTMENTS_H diff --git a/transceiveradjustments.ui b/transceiveradjustments.ui index 6126b21..d0ef8fe 100644 --- a/transceiveradjustments.ui +++ b/transceiveradjustments.ui @@ -6,8 +6,8 @@ 0 0 - 832 - 342 + 961 + 370 @@ -166,9 +166,219 @@ - Receiver + Receiver Passband Controls - + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 70 + 0 + + + + + 70 + 16777215 + + + + PBF Outer + + + + + + + + 230 + 20 + + + + 255 + + + Qt::Horizontal + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 70 + 0 + + + + + 70 + 16777215 + + + + PBF Inner + + + + + + + + 230 + 20 + + + + 255 + + + Qt::Horizontal + + + + + + + + + + + + 70 + 0 + + + + + 70 + 16777215 + + + + IF Shift + + + + + + + + 230 + 20 + + + + 255 + + + Qt::Horizontal + + + + + + + + + + + + 70 + 0 + + + + + 70 + 16777215 + + + + Filter Width + + + + + + + 1 + + + 100 + + + Qt::Horizontal + + + + + + + + + + + Reset PBT + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Other + + @@ -229,111 +439,6 @@ - - - - - - - 0 - 230 - - - - 255 - - - Qt::Vertical - - - - - - - IF Shift - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 0 - 230 - - - - 255 - - - Qt::Vertical - - - - - - - PBF Inner - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 0 - 230 - - - - 255 - - - Qt::Vertical - - - - - - - PBF Outer - - - - - @@ -468,13 +573,6 @@ 0 - - - - Reset PBT - - - diff --git a/wfmain.cpp b/wfmain.cpp index 9a0a9d6..cabf4af 100644 --- a/wfmain.cpp +++ b/wfmain.cpp @@ -1039,6 +1039,9 @@ void wfmain::setupMainUI() connect(this->trxadj, &transceiverAdjustments::setTPBFOuter, [=](const unsigned char &newValue) { issueCmdUniquePriority(cmdSetTPBFOuter, newValue);} ); + connect(this->trxadj, &transceiverAdjustments::setPassband, + [=](const quint16 &passbandHz) { issueCmdUniquePriority(cmdSetPassband, passbandHz);} + ); } void wfmain::prepareSettingsWindow() @@ -4725,7 +4728,7 @@ void wfmain::handlePlotMouseMove(QMouseEvent *me) if(me->buttons() == Qt::LeftButton && textItem==nullptr && prefs.clickDragTuningEnable) { double delta = plot->xAxis->pixelToCoord(me->pos().x()) - mousePressFreq; - qInfo(logGui()) << "Mouse moving delta: " << delta; + qDebug(logGui()) << "Mouse moving delta: " << delta; if( (( delta < -0.0001 ) || (delta > 0.0001)) && ((delta < 0.501) && (delta > -0.501)) ) { freqt freqGo; @@ -4842,6 +4845,34 @@ void wfmain::receiveMode(unsigned char mode, unsigned char filter) ui->modeFilterCombo->blockSignals(false); } + quint16 maxPassbandHz = 0; + switch(currentMode) + { + case modeUSB: + case modeLSB: + case modeCW: + case modeCW_R: + case modePSK: + case modePSK_R: + maxPassbandHz = 3600; + break; + case modeRTTY: + case modeRTTY_R: + maxPassbandHz = 2700; + break; + case modeAM: + maxPassbandHz = 10E3; + break; + case modeFM: + maxPassbandHz = 10E3; + break; + default: + break; + } + if(maxPassbandHz != 0) + { + trxadj->setMaxPassband(maxPassbandHz); + } // Note: we need to know if the DATA mode is active to reach mode-D // some kind of queued query: if (rigCaps.hasDataModes && rigCaps.hasTransmit) @@ -6077,6 +6108,7 @@ void wfmain::receivePassband(quint16 pass) { if (passBand != (double)(pass / 1000000.0)) { passBand = (double)(pass / 1000000.0); + trxadj->updatePassband(pass); showStatusBarText(QString("IF filter width %1 Hz").arg(pass)); } }