kopia lustrzana https://gitlab.com/eliggett/wfview
Change mode selection code to use the command queue (as it should have).
Beginnings of automatic sideband options.half-duplex
rodzic
0c27bf7208
commit
e9e042fad8
32
freqmemory.h
32
freqmemory.h
|
@ -2,37 +2,7 @@
|
||||||
#define FREQMEMORY_H
|
#define FREQMEMORY_H
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
#include "wfviewtypes.h"
|
||||||
// 0 1 2 3 4
|
|
||||||
//modes << "LSB" << "USB" << "AM" << "CW" << "RTTY";
|
|
||||||
// 5 6 7 8 9
|
|
||||||
// modes << "FM" << "CW-R" << "RTTY-R" << "LSB-D" << "USB-D";
|
|
||||||
|
|
||||||
enum mode_kind {
|
|
||||||
modeLSB=0x00,
|
|
||||||
modeUSB=0x01,
|
|
||||||
modeAM=0x02,
|
|
||||||
modeCW=0x03,
|
|
||||||
modeRTTY=0x04,
|
|
||||||
modeFM=0x05,
|
|
||||||
modeCW_R=0x07,
|
|
||||||
modeRTTY_R=0x08,
|
|
||||||
modePSK = 0x12,
|
|
||||||
modePSK_R = 0x13,
|
|
||||||
modeLSB_D=0x80,
|
|
||||||
modeUSB_D=0x81,
|
|
||||||
modeDV=0x17,
|
|
||||||
modeDD=0x27,
|
|
||||||
modeWFM,
|
|
||||||
modeS_AMD,
|
|
||||||
modeS_AML,
|
|
||||||
modeS_AMU,
|
|
||||||
modeP25,
|
|
||||||
modedPMR,
|
|
||||||
modeNXDN_VN,
|
|
||||||
modeNXDN_N,
|
|
||||||
modeDCR
|
|
||||||
};
|
|
||||||
|
|
||||||
struct mode_info {
|
struct mode_info {
|
||||||
mode_kind mk;
|
mode_kind mk;
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
#ifndef SIDEBANDCHOOSER_H
|
||||||
|
#define SIDEBANDCHOOSER_H
|
||||||
|
|
||||||
|
#include "wfviewtypes.h"
|
||||||
|
|
||||||
|
class sidebandChooser
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
sidebandChooser();
|
||||||
|
|
||||||
|
static inline mode_kind getMode(freqt f, mode_kind currentMode = modeUSB) {
|
||||||
|
|
||||||
|
if((currentMode == modeLSB) || (currentMode == modeUSB) )
|
||||||
|
{
|
||||||
|
if(f.Hz < 5000000)
|
||||||
|
{
|
||||||
|
return modeLSB;
|
||||||
|
}
|
||||||
|
if( (f.Hz >= 5000000) || (f.Hz < 5600000) )
|
||||||
|
{
|
||||||
|
return modeUSB;
|
||||||
|
}
|
||||||
|
if( (f.Hz >= 5600000) || (f.Hz < 10000000) )
|
||||||
|
{
|
||||||
|
return modeLSB;
|
||||||
|
}
|
||||||
|
|
||||||
|
return modeUSB;
|
||||||
|
} else {
|
||||||
|
return currentMode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // SIDEBANDCHOOSER_H
|
15
wfmain.cpp
15
wfmain.cpp
|
@ -4885,18 +4885,23 @@ void wfmain::on_goFreqBtn_clicked()
|
||||||
if(ok)
|
if(ok)
|
||||||
{
|
{
|
||||||
f.Hz = freqDbl*1E6;
|
f.Hz = freqDbl*1E6;
|
||||||
issueCmd(cmdSetFreq, f);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
KHz = ui->freqMhzLineEdit->text().toInt(&ok);
|
KHz = ui->freqMhzLineEdit->text().toInt(&ok);
|
||||||
if(ok)
|
if(ok)
|
||||||
{
|
{
|
||||||
f.Hz = KHz*1E3;
|
f.Hz = KHz*1E3;
|
||||||
issueCmd(cmdSetFreq, f);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(ok)
|
if(ok)
|
||||||
{
|
{
|
||||||
|
mode_info m;
|
||||||
|
issueCmd(cmdSetFreq, f);
|
||||||
|
m.mk = sidebandChooser::getMode(f, currentMode);
|
||||||
|
qDebug(logSystem()) << "current mode: " << currentMode << "new mode:" << m.mk;
|
||||||
|
if(m.mk != currentMode)
|
||||||
|
issueCmd(cmdSetMode, m);
|
||||||
|
|
||||||
f.MHzDouble = (float)f.Hz / 1E6;
|
f.MHzDouble = (float)f.Hz / 1E6;
|
||||||
freq = f;
|
freq = f;
|
||||||
setUIFreq();
|
setUIFreq();
|
||||||
|
@ -5055,7 +5060,11 @@ void wfmain::changeMode(mode_kind mode)
|
||||||
void wfmain::changeMode(mode_kind mode, bool dataOn)
|
void wfmain::changeMode(mode_kind mode, bool dataOn)
|
||||||
{
|
{
|
||||||
int filter = ui->modeFilterCombo->currentData().toInt();
|
int filter = ui->modeFilterCombo->currentData().toInt();
|
||||||
emit setMode((unsigned char)mode, (unsigned char)filter);
|
mode_info m;
|
||||||
|
m.filter = (unsigned char) filter;
|
||||||
|
m.reg = (unsigned char) mode;
|
||||||
|
issueCmd(cmdSetMode, m);
|
||||||
|
//emit setMode((unsigned char)mode, (unsigned char)filter);
|
||||||
|
|
||||||
currentMode = mode;
|
currentMode = mode;
|
||||||
|
|
||||||
|
|
1
wfmain.h
1
wfmain.h
|
@ -44,6 +44,7 @@
|
||||||
#include "loggingwindow.h"
|
#include "loggingwindow.h"
|
||||||
#include "cluster.h"
|
#include "cluster.h"
|
||||||
#include "audiodevices.h"
|
#include "audiodevices.h"
|
||||||
|
#include "sidebandchooser.h"
|
||||||
|
|
||||||
#include <qcustomplot.h>
|
#include <qcustomplot.h>
|
||||||
#include <qserialportinfo.h>
|
#include <qserialportinfo.h>
|
||||||
|
|
|
@ -237,6 +237,7 @@ HEADERS += wfmain.h \
|
||||||
rigcommander.h \
|
rigcommander.h \
|
||||||
freqmemory.h \
|
freqmemory.h \
|
||||||
rigidentities.h \
|
rigidentities.h \
|
||||||
|
sidebandchooser.h \
|
||||||
udpbase.h \
|
udpbase.h \
|
||||||
udphandler.h \
|
udphandler.h \
|
||||||
udpcivdata.h \
|
udpcivdata.h \
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
#ifndef WFVIEWTYPES_H
|
#ifndef WFVIEWTYPES_H
|
||||||
#define WFVIEWTYPES_H
|
#define WFVIEWTYPES_H
|
||||||
|
|
||||||
|
#include <QString>
|
||||||
|
#include <QtGlobal>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
enum underlay_t { underlayNone, underlayPeakHold, underlayPeakBuffer, underlayAverageBuffer };
|
enum underlay_t { underlayNone, underlayPeakHold, underlayPeakBuffer, underlayAverageBuffer };
|
||||||
|
|
||||||
enum meterKind {
|
enum meterKind {
|
||||||
|
@ -28,6 +32,32 @@ enum spectrumMode {
|
||||||
spectModeUnknown=0xff
|
spectModeUnknown=0xff
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum mode_kind {
|
||||||
|
modeLSB=0x00,
|
||||||
|
modeUSB=0x01,
|
||||||
|
modeAM=0x02,
|
||||||
|
modeCW=0x03,
|
||||||
|
modeRTTY=0x04,
|
||||||
|
modeFM=0x05,
|
||||||
|
modeCW_R=0x07,
|
||||||
|
modeRTTY_R=0x08,
|
||||||
|
modePSK = 0x12,
|
||||||
|
modePSK_R = 0x13,
|
||||||
|
modeLSB_D=0x80,
|
||||||
|
modeUSB_D=0x81,
|
||||||
|
modeDV=0x17,
|
||||||
|
modeDD=0x27,
|
||||||
|
modeWFM,
|
||||||
|
modeS_AMD,
|
||||||
|
modeS_AML,
|
||||||
|
modeS_AMU,
|
||||||
|
modeP25,
|
||||||
|
modedPMR,
|
||||||
|
modeNXDN_VN,
|
||||||
|
modeNXDN_N,
|
||||||
|
modeDCR
|
||||||
|
};
|
||||||
|
|
||||||
struct freqt {
|
struct freqt {
|
||||||
quint64 Hz;
|
quint64 Hz;
|
||||||
double MHzDouble;
|
double MHzDouble;
|
||||||
|
|
Ładowanie…
Reference in New Issue