diff --git a/rigcommander.cpp b/rigcommander.cpp
index 956f2f5..6a7dde7 100644
--- a/rigcommander.cpp
+++ b/rigcommander.cpp
@@ -16,7 +16,7 @@
// The IC-7300 "full" manual also contains a command reference.
// How to make spectrum display stop using rigctl:
-// echo "w \0xFE\0xFE\0x94\0xE0\0x27\0x11\0x00\0xFD" | rigctl -m 373 -r /dev/ttyUSB0 -s 115200 -vvvvv
+// echo "w \0xFE\0xFE\0x94\0xE0\0x27\0x11\0x00\0xFD" | rigctl -m 3073 -r /dev/ttyUSB0 -s 115200 -vvvvv
// Note: When sending \x00, must use QByteArray.setRawData()
@@ -242,7 +242,7 @@ void rigCommander::disableSpectrumDisplay()
void rigCommander::setSpectrumBounds(double startFreq, double endFreq, unsigned char edgeNumber)
{
- if((edgeNumber > 3) || (!edgeNumber))
+ if((edgeNumber > 4) || (!edgeNumber))
{
return;
}
@@ -307,7 +307,7 @@ void rigCommander::setSpectrumBounds(double startFreq, double endFreq, unsigned
}
- QByteArray lowerEdge = makeFreqPayload(startFreq);
+ QByteArray lowerEdge = makeFreqPayload(startFreq);
QByteArray higherEdge = makeFreqPayload(endFreq);
@@ -342,7 +342,7 @@ void rigCommander::setScopeEdge(char edge)
{
// 1 2 or 3
// 27 16 00 0X
- if((edge <1) || (edge >3))
+ if((edge <1) || (edge >4))
return;
QByteArray payload;
payload.setRawData("\x27\x16\x00", 3);
diff --git a/wfmain.cpp b/wfmain.cpp
index c0bf119..8fd4fad 100644
--- a/wfmain.cpp
+++ b/wfmain.cpp
@@ -257,7 +257,7 @@ wfmain::wfmain(const QString serialPortCL, const QString hostCL, QWidget *parent
spans << "50k" << "100k" << "250k" << "500k";
ui->scopeBWCombo->insertItems(0, spans);
- edges << "1" << "2" << "3"; // yep
+ edges << "1" << "2" << "3" << "4"; // yep
ui->scopeEdgeCombo->insertItems(0, edges);
ui->splitter->setHandleWidth(5);
@@ -429,8 +429,8 @@ wfmain::wfmain(const QString serialPortCL, const QString hostCL, QWidget *parent
drawPeaks = false;
- SMeterReadings.fill(0,10);
- powerMeterReadings.fill(0,10);
+ SMeterReadings.fill(0,30);
+ powerMeterReadings.fill(0,30);
ui->freqMhzLineEdit->setValidator( new QDoubleValidator(0, 100, 6, this));
@@ -443,6 +443,9 @@ wfmain::wfmain(const QString serialPortCL, const QString hostCL, QWidget *parent
pttTimer->setSingleShot(true);
connect(pttTimer, SIGNAL(timeout()), this, SLOT(handlePttLimit()));
amTransmitting = false;
+ ui->tuneLockChk->setChecked(false);
+ freqLock = false;
+
// Not needed since we automate this now.
/*
@@ -1194,6 +1197,7 @@ void wfmain::setTuningSteps()
tsPlusShift = 0.0001f;
tsPage = 1.0f;
tsPageShift = 0.5f; // TODO, unbind this keystroke from the dial
+ tsWfScroll = 0.0001f;
}
double wfmain::roundFrequency(double frequency)
@@ -2016,8 +2020,7 @@ void wfmain::handlePlotDoubleClick(QMouseEvent *me)
//y = plot->yAxis->pixelToCoord(me->pos().y());
x = plot->xAxis->pixelToCoord(me->pos().x());
emit setFrequency(x);
- cmdOut = cmdGetFreq;
- delayedCommand->start();
+ issueDelayedCommand(cmdGetFreq);
showStatusBarText(QString("Going to %1 MHz").arg(x));
}
}
@@ -2033,8 +2036,7 @@ void wfmain::handleWFDoubleClick(QMouseEvent *me)
{
x = plot->xAxis->pixelToCoord(me->pos().x());
emit setFrequency(x);
- cmdOut = cmdGetFreq;
- delayedCommand->start();
+ issueDelayedCommand(cmdGetFreq);
showStatusBarText(QString("Going to %1 MHz").arg(x));
}
}
@@ -2058,36 +2060,54 @@ void wfmain::handleWFScroll(QWheelEvent *we)
// We will click the dial once for every 120 received.
//QPoint delta = we->angleDelta();
- // TODO: Use other method, knob has too few positions to be useful for large steps.
+ if(freqLock)
+ return;
+
+ int clicks = we->angleDelta().y() / 120;
+
+ float steps = tsWfScroll * clicks;
- int steps = we->angleDelta().y() / 120;
Qt::KeyboardModifiers key= we->modifiers();
if (key == Qt::ShiftModifier)
{
- steps *=20;
+ steps /= 10;
} else if (key == Qt::ControlModifier)
{
steps *=10;
}
- ui->freqDial->setValue( ui->freqDial->value() + (steps)*ui->freqDial->singleStep() );
+ freqMhz = roundFrequency(freqMhz - steps);
+ knobFreqMhz = freqMhz;
+ emit setFrequency(freqMhz);
+ ui->freqLabel->setText(QString("%1").arg(freqMhz, 0, 'f'));
+ issueDelayedCommand(cmdGetFreq);
}
void wfmain::handlePlotScroll(QWheelEvent *we)
{
- int steps = we->angleDelta().y() / 120;
+ if(freqLock)
+ return;
+
+ int clicks = we->angleDelta().y() / 120;
+
+ float steps = tsWfScroll * clicks;
+
Qt::KeyboardModifiers key= we->modifiers();
if (key == Qt::ShiftModifier)
{
- // TODO: Zoom
+ steps /= 10;
} else if (key == Qt::ControlModifier)
{
steps *=10;
}
- ui->freqDial->setValue( ui->freqDial->value() + (steps)*ui->freqDial->singleStep() );
+ freqMhz = roundFrequency(freqMhz - steps);
+ knobFreqMhz = freqMhz;
+ emit setFrequency(freqMhz);
+ ui->freqLabel->setText(QString("%1").arg(freqMhz, 0, 'f'));
+ issueDelayedCommand(cmdGetFreq);
}
void wfmain::on_scopeEnableWFBtn_clicked(bool checked)
@@ -2204,9 +2224,7 @@ void wfmain::on_goFreqBtn_clicked()
if(ok)
{
emit setFrequency(freq);
- // TODO: change to cmdQueue
- cmdOut = cmdGetFreq;
- delayedCommand->start();
+ issueDelayedCommand(cmdGetFreq);
}
ui->freqMhzLineEdit->selectAll();
freqTextSelected = true;
diff --git a/wfmain.h b/wfmain.h
index f94f96f..aa1b8df 100644
--- a/wfmain.h
+++ b/wfmain.h
@@ -604,6 +604,7 @@ private:
float tsPlusControl;
float tsPage;
float tsPageShift;
+ float tsWfScroll;
diff --git a/wfmain.ui b/wfmain.ui
index 2307656..0b895b2 100644
--- a/wfmain.ui
+++ b/wfmain.ui
@@ -18,7 +18,7 @@
-
- 3
+ 0
@@ -63,7 +63,11 @@
-
-
+
+
+ QComboBox::AdjustToContents
+
+
-
@@ -73,7 +77,11 @@
-
-
+
+
+ QComboBox::AdjustToContents
+
+
-
@@ -247,6 +255,9 @@
Tuning Step Selection possibly. Or not...
+
+ QComboBox::AdjustToContents
+
-
@@ -277,7 +288,11 @@
-
-
+
+
+ QComboBox::AdjustToContents
+
+
-
@@ -297,7 +312,11 @@
-
-
+
+
+ QComboBox::AdjustToContents
+
+
@@ -1978,7 +1997,7 @@
0
0
810
- 21
+ 22