kopia lustrzana https://gitlab.com/eliggett/wfview
Frequency lock works now.
rodzic
24d802597a
commit
5da631ab0a
113
wfmain.cpp
113
wfmain.cpp
|
@ -168,6 +168,7 @@ wfmain::wfmain(const QString serialPortCL, const QString hostCL, QWidget *parent
|
|||
setDefaultColors(); // set of UI colors with defaults populated
|
||||
setDefPrefs(); // other default options
|
||||
loadSettings(); // Look for saved preferences
|
||||
setTuningSteps(); // TODO: Combine into preferences
|
||||
|
||||
// if setting for serial port is "auto" then...
|
||||
// if(prefs.serialPortRadio == QString("auto"))
|
||||
|
@ -1170,50 +1171,106 @@ void wfmain::shortcutSlash()
|
|||
on_modeSelectCombo_activated( ui->modeSelectCombo->currentIndex() );
|
||||
}
|
||||
|
||||
void wfmain::setTuningSteps()
|
||||
{
|
||||
// TODO: interact with preferences, tuning step drop down box, and current operating mode
|
||||
// Units are MHz:
|
||||
tsPlusControl = 0.010;
|
||||
tsPlus = 0.001;
|
||||
tsPlusShift = 0.0001;
|
||||
tsPage = 1.0;
|
||||
tsPageShift = 0.5; // TODO, unbind this keystroke from the dial
|
||||
}
|
||||
|
||||
double wfmain::roundFrequency(double frequency)
|
||||
{
|
||||
return round(frequency*100000) / 100000.0;
|
||||
}
|
||||
|
||||
void wfmain::shortcutMinus()
|
||||
{
|
||||
ui->freqDial->setValue( ui->freqDial->value() - ui->freqDial->singleStep() );
|
||||
if(freqLock) return;
|
||||
|
||||
freqMhz = roundFrequency(freqMhz - tsPlus);
|
||||
knobFreqMhz = freqMhz;
|
||||
emit setFrequency(freqMhz);
|
||||
issueDelayedCommand(cmdGetFreq);
|
||||
//ui->freqDial->setValue( ui->freqDial->value() - ui->freqDial->singleStep() );
|
||||
}
|
||||
|
||||
void wfmain::shortcutPlus()
|
||||
{
|
||||
ui->freqDial->setValue( ui->freqDial->value() + ui->freqDial->singleStep() );
|
||||
if(freqLock) return;
|
||||
|
||||
knobFreqMhz = roundFrequency(freqMhz + tsPlus);
|
||||
freqMhz = knobFreqMhz;
|
||||
emit setFrequency(freqMhz);
|
||||
issueDelayedCommand(cmdGetFreq);
|
||||
//ui->freqDial->setValue( ui->freqDial->value() + ui->freqDial->singleStep() );
|
||||
}
|
||||
|
||||
void wfmain::shortcutShiftMinus()
|
||||
{
|
||||
ui->freqDial->setValue( ui->freqDial->value() - ui->freqDial->pageStep() );
|
||||
if(freqLock) return;
|
||||
|
||||
freqMhz= roundFrequency(freqMhz-tsPlusShift);
|
||||
knobFreqMhz = freqMhz;
|
||||
emit setFrequency(freqMhz);
|
||||
issueDelayedCommand(cmdGetFreq);
|
||||
//ui->freqDial->setValue( ui->freqDial->value() - ui->freqDial->pageStep() );
|
||||
}
|
||||
|
||||
void wfmain::shortcutShiftPlus()
|
||||
{
|
||||
ui->freqDial->setValue( ui->freqDial->value() + ui->freqDial->pageStep() );
|
||||
if(freqLock) return;
|
||||
|
||||
freqMhz= roundFrequency(freqMhz+tsPlusShift);
|
||||
knobFreqMhz = freqMhz;
|
||||
emit setFrequency(freqMhz);
|
||||
issueDelayedCommand(cmdGetFreq);
|
||||
//ui->freqDial->setValue( ui->freqDial->value() + ui->freqDial->pageStep() );
|
||||
}
|
||||
|
||||
void wfmain::shortcutControlMinus()
|
||||
{
|
||||
ui->freqDial->setValue( ui->freqDial->value() - ui->freqDial->pageStep() );
|
||||
if(freqLock) return;
|
||||
|
||||
freqMhz= roundFrequency(freqMhz-tsPlusControl);
|
||||
knobFreqMhz = freqMhz;
|
||||
emit setFrequency(freqMhz);
|
||||
issueDelayedCommand(cmdGetFreq);
|
||||
//ui->freqDial->setValue( ui->freqDial->value() - ui->freqDial->pageStep() );
|
||||
}
|
||||
|
||||
void wfmain::shortcutControlPlus()
|
||||
{
|
||||
ui->freqDial->setValue( ui->freqDial->value() + ui->freqDial->pageStep() );
|
||||
if(freqLock) return;
|
||||
|
||||
freqMhz= roundFrequency(freqMhz+tsPlusControl);
|
||||
knobFreqMhz = freqMhz;
|
||||
emit setFrequency(freqMhz);
|
||||
issueDelayedCommand(cmdGetFreq);
|
||||
//ui->freqDial->setValue( ui->freqDial->value() + ui->freqDial->pageStep() );
|
||||
}
|
||||
|
||||
void wfmain::shortcutPageUp()
|
||||
{
|
||||
emit setFrequency(this->freqMhz + 1.0);
|
||||
cmdOutQue.append(cmdGetFreq);
|
||||
//cmdOutQue.append(cmdGetMode); // maybe not really needed.
|
||||
delayedCommand->start();
|
||||
if(freqLock) return;
|
||||
|
||||
freqMhz = roundFrequency(freqMhz + tsPage);
|
||||
knobFreqMhz = freqMhz;
|
||||
emit setFrequency(freqMhz);
|
||||
issueDelayedCommand(cmdGetFreq);
|
||||
}
|
||||
|
||||
void wfmain::shortcutPageDown()
|
||||
{
|
||||
emit setFrequency(this->freqMhz - 1.0);
|
||||
cmdOutQue.append(cmdGetFreq);
|
||||
//cmdOutQue.append(cmdGetMode); // maybe not really needed.
|
||||
delayedCommand->start();
|
||||
if(freqLock) return;
|
||||
|
||||
freqMhz = roundFrequency(freqMhz - tsPage);
|
||||
knobFreqMhz = freqMhz;
|
||||
emit setFrequency(freqMhz);
|
||||
issueDelayedCommand(cmdGetFreq);
|
||||
}
|
||||
|
||||
void wfmain::shortcutF()
|
||||
|
@ -2279,25 +2336,29 @@ void wfmain::on_modeSelectCombo_activated(int index)
|
|||
}
|
||||
}
|
||||
|
||||
//void wfmain::on_freqDial_actionTriggered(int action)
|
||||
//{
|
||||
//qDebug() << "Action: " << action; // "7" == changed?
|
||||
// TODO: remove this
|
||||
//}
|
||||
|
||||
void wfmain::on_freqDial_valueChanged(int value)
|
||||
{
|
||||
// qDebug() << "Old value: " << oldFreqDialVal << " New value: " << value ;
|
||||
int maxVal = ui->freqDial->maximum();
|
||||
double stepSize = 0.000100; // 100 Hz steps
|
||||
double newFreqMhz = 0;
|
||||
volatile int delta = 0;
|
||||
int maxVal = ui->freqDial->maximum();
|
||||
|
||||
int directPath = 0;
|
||||
int crossingPath = 0;
|
||||
|
||||
|
||||
int distToMaxNew = 0;
|
||||
int distToMaxOld = 0;
|
||||
|
||||
if(freqLock)
|
||||
{
|
||||
ui->freqDial->blockSignals(true);
|
||||
ui->freqDial->setValue(oldFreqDialVal);
|
||||
ui->freqDial->blockSignals(false);
|
||||
return;
|
||||
}
|
||||
|
||||
// qDebug() << "Old value: " << oldFreqDialVal << " New value: " << value ;
|
||||
|
||||
|
||||
if(value == 0)
|
||||
{
|
||||
|
@ -2361,6 +2422,7 @@ void wfmain::on_freqDial_valueChanged(int value)
|
|||
|
||||
ui->freqLabel->setText(QString("%1").arg(knobFreqMhz, 0, 'f'));
|
||||
|
||||
this->freqMhz = knobFreqMhz;
|
||||
emit setFrequency(newFreqMhz);
|
||||
//emit getFrequency();
|
||||
|
||||
|
@ -3245,6 +3307,11 @@ void wfmain::processChangingCurrentModLevel(unsigned char level)
|
|||
emit setModLevel(currentIn, level);
|
||||
}
|
||||
|
||||
void wfmain::on_tuneLockChk_clicked(bool checked)
|
||||
{
|
||||
freqLock = checked;
|
||||
}
|
||||
|
||||
// --- DEBUG FUNCTION ---
|
||||
void wfmain::on_debugBtn_clicked()
|
||||
{
|
||||
|
|
15
wfmain.h
15
wfmain.h
|
@ -373,6 +373,8 @@ private slots:
|
|||
|
||||
void on_modInputDataCombo_activated(int index);
|
||||
|
||||
void on_tuneLockChk_clicked(bool checked);
|
||||
|
||||
private:
|
||||
Ui::wfmain *ui;
|
||||
QSettings settings;
|
||||
|
@ -532,6 +534,8 @@ private:
|
|||
void setDefaultColors(); // populate with default values
|
||||
void useColors(); // set the plot up
|
||||
void setDefPrefs(); // populate default values to default prefs
|
||||
void setTuningSteps();
|
||||
double roundFrequency(double frequency);
|
||||
|
||||
void changeTxBtn();
|
||||
void issueDelayedCommand(cmds cmd);
|
||||
|
@ -583,6 +587,17 @@ private:
|
|||
char bandStkBand;
|
||||
char bandStkRegCode;
|
||||
|
||||
bool freqLock;
|
||||
|
||||
float tsPlus;
|
||||
float tsPlusShift;
|
||||
float tsPlusControl;
|
||||
float tsPage;
|
||||
float tsPageShift;
|
||||
|
||||
|
||||
|
||||
|
||||
SERVERCONFIG serverConfig;
|
||||
|
||||
};
|
||||
|
|
Ładowanie…
Reference in New Issue