Porównaj commity

...

20 Commity

Autor SHA1 Wiadomość Data
Elliott Liggett 37839556bd Formatting 2024-02-11 21:14:21 -08:00
Elliott Liggett d8ef00291b Got repeater setup working but still more to go with tonesql. 2024-02-11 21:13:20 -08:00
Phil Taylor 6525818640 Quick fix for RTTY width 2024-02-11 18:00:23 +00:00
Phil Taylor a433e2fa09 Fix for the .ini fix! 2024-02-11 17:26:33 +00:00
Phil Taylor 1c6db285e0 Merge branch 'creator-widgets' of https://gitlab.com/eliggett/wfview into creator-widgets 2024-02-11 09:29:41 +00:00
Phil Taylor 38713e21a2 Force UTF-8 codec for .ini files 2024-02-11 09:29:30 +00:00
Elliott Liggett a35155d418 FLoating point scroll wheel support added. 2024-02-10 13:44:23 -08:00
Elliott Liggett a1ef2a99d3 Removed some old code 2024-02-10 13:07:03 -08:00
Elliott Liggett 727daf6f07 Meters on by default, sort of.
On but set to none.
2024-02-10 12:58:16 -08:00
Elliott Liggett e99e3caa09 Meter combo box goes away if outside click. 2024-02-10 12:40:17 -08:00
Elliott Liggett c41d697ab7 Disable duplicate meters correctly on startup. 2024-02-10 12:24:38 -08:00
Elliott Liggett 64929b549a Merge branch 'creator-widgets' of gitlab.com:eliggett/wfview into creator-widgets 2024-02-10 12:02:07 -08:00
Elliott Liggett 55819d3418 ATU status supression 2024-02-10 12:02:02 -08:00
Phil Taylor 33dfb716c5 Fixes for multi VFO 2024-02-10 19:54:39 +00:00
Phil Taylor 8b761e4c50 Merge branch 'creator-widgets' of https://gitlab.com/eliggett/wfview into creator-widgets 2024-02-10 12:11:33 +00:00
Phil Taylor bfe60a7040 Fix PBT in CW mode 2024-02-10 12:11:10 +00:00
Roeland Jansen 9551f44147 added unit file, thanks to Mick VK3ADD, ref https://gitlab.com/eliggett/wfview/-/issues/96 2024-02-10 12:41:32 +01:00
Phil Taylor 60dbcb6f04 Fix bug where second VFO commands were being ignored 2024-02-10 10:37:35 +00:00
Elliott Liggett 84915024c5 Merge branch 'desktop-files' into 'master'
Add AppStream metainfo file, standard size icon

Thank you, AsciiWolf, for helping us with flatpak (and flathub). 

See merge request eliggett/wfview!19
2024-02-10 09:49:37 +00:00
Phil Taylor f0c7bfff92 Add periodic commands to rigfile 2024-02-09 17:08:04 +00:00
42 zmienionych plików z 2365 dodań i 1220 usunięć

Wyświetl plik

@ -120,7 +120,7 @@ void cachingQueue::add(queuePriority prio ,queueItem item)
if (item.command != funcNone)
{
QMutexLocker locker(&mutex);
if (!item.recurring || isRecurring(item.command) != prio)
if (!item.recurring || isRecurring(item.command,item.vfo) != prio)
{
if (item.recurring && prio == queuePriority::priorityImmediate) {
qWarning() << "Warning, cannot add recurring command with immediate priority!" << funcString[item.command];

Wyświetl plik

@ -22,9 +22,7 @@ enum queuePriority {
priorityNone=0, priorityImmediate=1, priorityHighest=2, priorityHigh=3, priorityMediumHigh=5, priorityMedium=7, priorityMediumLow=11, priorityLow=19, priorityLowest=23
};
enum queueItemType {
queueCommandNone,queueCommandGet, queueCommandSet, queueMessage
};
inline QMap<QString,int> priorityMap = {{"None",0},{"Immediate",1},{"Highest",2},{"High",3},{"Medium High",5},{"Medium",7},{"Medium Low",11},{"Low",19},{"Lowest",23}};
// Command with no param is a get by default
struct queueItem {
@ -124,7 +122,6 @@ public:
rigCapabilities* getRigCaps() { return rigCaps; }
};
Q_DECLARE_METATYPE(queueItemType)
Q_DECLARE_METATYPE(queueItem)
Q_DECLARE_METATYPE(cacheItem)
#endif // CACHINGQUEUE_H

Wyświetl plik

@ -536,8 +536,29 @@ void freqCtrl::wheelEvent(QWheelEvent *event)
QPointF pt = event->position();
#endif
int delta = m_InvertScrolling ? -event->angleDelta().y() : event->angleDelta().y();
int numDegrees = delta / 8;
int numSteps = numDegrees / 15;
qreal numDegrees = delta / 8;
qreal offset = numDegrees / 15;
qreal stepsToScroll = QApplication::wheelScrollLines() * offset;
if( (scrollWheelOffsetAccumulated > 0) && (offset > 0) ) {
scrollWheelOffsetAccumulated += stepsToScroll;
} else if ((scrollWheelOffsetAccumulated < 0) && (offset < 0)) {
scrollWheelOffsetAccumulated += stepsToScroll;
} else {
// Changed direction, zap the old accumulation:
scrollWheelOffsetAccumulated = stepsToScroll;
//qInfo() << "Scroll changed direction";
}
int numSteps = int(scrollWheelOffsetAccumulated);
if(!numSteps) {
// we have not accumulated enough for a complete step.
// come back later.
return;
}
for (int i = m_DigStart; i < m_NumDigits; i++)
{
@ -549,6 +570,7 @@ void freqCtrl::wheelEvent(QWheelEvent *event)
decFreq();
}
}
scrollWheelOffsetAccumulated = 0;
}
void freqCtrl::keyPressEvent(QKeyEvent *event)

Wyświetl plik

@ -9,6 +9,7 @@
#include <QFrame>
#include <QImage>
#include <QtGui>
#include <QApplication>
enum FctlUnit {
FCTL_UNIT_NONE, // Freq displayed without unit: 14.236.000
@ -110,6 +111,10 @@ private:
int m_DecPos;
int m_NumSeps;
int scrollYperClick = 24;
int scrollXperClick = 24;
qreal scrollWheelOffsetAccumulated=0;
qint64 m_MinStep;
qint64 m_freq;
qint64 m_Oldfreq;

Wyświetl plik

@ -17,3 +17,4 @@ Q_LOGGING_CATEGORY(logUsbControl, "usbcontrol")
Q_LOGGING_CATEGORY(logAudioConverter, "audioconverter")
Q_LOGGING_CATEGORY(logCluster, "cluster")
Q_LOGGING_CATEGORY(logTCIServer, "tci.server")
Q_LOGGING_CATEGORY(logRptr, "repeater")

Wyświetl plik

@ -20,6 +20,7 @@ Q_DECLARE_LOGGING_CATEGORY(logUsbControl)
Q_DECLARE_LOGGING_CATEGORY(logAudioConverter)
Q_DECLARE_LOGGING_CATEGORY(logCluster)
Q_DECLARE_LOGGING_CATEGORY(logTCIServer)
Q_DECLARE_LOGGING_CATEGORY(logRptr)
#if defined(Q_OS_WIN) && !defined(__PRETTY_FUNCTION__)

Wyświetl plik

@ -63,9 +63,9 @@ meter::meter(QWidget *parent) : QWidget(parent)
connect(combo, SIGNAL(activated(int)), this, SLOT(acceptComboItem(int)));
//connect(combo, SIGNAL(currentIndexChanged(int)), this, SLOT(acceptComboItem(int)));
this->setToolTip("");
combo->hide();
this->installEventFilter(this);
}
void meter::setCompReverse(bool reverse) {
@ -125,12 +125,23 @@ void meter::clearMeter()
update();
}
void meter::setMeterType(meter_t type)
void meter::setMeterType(meter_t m_type_req)
{
if(type == meterType)
if(m_type_req == meterType)
return;
meterType = type;
if( (m_type_req == meterS) || (m_type_req == meterPower) ) {
this->setToolTip("");
} else {
this->setToolTip("Double-click to select meter type.");
}
int m_index = combo->findData(m_type_req);
combo->blockSignals(true);
combo->setCurrentIndex(m_index);
combo->blockSignals(false);
meterType = m_type_req;
// clear average and peak vectors:
this->clearMeter();
}
@ -179,13 +190,26 @@ void meter::handleDoubleClick() {
}
bool meter::eventFilter(QObject *object, QEvent *event) {
if( (freezeDrawing) && (event->type() == QEvent::MouseButtonPress) ) {
combo->hide();
freezeDrawing = false;
return true;
}
if( (freezeDrawing) && (event->type() == QEvent::MouseButtonDblClick) ) {
combo->hide();
freezeDrawing = false;
return true;
}
if(event->type() == QEvent::MouseButtonDblClick) {
qDebug() << "Mouse double click event in meter widget";
if( !(meterType == meterS || meterType == meterPower)) {
handleDoubleClick();
}
return true;
}
(void)object;
return false;
}
@ -253,6 +277,8 @@ void meter::paintEvent(QPaintEvent *)
}
break;
case meterNone:
label = "Double-click to set meter";
drawLabel(&painter);
return;
break;
case meterAudio:

Wyświetl plik

@ -378,6 +378,10 @@ void repeaterSetup::handleDTCS(quint16 dcode, bool tinv, bool rinv)
void repeaterSetup::handleUpdateCurrentMainFrequency(freqt mainfreq)
{
if(mainfreq.VFO == inactiveVFO)
return;
haveReceivedFrequency = true;
if(amTransmitting)
return;
@ -684,6 +688,10 @@ void repeaterSetup::on_splitPlusButton_clicked()
quint64 txfreqhz;
freqt f;
QString txString;
if(!haveReceivedFrequency) {
qWarning(logRptr()) << "Cannot compute offset without first receiving a frequency.";
return;
}
if(hzOffset)
{
txfreqhz = currentMainFrequency.Hz + hzOffset;
@ -693,8 +701,16 @@ void repeaterSetup::on_splitPlusButton_clicked()
txString = QString::number(f.Hz / double(1E6), 'f', 6);
ui->splitTransmitFreqEdit->setText(txString);
usedPlusSplit = true;
} else {
qWarning(logRptr()) << "Cannot set split using supplied offset value.";
return;
}
if(ui->splitEnableChk->isChecked() || ui->quickSplitChk->isChecked()) {
emit setTransmitFrequency(f);
emit setTransmitMode(modeTransmitVFO);
} else {
qWarning(logRptr()) << "Not setting transmit frequency until split mode is enabled.";
}
}
@ -704,6 +720,10 @@ void repeaterSetup::on_splitMinusBtn_clicked()
quint64 txfreqhz;
freqt f;
QString txString;
if(!haveReceivedFrequency) {
qWarning(logRptr()) << "Cannot compute offset without first receiving a frequency.";
return;
}
if(hzOffset)
{
txfreqhz = currentMainFrequency.Hz - hzOffset;
@ -713,13 +733,26 @@ void repeaterSetup::on_splitMinusBtn_clicked()
txString = QString::number(f.Hz / double(1E6), 'f', 6);
ui->splitTransmitFreqEdit->setText(txString);
usedPlusSplit = false;
} else {
qWarning(logRptr()) << "Cannot set split using supplied offset value.";
return;
}
if(ui->splitEnableChk->isChecked() || ui->quickSplitChk->isChecked()) {
emit setTransmitFrequency(f);
emit setTransmitMode(modeTransmitVFO);
} else {
qWarning(logRptr()) << "Not setting transmit frequency until split mode is enabled.";
return;
}
}
void repeaterSetup::on_splitTxFreqSetBtn_clicked()
{
if(!haveReceivedFrequency) {
qWarning(logRptr()) << "Cannot compute offset without first receiving a frequency.";
return;
}
quint64 fHz = getFreqHzFromMHzString(ui->splitTransmitFreqEdit->text());
freqt f;
if(fHz)

Wyświetl plik

@ -6,6 +6,7 @@
#include "repeaterattributes.h"
#include "rigidentities.h"
#include "logcategories.h"
namespace Ui {
class repeaterSetup;
@ -103,6 +104,7 @@ private:
rigCapabilities rig;
bool haveRig = false;
bool haveReceivedFrequency = false;
duplexMode_t currentdm;
modeInfo currentModeMain;
modeInfo modeTransmitVFO;

Wyświetl plik

@ -1,10 +1,11 @@
#!/bin/bash
echo "This script copies the following items into your system:"
echo ""
echo "icon: wfview.png to /usr/share/pixmaps/"
echo "icon: unix_icons/wfview.png to /usr/share/icons/hicolor/256x256/apps/"
echo "wfview application to /usr/local/bin/"
echo "wfview.desktop to /usr/share/applications/"
echo "qdarkstyle stylesheet to /usr/share/wfview/stylesheets"
echo "org.wfview.wfview.metainfo.xml metadata file to /usr/share/metainfo/"
echo "qdarkstyle stylesheet to /usr/share/wfview/stylesheets/"
echo ""
echo "This script MUST be run from the build directory. Do not run it from the source directory!"
@ -30,7 +31,8 @@ echo ""
cp wfview /usr/local/bin/wfview
cp wfview.desktop /usr/share/applications/
cp wfview.png /usr/share/pixmaps/
cp unix_icons/wfview.png /usr/share/icons/hicolor/256x256/apps/
cp org.wfview.wfview.metainfo.xml /usr/share/metainfo/
mkdir -p /usr/share/wfview/stylesheets
cp -r qdarkstyle /usr/share/wfview/stylesheets/
cp -r rigs /usr/share/wfview/

Wyświetl plik

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>org.wfview.wfview</id>
<launchable type="desktop-id">wfview.desktop</launchable>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0-or-later</project_license>
<name>wfview</name>
<developer_name>Elliott H. Liggett</developer_name>
<summary>Open Source interface for Icom transceivers</summary>
<description>
<p>
wfview is a program developed by amateur radio enthusiasts to control modern Icom ham radios. It provides the user with controls
that may be comfortably operated from a keyboard, mouse, or touch screen interface. wfview is free and open source software.
</p>
<p>
wfview has been developed with an eye towards compatibility. Even though our target platform consists of modern-era transceivers,
wfviews command dictionary is focused on commands with the most compatibility. Many of Icoms transceivers from the last 20 years
will work to some degree with wfview, and we are always adding more.
</p>
</description>
<screenshots>
<screenshot type="default">
<image type="source">https://wfview.org/wp-content/uploads/2021/11/7300-remote-screenshot.png</image>
</screenshot>
</screenshots>
<url type="homepage">https://wfview.org</url>
<url type="bugtracker">https://gitlab.com/eliggett/wfview/-/issues</url>
<content_rating type="oars-1.1"/>
</component>

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 53 KiB

Wyświetl plik

@ -1259,6 +1259,7 @@ void rigCommander::determineRigCaps()
rigCaps.steps.clear();
rigCaps.memParser.clear();
rigCaps.satParser.clear();
rigCaps.periodic.clear();
// modelID should already be set!
while (!rigList.contains(rigCaps.modelID))
{
@ -1272,6 +1273,9 @@ void rigCommander::determineRigCaps()
}
rigCaps.filename = rigList.find(rigCaps.modelID).value();
QSettings* settings = new QSettings(rigCaps.filename, QSettings::Format::IniFormat);
#if (QT_VERSION < QT_VERSION_CHECK(6,0,0))
settings->setIniCodec("UTF-8");
#endif
if (!settings->childGroups().contains("Rig"))
{
qWarning(logRig()) << rigCaps.filename << "Cannot be loaded!";
@ -1341,6 +1345,26 @@ void rigCommander::determineRigCaps()
settings->endArray();
}
int numPeriodic = settings->beginReadArray("Periodic");
if (numPeriodic == 0){
qWarning(logRig())<< "No periodic commands defined, please check rigcaps file";
settings->endArray();
} else {
for (int c=0; c < numPeriodic; c++)
{
settings->setArrayIndex(c);
funcs func = funcsLookup.find(settings->value("Command", "").toString().toUpper()).value();
if (!rigCaps.commands.contains(func)) {
qWarning(logRig()) << "Cannot find periodic command" << settings->value("Command", "").toString() << "in rigcaps, ignoring";
} else {
rigCaps.periodic.append(periodicType(func,
settings->value("Priority","").toString(),priorityMap[settings->value("Priority","").toString()],
settings->value("VFO",-1).toInt()));
}
}
settings->endArray();
}
int numModes = settings->beginReadArray("Modes");
if (numModes == 0) {
settings->endArray();

Wyświetl plik

@ -16,8 +16,24 @@ rigCreator::rigCreator(QWidget *parent) :
this->setWindowFlags(flags);
qInfo() << "Creating instance of rigCreator()";
commandsList = new tableCombobox(createModel(commandsModel, funcString),true,ui->commands);
commandsList = new tableCombobox(createModel(NUMFUNCS, commandsModel, funcString),true,ui->commands);
ui->commands->setItemDelegateForColumn(0, commandsList);
priorityModel = new QStandardItemModel();
foreach (auto key, priorityMap.keys())
{
QStandardItem *itemName = new QStandardItem(key);
QStandardItem *itemId = new QStandardItem(priorityMap.value(key));
QList<QStandardItem*> row;
row << itemName << itemId;
priorityModel->appendRow(row);
}
priorityList = new tableCombobox(priorityModel,true,ui->periodicCommands);
ui->periodicCommands->setItemDelegateForColumn(0, priorityList);
ui->periodicCommands->setItemDelegateForColumn(1, commandsList);
/*
ui->commands->setColumnWidth(0,120);
ui->commands->setColumnWidth(1,100);
@ -103,6 +119,10 @@ void rigCreator::loadRigFile(QString file)
this->currentFile = file;
QSettings* settings = new QSettings(file, QSettings::Format::IniFormat);
#if (QT_VERSION < QT_VERSION_CHECK(6,0,0))
settings->setIniCodec("UTF-8");
#endif
if (!settings->childGroups().contains("Rig"))
{
QFileInfo info(file);
@ -177,6 +197,34 @@ void rigCreator::loadRigFile(QString file)
settings->endArray();
}
ui->periodicCommands->clearContents();
ui->periodicCommands->model()->removeRows(0,ui->periodicCommands->rowCount());
int numPeriodic = settings->beginReadArray("Periodic");
if (numPeriodic == 0) {
settings->endArray();
int c=0;
foreach (auto p, defaultPeriodic)
{
ui->periodicCommands->insertRow(ui->periodicCommands->rowCount());
ui->periodicCommands->model()->setData(ui->periodicCommands->model()->index(c,0),p.priority);
ui->periodicCommands->model()->setData(ui->periodicCommands->model()->index(c,1),funcString[p.func]);
ui->periodicCommands->model()->setData(ui->periodicCommands->model()->index(c,2),QString::number(p.vfo));
c++;
}
}
else {
for (int c = 0; c < numPeriodic; c++)
{
settings->setArrayIndex(c);
ui->periodicCommands->insertRow(ui->periodicCommands->rowCount());
ui->periodicCommands->model()->setData(ui->periodicCommands->model()->index(c,0),settings->value("Priority", "").toString());
ui->periodicCommands->model()->setData(ui->periodicCommands->model()->index(c,1),settings->value("Command", "").toString());
ui->periodicCommands->model()->setData(ui->periodicCommands->model()->index(c,2),QString::number(settings->value("VFO", 0).toInt()));
}
settings->endArray();
}
ui->spans->clearContents();
ui->spans->model()->removeRows(0,ui->spans->rowCount());
int numSpans = settings->beginReadArray("Spans");
@ -372,6 +420,7 @@ void rigCreator::loadRigFile(QString file)
connect(ui->memoryFormat,SIGNAL(editingFinished()),SLOT(changed()));
connect(ui->satMemories,SIGNAL(editingFinished()),SLOT(changed()));
connect(ui->satelliteFormat,SIGNAL(editingFinished()),SLOT(changed()));
connect(ui->periodicCommands,SIGNAL(editingFinished()),SLOT(changed()));
settingsChanged = false;
}
@ -463,6 +512,18 @@ void rigCreator::saveRigFile(QString file)
}
settings->endArray();
ui->periodicCommands->sortByColumn(1,Qt::AscendingOrder);
settings->beginWriteArray("Periodic");
for (int n = 0; n<ui->periodicCommands->rowCount();n++)
{
settings->setArrayIndex(n);
settings->setValue("Priority", (ui->periodicCommands->item(n,0) == NULL) ? "" : ui->periodicCommands->item(n,0)->text());
settings->setValue("Command", (ui->periodicCommands->item(n,1) == NULL) ? "" : ui->periodicCommands->item(n,1)->text());
settings->setValue("VFO", (ui->periodicCommands->item(n,2) == NULL) ? -1 : ui->periodicCommands->item(n,2)->text().toInt());
}
settings->endArray();
//settings->remove("Spans");
ui->spans->sortByColumn(0,Qt::AscendingOrder);
settings->beginWriteArray("Spans");
@ -587,12 +648,12 @@ void rigCreator::saveRigFile(QString file)
// Create model for comboBox, takes un-initialized model object and populates it.
// This will be deleted by the comboBox on destruction.
QStandardItemModel* rigCreator::createModel(QStandardItemModel* model, QString strings[])
QStandardItemModel* rigCreator::createModel(int num,QStandardItemModel* model, QString strings[])
{
model = new QStandardItemModel();
for (int i=0; i < NUMFUNCS;i++)
for (int i=0; i < num;i++)
{
if (!strings[i].startsWith('-')) {
QStandardItem *itemName = new QStandardItem(strings[i]);
@ -608,6 +669,24 @@ QStandardItemModel* rigCreator::createModel(QStandardItemModel* model, QString s
return model;
}
QStandardItemModel* rigCreator::createModel(QStandardItemModel* model, QStringList strings)
{
model = new QStandardItemModel();
for (int i=0; i < strings.size();i++)
{
QStandardItem *itemName = new QStandardItem(strings[i]);
QStandardItem *itemId = new QStandardItem(i);
QList<QStandardItem*> row;
row << itemName << itemId;
model->appendRow(row);
}
return model;
}
void rigCreator::on_hasCommand29_toggled(bool checked)
{
ui->commands->setColumnHidden(4,!checked);

Wyświetl plik

@ -13,6 +13,43 @@
#include "wfviewtypes.h"
#include "rigidentities.h"
#include "tablewidget.h"
#include "cachingqueue.h"
inline QList<periodicType> defaultPeriodic = {
{funcSelectedFreq,"Medium",0},
{funcSelectedMode,"Medium",0},
{funcUnselectedFreq,"Medium",1},
{funcUnselectedMode,"Medium",1},
{funcOverflowStatus,"Medium",0},
{funcScopeMainMode,"Medium High",0},
{funcScopeSubMode,"Medium High",1},
{funcScopeMainSpan,"Medium High",0},
{funcScopeSubSpan,"Medium High",1},
{funcScopeSingleDual,"Medium High",0},
{funcScopeMainSub,"Medium High",0},
{funcScopeMainSpeed,"Medium",0},
{funcScopeSubSpeed,"Medium",1},
{funcScopeMainHold,"Medium",0},
{funcScopeSubHold,"Medium",1},
{funcVFODualWatch,"Medium",0},
{funcTransceiverStatus,"High",0},
{funcDATAOffMod,"Medium High",0},
{funcDATA1Mod,"Medium High",0},
{funcDATA2Mod,"Medium High",0},
{funcDATA3Mod,"Medium High",0},
{funcRFPower,"Medium",0},
{funcMonitorGain,"Medium Low",0},
{funcMonitor,"Medium Low",0},
{funcRfGain,"Medium",0},
{funcTunerStatus,"Medium",0},
{funcTuningStep,"Medium Low",-1},
{funcAttenuator,"Medium Low",-1},
{funcPreamp,"Medium Low",-1},
{funcAntenna,"Medium Low",-1},
{funcToneSquelchType,"Medium Low",-1},
{funcSMeter,"Highest",-1}
};
namespace Ui {
class rigCreator;
@ -42,9 +79,13 @@ private:
void closeEvent(QCloseEvent *event);
QMenu* context;
tableCombobox* commandsList;
tableCombobox* priorityList;
QStandardItemModel* commandsModel;
QStandardItemModel* command36Model;
QStandardItemModel* createModel(QStandardItemModel* model, QString strings[]);
QStandardItemModel* priorityModel;
QStandardItemModel* createModel(int num, QStandardItemModel* model, QString strings[]);
QStandardItemModel* createModel(QStandardItemModel* model, QStringList strings);
QString currentFile;
bool settingsChanged=false;

Plik diff jest za duży Load Diff

Wyświetl plik

@ -272,6 +272,7 @@ struct rigCapabilities {
quint16 satMemories;
QString satFormat;
QVector<memParserFormat> satParser;
QVector<periodicType> periodic;
};
Q_DECLARE_METATYPE(rigCapabilities)

Wyświetl plik

@ -6,6 +6,7 @@ Manufacturer=Icom
Model=DEFAULT
CIVAddress=0
RigCtlDModel=0
NumberOfVFOs=1
SpectrumSeqMax=0
SpectrumAmpMax=0
SpectrumLenMax=0
@ -68,6 +69,13 @@ Commands\9\Min=0
Commands\9\Max=0
Commands\9\Command29=false
Commands\size=9
Periodic\1\Priority=Medium
Periodic\1\Command=Freq Get
Periodic\1\VFO=0
Periodic\2\Priority=Medium
Periodic\2\Command=Mode Get
Periodic\2\VFO=0
Periodic\size=2
Spans\size=0
Inputs\1\Num=0
Inputs\1\Reg=0

Wyświetl plik

@ -6,6 +6,7 @@ Manufacturer=Icom
Model=IC-705
CIVAddress=164
RigCtlDModel=3085
NumberOfVFOs=1
SpectrumSeqMax=11
SpectrumAmpMax=160
SpectrumLenMax=475
@ -618,6 +619,73 @@ Commands\119\Min=0
Commands\119\Max=0
Commands\119\Command29=false
Commands\size=119
Periodic\1\Priority=Medium Low
Periodic\1\Command=Antenna
Periodic\1\VFO=-1
Periodic\2\Priority=Medium Low
Periodic\2\Command=Attenuator Status
Periodic\2\VFO=-1
Periodic\3\Priority=Medium High
Periodic\3\Command=Data Off Mod Input
Periodic\3\VFO=0
Periodic\4\Priority=Medium High
Periodic\4\Command=DATA1 Mod Input
Periodic\4\VFO=0
Periodic\5\Priority=Medium Low
Periodic\5\Command=Monitor Gain
Periodic\5\VFO=0
Periodic\6\Priority=Medium Low
Periodic\6\Command=Monitor Status
Periodic\6\VFO=0
Periodic\7\Priority=Medium
Periodic\7\Command=Overflow Status
Periodic\7\VFO=0
Periodic\8\Priority=Medium Low
Periodic\8\Command=Preamp Status
Periodic\8\VFO=-1
Periodic\9\Priority=Medium
Periodic\9\Command=RF Gain
Periodic\9\VFO=0
Periodic\10\Priority=Medium
Periodic\10\Command=RF Power
Periodic\10\VFO=0
Periodic\11\Priority=Highest
Periodic\11\Command=S Meter
Periodic\11\VFO=-1
Periodic\12\Priority=Medium
Periodic\12\Command=Scope Main Hold
Periodic\12\VFO=0
Periodic\13\Priority=Medium High
Periodic\13\Command=Scope Main Mode
Periodic\13\VFO=0
Periodic\14\Priority=Medium High
Periodic\14\Command=Scope Main Span
Periodic\14\VFO=0
Periodic\15\Priority=Medium
Periodic\15\Command=Scope Main Speed
Periodic\15\VFO=0
Periodic\16\Priority=Medium
Periodic\16\Command=Selected Freq
Periodic\16\VFO=0
Periodic\17\Priority=Medium
Periodic\17\Command=Selected Mode
Periodic\17\VFO=0
Periodic\18\Priority=Medium Low
Periodic\18\Command=Tone Squelch Type
Periodic\18\VFO=-1
Periodic\19\Priority=High
Periodic\19\Command=Transceiver Status
Periodic\19\VFO=0
Periodic\20\Priority=Medium Low
Periodic\20\Command=Tuning Step
Periodic\20\VFO=-1
Periodic\21\Priority=Medium
Periodic\21\Command=Unselected Freq
Periodic\21\VFO=1
Periodic\22\Priority=Medium
Periodic\22\Command=Unselected Mode
Periodic\22\VFO=1
Periodic\size=22
Spans\1\Num=0
Spans\1\Name=±2.5 KHz
Spans\1\Freq=2500

Wyświetl plik

@ -6,6 +6,7 @@ Manufacturer=Icom
Model=IC-706 (Mk1/Mk2)
CIVAddress=72
RigCtlDModel=3009
NumberOfVFOs=1
SpectrumSeqMax=0
SpectrumAmpMax=0
SpectrumLenMax=0
@ -123,6 +124,19 @@ Commands\20\Min=0
Commands\20\Max=0
Commands\20\Command29=false
Commands\size=20
Periodic\1\Priority=Medium
Periodic\1\Command=Freq Set
Periodic\1\VFO=0
Periodic\2\Priority=Medium
Periodic\2\Command=Mode Get
Periodic\2\VFO=0
Periodic\3\Priority=High
Periodic\3\Command=Transceiver Status
Periodic\3\VFO=0
Periodic\4\Priority=Medium Low
Periodic\4\Command=Tuning Step
Periodic\4\VFO=-1
Periodic\size=4
Spans\size=0
Inputs\1\Num=0
Inputs\1\Reg=0

Wyświetl plik

@ -6,6 +6,7 @@ Manufacturer=Icom
Model=IC-706 (MkIIG)
CIVAddress=88
RigCtlDModel=3010
NumberOfVFOs=1
SpectrumSeqMax=0
SpectrumAmpMax=0
SpectrumLenMax=0
@ -183,6 +184,28 @@ Commands\32\Min=0
Commands\32\Max=0
Commands\32\Command29=false
Commands\size=32
Periodic\1\Priority=Medium Low
Periodic\1\Command=Attenuator Status
Periodic\1\VFO=-1
Periodic\2\Priority=Medium
Periodic\2\Command=Freq Get
Periodic\2\VFO=0
Periodic\3\Priority=Medium
Periodic\3\Command=Mode Get
Periodic\3\VFO=0
Periodic\4\Priority=Medium Low
Periodic\4\Command=Preamp Status
Periodic\4\VFO=-1
Periodic\5\Priority=Highest
Periodic\5\Command=S Meter
Periodic\5\VFO=-1
Periodic\6\Priority=High
Periodic\6\Command=Transceiver Status
Periodic\6\VFO=0
Periodic\7\Priority=Medium Low
Periodic\7\Command=Tuning Step
Periodic\7\VFO=-1
Periodic\size=7
Spans\size=0
Inputs\1\Num=0
Inputs\1\Reg=0

Wyświetl plik

@ -6,6 +6,7 @@ Manufacturer=Icom
Model=IC-7100
CIVAddress=136
RigCtlDModel=3070
NumberOfVFOs=1
SpectrumSeqMax=0
SpectrumAmpMax=0
SpectrumLenMax=0
@ -90,279 +91,317 @@ Commands\13\Command29=false
Commands\14\Type=Tuning Step
Commands\14\String=\\x10
Commands\14\Min=0
Commands\14\Max=0
Commands\14\Max=12
Commands\14\Command29=false
Commands\15\Type=Tuning Step
Commands\15\String=\\x10
Commands\15\Type=Attenuator Status
Commands\15\String=\\x11
Commands\15\Min=0
Commands\15\Max=12
Commands\15\Max=20
Commands\15\Command29=false
Commands\16\Type=Attenuator Status
Commands\16\String=\\x11
Commands\16\Type=Speech
Commands\16\String=\\x13
Commands\16\Min=0
Commands\16\Max=20
Commands\16\Max=2
Commands\16\Command29=false
Commands\17\Type=Speech
Commands\17\String=\\x13
Commands\17\Type=AF Gain
Commands\17\String=\\x14\\x01
Commands\17\Min=0
Commands\17\Max=2
Commands\17\Max=255
Commands\17\Command29=false
Commands\18\Type=AF Gain
Commands\18\String=\\x14\\x01
Commands\18\Type=RF Gain
Commands\18\String=\\x14\\x02
Commands\18\Min=0
Commands\18\Max=255
Commands\18\Command29=false
Commands\19\Type=RF Gain
Commands\19\String=\\x14\\x02
Commands\19\Type=Squelch
Commands\19\String=\\x14\\x03
Commands\19\Min=0
Commands\19\Max=255
Commands\19\Command29=false
Commands\20\Type=Squelch
Commands\20\String=\\x14\\x03
Commands\20\Type=NR Level
Commands\20\String=\\x14\\x06
Commands\20\Min=0
Commands\20\Max=255
Commands\20\Command29=false
Commands\21\Type=NR Level
Commands\21\String=\\x14\\x06
Commands\21\Type=PBT Inner
Commands\21\String=\\x14\\x07
Commands\21\Min=0
Commands\21\Max=255
Commands\21\Command29=false
Commands\22\Type=PBT Inner
Commands\22\String=\\x14\\x07
Commands\22\Type=PBT Outer
Commands\22\String=\\x14\\x08
Commands\22\Min=0
Commands\22\Max=255
Commands\22\Command29=false
Commands\23\Type=PBT Outer
Commands\23\String=\\x14\\x08
Commands\23\Min=0
Commands\23\Max=255
Commands\23\Type=CW Pitch
Commands\23\String=\\x14\\x09
Commands\23\Min=300
Commands\23\Max=900
Commands\23\Command29=false
Commands\24\Type=CW Pitch
Commands\24\String=\\x14\\x09
Commands\24\Min=300
Commands\24\Max=900
Commands\24\Type=RF Power
Commands\24\String=\\x14\\x0a
Commands\24\Min=0
Commands\24\Max=255
Commands\24\Command29=false
Commands\25\Type=RF Power
Commands\25\String=\\x14\\x0a
Commands\25\Type=Mic Gain
Commands\25\String=\\x14\\x0b
Commands\25\Min=0
Commands\25\Max=255
Commands\25\Command29=false
Commands\26\Type=Mic Gain
Commands\26\String=\\x14\\x0b
Commands\26\Min=0
Commands\26\Max=255
Commands\26\Type=Key Speed
Commands\26\String=\\x14\\x0c
Commands\26\Min=6
Commands\26\Max=48
Commands\26\Command29=false
Commands\27\Type=Key Speed
Commands\27\String=\\x14\\x0c
Commands\27\Min=6
Commands\27\Max=48
Commands\27\Type=Compressor Level
Commands\27\String=\\x14\\x0e
Commands\27\Min=0
Commands\27\Max=255
Commands\27\Command29=false
Commands\28\Type=Compressor Level
Commands\28\String=\\x14\\x0e
Commands\28\Type=Break-In Delay
Commands\28\String=\\x14\\x0f
Commands\28\Min=0
Commands\28\Max=255
Commands\28\Command29=false
Commands\29\Type=Break-In Delay
Commands\29\String=\\x14\\x0f
Commands\29\Type=NB Level
Commands\29\String=\\x14\\x12
Commands\29\Min=0
Commands\29\Max=255
Commands\29\Command29=false
Commands\30\Type=NB Level
Commands\30\String=\\x14\\x12
Commands\30\Type=Monitor Gain
Commands\30\String=\\x14\\x15
Commands\30\Min=0
Commands\30\Max=255
Commands\30\Command29=false
Commands\31\Type=Monitor Gain
Commands\31\String=\\x14\\x15
Commands\31\Type=Vox Gain
Commands\31\String=\\x14\\x16
Commands\31\Min=0
Commands\31\Max=255
Commands\31\Command29=false
Commands\32\Type=Vox Gain
Commands\32\String=\\x14\\x16
Commands\32\Type=Anti-Vox Gain
Commands\32\String=\\x14\\x17
Commands\32\Min=0
Commands\32\Max=255
Commands\32\Command29=false
Commands\33\Type=Anti-Vox Gain
Commands\33\String=\\x14\\x17
Commands\33\Type=S Meter
Commands\33\String=\\x15\\x02
Commands\33\Min=0
Commands\33\Max=255
Commands\33\Command29=false
Commands\34\Type=S Meter
Commands\34\String=\\x15\\x02
Commands\34\Type=Power Meter
Commands\34\String=\\x15\\x11
Commands\34\Min=0
Commands\34\Max=255
Commands\34\Command29=false
Commands\35\Type=Power Meter
Commands\35\String=\\x15\\x11
Commands\35\Type=SWR Meter
Commands\35\String=\\x15\\x12
Commands\35\Min=0
Commands\35\Max=255
Commands\35\Command29=false
Commands\36\Type=SWR Meter
Commands\36\String=\\x15\\x12
Commands\36\Type=ALC Meter
Commands\36\String=\\x15\\x13
Commands\36\Min=0
Commands\36\Max=255
Commands\36\Command29=false
Commands\37\Type=ALC Meter
Commands\37\String=\\x15\\x13
Commands\37\Type=Comp Meter
Commands\37\String=\\x15\\x14
Commands\37\Min=0
Commands\37\Max=255
Commands\37\Command29=false
Commands\38\Type=Comp Meter
Commands\38\String=\\x15\\x14
Commands\38\Type=Vd Meter
Commands\38\String=\\x15\\x15
Commands\38\Min=0
Commands\38\Max=255
Commands\38\Command29=false
Commands\39\Type=Vd Meter
Commands\39\String=\\x15\\x15
Commands\39\Type=Id Meter
Commands\39\String=\\x15\\x16
Commands\39\Min=0
Commands\39\Max=255
Commands\39\Command29=false
Commands\40\Type=Id Meter
Commands\40\String=\\x15\\x16
Commands\40\Type=Preamp Status
Commands\40\String=\\x16\\x02
Commands\40\Min=0
Commands\40\Max=255
Commands\40\Max=2
Commands\40\Command29=false
Commands\41\Type=Preamp Status
Commands\41\String=\\x16\\x02
Commands\41\Min=0
Commands\41\Max=2
Commands\41\Type=AGC Time Constant
Commands\41\String=\\x16\\x12
Commands\41\Min=1
Commands\41\Max=3
Commands\41\Command29=false
Commands\42\Type=AGC Time Constant
Commands\42\String=\\x16\\x12
Commands\42\Min=1
Commands\42\Max=3
Commands\42\Type=Noise Blanker
Commands\42\String=\\x16\\x22
Commands\42\Min=0
Commands\42\Max=1
Commands\42\Command29=false
Commands\43\Type=Noise Blanker
Commands\43\String=\\x16\\x22
Commands\43\Type=Noise Reduction
Commands\43\String=\\x16\\x40
Commands\43\Min=0
Commands\43\Max=1
Commands\43\Command29=false
Commands\44\Type=Noise Reduction
Commands\44\String=\\x16\\x40
Commands\44\Type=Auto Notch
Commands\44\String=\\x16\\x41
Commands\44\Min=0
Commands\44\Max=1
Commands\44\Command29=false
Commands\45\Type=Auto Notch
Commands\45\String=\\x16\\x41
Commands\45\Type=Repeater Tone
Commands\45\String=\\x16\\x42
Commands\45\Min=0
Commands\45\Max=1
Commands\45\Command29=false
Commands\46\Type=Repeater Tone
Commands\46\String=\\x16\\x42
Commands\46\Type=S Meter Sql Status
Commands\46\String=\\x16\\x43
Commands\46\Min=0
Commands\46\Max=1
Commands\46\Command29=false
Commands\47\Type=S Meter Sql Status
Commands\47\String=\\x16\\x43
Commands\47\Type=Compressor Status
Commands\47\String=\\x16\\x44
Commands\47\Min=0
Commands\47\Max=1
Commands\47\Command29=false
Commands\48\Type=Compressor Status
Commands\48\String=\\x16\\x44
Commands\48\Type=Monitor Status
Commands\48\String=\\x16\\x45
Commands\48\Min=0
Commands\48\Max=1
Commands\48\Command29=false
Commands\49\Type=Monitor Status
Commands\49\String=\\x16\\x45
Commands\49\Type=Vox Status
Commands\49\String=\\x16\\x46
Commands\49\Min=0
Commands\49\Max=1
Commands\49\Command29=false
Commands\50\Type=Vox Status
Commands\50\String=\\x16\\x46
Commands\50\Type=Break-In Status
Commands\50\String=\\x16\\x47
Commands\50\Min=0
Commands\50\Max=1
Commands\50\Command29=false
Commands\51\Type=Break-In Status
Commands\51\String=\\x16\\x47
Commands\51\Type=Dial Lock Status
Commands\51\String=\\x16\\x50
Commands\51\Min=0
Commands\51\Max=1
Commands\51\Command29=false
Commands\52\Type=Dial Lock Status
Commands\52\String=\\x16\\x50
Commands\52\Type=DIGI-Sel Status
Commands\52\String=\\x16\\x56
Commands\52\Min=0
Commands\52\Max=1
Commands\52\Command29=false
Commands\53\Type=DIGI-Sel Status
Commands\53\String=\\x16\\x56
Commands\53\Type=Power Control
Commands\53\String=\\x18
Commands\53\Min=0
Commands\53\Max=1
Commands\53\Command29=false
Commands\54\Type=Power Control
Commands\54\String=\\x18
Commands\54\Type=Transceiver ID
Commands\54\String=\\x19
Commands\54\Min=0
Commands\54\Max=1
Commands\54\Max=0
Commands\54\Command29=false
Commands\55\Type=Transceiver ID
Commands\55\String=\\x19
Commands\55\Min=0
Commands\55\Max=0
Commands\55\Type=Memory Contents
Commands\55\String=\\x1a\\x00
Commands\55\Min=1
Commands\55\Max=109
Commands\55\Command29=false
Commands\56\Type=Memory Contents
Commands\56\String=\\x1a\\x00
Commands\56\Min=1
Commands\56\Max=109
Commands\56\Type=Band Stacking Reg
Commands\56\String=\\x1a\\x01
Commands\56\Min=0
Commands\56\Max=13
Commands\56\Command29=false
Commands\57\Type=Band Stacking Reg
Commands\57\String=\\x1a\\x01
Commands\57\Type=Quick Split
Commands\57\String=\\x1a\\x05\\x00\\x15
Commands\57\Min=0
Commands\57\Max=13
Commands\57\Max=1
Commands\57\Command29=false
Commands\58\Type=Quick Split
Commands\58\String=\\x1a\\x05\\x00\\x15
Commands\58\Type=Tuner/ATU Status
Commands\58\String=\\x1a\\x05\\x00\\x21
Commands\58\Min=0
Commands\58\Max=1
Commands\58\Command29=false
Commands\59\Type=Tuner/ATU Status
Commands\59\String=\\x1a\\x05\\x00\\x21
Commands\59\Type=CIV Transceive
Commands\59\String=\\x1a\\x05\\x00\\x95
Commands\59\Min=0
Commands\59\Max=1
Commands\59\Command29=false
Commands\60\Type=CIV Transceive
Commands\60\String=\\x1a\\x05\\x00\\x95
Commands\60\Type=RIT Status
Commands\60\String=\\x21\\x00
Commands\60\Min=0
Commands\60\Max=1
Commands\60\Max=0
Commands\60\Command29=false
Commands\61\Type=RIT Status
Commands\61\String=\\x21\\x00
Commands\61\Type=RIT Frequency
Commands\61\String=\\x21\\x01
Commands\61\Min=0
Commands\61\Max=0
Commands\61\Max=1
Commands\61\Command29=false
Commands\62\Type=RIT Frequency
Commands\62\String=\\x21\\x01
Commands\62\Type=Selected Freq
Commands\62\String=\\x25\\x00
Commands\62\Min=0
Commands\62\Max=1
Commands\62\Max=0
Commands\62\Command29=false
Commands\63\Type=Selected Freq
Commands\63\String=\\x25\\x00
Commands\63\Type=Unselected Freq
Commands\63\String=\\x25\\x01
Commands\63\Min=0
Commands\63\Max=0
Commands\63\Command29=false
Commands\64\Type=Unselected Freq
Commands\64\String=\\x25\\x01
Commands\64\Type=Selected Mode
Commands\64\String=\\x26\\x00
Commands\64\Min=0
Commands\64\Max=0
Commands\64\Command29=false
Commands\65\Type=Selected Mode
Commands\65\String=\\x26\\x00
Commands\65\Type=Unselected Mode
Commands\65\String=\\x26\\x01
Commands\65\Min=0
Commands\65\Max=0
Commands\65\Command29=false
Commands\66\Type=Unselected Mode
Commands\66\String=\\x26\\x01
Commands\66\Type=Command Error FA
Commands\66\String=\\xfa
Commands\66\Min=0
Commands\66\Max=0
Commands\66\Command29=false
Commands\67\Type=Command Error FA
Commands\67\String=\\xfa
Commands\67\Type=Command OK FB
Commands\67\String=\\xfb
Commands\67\Min=0
Commands\67\Max=0
Commands\67\Command29=false
Commands\68\Type=Command OK FB
Commands\68\String=\\xfb
Commands\68\Min=0
Commands\68\Max=0
Commands\68\Command29=false
Commands\size=68
Commands\size=67
Periodic\1\Priority=Medium Low
Periodic\1\Command=Attenuator Status
Periodic\1\VFO=-1
Periodic\2\Priority=Medium Low
Periodic\2\Command=Monitor Gain
Periodic\2\VFO=0
Periodic\3\Priority=Medium Low
Periodic\3\Command=Monitor Status
Periodic\3\VFO=0
Periodic\4\Priority=Medium Low
Periodic\4\Command=Preamp Status
Periodic\4\VFO=-1
Periodic\5\Priority=Medium
Periodic\5\Command=RF Gain
Periodic\5\VFO=0
Periodic\6\Priority=Medium
Periodic\6\Command=RF Power
Periodic\6\VFO=0
Periodic\7\Priority=Highest
Periodic\7\Command=S Meter
Periodic\7\VFO=-1
Periodic\8\Priority=Medium
Periodic\8\Command=Selected Freq
Periodic\8\VFO=0
Periodic\9\Priority=Medium
Periodic\9\Command=Selected Mode
Periodic\9\VFO=0
Periodic\10\Priority=High
Periodic\10\Command=Transceiver Status
Periodic\10\VFO=0
Periodic\11\Priority=Medium
Periodic\11\Command=Tuner/ATU Status
Periodic\11\VFO=0
Periodic\12\Priority=Medium Low
Periodic\12\Command=Tuning Step
Periodic\12\VFO=-1
Periodic\13\Priority=Medium
Periodic\13\Command=Unselected Freq
Periodic\13\VFO=1
Periodic\14\Priority=Medium
Periodic\14\Command=Unselected Mode
Periodic\14\VFO=1
Periodic\size=14
Spans\size=0
Inputs\1\Num=0
Inputs\1\Reg=0

Wyświetl plik

@ -6,6 +6,7 @@ Manufacturer=Icom
Model=IC-718
CIVAddress=94
RigCtlDModel=3013
NumberOfVFOs=1
SpectrumSeqMax=0
SpectrumAmpMax=0
SpectrumLenMax=0
@ -183,6 +184,28 @@ Commands\32\Min=0
Commands\32\Max=0
Commands\32\Command29=false
Commands\size=32
Periodic\1\Priority=Medium Low
Periodic\1\Command=Attenuator Status
Periodic\1\VFO=-1
Periodic\2\Priority=Medium
Periodic\2\Command=Freq Get
Periodic\2\VFO=0
Periodic\3\Priority=Medium
Periodic\3\Command=Mode Get
Periodic\3\VFO=0
Periodic\4\Priority=Medium Low
Periodic\4\Command=Preamp Status
Periodic\4\VFO=-1
Periodic\5\Priority=Highest
Periodic\5\Command=S Meter
Periodic\5\VFO=-1
Periodic\6\Priority=High
Periodic\6\Command=Transceiver Status
Periodic\6\VFO=0
Periodic\7\Priority=Medium Low
Periodic\7\Command=Tuning Step
Periodic\7\VFO=-1
Periodic\size=7
Spans\size=0
Inputs\1\Num=0
Inputs\1\Reg=0

Wyświetl plik

@ -6,6 +6,7 @@ Manufacturer=Icom
Model=IC-7300
CIVAddress=148
RigCtlDModel=3073
NumberOfVFOs=1
SpectrumSeqMax=11
SpectrumAmpMax=160
SpectrumLenMax=475
@ -423,6 +424,61 @@ Commands\80\Min=0
Commands\80\Max=0
Commands\80\Command29=false
Commands\size=80
Periodic\1\Priority=Medium Low
Periodic\1\Command=Attenuator Status
Periodic\1\VFO=-1
Periodic\2\Priority=Medium High
Periodic\2\Command=Data Off Mod Input
Periodic\2\VFO=0
Periodic\3\Priority=Medium High
Periodic\3\Command=DATA1 Mod Input
Periodic\3\VFO=0
Periodic\4\Priority=Medium Low
Periodic\4\Command=Monitor Gain
Periodic\4\VFO=0
Periodic\5\Priority=Medium Low
Periodic\5\Command=Monitor Status
Periodic\5\VFO=0
Periodic\6\Priority=Medium
Periodic\6\Command=Overflow Status
Periodic\6\VFO=0
Periodic\7\Priority=Medium Low
Periodic\7\Command=Preamp Status
Periodic\7\VFO=-1
Periodic\8\Priority=Medium
Periodic\8\Command=RF Gain
Periodic\8\VFO=0
Periodic\9\Priority=Medium
Periodic\9\Command=RF Power
Periodic\9\VFO=0
Periodic\10\Priority=Highest
Periodic\10\Command=S Meter
Periodic\10\VFO=-1
Periodic\11\Priority=Medium
Periodic\11\Command=Scope Main Hold
Periodic\11\VFO=0
Periodic\12\Priority=Medium High
Periodic\12\Command=Scope Main Mode
Periodic\12\VFO=0
Periodic\13\Priority=Medium High
Periodic\13\Command=Scope Main Span
Periodic\13\VFO=0
Periodic\14\Priority=Medium
Periodic\14\Command=Scope Main Speed
Periodic\14\VFO=0
Periodic\15\Priority=Medium
Periodic\15\Command=Selected Freq
Periodic\15\VFO=0
Periodic\16\Priority=Medium
Periodic\16\Command=Selected Mode
Periodic\16\VFO=0
Periodic\17\Priority=High
Periodic\17\Command=Transceiver Status
Periodic\17\VFO=0
Periodic\18\Priority=Medium Low
Periodic\18\Command=Tuning Step
Periodic\18\VFO=-1
Periodic\size=18
Spans\1\Num=0
Spans\1\Name=±2.5 KHz
Spans\1\Freq=2500

Wyświetl plik

@ -6,6 +6,7 @@ Manufacturer=Icom
Model=IC-746
CIVAddress=86
RigCtlDModel=3010
NumberOfVFOs=1
SpectrumSeqMax=0
SpectrumAmpMax=0
SpectrumLenMax=0
@ -258,6 +259,34 @@ Commands\47\Min=0
Commands\47\Max=0
Commands\47\Command29=false
Commands\size=47
Periodic\1\Priority=Medium Low
Periodic\1\Command=Antenna
Periodic\1\VFO=-1
Periodic\2\Priority=Medium Low
Periodic\2\Command=Attenuator Status
Periodic\2\VFO=-1
Periodic\3\Priority=Medium
Periodic\3\Command=Freq Get
Periodic\3\VFO=0
Periodic\4\Priority=Medium
Periodic\4\Command=Mode Get
Periodic\4\VFO=0
Periodic\5\Priority=Medium Low
Periodic\5\Command=Preamp Status
Periodic\5\VFO=-1
Periodic\6\Priority=Medium
Periodic\6\Command=RF Power
Periodic\6\VFO=0
Periodic\7\Priority=Highest
Periodic\7\Command=S Meter
Periodic\7\VFO=-1
Periodic\8\Priority=High
Periodic\8\Command=Transceiver Status
Periodic\8\VFO=0
Periodic\9\Priority=Medium Low
Periodic\9\Command=Tuning Step
Periodic\9\VFO=-1
Periodic\size=9
Spans\size=0
Inputs\1\Num=0
Inputs\1\Reg=0

Wyświetl plik

@ -6,6 +6,7 @@ Manufacturer=Icom
Model=IC-746 PRO
CIVAddress=102
RigCtlDModel=3010
NumberOfVFOs=1
SpectrumSeqMax=0
SpectrumAmpMax=0
SpectrumLenMax=0
@ -273,6 +274,34 @@ Commands\50\Min=0
Commands\50\Max=0
Commands\50\Command29=false
Commands\size=50
Periodic\1\Priority=Medium Low
Periodic\1\Command=Antenna
Periodic\1\VFO=-1
Periodic\2\Priority=Medium Low
Periodic\2\Command=Attenuator Status
Periodic\2\VFO=-1
Periodic\3\Priority=Medium
Periodic\3\Command=Freq Get
Periodic\3\VFO=0
Periodic\4\Priority=Medium
Periodic\4\Command=Mode Get
Periodic\4\VFO=0
Periodic\5\Priority=Medium Low
Periodic\5\Command=Preamp Status
Periodic\5\VFO=-1
Periodic\6\Priority=Medium
Periodic\6\Command=RF Power
Periodic\6\VFO=0
Periodic\7\Priority=Highest
Periodic\7\Command=S Meter
Periodic\7\VFO=-1
Periodic\8\Priority=High
Periodic\8\Command=Transceiver Status
Periodic\8\VFO=0
Periodic\9\Priority=Medium Low
Periodic\9\Command=Tuning Step
Periodic\9\VFO=-1
Periodic\size=9
Spans\size=0
Inputs\1\Num=0
Inputs\1\Reg=0

Wyświetl plik

@ -6,6 +6,7 @@ Manufacturer=Icom
Model=IC-756
CIVAddress=80
RigCtlDModel=3026
NumberOfVFOs=1
SpectrumSeqMax=0
SpectrumAmpMax=0
SpectrumLenMax=0
@ -128,6 +129,37 @@ Commands\21\Min=0
Commands\21\Max=0
Commands\21\Command29=false
Commands\size=21
Periodic\1\Priority=Medium Low
Periodic\1\Command=Antenna
Periodic\1\VFO=-1
Periodic\2\Priority=Medium Low
Periodic\2\Command=Attenuator Status
Periodic\2\VFO=-1
Periodic\3\Priority=Medium
Periodic\3\Command=Freq Get
Periodic\3\VFO=0
Periodic\4\Priority=Medium
Periodic\4\Command=Freq Set
Periodic\4\VFO=0
Periodic\5\Priority=Medium Low
Periodic\5\Command=Preamp Status
Periodic\5\VFO=-1
Periodic\6\Priority=Medium
Periodic\6\Command=RF Gain
Periodic\6\VFO=0
Periodic\7\Priority=Medium
Periodic\7\Command=RF Power
Periodic\7\VFO=0
Periodic\8\Priority=Highest
Periodic\8\Command=S Meter
Periodic\8\VFO=-1
Periodic\9\Priority=High
Periodic\9\Command=Transceiver Status
Periodic\9\VFO=0
Periodic\10\Priority=Medium Low
Periodic\10\Command=Tuning Step
Periodic\10\VFO=-1
Periodic\size=10
Spans\size=0
Inputs\size=0
Bands\1\Num=6

Wyświetl plik

@ -6,6 +6,7 @@ Manufacturer=Icom
Model=IC-756 PRO
CIVAddress=92
RigCtlDModel=3027
NumberOfVFOs=1
SpectrumSeqMax=0
SpectrumAmpMax=0
SpectrumLenMax=0
@ -318,6 +319,37 @@ Commands\59\Min=0
Commands\59\Max=0
Commands\59\Command29=false
Commands\size=59
Periodic\1\Priority=Medium Low
Periodic\1\Command=Antenna
Periodic\1\VFO=-1
Periodic\2\Priority=Medium Low
Periodic\2\Command=Attenuator Status
Periodic\2\VFO=-1
Periodic\3\Priority=Medium
Periodic\3\Command=Freq Get
Periodic\3\VFO=0
Periodic\4\Priority=Medium
Periodic\4\Command=Mode Get
Periodic\4\VFO=0
Periodic\5\Priority=Medium Low
Periodic\5\Command=Preamp Status
Periodic\5\VFO=-1
Periodic\6\Priority=Medium
Periodic\6\Command=RF Gain
Periodic\6\VFO=0
Periodic\7\Priority=Medium
Periodic\7\Command=RF Power
Periodic\7\VFO=0
Periodic\8\Priority=Highest
Periodic\8\Command=S Meter
Periodic\8\VFO=-1
Periodic\9\Priority=High
Periodic\9\Command=Transceiver Status
Periodic\9\VFO=0
Periodic\10\Priority=Medium Low
Periodic\10\Command=Tuning Step
Periodic\10\VFO=-1
Periodic\size=10
Spans\size=0
Inputs\1\Num=0
Inputs\1\Reg=0

Wyświetl plik

@ -6,6 +6,7 @@ Manufacturer=Icom
Model=IC-756 PRO II
CIVAddress=100
RigCtlDModel=3027
NumberOfVFOs=1
SpectrumSeqMax=0
SpectrumAmpMax=0
SpectrumLenMax=0
@ -313,6 +314,37 @@ Commands\58\Min=0
Commands\58\Max=0
Commands\58\Command29=false
Commands\size=58
Periodic\1\Priority=Medium Low
Periodic\1\Command=Antenna
Periodic\1\VFO=-1
Periodic\2\Priority=Medium Low
Periodic\2\Command=Attenuator Status
Periodic\2\VFO=-1
Periodic\3\Priority=Medium
Periodic\3\Command=Freq Set
Periodic\3\VFO=0
Periodic\4\Priority=Medium
Periodic\4\Command=Mode Get
Periodic\4\VFO=0
Periodic\5\Priority=Medium Low
Periodic\5\Command=Preamp Status
Periodic\5\VFO=-1
Periodic\6\Priority=Medium
Periodic\6\Command=RF Gain
Periodic\6\VFO=0
Periodic\7\Priority=Medium
Periodic\7\Command=RF Power
Periodic\7\VFO=0
Periodic\8\Priority=Highest
Periodic\8\Command=S Meter
Periodic\8\VFO=-1
Periodic\9\Priority=High
Periodic\9\Command=Transceiver Status
Periodic\9\VFO=0
Periodic\10\Priority=Medium Low
Periodic\10\Command=Tuning Step
Periodic\10\VFO=-1
Periodic\size=10
Spans\size=0
Inputs\1\Num=0
Inputs\1\Reg=0

Wyświetl plik

@ -6,6 +6,7 @@ Manufacturer=Icom
Model=IC-756 PRO II
CIVAddress=110
RigCtlDModel=3027
NumberOfVFOs=1
SpectrumSeqMax=0
SpectrumAmpMax=0
SpectrumLenMax=0
@ -313,6 +314,37 @@ Commands\58\Min=0
Commands\58\Max=0
Commands\58\Command29=false
Commands\size=58
Periodic\1\Priority=Medium Low
Periodic\1\Command=Antenna
Periodic\1\VFO=-1
Periodic\2\Priority=Medium Low
Periodic\2\Command=Attenuator Status
Periodic\2\VFO=-1
Periodic\3\Priority=Medium
Periodic\3\Command=Freq Get
Periodic\3\VFO=0
Periodic\4\Priority=Medium
Periodic\4\Command=Mode Get
Periodic\4\VFO=0
Periodic\5\Priority=Medium Low
Periodic\5\Command=Preamp Status
Periodic\5\VFO=-1
Periodic\6\Priority=Medium
Periodic\6\Command=RF Gain
Periodic\6\VFO=0
Periodic\7\Priority=Medium
Periodic\7\Command=RF Power
Periodic\7\VFO=0
Periodic\8\Priority=Highest
Periodic\8\Command=S Meter
Periodic\8\VFO=-1
Periodic\9\Priority=High
Periodic\9\Command=Transceiver Status
Periodic\9\VFO=0
Periodic\10\Priority=Medium Low
Periodic\10\Command=Tuning Step
Periodic\10\VFO=-1
Periodic\size=10
Spans\size=0
Inputs\1\Num=0
Inputs\1\Reg=0

Wyświetl plik

@ -714,6 +714,100 @@ Commands\138\Min=0
Commands\138\Max=0
Commands\138\Command29=false
Commands\size=138
Periodic\1\Priority=Medium Low
Periodic\1\Command=Antenna
Periodic\1\VFO=-1
Periodic\2\Priority=Medium Low
Periodic\2\Command=Attenuator Status
Periodic\2\VFO=-1
Periodic\3\Priority=Medium High
Periodic\3\Command=Data Off Mod Input
Periodic\3\VFO=0
Periodic\4\Priority=Medium High
Periodic\4\Command=DATA1 Mod Input
Periodic\4\VFO=0
Periodic\5\Priority=Medium High
Periodic\5\Command=DATA2 Mod Input
Periodic\5\VFO=0
Periodic\6\Priority=Medium High
Periodic\6\Command=DATA3 Mod Input
Periodic\6\VFO=0
Periodic\7\Priority=Medium Low
Periodic\7\Command=Monitor Gain
Periodic\7\VFO=0
Periodic\8\Priority=Medium Low
Periodic\8\Command=Monitor Status
Periodic\8\VFO=0
Periodic\9\Priority=Medium
Periodic\9\Command=Overflow Status
Periodic\9\VFO=0
Periodic\10\Priority=Medium Low
Periodic\10\Command=Preamp Status
Periodic\10\VFO=-1
Periodic\11\Priority=Medium
Periodic\11\Command=RF Gain
Periodic\11\VFO=0
Periodic\12\Priority=Medium
Periodic\12\Command=RF Power
Periodic\12\VFO=0
Periodic\13\Priority=Highest
Periodic\13\Command=S Meter
Periodic\13\VFO=-1
Periodic\14\Priority=Medium
Periodic\14\Command=Scope Main Hold
Periodic\14\VFO=0
Periodic\15\Priority=Medium High
Periodic\15\Command=Scope Main Mode
Periodic\15\VFO=0
Periodic\16\Priority=Medium High
Periodic\16\Command=Scope Main Span
Periodic\16\VFO=0
Periodic\17\Priority=Medium
Periodic\17\Command=Scope Main Speed
Periodic\17\VFO=0
Periodic\18\Priority=Medium High
Periodic\18\Command=Scope Main/Sub
Periodic\18\VFO=0
Periodic\19\Priority=Medium High
Periodic\19\Command=Scope Single/Dual
Periodic\19\VFO=0
Periodic\20\Priority=Medium
Periodic\20\Command=Scope Sub Hold
Periodic\20\VFO=1
Periodic\21\Priority=Medium High
Periodic\21\Command=Scope Sub Mode
Periodic\21\VFO=1
Periodic\22\Priority=Medium High
Periodic\22\Command=Scope Sub Span
Periodic\22\VFO=1
Periodic\23\Priority=Medium
Periodic\23\Command=Scope Sub Speed
Periodic\23\VFO=1
Periodic\24\Priority=Medium
Periodic\24\Command=Selected Freq
Periodic\24\VFO=0
Periodic\25\Priority=Medium
Periodic\25\Command=Selected Mode
Periodic\25\VFO=0
Periodic\26\Priority=High
Periodic\26\Command=Transceiver Status
Periodic\26\VFO=0
Periodic\27\Priority=Medium
Periodic\27\Command=Tuner/ATU Status
Periodic\27\VFO=0
Periodic\28\Priority=Medium Low
Periodic\28\Command=Tuning Step
Periodic\28\VFO=0
Periodic\29\Priority=Medium
Periodic\29\Command=Unselected Freq
Periodic\29\VFO=1
Periodic\30\Priority=Medium
Periodic\30\Command=Unselected Mode
Periodic\30\VFO=1
Periodic\31\Priority=Medium
Periodic\31\Command=VFO Dual Watch
Periodic\31\VFO=0
Periodic\size=31
Spans\1\Num=0
Spans\1\Name=±2.5 KHz
Spans\1\Freq=2500

Wyświetl plik

@ -734,6 +734,103 @@ Commands\142\Min=0
Commands\142\Max=0
Commands\142\Command29=false
Commands\size=142
Periodic\1\Priority=Medium Low
Periodic\1\Command=Antenna
Periodic\1\VFO=0
Periodic\2\Priority=Medium Low
Periodic\2\Command=Attenuator Status
Periodic\2\VFO=0
Periodic\3\Priority=Medium High
Periodic\3\Command=Data Off Mod Input
Periodic\3\VFO=0
Periodic\4\Priority=Medium High
Periodic\4\Command=DATA1 Mod Input
Periodic\4\VFO=0
Periodic\5\Priority=Medium High
Periodic\5\Command=DATA2 Mod Input
Periodic\5\VFO=0
Periodic\6\Priority=Medium High
Periodic\6\Command=DATA3 Mod Input
Periodic\6\VFO=0
Periodic\7\Priority=Medium Low
Periodic\7\Command=Monitor Gain
Periodic\7\VFO=0
Periodic\8\Priority=Medium Low
Periodic\8\Command=Monitor Status
Periodic\8\VFO=0
Periodic\9\Priority=Medium
Periodic\9\Command=Overflow Status
Periodic\9\VFO=0
Periodic\10\Priority=Medium Low
Periodic\10\Command=Preamp Status
Periodic\10\VFO=0
Periodic\11\Priority=Medium
Periodic\11\Command=RF Gain
Periodic\11\VFO=0
Periodic\12\Priority=Medium
Periodic\12\Command=RF Power
Periodic\12\VFO=0
Periodic\13\Priority=Highest
Periodic\13\Command=S Meter
Periodic\13\VFO=0
Periodic\14\Priority=Medium
Periodic\14\Command=Scope Main Hold
Periodic\14\VFO=0
Periodic\15\Priority=Medium High
Periodic\15\Command=Scope Main Mode
Periodic\15\VFO=0
Periodic\16\Priority=Medium High
Periodic\16\Command=Scope Main Span
Periodic\16\VFO=0
Periodic\17\Priority=Medium
Periodic\17\Command=Scope Main Speed
Periodic\17\VFO=0
Periodic\18\Priority=Medium High
Periodic\18\Command=Scope Main/Sub
Periodic\18\VFO=0
Periodic\19\Priority=Medium High
Periodic\19\Command=Scope Single/Dual
Periodic\19\VFO=0
Periodic\20\Priority=Medium
Periodic\20\Command=Scope Sub Hold
Periodic\20\VFO=1
Periodic\21\Priority=Medium High
Periodic\21\Command=Scope Sub Mode
Periodic\21\VFO=1
Periodic\22\Priority=Medium High
Periodic\22\Command=Scope Sub Span
Periodic\22\VFO=1
Periodic\23\Priority=Medium
Periodic\23\Command=Scope Sub Speed
Periodic\23\VFO=1
Periodic\24\Priority=Medium
Periodic\24\Command=Selected Freq
Periodic\24\VFO=0
Periodic\25\Priority=Medium
Periodic\25\Command=Selected Mode
Periodic\25\VFO=0
Periodic\26\Priority=Medium Low
Periodic\26\Command=Tone Squelch Type
Periodic\26\VFO=0
Periodic\27\Priority=High
Periodic\27\Command=Transceiver Status
Periodic\27\VFO=0
Periodic\28\Priority=Medium
Periodic\28\Command=Tuner/ATU Status
Periodic\28\VFO=0
Periodic\29\Priority=Medium Low
Periodic\29\Command=Tuning Step
Periodic\29\VFO=0
Periodic\30\Priority=Medium
Periodic\30\Command=Unselected Freq
Periodic\30\VFO=1
Periodic\31\Priority=Medium
Periodic\31\Command=Unselected Mode
Periodic\31\VFO=1
Periodic\32\Priority=Medium
Periodic\32\Command=VFO Dual Watch
Periodic\32\VFO=0
Periodic\size=32
Spans\1\Num=0
Spans\1\Name=±2.5 KHz
Spans\1\Freq=2500

Wyświetl plik

@ -6,6 +6,7 @@ Manufacturer=Icom
Model=IC-905
CIVAddress=172
RigCtlDModel=0
NumberOfVFOs=1
SpectrumSeqMax=11
SpectrumAmpMax=160
SpectrumLenMax=475
@ -538,6 +539,70 @@ Commands\103\Min=0
Commands\103\Max=0
Commands\103\Command29=false
Commands\size=103
Periodic\1\Priority=Medium Low
Periodic\1\Command=Attenuator Status
Periodic\1\VFO=-1
Periodic\2\Priority=Medium High
Periodic\2\Command=Data Off Mod Input
Periodic\2\VFO=0
Periodic\3\Priority=Medium High
Periodic\3\Command=DATA1 Mod Input
Periodic\3\VFO=0
Periodic\4\Priority=Medium Low
Periodic\4\Command=Monitor Gain
Periodic\4\VFO=0
Periodic\5\Priority=Medium Low
Periodic\5\Command=Monitor Status
Periodic\5\VFO=0
Periodic\6\Priority=Medium
Periodic\6\Command=Overflow Status
Periodic\6\VFO=0
Periodic\7\Priority=Medium Low
Periodic\7\Command=Preamp Status
Periodic\7\VFO=-1
Periodic\8\Priority=Medium
Periodic\8\Command=RF Gain
Periodic\8\VFO=0
Periodic\9\Priority=Medium
Periodic\9\Command=RF Power
Periodic\9\VFO=0
Periodic\10\Priority=Highest
Periodic\10\Command=S Meter
Periodic\10\VFO=-1
Periodic\11\Priority=Medium
Periodic\11\Command=Scope Main Hold
Periodic\11\VFO=0
Periodic\12\Priority=Medium High
Periodic\12\Command=Scope Main Mode
Periodic\12\VFO=0
Periodic\13\Priority=Medium High
Periodic\13\Command=Scope Main Span
Periodic\13\VFO=0
Periodic\14\Priority=Medium
Periodic\14\Command=Scope Main Speed
Periodic\14\VFO=0
Periodic\15\Priority=Medium
Periodic\15\Command=Selected Freq
Periodic\15\VFO=0
Periodic\16\Priority=Medium
Periodic\16\Command=Selected Mode
Periodic\16\VFO=0
Periodic\17\Priority=Medium Low
Periodic\17\Command=Tone Squelch Type
Periodic\17\VFO=-1
Periodic\18\Priority=High
Periodic\18\Command=Transceiver Status
Periodic\18\VFO=0
Periodic\19\Priority=Medium Low
Periodic\19\Command=Tuning Step
Periodic\19\VFO=-1
Periodic\20\Priority=Medium
Periodic\20\Command=Unselected Freq
Periodic\20\VFO=1
Periodic\21\Priority=Medium
Periodic\21\Command=Unselected Mode
Periodic\21\VFO=1
Periodic\size=21
Spans\1\Num=0
Spans\1\Name=2.5 KHz
Spans\1\Freq=2500

Wyświetl plik

@ -6,6 +6,7 @@ Manufacturer=Icom
Model=IC-9700
CIVAddress=162
RigCtlDModel=3081
NumberOfVFOs=1
SpectrumSeqMax=11
SpectrumAmpMax=160
SpectrumLenMax=475
@ -633,6 +634,73 @@ Commands\122\Min=0
Commands\122\Max=0
Commands\122\Command29=false
Commands\size=122
Periodic\1\Priority=Medium Low
Periodic\1\Command=Attenuator Status
Periodic\1\VFO=-1
Periodic\2\Priority=Medium High
Periodic\2\Command=Data Off Mod Input
Periodic\2\VFO=0
Periodic\3\Priority=Medium High
Periodic\3\Command=DATA1 Mod Input
Periodic\3\VFO=0
Periodic\4\Priority=Medium Low
Periodic\4\Command=Monitor Gain
Periodic\4\VFO=0
Periodic\5\Priority=Medium Low
Periodic\5\Command=Monitor Status
Periodic\5\VFO=0
Periodic\6\Priority=Medium
Periodic\6\Command=Overflow Status
Periodic\6\VFO=0
Periodic\7\Priority=Medium Low
Periodic\7\Command=Preamp Status
Periodic\7\VFO=-1
Periodic\8\Priority=Medium
Periodic\8\Command=RF Gain
Periodic\8\VFO=0
Periodic\9\Priority=Medium
Periodic\9\Command=RF Power
Periodic\9\VFO=0
Periodic\10\Priority=Highest
Periodic\10\Command=S Meter
Periodic\10\VFO=-1
Periodic\11\Priority=Medium
Periodic\11\Command=Scope Main Hold
Periodic\11\VFO=0
Periodic\12\Priority=Medium High
Periodic\12\Command=Scope Main Mode
Periodic\12\VFO=0
Periodic\13\Priority=Medium High
Periodic\13\Command=Scope Main Span
Periodic\13\VFO=0
Periodic\14\Priority=Medium
Periodic\14\Command=Scope Main Speed
Periodic\14\VFO=0
Periodic\15\Priority=Medium
Periodic\15\Command=Selected Freq
Periodic\15\VFO=0
Periodic\16\Priority=Medium
Periodic\16\Command=Selected Mode
Periodic\16\VFO=0
Periodic\17\Priority=Medium Low
Periodic\17\Command=Tone Squelch Type
Periodic\17\VFO=-1
Periodic\18\Priority=High
Periodic\18\Command=Transceiver Status
Periodic\18\VFO=0
Periodic\19\Priority=Medium Low
Periodic\19\Command=Tuning Step
Periodic\19\VFO=-1
Periodic\20\Priority=Medium
Periodic\20\Command=Unselected Freq
Periodic\20\VFO=1
Periodic\21\Priority=Medium
Periodic\21\Command=Unselected Mode
Periodic\21\VFO=1
Periodic\22\Priority=Medium
Periodic\22\Command=VFO Dual Watch
Periodic\22\VFO=0
Periodic\size=22
Spans\1\Num=0
Spans\1\Name=±2.5 KHz
Spans\1\Freq=2500

Wyświetl plik

@ -1409,14 +1409,25 @@ void spectrumScope::receiveMode(modeInfo m)
queue->del(funcFilterWidth,vfo);
}
#if defined __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
#endif
switch (m.mk) {
case modeLSB:
case modeUSB:
passbandCenterFrequency = 0.0015;
// M0VSE this needs to be replaced with 1/2 the "actual" width of the RTTY signal+the mark freq.
case modeRTTY:
case modeRTTY_R:
passbandCenterFrequency = 0.00008925;
queue->del(funcCwPitch,vfo);
queue->del(funcDashRatio,vfo);
queue->del(funcKeySpeed,vfo);
break;
case modeLSB:
case modeUSB:
case modePSK:
case modePSK_R:
passbandCenterFrequency = 0.0015;
case modeAM:
queue->del(funcCwPitch,vfo);
queue->del(funcDashRatio,vfo);
@ -1442,6 +1453,9 @@ void spectrumScope::receiveMode(modeInfo m)
queue->del(funcKeySpeed,vfo);
break;
}
#if defined __GNUC__
#pragma GCC diagnostic pop
#endif
}
mode = m;
@ -1499,6 +1513,7 @@ void spectrumScope::receivePassband(quint16 pass)
void spectrumScope::selected(bool en)
{
isActive = en;
if (en)
this->setStyleSheet("QGroupBox { border:1px solid red;}");
else
@ -1636,21 +1651,53 @@ void spectrumScope::wfTheme(int num)
configTheme->setCurrentIndex(configTheme->findData(currentTheme));
}
void spectrumScope::setPBTInner (double hz) {
PBTInner = hz;
double pbFreq = ((double)(this->PBTInner) / this->passbandWidth) * 127.0;
qint16 newFreq = pbFreq + 128;
if (newFreq >= 0 && newFreq <= 255) {
configPbtInner->setValue(newFreq);
void spectrumScope::setPBTInner (uchar val) {
qint16 shift = (qint16)(val - 128);
double tempVar = ceil((shift / 127.0) * passbandWidth * 20000.0) / 20000.0;
// tempVar now contains value to the nearest 50Hz If CW mode, add/remove the cwPitch.
double pitch = 0.0;
if ((this->mode.mk == modeCW || this->mode.mk == modeCW_R) && this->passbandWidth > 0.0006)
{
pitch = (600.0 - cwPitch) / 1000000.0;
}
double newPBT = round((tempVar + pitch) * 200000.0) / 200000.0; // Nearest 5Hz.
if (newPBT != this->PBTInner) {
this->PBTInner = newPBT;
qInfo(logSystem()) << "New PBT Inner value received" << this->PBTInner << "CW Pitch" << this->cwPitch << "Passband" << this->passbandWidth;
double pbFreq = ((double)(this->PBTInner) / this->passbandWidth) * 127.0;
qint16 newFreq = pbFreq + 128;
if (newFreq >= 0 && newFreq <= 255) {
configPbtInner->blockSignals(true);
configPbtInner->setValue(newFreq);
configPbtInner->blockSignals(false);
}
}
}
void spectrumScope::setPBTOuter (double hz) {
PBTOuter = hz;
double pbFreq = ((double)(this->PBTOuter) / this->passbandWidth) * 127.0;
qint16 newFreq = pbFreq + 128;
if (newFreq >= 0 && newFreq <= 255) {
configPbtOuter->setValue(newFreq);
void spectrumScope::setPBTOuter (uchar val) {
qint16 shift = (qint16)(val - 128);
double tempVar = ceil((shift / 127.0) * this->passbandWidth * 20000.0) / 20000.0;
// tempVar now contains value to the nearest 50Hz If CW mode, add/remove the cwPitch.
double pitch = 0.0;
if ((this->mode.mk == modeCW || this->mode.mk == modeCW_R) && this->passbandWidth > 0.0006)
{
pitch = (600.0 - cwPitch) / 1000000.0;
}
double newPBT = round((tempVar + pitch) * 200000.0) / 200000.0; // Nearest 5Hz.
if (newPBT != this->PBTOuter) {
this->PBTOuter = newPBT;
qInfo(logSystem()) << "New PBT Outer value received" << this->PBTOuter << "CW Pitch" << this->cwPitch << "Passband" << this->passbandWidth;
double pbFreq = ((double)(this->PBTOuter) / this->passbandWidth) * 127.0;
qint16 newFreq = pbFreq + 128;
if (newFreq >= 0 && newFreq <= 255) {
configPbtOuter->blockSignals(true);
configPbtOuter->setValue(newFreq);
configPbtOuter->blockSignals(false);
}
}
}

Wyświetl plik

@ -64,10 +64,10 @@ public:
void receivePassband(quint16 pass);
double getPBTInner () { return PBTInner;}
void setPBTInner (double hz);
void setPBTInner (uchar val);
double getPBTOuter () { return PBTOuter;}
void setPBTOuter (double hz);
void setPBTOuter (uchar val);
quint16 getStepSize () { return stepSize;}
void setStepSize (quint16 hz) { stepSize = hz;}
@ -88,6 +88,7 @@ public:
void addFilter(QString text, QVariant data) {filterCombo->blockSignals(true); filterCombo->addItem(text,data); filterCombo->blockSignals(false);}
void selected(bool);
bool isSelected() {return isActive;}
void setHold(bool h);
void setSpeed(uchar s);
void displaySettings(int NumDigits, qint64 Minf, qint64 Maxf, int MinStep,FctlUnit unit,std::vector<bandType>* bands = Q_NULLPTR);
@ -269,6 +270,7 @@ private:
// Assorted settings
bool tuningFloorZeros=false;
bool clickDragTuning=false;
bool isActive;
};
#endif // SPECTRUMSCOPE_H

11
systemd/README 100644
Wyświetl plik

@ -0,0 +1,11 @@
in order to be able to autostart wfserver, this simple unitfile made by
Mick VK3ADD, will help you.
path and suggested name of the file:
/etc/systemd/system/wfserver.service

Wyświetl plik

@ -0,0 +1,12 @@
[Unit]
Description=WF Server
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=pi
ExecStart=/usr/local/bin/wfserver
[Install]
WantedBy=multi-user.target

Wyświetl plik

@ -96,7 +96,6 @@ wfmain::wfmain(const QString settingsFile, const QString logFile, bool debugMode
qRegisterMetaType<memoryType>();
qRegisterMetaType<antennaInfo>();
qRegisterMetaType<scopeData>();
qRegisterMetaType<queueItemType>();
qRegisterMetaType<queueItem>();
qRegisterMetaType<cacheItem>();
qRegisterMetaType<spectrumBounds>();
@ -131,6 +130,11 @@ wfmain::wfmain(const QString settingsFile, const QString logFile, bool debugMode
QStringList rigs = systemRigDir.entryList(QStringList() << "*.rig" << "*.RIG", QDir::Files);
for (QString &rig: rigs) {
QSettings* rigSettings = new QSettings(systemRigDir.absoluteFilePath(rig), QSettings::Format::IniFormat);
#if (QT_VERSION < QT_VERSION_CHECK(6,0,0))
rigSettings->setIniCodec("UTF-8");
#endif
if (!rigSettings->childGroups().contains("Rig"))
{
qWarning() << rig << "Does not seem to be a rig description file";
@ -512,10 +516,10 @@ void wfmain::makeRig()
});
connect(this->rpt, &repeaterSetup::setTransmitFrequency, this->rig,
[=](const freqt &transmitFreq) { queue->add(priorityImmediate,queueItem(funcFreqSet,QVariant::fromValue<freqt>(transmitFreq),false));});
[=](const freqt &transmitFreq) { queue->add(priorityImmediate,queueItem(funcUnselectedFreq,QVariant::fromValue<freqt>(transmitFreq),false));});
connect(this->rpt, &repeaterSetup::setTransmitMode, this->rig,
[=](const modeInfo &transmitMode) { queue->add(priorityImmediate,queueItem(funcModeSet,QVariant::fromValue<modeInfo>(transmitMode),false));});
[=](const modeInfo &transmitMode) { queue->add(priorityImmediate,queueItem(funcModeSet,QVariant::fromValue<modeInfo>(transmitMode),false));});
connect(this->rpt, &repeaterSetup::selectVFO, this->rig,
[=](const vfo_t &v) { queue->add(priorityImmediate,queueItem(funcSelectVFO,QVariant::fromValue<vfo_t>(v),false));});
@ -710,29 +714,6 @@ void wfmain::receiveStatusUpdate(networkStatus status)
void wfmain::receiveNetworkAudioLevels(networkAudioLevels l)
{
/*
meter_t m2mtr = ui->meter2Widget->getMeterType();
if(m2mtr == meterAudio)
{
if(amTransmitting)
{
if(l.haveTxLevels)
ui->meter2Widget->setLevels(l.txAudioRMS, l.txAudioPeak);
} else {
if(l.haveRxLevels)
ui->meter2Widget->setLevels(l.rxAudioRMS, l.rxAudioPeak);
}
} else if (m2mtr == meterTxMod) {
if(l.haveTxLevels)
ui->meter2Widget->setLevels(l.txAudioRMS, l.txAudioPeak);
} else if (m2mtr == meterRxAudio) {
if(l.haveRxLevels)
ui->meter2Widget->setLevels(l.rxAudioRMS, l.rxAudioPeak);
}
*/
meter_t m = meterNone;
if(l.haveRxLevels)
{
@ -744,19 +725,10 @@ void wfmain::receiveNetworkAudioLevels(networkAudioLevels l)
m = meterTxMod;
receiveMeter(m, l.txAudioPeak);
}
}
void wfmain::setupMainUI()
{
ui->meter2Widget->hide();
ui->meter3Widget->hide();
// Future ideas:
//ui->meter2selectionCombo->addItem("Transmit Audio", meterTxMod);
//ui->meter2selectionCombo->addItem("Receive Audio", meterRxAudio);
//ui->meter2selectionCombo->addItem("Latency", meterLatency);
// Set scroll wheel response (tick interval)
// and set arrow key response (single step)
ui->rfGainSlider->setTickInterval(100);
@ -3937,8 +3909,13 @@ void wfmain::receiveRigID(rigCapabilities rigCaps)
// Set the second meter here as I suspect we need to be connected for it to work?
changeMeterType(prefs.meter2Type, 2);
changeMeterType(prefs.meter3Type, 3);
ui->meter2Widget->blockMeterType(prefs.meter3Type);
ui->meter3Widget->blockMeterType(prefs.meter2Type);
ui->meter2Widget->setCompReverse(prefs.compMeterReverse);
ui->meter3Widget->setCompReverse(prefs.compMeterReverse);
// for (int i = 0; i < ui->meter2selectionCombo->count(); i++)
// {
// if (static_cast<meter_t>(ui->meter2selectionCombo->itemData(i).toInt()) == prefs.meter2Type)
@ -3962,6 +3939,21 @@ void wfmain::initPeriodicCommands()
queue->clear();
foreach (auto cap, rigCaps.periodic) {
if (cap.vfo == -1) {
for (uchar v=0;v<rigCaps.numVFO;v++)
{
qDebug(logSystem()) << "Inserting command" << funcString[cap.func] << "priority" << cap.priority << "on VFO" << QString::number(v);
queue->add(queuePriority(cap.prioVal),cap.func,true,v);
}
}
else {
qDebug(logSystem()) << "Inserting command" << funcString[cap.func] << "priority" << cap.priority << "on VFO" << QString::number(cap.vfo);
queue->add(queuePriority(cap.prioVal),cap.func,true,cap.vfo);
}
}
/*
queue->add(priorityMedium,funcSelectedFreq,true,false);
queue->add(priorityMedium,funcSelectedMode,true,false);
//queue->add(priorityMedium,(rigCaps.commands.contains(funcSelectedMode)?funcNone:funcDataModeWithFilter),true,false);
@ -4007,6 +3999,9 @@ void wfmain::initPeriodicCommands()
queue->add(priorityMediumLow,funcToneSquelchType,true,false);
queue->add(priorityHighest,queueItem(funcSMeter,true));
*/
meter* marray[2];
marray[0] = ui->meter2Widget;
marray[1] = ui->meter3Widget;
@ -4296,13 +4291,16 @@ void wfmain::on_tuneNowBtn_clicked()
{
queue->addUnique(priorityImmediate,queueItem(funcTunerStatus,QVariant::fromValue<uchar>(2U)));
showStatusBarText("Starting ATU tuning cycle...");
ATUCheckTimer.setSingleShot(true);
ATUCheckTimer.start(5000);
}
void wfmain::on_tuneEnableChk_clicked(bool checked)
{
queue->addUnique(priorityImmediate,queueItem(funcTunerStatus,QVariant::fromValue<uchar>(checked)));
showStatusBarText(QString("Turning %0 ATU").arg(checked?"on":"off"));
ATUCheckTimer.setSingleShot(true);
ATUCheckTimer.start(5000);
}
bool wfmain::on_exitBtn_clicked()
@ -4382,20 +4380,24 @@ void wfmain::receiveATUStatus(unsigned char atustatus)
ui->tuneEnableChk->blockSignals(true);
ui->tuneEnableChk->setChecked(false);
ui->tuneEnableChk->blockSignals(false);
showStatusBarText("ATU not enabled.");
if(ATUCheckTimer.isActive())
showStatusBarText("ATU not enabled.");
break;
case 0x01:
// ATU enabled
ui->tuneEnableChk->blockSignals(true);
ui->tuneEnableChk->setChecked(true);
ui->tuneEnableChk->blockSignals(false);
showStatusBarText("ATU enabled.");
if(ATUCheckTimer.isActive())
showStatusBarText("ATU enabled.");
break;
case 0x02:
// ATU tuning in-progress.
// Add command queue to check again and update status bar
// qInfo(logSystem()) << "Received ATU status update that *tuning* is taking place";
showStatusBarText("ATU is Tuning...");
ATUCheckTimer.stop();
ATUCheckTimer.start(5000);
queue->add(priorityHighest,funcTunerStatus);
break;
default:
@ -4638,8 +4640,12 @@ void wfmain::receiveTuningStep(unsigned char step)
}
}
void wfmain::receiveMeter(meter_t inMeter, unsigned char level)
void wfmain::receiveMeter(meter_t inMeter, unsigned char level,unsigned char vfo)
{
// Currently do nothing with meters from second VFO
if (vfo)
return;
switch(inMeter)
{
// These first two meters, S and Power,
@ -4799,20 +4805,26 @@ void wfmain::on_rxAntennaCheck_clicked(bool value)
queue->add(priorityImmediate,queueItem(funcAntenna,QVariant::fromValue<antennaInfo>(ant),false));
}
void wfmain::receivePreamp(unsigned char pre)
void wfmain::receivePreamp(unsigned char pre, uchar vfo)
{
ui->preampSelCombo->setCurrentIndex(ui->preampSelCombo->findData(pre));
if (!vfo) {
ui->preampSelCombo->setCurrentIndex(ui->preampSelCombo->findData(pre));
}
}
void wfmain::receiveAttenuator(unsigned char att)
void wfmain::receiveAttenuator(unsigned char att, uchar vfo)
{
ui->attSelCombo->setCurrentIndex(ui->attSelCombo->findData(att));
if (!vfo) {
ui->attSelCombo->setCurrentIndex(ui->attSelCombo->findData(att));
}
}
void wfmain::receiveAntennaSel(unsigned char ant, bool rx)
void wfmain::receiveAntennaSel(unsigned char ant, bool rx, uchar vfo)
{
ui->antennaSelCombo->setCurrentIndex(ant);
ui->rxAntennaCheck->setChecked(rx);
if (!vfo) {
ui->antennaSelCombo->setCurrentIndex(ant);
ui->rxAntennaCheck->setChecked(rx);
}
}
void wfmain::calculateTimingParameters()
@ -5046,7 +5058,6 @@ void wfmain::changeMeterType(meter_t m, int meterNum)
if(newMeterType==meterNone)
{
uiMeter->hide();
uiMeter->setMeterType(newMeterType);
} else {
uiMeter->show();
@ -5423,23 +5434,27 @@ void wfmain::receiveValue(cacheItem val){
}
switch (val.command)
{
case funcFreqGet:
case funcFreqTR:
// If current VFO (0) isn't selected, then send this to other VFO
if (!vfos[val.vfo]->isSelected()){
val.vfo=!bool(val.vfo);
}
vfos[val.vfo]->setFrequency(val.value.value<freqt>());
break;
#if defined __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
#endif
case funcUnselectedFreq:
val.vfo=1;
case funcFreqGet:
case funcFreqTR:
case funcSelectedFreq:
{
freqt f = val.value.value<freqt>();
vfos[val.vfo]->setFrequency(f);
vfos[val.vfo]->setFrequency(val.value.value<freqt>());
rpt->handleUpdateCurrentMainFrequency(val.value.value<freqt>());
}
#if defined __GNUC__
#pragma GCC diagnostic pop
#endif
case funcReadTXFreq:
break;
case funcVFODualWatch:
@ -5447,20 +5462,24 @@ void wfmain::receiveValue(cacheItem val){
break;
case funcModeGet:
case funcModeTR:
case funcSelectedMode:
if (vfos.size()) {
vfos[0]->receiveMode(val.value.value<modeInfo>());
finputbtns->updateCurrentMode(val.value.value<modeInfo>().mk);
finputbtns->updateFilterSelection(val.value.value<modeInfo>().filter);
rpt->handleUpdateCurrentMainMode(val.value.value<modeInfo>());
cw->handleCurrentModeUpdate(val.value.value<modeInfo>().mk);
// If current VFO (0) isn't selected, then send this to other VFO
if (!vfos[val.vfo]->isSelected()){
val.vfo=!bool(val.vfo);
}
case funcSelectedMode:
vfos[val.vfo]->receiveMode(val.value.value<modeInfo>());
finputbtns->updateCurrentMode(val.value.value<modeInfo>().mk);
finputbtns->updateFilterSelection(val.value.value<modeInfo>().filter);
rpt->handleUpdateCurrentMainMode(val.value.value<modeInfo>());
cw->handleCurrentModeUpdate(val.value.value<modeInfo>().mk);
break;
case funcUnselectedMode:
val.vfo=1;
if (vfos.size()>1)
vfos[1]->receiveMode(val.value.value<modeInfo>());
vfos[val.vfo]->receiveMode(val.value.value<modeInfo>());
break;
#if defined __GNUC__
#pragma GCC diagnostic pop
#endif
case funcVFOBandMS:
break;
case funcSatelliteMemory:
@ -5483,31 +5502,17 @@ void wfmain::receiveValue(cacheItem val){
receiveTuningStep(val.value.value<uchar>());
break;
case funcAttenuator:
receiveAttenuator(val.value.value<uchar>());
receiveAttenuator(val.value.value<uchar>(),val.vfo);
break;
case funcAntenna:
receiveAntennaSel(val.value.value<antennaInfo>().antenna,val.value.value<antennaInfo>().rx);
receiveAntennaSel(val.value.value<antennaInfo>().antenna,val.value.value<antennaInfo>().rx,val.vfo);
break;
case funcPBTOuter:
vfos[val.vfo]->setPBTOuter(val.value.value<uchar>());
break;
case funcPBTInner:
{
uchar level = val.value.value<uchar>();
qint16 shift = (qint16)(level - 128);
double tempVar = ceil((shift / 127.0) * vfos[val.vfo]->getPassbandWidth() * 20000.0) / 20000.0;
// tempVar now contains value to the nearest 50Hz If CW mode, add/remove the cwPitch.
double pitch = 0.0;
modeInfo mode = vfos[val.vfo]->currentMode();
if ((mode.mk == modeCW || mode.mk == modeCW_R) && vfos[val.vfo]->getPassbandWidth() > 0.0006)
{
pitch = (600.0 - cwPitch) / 1000000.0;
}
double newVal = round((tempVar + pitch) * 200000.0) / 200000.0; // Nearest 5Hz.
if (val.command == funcPBTInner) {
vfos[val.vfo]->setPBTInner(newVal);
} else {
vfos[val.vfo]->setPBTOuter(newVal);
}
vfos[val.vfo]->setPBTInner(val.value.value<uchar>());
break;
}
case funcIFShift:
@ -5524,6 +5529,7 @@ void wfmain::receiveValue(cacheItem val){
foreach (auto vfo, vfos) {
vfo->receiveCwPitch(val.value.value<uchar>());
}
// Also send to CW window
cw->handlePitch(val.value.value<uchar>());
break;
case funcMicGain:
@ -5572,7 +5578,7 @@ void wfmain::receiveValue(cacheItem val){
case funcSMeterSqlStatus:
break;
case funcSMeter:
receiveMeter(meter_t::meterS,val.value.value<uchar>());
receiveMeter(meter_t::meterS,val.value.value<uchar>(),val.vfo);
break;
case funcVariousSql:
break;
@ -5582,29 +5588,29 @@ void wfmain::receiveValue(cacheItem val){
}
break;
case funcCenterMeter:
receiveMeter(meter_t::meterCenter,val.value.value<uchar>());
receiveMeter(meter_t::meterCenter,val.value.value<uchar>(),val.vfo);
break;
case funcPowerMeter:
receiveMeter(meter_t::meterPower,val.value.value<uchar>());
receiveMeter(meter_t::meterPower,val.value.value<uchar>(),val.vfo);
break;
case funcSWRMeter:
receiveMeter(meter_t::meterSWR,val.value.value<uchar>());
receiveMeter(meter_t::meterSWR,val.value.value<uchar>(),val.vfo);
break;
case funcALCMeter:
receiveMeter(meter_t::meterALC,val.value.value<uchar>());
receiveMeter(meter_t::meterALC,val.value.value<uchar>(),val.vfo);
break;
case funcCompMeter:
receiveMeter(meter_t::meterComp,val.value.value<uchar>());
receiveMeter(meter_t::meterComp,val.value.value<uchar>(),val.vfo);
break;
case funcVdMeter:
receiveMeter(meter_t::meterVoltage,val.value.value<uchar>());
receiveMeter(meter_t::meterVoltage,val.value.value<uchar>(),val.vfo);
break;
case funcIdMeter:
receiveMeter(meter_t::meterCurrent,val.value.value<uchar>());
receiveMeter(meter_t::meterCurrent,val.value.value<uchar>(),val.vfo);
break;
// 0x16 enable/disable functions:
case funcPreamp:
receivePreamp(val.value.value<uchar>());
receivePreamp(val.value.value<uchar>(),val.vfo);
break;
case funcAGCTime:
break;
@ -5801,7 +5807,7 @@ void wfmain::receiveValue(cacheItem val){
vfos[0]->selected(!subScope);
vfos[1]->selected(subScope);
} else {
vfos[0]->selected(false);
vfos[0]->selected(true);
vfos[1]->selected(false);
}
}

Wyświetl plik

@ -395,7 +395,7 @@ private slots:
void receiveIFShift(unsigned char level);
// Meters:
void receiveMeter(meter_t meter, unsigned char level);
void receiveMeter(meter_t meter, unsigned char level, unsigned char vfo=0);
// void receiveSMeter(unsigned char level);
// void receivePowerMeter(unsigned char level);
// void receiveALCMeter(unsigned char level);
@ -403,9 +403,9 @@ private slots:
void receiveATUStatus(unsigned char atustatus);
void receivePreamp(unsigned char pre);
void receiveAttenuator(unsigned char att);
void receiveAntennaSel(unsigned char ant, bool rx);
void receivePreamp(unsigned char pre, uchar vfo);
void receiveAttenuator(unsigned char att, uchar vfo);
void receiveAntennaSel(unsigned char ant, bool rx,uchar vfo);
void receiveRigID(rigCapabilities rigCaps);
void receiveFoundRigID(rigCapabilities rigCaps);
void receivePortError(errorType err);
@ -513,6 +513,7 @@ private:
void initLogging();
QTimer logCheckingTimer;
int logCheckingOldPosition = 0;
QTimer ATUCheckTimer;
QCustomPlot *plot; // line plot
QCustomPlot *wf; // waterfall image

Wyświetl plik

@ -115,17 +115,22 @@ unix:target.path = $$PREFIX/bin
INSTALLS += target
# Why doesn't this seem to do anything?
unix:DISTFILES += resources/wfview.png \
unix:DISTFILES += resources/unix_icons/wfview.png \
resources/install.sh
unix:DISTFILES += resources/wfview.desktop
unix:DISTFILES += resources/org.wfview.wfview.metainfo.xml
unix:applications.files = resources/wfview.desktop
unix:applications.path = $$PREFIX/share/applications
INSTALLS += applications
unix:pixmaps.files = resources/wfview.png
unix:pixmaps.path = $$PREFIX/share/pixmaps
INSTALLS += pixmaps
unix:icons.files = resources/unix_icons/wfview.png
unix:icons.path = $$PREFIX/share/icons/hicolor/256x256/apps
INSTALLS += icons
unix:metainfo.files = resources/org.wfview.wfview.metainfo.xml
unix:metainfo.path = $$PREFIX/share/metainfo
INSTALLS += metainfo
unix:stylesheets.files = qdarkstyle
unix:stylesheets.path = $$PREFIX/share/wfview

Wyświetl plik

@ -209,7 +209,7 @@ cmdLCDWaterfall, cmdLCDSpectrum, cmdLCDNothing, cmdSeparator
// funcs and funcString MUST match exactly (and NUMFUNCS must be updated)
#define NUMFUNCS 212
#define NUMFUNCS 244
enum funcs { funcNone,
funcFreqTR, funcModeTR, funcBandEdgeFreq, funcFreqGet, funcModeGet, funcFreqSet, // \x00
@ -244,6 +244,12 @@ funcScopeMainSub, funcScopeSingleDual, funcScopeMainMode, funcSco
funcScopeMainEdge, funcScopeSubEdge, funcScopeMainHold, funcScopeSubHold, funcScopeMainRef, funcScopeSubRef,
funcScopeMainSpeed, funcScopeSubSpeed, funcScopeMainVBW, funcScopeSubVBW, funcScopeMainRBW, funcScopeSubRBW,
funcScopeDuringTX, funcScopeCenterType, funcScopeFixedEdgeFreq, funcVoiceTX, funcMainSubPrefix, funcAFCSetting,
funcSSBRXHPFLPF, funcSSBRXBass, funcSSBRXTreble, FuncAMRXHPFLPF, funcAMRXBass, funcAMRXTreble,
funcFMRXHPFLPF, funcFMRXBass, funcFMRXTreble, FuncCWRXHPFLPF, funcCWRXTreble, funcCWRXBass,
funcSSBTXHLPLPF, funcSSBTXBass, funcSSBTXTreble, FuncAMTXHPFLPF, funcAMTXBass, funcAMTXTreble,
funcFMTXHPFLPF, funcFMTXBass, funcFMTXTreble, funcBeepLevel, funcBeepLevelLimit, funcBeepConfirmation,
funcBandEdgeBeep, funcBeepMain, funcBeepSub, funcRFSQLControl, funcTXDelayHF, funcTXDelay50m,
funcTimeOutTimer, funcTimeOutCIV,
funcGPSTXMode, funcSatelliteMemory, funcGPSPosition, funcMemoryGroup, funcSelectVFO, funcSeparator,
funcLCDWaterfall, funcLCDSpectrum, funcLCDNothing, funcPageUp, funcPageDown, funcVFOFrequency,
funcVFOMode, funcRigctlFunction, funcRigctlLevel, funcRigctlParam, funcRXAudio, funcTXAudio,
@ -285,6 +291,12 @@ static QString funcString[] { "None",
"Scope Main Edge", "Scope Sub Edge", "Scope Main Hold", "Scope Sub Hold", "Scope Main Ref", "Scope Sub Ref",
"Scope Main Speed", "Scope Sub Speed", "Scope Main VBW", "Scope Sub VBW", "Scope Main RBW", "Scope Sub RBW",
"Scope During TX", "Scope Center Type", "Scope Fixed Edge Freq", "Voice TX", "Main/Sub Prefix", "AFC Function",
"SSB RX HPFLPF", "SSB RX Bass", "SSB RX Treble", "AM RX HPFLPF", "AM RX Bass", "AM RX Treble",
"FM RX HPFLPF", "FM RX Bass", "FM RX Treble", "CW RX HPFLPF", "CW RX Bass", "CW RX Treble",
"SSB TX HPFLPF", "SSB TX Bass", "SSB TX Treble", "AM TX HPFLPF", "AM TX Bass", "AM TX Treble",
"FM TX HPFLPF", "FM TX Bass", "FM TX Treble", "Beep Level", "Beep Level Limit", "Beep Confirmation",
"Band Edge Beep", "Beep Main Band", "Beep Sub Band", "RF SQL Control", "TX Delay HF", "TX Delay 50m",
"Timeout Timer", "Timeout C-IV",
"GPS TX Mode", "Satellite Memory", "GPS Position", "Memory Group", "-Select VFO", "-Seperator",
"-LCD Waterfall", "-LCD Spectrum", "-LCD Nothing", "-Page Up", "-Page Down", "-VFO Frequency",
"-VFO Mode", "-Rigctl Function", "-Rigctl Level", "-Rigctl Param", "-RX Audio Data", "-TX Audio Data",
@ -413,6 +425,17 @@ enum usbCommandType{ commandButton, commandKnob, commandAny };
enum usbFeatureType { featureReset,featureResetKeys, featureEventsA, featureEventsB, featureFirmware, featureSerial, featureButton, featureSensitivity, featureBrightness,
featureOrientation, featureSpeed, featureColor, featureOverlay, featureTimeout, featureLCD, featureGraph, featureLEDControl };
struct periodicType {
periodicType() {};
periodicType(funcs func, QString priority, char vfo) : func(func), priority(priority), prioVal(0), vfo(vfo) {};
periodicType(funcs func, QString priority, int prioVal, char vfo) : func(func), priority(priority), prioVal(prioVal), vfo(vfo) {};
funcs func;
QString priority;
int prioVal;
char vfo;
};
inline QString getMeterDebug(meter_t m) {
QString rtn = QString("Meter name: ");
switch(m) {