From 62c93da2166a2c88d9ab9d77e44318852c5bd1c4 Mon Sep 17 00:00:00 2001 From: Phil Taylor Date: Sun, 31 Mar 2024 12:46:32 +0100 Subject: [PATCH] IC905 fixes --- rigcommander.cpp | 22 ++++++------ rigcreator.cpp | 6 ++-- rigs/IC-905.rig | 91 ++++++++++++++++++++++++----------------------- spectrumscope.cpp | 4 ++- wfmain.cpp | 1 + 5 files changed, 65 insertions(+), 59 deletions(-) diff --git a/rigcommander.cpp b/rigcommander.cpp index decc34a..7f1baf5 100644 --- a/rigcommander.cpp +++ b/rigcommander.cpp @@ -746,15 +746,9 @@ void rigCommander::parseCommand() freqt test; QVector memParser; QVariant value; + uchar vfo=0; // Used for second VFO switch (func) { - case funcFreqGet: - case funcFreqTR: - case funcReadTXFreq: - { - value.setValue(parseFreqData(payloadIn,receiver)); - break; - } case funcVFODualWatch: value.setValue(static_cast(bool(payloadIn[0]))); break; @@ -764,12 +758,19 @@ void rigCommander::parseCommand() #endif case funcSubFreq: receiver = 1; - case funcSelectedFreq: case funcUnselectedFreq: + if (func == funcUnselectedFreq) + vfo=1; + case funcSelectedFreq: case funcMainFreq: + case funcFreqGet: + case funcFreqTR: + case funcReadTXFreq: { - //qInfo(logRig()) << "Freq len:" << payloadIn.size() << "receiver=" << receiver << "data:" << payloadIn.toHex(' '); - value.setValue(parseFreqData(payloadIn,receiver)); + value.setValue(parseFreqData(payloadIn,vfo)); + //qInfo(logRig()) << funcString[func] << "len:" << payloadIn.size() << "receiver=" << receiver << "vfo=" << vfo << + // "value:" << value.value().Hz << "data:" << payloadIn.toHex(' '); + break; } case funcModeGet: @@ -1965,6 +1966,7 @@ freqt rigCommander::parseFreqData(QByteArray data, uchar receiver) freq.Hz = parseFreqDataToInt(data); freq.MHzDouble = freq.Hz/1000000.0; freq.VFO = selVFO_t(receiver); + //qInfo(logRig()) << "Received Frequency" << freq.Hz << "vfo" << receiver; return freq; } diff --git a/rigcreator.cpp b/rigcreator.cpp index 15a274f..03d7ce7 100644 --- a/rigcreator.cpp +++ b/rigcreator.cpp @@ -275,8 +275,8 @@ void rigCreator::loadRigFile(QString file) ui->bands->insertRow(ui->bands->rowCount()); ui->bands->model()->setData(ui->bands->model()->index(c,0),QString::number(settings->value("Num", 0).toUInt()).rightJustified(2,'0')); ui->bands->model()->setData(ui->bands->model()->index(c,1),QString::number(settings->value("BSR", 0).toUInt()).rightJustified(2,'0')); - ui->bands->model()->setData(ui->bands->model()->index(c,2),settings->value("Start", 0ULL).toInt(),Qt::DisplayRole); - ui->bands->model()->setData(ui->bands->model()->index(c,3),settings->value("End", 0ULL).toInt(),Qt::DisplayRole); + ui->bands->model()->setData(ui->bands->model()->index(c,2),settings->value("Start", 0ULL).toString(),Qt::DisplayRole); + ui->bands->model()->setData(ui->bands->model()->index(c,3),settings->value("End", 0ULL).toString(),Qt::DisplayRole); ui->bands->model()->setData(ui->bands->model()->index(c,4),settings->value("Range", 0.0).toString()); ui->bands->model()->setData(ui->bands->model()->index(c,5),settings->value("MemoryGroup", -1).toString()); ui->bands->model()->setData(ui->bands->model()->index(c,6),settings->value("Name", "").toString()); @@ -529,7 +529,7 @@ void rigCreator::saveRigFile(QString file) //settings->remove("Spans"); - ui->spans->sortByColumn(0,Qt::AscendingOrder); + ui->spans->sortByColumn(2,Qt::AscendingOrder); settings->beginWriteArray("Spans"); for (int n = 0; nspans->rowCount();n++) { diff --git a/rigs/IC-905.rig b/rigs/IC-905.rig index abf748b..f1fb583 100644 --- a/rigs/IC-905.rig +++ b/rigs/IC-905.rig @@ -6,7 +6,8 @@ Manufacturer=Icom Model=IC-905 CIVAddress=172 RigCtlDModel=0 -NumberOfVFOs=1 +NumberOfReceivers=1 +NumberOfVFOs=2 SpectrumSeqMax=11 SpectrumAmpMax=160 SpectrumLenMax=475 @@ -601,50 +602,50 @@ Periodic\20\Command=Tuning Step Periodic\20\VFO=-1 Periodic\21\Priority=Medium Periodic\21\Command=Unselected Freq -Periodic\21\VFO=1 +Periodic\21\VFO=0 Periodic\22\Priority=Medium Periodic\22\Command=Unselected Mode -Periodic\22\VFO=1 +Periodic\22\VFO=0 Periodic\size=22 Spans\1\Num=0 Spans\1\Name=±2.5 KHz Spans\1\Freq=2500 -Spans\2\Num=0 -Spans\2\Name=±5 MHz -Spans\2\Freq=5000000 -Spans\3\Num=0 -Spans\3\Name=±10 MHz -Spans\3\Freq=10000000 -Spans\4\Num=0 -Spans\4\Name=±25 MHz -Spans\4\Freq=25000000 -Spans\5\Num=1 -Spans\5\Name=±5 KHz -Spans\5\Freq=5000 -Spans\6\Num=2 -Spans\6\Name=±10 KHz -Spans\6\Freq=10000 -Spans\7\Num=3 -Spans\7\Name=±25 KHz -Spans\7\Freq=25000 -Spans\8\Num=4 -Spans\8\Name=±50 KHz -Spans\8\Freq=50000 -Spans\9\Num=5 -Spans\9\Name=±100 KHz -Spans\9\Freq=100000 -Spans\10\Num=6 -Spans\10\Name=±250 KHz -Spans\10\Freq=250000 -Spans\11\Num=7 -Spans\11\Name=±500 KHz -Spans\11\Freq=500000 -Spans\12\Num=8 -Spans\12\Name=±1 MHz -Spans\12\Freq=1000000 -Spans\13\Num=9 -Spans\13\Name=±2.5 MHz -Spans\13\Freq=2500000 +Spans\2\Num=1 +Spans\2\Name=±5 KHz +Spans\2\Freq=5000 +Spans\3\Num=2 +Spans\3\Name=±10 KHz +Spans\3\Freq=10000 +Spans\4\Num=3 +Spans\4\Name=±25 KHz +Spans\4\Freq=25000 +Spans\5\Num=4 +Spans\5\Name=±50 KHz +Spans\5\Freq=50000 +Spans\6\Num=5 +Spans\6\Name=±100 KHz +Spans\6\Freq=100000 +Spans\7\Num=6 +Spans\7\Name=±250 KHz +Spans\7\Freq=250000 +Spans\8\Num=7 +Spans\8\Name=±500 KHz +Spans\8\Freq=500000 +Spans\9\Num=8 +Spans\9\Name=±1 MHz +Spans\9\Freq=1000000 +Spans\10\Num=9 +Spans\10\Name=±2.5 MHz +Spans\10\Freq=2500000 +Spans\11\Num=0 +Spans\11\Name=±5 MHz +Spans\11\Freq=5000000 +Spans\12\Num=0 +Spans\12\Name=±10 MHz +Spans\12\Freq=10000000 +Spans\13\Num=0 +Spans\13\Name=±25 MHz +Spans\13\Freq=25000000 Spans\size=13 Inputs\1\Num=0 Inputs\1\Reg=0 @@ -667,22 +668,22 @@ Inputs\6\Name=M/A Inputs\size=6 Bands\1\Num=0 Bands\1\BSR=6 -Bands\1\Start=1410065408 -Bands\1\End=1910065408 +Bands\1\Start=10000000000 +Bands\1\End=10500000000 Bands\1\Range=10500 Bands\1\MemoryGroup=-1 Bands\1\Name=3 cm Bands\2\Num=1 Bands\2\BSR=5 -Bands\2\Start=1355032704 -Bands\2\End=1630032704 +Bands\2\Start=5650000000 +Bands\2\End=5925000000 Bands\2\Range=5925 Bands\2\MemoryGroup=-1 Bands\2\Name=6 cm Bands\3\Num=3 Bands\3\BSR=4 -Bands\3\Start=0 -Bands\3\End=0 +Bands\3\Start=2400000000 +Bands\3\End=2450000000 Bands\3\Range=2450 Bands\3\MemoryGroup=-1 Bands\3\Name=13 cm diff --git a/spectrumscope.cpp b/spectrumscope.cpp index 5a83bb8..9e62f89 100644 --- a/spectrumscope.cpp +++ b/spectrumscope.cpp @@ -1725,7 +1725,8 @@ void spectrumScope::setPBTOuter (uchar val) { void spectrumScope::setFrequency(freqt f, uchar vfo) { - // Currently set both VFO to the same value, needs fixing (M0VSE) + //qInfo() << "Setting Frequency vfo=" << vfo << "Freq:" << f.Hz; + if (vfo < numVFO) { freqDisplay[vfo]->blockSignals(true); @@ -1734,6 +1735,7 @@ void spectrumScope::setFrequency(freqt f, uchar vfo) } if (vfo==0) freq = f; + } void spectrumScope::displaySettings(int numDigits, qint64 minf, qint64 maxf, int minStep,FctlUnit unit,std::vector* bands) diff --git a/wfmain.cpp b/wfmain.cpp index d5dc0e2..79dc4c7 100644 --- a/wfmain.cpp +++ b/wfmain.cpp @@ -3568,6 +3568,7 @@ void wfmain:: getInitialRigState() foreach (auto receiver, receivers) { receiver->enableScope(this->rigCaps->commands.contains(funcScopeMainMode)); + //qInfo(logSystem()) << "Display Settings start:" << start << "end:" << end; receiver->displaySettings(0, start, end, 1,(FctlUnit)prefs.frequencyUnits,&rigCaps->bands); }