Merge branch 'master' into QT6.2

half-duplex
Phil Taylor 2021-12-01 10:24:42 +00:00
commit 0d9c7b5e30
10 zmienionych plików z 218 dodań i 91 usunięć

Wyświetl plik

@ -12,7 +12,7 @@ aboutbox::aboutbox(QWidget *parent) :
ui->logoBtn->setIcon(QIcon(":resources/wfview.png"));
ui->logoBtn->setStyleSheet("Text-align:left");
ui->topText->setText("wfview version 1.2d");
ui->topText->setText("wfview version " + QString(WFVIEW_VERSION));
QString head = QString("<html><head></head><body>");
QString copyright = QString("Copyright 2017-2021 Elliott H. Liggett, W6EL. All rights reserved. wfview source code is <a href=\"https://gitlab.com/eliggett/wfview/-/blob/master/LICENSE\">licensed</a> under the GNU GPLv3.");

Wyświetl plik

@ -37,7 +37,12 @@ int main(int argc, char *argv[])
QString currentArg;
const QString helpText = QString("\nUsage: -p --port /dev/port, -h --host remotehostname, -c --civ 0xAddr, -l --logfile filename.log, -s --settings filename.ini, -d --debug\n"); // TODO...
const QString helpText = QString("\nUsage: -p --port /dev/port, -h --host remotehostname, -c --civ 0xAddr, -l --logfile filename.log, -s --settings filename.ini, -d --debug, -v --version\n"); // TODO...
const QString version = QString("wfview version: %1 (Git:%2 on %3 at %4 by %5@%6)\nOperating System: %7 (%8)\nBuild Qt Version %9. Current Qt Version: %10\n")
.arg(QString(WFVIEW_VERSION))
.arg(GITSHORT).arg(__DATE__).arg(__TIME__).arg(UNAME).arg(HOST)
.arg(QSysInfo::prettyProductName()).arg(QSysInfo::buildCpuArchitecture())
.arg(QT_VERSION_STR).arg(qVersion());
for(int c=1; c<argc; c++)
{
@ -88,12 +93,21 @@ int main(int argc, char *argv[])
c += 1;
}
}
else if ((currentArg == "--help"))
else if ((currentArg == "-?") || (currentArg == "--help"))
{
#ifdef Q_OS_WIN
QMessageBox::information(0, "wfview help", helpText);
#else
std::cout << helpText.toStdString();
#endif
return 0;
}
else if ((currentArg == "-v") || (currentArg == "--version"))
{
#ifdef Q_OS_WIN
QMessageBox::information(0, "wfview version", version);
#else
std::cout << version.toStdString();
#endif
return 0;
} else {
@ -117,9 +131,7 @@ int main(int argc, char *argv[])
// Set handler
qInstallMessageHandler(messageHandler);
qInfo(logSystem()) << QString("Starting wfview: build %1 on %2 at %3 by %5@%6").arg(GITSHORT).arg(__DATE__).arg(__TIME__).arg(UNAME).arg(HOST);
qInfo(logSystem()) << QString("Operating System: %1 (%2)").arg(QSysInfo::prettyProductName()).arg(QSysInfo::buildCpuArchitecture());
qInfo(logSystem()) << QString("Build Qt Version %1. Current Qt Version: %2").arg(QT_VERSION_STR).arg(qVersion());
qInfo(logSystem()) << version;
qDebug(logSystem()) << QString("SerialPortCL as set by parser: %1").arg(serialPortCL);
qDebug(logSystem()) << QString("remote host as set by parser: %1").arg(hostCL);
qDebug(logSystem()) << QString("CIV as set by parser: %1").arg(civCL);

Wyświetl plik

@ -1,5 +1,5 @@
QToolTip {
border: 1px solid #76797C;
border: 1px solid #767676;
background-color: #5A7566;
color: white;
padding: 0px; /*remove padding, for fix combobox tooltip.*/
@ -8,7 +8,7 @@ QToolTip {
QWidget {
color: #eff0f1;
background-color: #31363b;
background-color: #313131;
selection-background-color: #3daee9;
selection-color: #eff0f1;
background-clip: border;
@ -34,7 +34,7 @@ QCheckBox {
}
QCheckBox:disabled {
color: #76797C;
color: #767676;
}
QCheckBox::indicator,
@ -105,7 +105,7 @@ QRadioButton {
}
QRadioButton:disabled {
color: #76797C;
color: #767676;
}
QRadioButton::indicator {
@ -149,7 +149,7 @@ QRadioButton::indicator:unchecked:disabled {
}
QMenuBar {
background-color: #31363b;
background-color: #313131;
color: #eff0f1;
}
@ -159,11 +159,11 @@ QMenuBar::item {
QMenuBar::item:selected {
background: transparent;
border: 1px solid #76797C;
border: 1px solid #767676;
}
QMenuBar::item:pressed {
border: 1px solid #76797C;
border: 1px solid #767676;
background-color: #3daee9;
color: #eff0f1;
margin-bottom: -1px;
@ -171,7 +171,7 @@ QMenuBar::item:pressed {
}
QMenu {
border: 1px solid #76797C;
border: 1px solid #767676;
color: #eff0f1;
margin: 2px;
}
@ -248,11 +248,11 @@ QMenu::right-arrow {
QWidget:disabled {
color: #454545;
background-color: #31363b;
background-color: #313131;
}
QAbstractItemView {
alternate-background-color: #31363b;
alternate-background-color: #313131;
color: #eff0f1;
border: 1px solid #3A3939;
border-radius: 2px;
@ -274,7 +274,7 @@ QLineEdit {
background-color: #232629;
padding: 5px;
border-style: solid;
border: 1px solid #76797C;
border: 1px solid #767676;
border-radius: 2px;
color: #eff0f1;
}
@ -284,7 +284,7 @@ QAbstractItemView QLineEdit {
}
QGroupBox {
border: 1px solid #76797C;
border: 1px solid #767676;
border-radius: 2px;
margin-top: 20px;
}
@ -299,7 +299,7 @@ QGroupBox::title {
QAbstractScrollArea {
border-radius: 2px;
border: 1px solid #76797C;
border: 1px solid #767676;
background-color: transparent;
}
@ -426,7 +426,7 @@ QScrollBar::sub-page:vertical {
QTextEdit {
background-color: #232629;
color: #eff0f1;
border: 1px solid #76797C;
border: 1px solid #767676;
}
QPlainTextEdit {
@ -434,14 +434,14 @@ QPlainTextEdit {
;
color: #eff0f1;
border-radius: 2px;
border: 1px solid #76797C;
border: 1px solid #767676;
}
QHeaderView::section {
background-color: #76797C;
background-color: #767676;
color: #eff0f1;
padding: 5px;
border: 1px solid #76797C;
border: 1px solid #767676;
}
QSizeGrip {
@ -451,24 +451,24 @@ QSizeGrip {
}
QMainWindow::separator {
background-color: #31363b;
background-color: #313131;
color: white;
padding-left: 4px;
spacing: 2px;
border: 1px dashed #76797C;
border: 1px dashed #767676;
}
QMainWindow::separator:hover {
background-color: #787876;
color: white;
padding-left: 4px;
border: 1px solid #76797C;
border: 1px solid #767676;
spacing: 2px;
}
QMenu::separator {
height: 1px;
background-color: #76797C;
background-color: #767676;
color: white;
padding-left: 4px;
margin-left: 10px;
@ -477,12 +477,12 @@ QMenu::separator {
QFrame {
border-radius: 2px;
border: 1px solid #76797C;
border: 1px solid #767676;
}
QFrame[frameShape="0"] {
border-radius: 2px;
border: 1px transparent #76797C;
border: 1px transparent #767676;
}
QStackedWidget {
@ -491,7 +491,7 @@ QStackedWidget {
QToolBar {
border: 1px transparent #393838;
background: 1px solid #31363b;
background: 1px solid #313131;
font-weight: bold;
}
@ -512,14 +512,14 @@ QToolBar::separator:vertical {
}
QToolButton#qt_toolbar_ext_button {
background: #58595a
background: #585858
}
QPushButton {
color: #eff0f1;
background-color: #31363b;
background-color: #313131;
border-width: 1px;
border-color: #76797C;
border-color: #767676;
border-style: solid;
padding: 5px;
border-radius: 2px;
@ -527,7 +527,7 @@ QPushButton {
}
QPushButton:disabled {
background-color: #31363b;
background-color: #313131;
border-width: 1px;
border-color: #454545;
border-style: solid;
@ -553,14 +553,14 @@ QPushButton:pressed {
QComboBox {
selection-background-color: #3daee9;
border-style: solid;
border: 1px solid #76797C;
border: 1px solid #767676;
border-radius: 2px;
padding: 5px;
min-width: 75px;
}
QPushButton:checked {
background-color: #76797C;
background-color: #767676;
border-color: #6A6969;
}
@ -585,7 +585,7 @@ QComboBox:on {
QComboBox QAbstractItemView {
background-color: #232629;
border-radius: 2px;
border: 1px solid #76797C;
border: 1px solid #767676;
selection-background-color: #18465d;
}
@ -612,7 +612,7 @@ QComboBox::down-arrow:focus {
QAbstractSpinBox {
padding: 5px;
border: 1px solid #76797C;
border: 1px solid #767676;
background-color: #232629;
color: #eff0f1;
border-radius: 2px;
@ -664,7 +664,7 @@ QTabWidget {
}
QTabWidget::pane {
border: 1px solid #76797C;
border: 1px solid #767676;
padding: 5px;
margin: 0px;
}
@ -702,9 +702,9 @@ QTabBar::close-button:pressed {
QTabBar::tab:top {
color: #eff0f1;
border: 1px solid #76797C;
border: 1px solid #767676;
border-bottom: 1px transparent black;
background-color: #31363b;
background-color: #313131;
padding: 5px;
min-width: 50px;
border-top-left-radius: 2px;
@ -714,7 +714,7 @@ QTabBar::tab:top {
QTabBar::tab:top:selected {
color: #eff0f1;
background-color: #54575B;
border: 1px solid #76797C;
border: 1px solid #767676;
border-bottom: 2px solid #3daee9;
border-top-left-radius: 2px;
border-top-right-radius: 2px;
@ -729,9 +729,9 @@ QTabBar::tab:top:!selected:hover {
QTabBar::tab:bottom {
color: #eff0f1;
border: 1px solid #76797C;
border: 1px solid #767676;
border-top: 1px transparent black;
background-color: #31363b;
background-color: #313131;
padding: 5px;
border-bottom-left-radius: 2px;
border-bottom-right-radius: 2px;
@ -741,7 +741,7 @@ QTabBar::tab:bottom {
QTabBar::tab:bottom:selected {
color: #eff0f1;
background-color: #54575B;
border: 1px solid #76797C;
border: 1px solid #767676;
border-top: 2px solid #3daee9;
border-bottom-left-radius: 2px;
border-bottom-right-radius: 2px;
@ -756,9 +756,9 @@ QTabBar::tab:bottom:!selected:hover {
QTabBar::tab:left {
color: #eff0f1;
border: 1px solid #76797C;
border: 1px solid #767676;
border-left: 1px transparent black;
background-color: #31363b;
background-color: #313131;
padding: 5px;
border-top-right-radius: 2px;
border-bottom-right-radius: 2px;
@ -768,7 +768,7 @@ QTabBar::tab:left {
QTabBar::tab:left:selected {
color: #eff0f1;
background-color: #54575B;
border: 1px solid #76797C;
border: 1px solid #767676;
border-left: 2px solid #3daee9;
border-top-right-radius: 2px;
border-bottom-right-radius: 2px;
@ -783,9 +783,9 @@ QTabBar::tab:left:!selected:hover {
QTabBar::tab:right {
color: #eff0f1;
border: 1px solid #76797C;
border: 1px solid #767676;
border-right: 1px transparent black;
background-color: #31363b;
background-color: #313131;
padding: 5px;
border-top-left-radius: 2px;
border-bottom-left-radius: 2px;
@ -795,7 +795,7 @@ QTabBar::tab:right {
QTabBar::tab:right:selected {
color: #eff0f1;
background-color: #54575B;
border: 1px solid #76797C;
border: 1px solid #767676;
border-right: 2px solid #3daee9;
border-top-left-radius: 2px;
border-bottom-left-radius: 2px;
@ -822,7 +822,7 @@ QTabBar QToolButton::left-arrow:disabled {
}
QDockWidget {
background: #31363b;
background: #313131;
border: 1px solid #403F3F;
titlebar-close-icon: url(:/qss_icons/rc/close.png);
titlebar-normal-icon: url(:/qss_icons/rc/undock.png);
@ -848,7 +848,7 @@ QDockWidget::float-button:pressed {
QTreeView,
QListView {
border: 1px solid #76797C;
border: 1px solid #767676;
background-color: #232629;
}
@ -980,7 +980,7 @@ QSlider::handle:vertical {
QToolButton {
background-color: transparent;
border: 1px transparent #76797C;
border: 1px transparent #767676;
border-radius: 2px;
margin: 3px;
padding: 5px;
@ -990,7 +990,7 @@ QToolButton[popupMode="1"] {
/* only for MenuButtonPopup */
padding-right: 20px;
/* make way for the popup button */
border: 1px #76797C;
border: 1px #767676;
border-radius: 5px;
}
@ -998,7 +998,7 @@ QToolButton[popupMode="2"] {
/* only for InstantPopup */
padding-right: 10px;
/* make way for the popup button */
border: 1px #76797C;
border: 1px #767676;
}
QToolButton:hover,
@ -1030,7 +1030,7 @@ QToolButton::menu-indicator {
/* the subcontrols below are used only in the MenuButtonPopup mode */
QToolButton::menu-button {
border: 1px transparent #76797C;
border: 1px transparent #767676;
border-top-right-radius: 6px;
border-bottom-right-radius: 6px;
/* 16px width + 4px for border = 20px allocated above */
@ -1043,7 +1043,7 @@ QToolButton::menu-arrow {
}
QToolButton::menu-arrow:open {
border: 1px solid #76797C;
border: 1px solid #767676;
}
QPushButton::menu-indicator {
@ -1053,8 +1053,8 @@ QPushButton::menu-indicator {
}
QTableView {
border: 1px solid #76797C;
gridline-color: #31363b;
border: 1px solid #767676;
gridline-color: #313131;
background-color: #232629;
}
@ -1078,7 +1078,7 @@ QListView::item:selected:active {
}
QHeaderView {
background-color: #31363b;
background-color: #313131;
border: 1px transparent;
border-radius: 0px;
margin: 0px;
@ -1086,17 +1086,17 @@ QHeaderView {
}
QHeaderView::section {
background-color: #31363b;
background-color: #313131;
color: #eff0f1;
padding: 5px;
border: 1px solid #76797C;
border: 1px solid #767676;
border-radius: 0px;
text-align: center;
}
QHeaderView::section::vertical::first,
QHeaderView::section::vertical::only-one {
border-top: 1px solid #76797C;
border-top: 1px solid #767676;
}
QHeaderView::section::vertical {
@ -1105,7 +1105,7 @@ QHeaderView::section::vertical {
QHeaderView::section::horizontal::first,
QHeaderView::section::horizontal::only-one {
border-left: 1px solid #76797C;
border-left: 1px solid #767676;
}
QHeaderView::section::horizontal {
@ -1129,8 +1129,8 @@ QHeaderView::up-arrow {
}
QTableCornerButton::section {
background-color: #31363b;
border: 1px transparent #76797C;
background-color: #313131;
border: 1px transparent #767676;
border-radius: 0px;
}
@ -1141,9 +1141,9 @@ QToolBox {
QToolBox::tab {
color: #eff0f1;
background-color: #31363b;
border: 1px solid #76797C;
border-bottom: 1px transparent #31363b;
background-color: #313131;
border: 1px solid #767676;
border-bottom: 1px transparent #313131;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
@ -1151,7 +1151,7 @@ QToolBox::tab {
QToolBox::tab:selected {
/* italicize selected tabs */
font: italic;
background-color: #31363b;
background-color: #313131;
border-color: #3daee9;
}
@ -1161,16 +1161,16 @@ QStatusBar::item {
QFrame[height="3"],
QFrame[width="3"] {
background-color: #76797C;
background-color: #767676;
}
QSplitter::handle {
border: 1px dashed #76797C;
border: 1px dashed #767676;
}
QSplitter::handle:hover {
background-color: #787876;
border: 1px solid #76797C;
border: 1px solid #767676;
}
QSplitter::handle:horizontal {
@ -1182,7 +1182,7 @@ QSplitter::handle:vertical {
}
QProgressBar {
border: 1px solid #76797C;
border: 1px solid #767676;
border-radius: 5px;
text-align: center;
}

Wyświetl plik

@ -22,6 +22,8 @@
rigCommander::rigCommander()
{
rigState.mutex = new QMutex();
QMutexLocker locker(rigState.mutex);
rigState.filter = 0;
rigState.mode = 0;
rigState.ptt = 0;
@ -33,6 +35,7 @@ rigCommander::rigCommander()
rigCommander::~rigCommander()
{
closeComm();
delete rigState.mutex;
}
@ -569,12 +572,16 @@ void rigCommander::setFrequency(unsigned char vfo, freqt freq)
cmdPayload.append(freqPayload);
if (vfo == 0) {
rigState.mutex->lock();
rigState.vfoAFreq = freq;
rigState.mutex->unlock();
cmdPayload.prepend('\x00');
}
else
{
rigState.mutex->lock();
rigState.vfoBFreq = freq;
rigState.mutex->unlock();
cmdPayload.prepend(vfo);
cmdPayload.prepend('\x25');
}
@ -702,6 +709,8 @@ void rigCommander::setMode(mode_info m)
payload.append(m.filter);
prepDataAndSend(payload);
QMutexLocker locker(rigState.mutex);
rigState.mode = m.reg;
rigState.filter = m.filter;
}
@ -733,6 +742,7 @@ void rigCommander::setMode(unsigned char mode, unsigned char modeFilter)
}
prepDataAndSend(payload);
QMutexLocker locker(rigState.mutex);
rigState.mode = mode;
rigState.filter = modeFilter;
@ -753,6 +763,7 @@ void rigCommander::setDataMode(bool dataOn, unsigned char filter)
payload.append("\x00\x00", 2); // data mode off, bandwidth not defined per ICD.
}
prepDataAndSend(payload);
QMutexLocker locker(rigState.mutex);
rigState.datamode = dataOn;
}
@ -1020,6 +1031,7 @@ void rigCommander::setPTT(bool pttOn)
QByteArray payload("\x1C\x00", 2);
payload.append((char)pttOn);
prepDataAndSend(payload);
QMutexLocker locker(rigState.mutex);
rigState.ptt = pttOn;
}
}
@ -1241,16 +1253,22 @@ void rigCommander::parseCommand()
break;
case '\x0F':
emit haveDuplexMode((duplexMode)(unsigned char)payloadIn[1]);
rigState.mutex->lock();
rigState.duplex = (duplexMode)(unsigned char)payloadIn[1];
rigState.mutex->unlock();
break;
case '\x11':
emit haveAttenuator((unsigned char)payloadIn.at(1));
rigState.mutex->lock();
rigState.attenuator = (unsigned char)payloadIn.at(1);
rigState.mutex->unlock();
break;
case '\x12':
emit haveAntenna((unsigned char)payloadIn.at(1), (bool)payloadIn.at(2));
rigState.mutex->lock();
rigState.antenna = (unsigned char)payloadIn.at(1);
rigState.rxAntenna = (bool)payloadIn.at(2);
rigState.mutex->unlock();
break;
case '\x14':
// read levels
@ -1346,7 +1364,6 @@ void rigCommander::parseLevels()
// "INDEX: 00 01 02 03 04 "
// "DATA: 14 02 00 78 fd "
if(payloadIn[0] == '\x14')
{
switch(payloadIn[1])
@ -1355,18 +1372,24 @@ void rigCommander::parseLevels()
// AF level - ignore if LAN connection.
if (udp == Q_NULLPTR) {
emit haveAfGain(level);
rigState.mutex->lock();
rigState.afGain = level;
rigState.mutex->unlock();
}
break;
case '\x02':
// RX RF Gain
emit haveRfGain(level);
rigState.mutex->lock();
rigState.rfGain = level;
rigState.mutex->unlock();
break;
case '\x03':
// Squelch level
emit haveSql(level);
rigState.mutex->lock();
rigState.squelch = level;
rigState.mutex->unlock();
break;
case '\x07':
// Twin BPF Inner, or, IF-Shift level
@ -1385,12 +1408,16 @@ void rigCommander::parseLevels()
case '\x0A':
// TX RF level
emit haveTxPower(level);
rigState.mutex->lock();
rigState.txPower = level;
rigState.mutex->unlock();
break;
case '\x0B':
// Mic Gain
emit haveMicGain(level);
rigState.mutex->lock();
rigState.micGain = level;
rigState.mutex->unlock();
break;
case '\x0C':
// CW Keying Speed - ignore for now
@ -1401,7 +1428,9 @@ void rigCommander::parseLevels()
case '\x0E':
// compressor level
emit haveCompLevel(level);
rigState.mutex->lock();
rigState.compLevel = level;
rigState.mutex->unlock();
break;
case '\x12':
// NB level - ignore for now
@ -1409,17 +1438,23 @@ void rigCommander::parseLevels()
case '\x15':
// monitor level
emit haveMonitorLevel(level);
rigState.mutex->lock();
rigState.monitorLevel = level;
rigState.mutex->unlock();
break;
case '\x16':
// VOX gain
emit haveVoxGain(level);
rigState.mutex->lock();
rigState.voxGain = level;
rigState.mutex->unlock();
break;
case '\x17':
// anti-VOX gain
emit haveAntiVoxGain(level);
rigState.mutex->lock();
rigState.antiVoxGain = level;
rigState.mutex->unlock();
break;
default:
@ -1437,42 +1472,58 @@ void rigCommander::parseLevels()
case '\x02':
// S-Meter
emit haveMeter(meterS, level);
rigState.mutex->lock();
rigState.sMeter = level;
rigState.mutex->unlock();
break;
case '\x04':
// Center (IC-R8600)
emit haveMeter(meterCenter, level);
rigState.mutex->lock();
rigState.sMeter = level;
rigState.mutex->unlock();
break;
case '\x11':
// RF-Power meter
emit haveMeter(meterPower, level);
rigState.mutex->lock();
rigState.powerMeter = level;
rigState.mutex->unlock();
break;
case '\x12':
// SWR
emit haveMeter(meterSWR, level);
rigState.mutex->lock();
rigState.swrMeter = level;
rigState.mutex->unlock();
break;
case '\x13':
// ALC
emit haveMeter(meterALC, level);
rigState.mutex->lock();
rigState.alcMeter = level;
rigState.mutex->unlock();
break;
case '\x14':
// COMP dB reduction
emit haveMeter(meterComp, level);
rigState.mutex->lock();
rigState.compMeter = level;
rigState.mutex->unlock();
break;
case '\x15':
// VD (12V)
emit haveMeter(meterVoltage, level);
rigState.mutex->lock();
rigState.voltageMeter = level;
rigState.mutex->unlock();
break;
case '\x16':
// ID
emit haveMeter(meterCurrent, level);
rigState.mutex->lock();
rigState.currentMeter = level;
rigState.mutex->unlock();
break;
default:
@ -2379,6 +2430,7 @@ void rigCommander::parsePTT()
// PTT on
emit havePTTStatus(true);
}
QMutexLocker locker(rigState.mutex);
rigState.ptt = (bool)payloadIn[2];
}
@ -2398,6 +2450,7 @@ void rigCommander::parseRegisters1A()
// "INDEX: 00 01 02 03 04 "
// "DATA: 1a 06 01 03 fd " (data mode enabled, filter width 3 selected)
QMutexLocker locker(rigState.mutex);
switch(payloadIn[01])
{
@ -2440,24 +2493,32 @@ void rigCommander::parseRegister1B()
// "Repeater tone"
tone = decodeTone(payloadIn);
emit haveTone(tone);
rigState.mutex->lock();
rigState.ctcss = tone;
rigState.mutex->unlock();
break;
case '\x01':
// "TSQL tone"
tone = decodeTone(payloadIn);
emit haveTSQL(tone);
rigState.mutex->lock();
rigState.tsql = tone;
rigState.mutex->unlock();
break;
case '\x02':
// DTCS (DCS)
tone = decodeTone(payloadIn, tinv, rinv);
emit haveDTCS(tone, tinv, rinv);
rigState.mutex->lock();
rigState.dtcs = tone;
rigState.mutex->unlock();
break;
case '\x07':
// "CSQL code (DV mode)"
tone = decodeTone(payloadIn);
rigState.mutex->lock();
rigState.csql = tone;
rigState.mutex->unlock();
break;
default:
break;
@ -2469,6 +2530,7 @@ void rigCommander::parseRegister16()
//"INDEX: 00 01 02 03 "
//"DATA: 16 5d 00 fd "
// ^-- mode info here
switch(payloadIn.at(1))
{
case '\x5d':
@ -2477,7 +2539,9 @@ void rigCommander::parseRegister16()
case '\x02':
// Preamp
emit havePreamp((unsigned char)payloadIn.at(2));
rigState.mutex->lock();
rigState.preamp = (unsigned char)payloadIn.at(2);
rigState.mutex->unlock();
break;
default:
break;
@ -3790,7 +3854,10 @@ void rigCommander::parseFrequency()
freq.MHzDouble = frequencyMhz;
rigState.mutex->lock();
rigState.vfoAFreq = freq;
rigState.mutex->unlock();
emit haveFrequency(freq);
}
@ -3868,8 +3935,10 @@ void rigCommander::parseMode()
} else {
filter = 0;
}
rigState.mutex->lock();
rigState.mode = (unsigned char)payloadIn[01];
rigState.filter = filter;
rigState.mutex->unlock();
emit haveMode((unsigned char)payloadIn[01], filter);
}

Wyświetl plik

@ -2,6 +2,8 @@
#define RIGCOMMANDER_H
#include <QObject>
#include <QMutex>
#include <QMutexLocker>
#include <QDebug>
#include "commhandler.h"
@ -60,6 +62,7 @@ struct timekind {
};
struct rigStateStruct {
QMutex *mutex;
freqt vfoAFreq;
freqt vfoBFreq;
unsigned char currentVfo;

Wyświetl plik

@ -175,7 +175,9 @@ void rigCtlClient::socketReadyRead()
QStringList command = commandBuffer.mid(num).split(" ");
if (command[0] == '\xf0' || command[0] == "chk_vfo")
QMutexLocker locker(rigState->mutex);
if (command[0] == 0xf0 || command[0] == "chk_vfo")
{
QString resp;
if (longReply) {

Wyświetl plik

@ -47,7 +47,7 @@ void transceiverAdjustments::on_IFShiftSlider_valueChanged(int value)
unsigned char outer = ui->TPBFOuterSlider->value();
int shift = value - previousIFShift;
inner = qMax( 0, qMin(255,int (inner + shift)) );
outer =qMax( 0, qMin(255,int (outer + shift)) );
outer = qMax( 0, qMin(255,int (outer + shift)) );
ui->TPBFInnerSlider->setValue(inner);
ui->TPBFOuterSlider->setValue(outer);

Wyświetl plik

@ -2257,14 +2257,22 @@ void wfmain:: getInitialRigState()
issueDelayedCommand(cmdGetMode);
// From left to right in the UI:
issueDelayedCommand(cmdGetDataMode);
issueDelayedCommand(cmdGetModInput);
issueDelayedCommand(cmdGetModDataInput);
if (rigCaps.hasTransmit)
{
issueDelayedCommand(cmdGetDataMode);
issueDelayedCommand(cmdGetModInput);
issueDelayedCommand(cmdGetModDataInput);
}
issueDelayedCommand(cmdGetRxGain);
issueDelayedCommand(cmdGetAfGain);
issueDelayedCommand(cmdGetSql);
issueDelayedCommand(cmdGetTxPower);
issueDelayedCommand(cmdGetCurrentModLevel); // level for currently selected mod sources
if (rigCaps.hasTransmit)
{
issueDelayedCommand(cmdGetTxPower);
issueDelayedCommand(cmdGetCurrentModLevel); // level for currently selected mod sources
}
issueDelayedCommand(cmdGetSpectrumRefLevel);
issueDelayedCommand(cmdGetDuplexMode);
@ -2273,8 +2281,12 @@ void wfmain:: getInitialRigState()
issueDelayedCommand(cmdDispEnable);
issueDelayedCommand(cmdSpecOn);
}
issueDelayedCommand(cmdGetModInput);
issueDelayedCommand(cmdGetModDataInput);
if (rigCaps.hasTransmit)
{
issueDelayedCommand(cmdGetModInput);
issueDelayedCommand(cmdGetModDataInput);
}
if(rigCaps.hasCTCSS)
{
@ -3547,8 +3559,10 @@ void wfmain::receiveMode(unsigned char mode, unsigned char filter)
// Note: we need to know if the DATA mode is active to reach mode-D
// some kind of queued query:
if(rigCaps.hasDataModes)
if (rigCaps.hasDataModes && rigCaps.hasTransmit)
{
issueDelayedCommand(cmdGetDataMode);
}
}
void wfmain::receiveDataModeStatus(bool dataEnabled)
@ -5525,8 +5539,8 @@ void wfmain::on_debugBtn_clicked()
{
qInfo(logSystem()) << "Debug button pressed.";
// issueDelayedCommand(cmdGetRigID);
emit getRigCIV();
//trxadj->show();
//emit getRigCIV();
trxadj->show();
//setRadioTimeDatePrep();
//wf->setInteraction(QCP::iRangeZoom, true);
//wf->setInteraction(QCP::iRangeDrag, true);

Wyświetl plik

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>946</width>
<height>582</height>
<width>948</width>
<height>554</height>
</rect>
</property>
<property name="windowTitle">
@ -2684,6 +2684,12 @@
</item>
<item>
<widget class="QComboBox" name="audioOutputCombo">
<property name="maximumSize">
<size>
<width>300</width>
<height>16777215</height>
</size>
</property>
<property name="accessibleName">
<string>Audio Output Selector</string>
</property>
@ -2698,11 +2704,30 @@
</item>
<item>
<widget class="QComboBox" name="audioInputCombo">
<property name="maximumSize">
<size>
<width>300</width>
<height>16777215</height>
</size>
</property>
<property name="accessibleName">
<string>Audio Input Selector</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
@ -2840,7 +2865,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>946</width>
<width>948</width>
<height>22</height>
</rect>
</property>

Wyświetl plik

@ -11,6 +11,8 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
TARGET = wfview
TEMPLATE = app
DEFINES += WFVIEW_VERSION=\\\"1.2d\\\"
CONFIG(debug, release|debug) {
# For Debug builds only:
QMAKE_CXXFLAGS += -faligned-new