kopia lustrzana https://gitlab.com/eliggett/wfview
Changed method for adding modes to rigs and populating the rig menu.
This should be easier to maintain and better in the long run.merge-requests/4/head
rodzic
38c081baa9
commit
d4f46e60f1
19
freqmemory.h
19
freqmemory.h
|
@ -20,7 +20,24 @@ enum mode_kind {
|
|||
modeLSB_D=0x80,
|
||||
modeUSB_D=0x81,
|
||||
modeDV=0x17,
|
||||
modeDD=0x27
|
||||
modeDD=0x27,
|
||||
modeWFM,
|
||||
modeS_AMD,
|
||||
modeS_AML,
|
||||
modeS_AMU,
|
||||
modeP25,
|
||||
modedPMR,
|
||||
modeNXDN_VN,
|
||||
modeNXDN_N,
|
||||
modeDCR,
|
||||
modePSK,
|
||||
modePSK_R
|
||||
};
|
||||
|
||||
struct mode_info {
|
||||
mode_kind mk;
|
||||
unsigned char reg;
|
||||
QString name;
|
||||
};
|
||||
|
||||
struct preset_kind {
|
||||
|
|
|
@ -2527,6 +2527,16 @@ void rigCommander::parseWFData()
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
mode_info rigCommander::createMode(mode_kind m, unsigned char reg, QString name)
|
||||
{
|
||||
mode_info mode;
|
||||
mode.mk = m;
|
||||
mode.reg = reg;
|
||||
mode.name = name;
|
||||
return mode;
|
||||
}
|
||||
|
||||
void rigCommander::determineRigCaps()
|
||||
{
|
||||
//TODO: Determine available bands (low priority, rig will reject out of band requests anyway)
|
||||
|
@ -2541,6 +2551,14 @@ void rigCommander::determineRigCaps()
|
|||
|
||||
standardVU = {band70cm, band2m};
|
||||
|
||||
std::vector <mode_info> commonModes;
|
||||
commonModes = { createMode(modeLSB, 0x00, "LSB"), createMode(modeUSB, 0x01, "USB"),
|
||||
createMode(modeFM, 0x05, "FM"), createMode(modeAM, 0x02, "AM"),
|
||||
createMode(modeCW, 0x03, "CW"), createMode(modeCW_R, 0x07, "CW-R"),
|
||||
createMode(modeRTTY, 0x04, "RTTY"), createMode(modeRTTY_R, 0x08, "RTTY-R")
|
||||
};
|
||||
|
||||
|
||||
|
||||
rigCaps.model = model;
|
||||
rigCaps.civ = incomingCIVAddr;
|
||||
|
@ -2617,6 +2635,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.bands.push_back(bandGen);
|
||||
rigCaps.bands.push_back(band630m);
|
||||
rigCaps.bands.push_back(band2200m);
|
||||
rigCaps.modes = commonModes;
|
||||
break;
|
||||
case modelR8600:
|
||||
rigCaps.modelName = QString("IC-R8600");
|
||||
|
@ -2642,6 +2661,13 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.bands = standardHF;
|
||||
rigCaps.bands.insert(rigCaps.bands.end(), standardVU.begin(), standardVU.end());
|
||||
rigCaps.bands.insert(rigCaps.bands.end(), {band23cm, band4m, band630m, band2200m, bandGen});
|
||||
rigCaps.modes = commonModes;
|
||||
rigCaps.modes.insert(rigCaps.modes.end(), {
|
||||
createMode(modeWFM, 0x06, "WFM"), createMode(modeS_AMD, 0x11, "S-AM (D)"),
|
||||
createMode(modeS_AML, 0x14, "S-AM(L)"), createMode(modeS_AMU, 0x15, "S-AM(U)"),
|
||||
createMode(modeP25, 0x16, "P25"), createMode(modedPMR, 0x18, "dPMR"),
|
||||
createMode(modeNXDN_VN, 0x19, "NXDN-VN"), createMode(modeNXDN_N, 0x20, "NXDN-N"),
|
||||
createMode(modeDCR, 0x21, "DCR")});
|
||||
break;
|
||||
case model9700:
|
||||
rigCaps.modelName = QString("IC-9700");
|
||||
|
@ -2666,6 +2692,9 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.bsr[band23cm] = 0x03;
|
||||
rigCaps.bsr[band70cm] = 0x02;
|
||||
rigCaps.bsr[band2m] = 0x01;
|
||||
rigCaps.modes = commonModes;
|
||||
rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modeDV, 0x17, "DV"),
|
||||
createMode(modeDD, 0x22, "DD")});
|
||||
break;
|
||||
case model910h:
|
||||
rigCaps.modelName = QString("IC-910H");
|
||||
|
@ -2685,6 +2714,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.bsr[band23cm] = 0x03;
|
||||
rigCaps.bsr[band70cm] = 0x02;
|
||||
rigCaps.bsr[band2m] = 0x01;
|
||||
rigCaps.modes = commonModes;
|
||||
break;
|
||||
case model7610:
|
||||
rigCaps.modelName = QString("IC-7610");
|
||||
|
@ -2713,6 +2743,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.bands.push_back(bandGen);
|
||||
rigCaps.bands.push_back(band630m);
|
||||
rigCaps.bands.push_back(band2200m);
|
||||
rigCaps.modes = commonModes;
|
||||
break;
|
||||
case model7850:
|
||||
rigCaps.modelName = QString("IC-785x");
|
||||
|
@ -2740,6 +2771,9 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.bands.push_back(bandGen);
|
||||
rigCaps.bands.push_back(band630m);
|
||||
rigCaps.bands.push_back(band2200m);
|
||||
rigCaps.modes = commonModes;
|
||||
rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modePSK, 0x12, "PSK"),
|
||||
createMode(modePSK_R, 0x13, "PSK-R")});
|
||||
break;
|
||||
case model705:
|
||||
rigCaps.modelName = QString("IC-705");
|
||||
|
@ -2772,6 +2806,9 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.bsr[bandGen] = 0x15;
|
||||
rigCaps.bands.push_back(band630m);
|
||||
rigCaps.bands.push_back(band2200m);
|
||||
rigCaps.modes = commonModes;
|
||||
rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modeWFM, 0x06, "WFM"),
|
||||
createMode(modeDV, 0x17, "DV")});
|
||||
break;
|
||||
case model7000:
|
||||
rigCaps.modelName = QString("IC-7000");
|
||||
|
@ -2791,6 +2828,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.bsr[band2m] = 0x11;
|
||||
rigCaps.bsr[band70cm] = 0x12;
|
||||
rigCaps.bsr[bandGen] = 0x13;
|
||||
rigCaps.modes = commonModes;
|
||||
break;
|
||||
case model7410:
|
||||
rigCaps.modelName = QString("IC-7410");
|
||||
|
@ -2809,6 +2847,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.bands = standardHF;
|
||||
rigCaps.bands.push_back(bandGen);
|
||||
rigCaps.bsr[bandGen] = 0x11;
|
||||
rigCaps.modes = commonModes;
|
||||
break;
|
||||
case model7100:
|
||||
rigCaps.modelName = QString("IC-7100");
|
||||
|
@ -2831,6 +2870,9 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.bsr[band2m] = 0x11;
|
||||
rigCaps.bsr[band70cm] = 0x12;
|
||||
rigCaps.bsr[bandGen] = 0x13;
|
||||
rigCaps.modes = commonModes;
|
||||
rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modeWFM, 0x06, "WFM"),
|
||||
createMode(modeDV, 0x17, "DV")});
|
||||
break;
|
||||
case model7200:
|
||||
rigCaps.modelName = QString("IC-7200");
|
||||
|
@ -2848,6 +2890,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.bands = standardHF;
|
||||
rigCaps.bands.push_back(bandGen);
|
||||
rigCaps.bsr[bandGen] = 0x11;
|
||||
rigCaps.modes = commonModes;
|
||||
break;
|
||||
case model706:
|
||||
rigCaps.modelName = QString("IC-706");
|
||||
|
@ -2861,6 +2904,8 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.bands = standardHF;
|
||||
rigCaps.bands.insert(rigCaps.bands.end(), standardVU.begin(), standardVU.end());
|
||||
rigCaps.bands.push_back(bandGen);
|
||||
rigCaps.modes = commonModes;
|
||||
rigCaps.modes.insert(rigCaps.modes.end(), createMode(modeWFM, 0x06, "WFM"));
|
||||
break;
|
||||
case model756pro:
|
||||
rigCaps.modelName = QString("IC-756 Pro");
|
||||
|
@ -2877,6 +2922,24 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.bands = standardHF;
|
||||
rigCaps.bands.push_back(bandGen);
|
||||
rigCaps.bsr[bandGen] = 0x11;
|
||||
rigCaps.modes = commonModes;
|
||||
break;
|
||||
case model756proii:
|
||||
rigCaps.modelName = QString("IC-756 Pro II");
|
||||
rigCaps.hasSpectrum = false;
|
||||
rigCaps.inputs.clear();
|
||||
rigCaps.hasLan = false;
|
||||
rigCaps.hasEthernet = false;
|
||||
rigCaps.hasWiFi = false;
|
||||
rigCaps.hasATU = true;
|
||||
rigCaps.preamps.push_back('\x01');
|
||||
rigCaps.preamps.push_back('\x02');
|
||||
rigCaps.attenuators.insert(rigCaps.attenuators.end(),{ '\x06' , '\x12', '\x18'});
|
||||
rigCaps.antennas = {0x00, 0x01};
|
||||
rigCaps.bands = standardHF;
|
||||
rigCaps.bands.push_back(bandGen);
|
||||
rigCaps.bsr[bandGen] = 0x11;
|
||||
rigCaps.modes = commonModes;
|
||||
break;
|
||||
case model756proiii:
|
||||
rigCaps.modelName = QString("IC-756 Pro III");
|
||||
|
@ -2893,6 +2956,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.bands = standardHF;
|
||||
rigCaps.bands.push_back(bandGen);
|
||||
rigCaps.bsr[bandGen] = 0x11;
|
||||
rigCaps.modes = commonModes;
|
||||
break;
|
||||
default:
|
||||
rigCaps.modelName = QString("IC-0x%1").arg(rigCaps.modelID, 2, 16);
|
||||
|
@ -2912,7 +2976,8 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.bands = standardHF;
|
||||
rigCaps.bands.insert(rigCaps.bands.end(), standardVU.begin(), standardVU.end());
|
||||
rigCaps.bands.insert(rigCaps.bands.end(), {band23cm, band4m, band630m, band2200m, bandGen});
|
||||
qInfo(logRig()) << "Found unknown rig: " << rigCaps.modelID;
|
||||
rigCaps.modes = commonModes;
|
||||
qInfo(logRig()) << "Found unknown rig: 0x" << QString("%1").arg(rigCaps.modelID, 2, 16);
|
||||
break;
|
||||
}
|
||||
haveRigCaps = true;
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include "udphandler.h"
|
||||
#include "rigidentities.h"
|
||||
#include "repeaterattributes.h"
|
||||
#include "freqmemory.h"
|
||||
|
||||
// This file figures out what to send to the comm and also
|
||||
// parses returns into useful things.
|
||||
|
@ -375,6 +376,7 @@ private:
|
|||
void debugMe();
|
||||
void printHex(const QByteArray &pdata);
|
||||
void printHex(const QByteArray &pdata, bool printVert, bool printHoriz);
|
||||
mode_info createMode(mode_kind m, unsigned char reg, QString name);
|
||||
|
||||
commHandler* comm = Q_NULLPTR;
|
||||
pttyHandler* ptty = Q_NULLPTR;
|
||||
|
|
|
@ -58,6 +58,9 @@ model_kind determineRadioModel(unsigned char rigID)
|
|||
case model756pro:
|
||||
rig = model756pro;
|
||||
break;
|
||||
case model756proii:
|
||||
rig = model756proii;
|
||||
break;
|
||||
default:
|
||||
rig = modelUnknown;
|
||||
break;
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
#include <QList>
|
||||
#include <vector>
|
||||
|
||||
#include "freqmemory.h"
|
||||
|
||||
// Credit for parts of CIV list:
|
||||
// http://www.docksideradio.com/Icom%20Radio%20Hex%20Addresses.htm
|
||||
|
||||
|
@ -27,6 +29,7 @@ enum model_kind {
|
|||
model705 = 0xA4,
|
||||
model706 = 0x58,
|
||||
model756pro = 0x5C,
|
||||
model756proii = 0x64,
|
||||
model756proiii = 0x6E,
|
||||
model910h = 0x60,
|
||||
modelUnknown = 0xFF
|
||||
|
@ -102,6 +105,8 @@ struct rigCapabilities {
|
|||
std::vector <unsigned char> antennas;
|
||||
std::vector <bandType> bands;
|
||||
unsigned char bsr[20] = {0};
|
||||
|
||||
std::vector <mode_info> modes;
|
||||
};
|
||||
|
||||
|
||||
|
|
44
wfmain.cpp
44
wfmain.cpp
|
@ -863,6 +863,9 @@ void wfmain::receiveFoundRigID(rigCapabilities rigCaps)
|
|||
delayedCommand->setInterval( msMinTiming * 2); // 20 byte message
|
||||
periodicPollingTimer->setInterval( msMinTiming ); // slower for s-meter poll
|
||||
|
||||
qInfo(logSystem()) << "Delay command interval timing: " << msMinTiming * 2 << "ms";
|
||||
qInfo(logSystem()) << "Periodic polling timer: " << msMinTiming << "ms";
|
||||
|
||||
// Normal:
|
||||
delayedCmdIntervalLAN_ms = msMinTiming * 2;
|
||||
delayedCmdIntervalSerial_ms = msMinTiming * 2;
|
||||
|
@ -2244,40 +2247,19 @@ void wfmain::receiveRigID(rigCapabilities rigCaps)
|
|||
// Added so that server receives rig capabilities.
|
||||
emit sendRigCaps(rigCaps);
|
||||
rpt->setRig(rigCaps);
|
||||
if(rigCaps.model==model7850)
|
||||
|
||||
// Set the mode combo box up:
|
||||
|
||||
ui->modeSelectCombo->blockSignals(true);
|
||||
ui->modeSelectCombo->clear();
|
||||
|
||||
for(unsigned int i=0; i < rigCaps.modes.size(); i++)
|
||||
{
|
||||
ui->modeSelectCombo->addItem("PSK", 0x12);
|
||||
ui->modeSelectCombo->addItem("PSK-R", 0x13);
|
||||
ui->modeSelectCombo->addItem(rigCaps.modes.at(i).name,
|
||||
rigCaps.modes.at(i).reg);
|
||||
}
|
||||
|
||||
if(rigCaps.hasDV)
|
||||
{
|
||||
ui->modeSelectCombo->addItem("DV", 0x17);
|
||||
}
|
||||
|
||||
if(rigCaps.hasDD)
|
||||
{
|
||||
ui->modeSelectCombo->addItem("DD", 0x22);
|
||||
}
|
||||
|
||||
if(rigCaps.model==modelR8600)
|
||||
{
|
||||
ui->modeSelectCombo->addItem("WFM", 0x06);
|
||||
ui->modeSelectCombo->addItem("FSK-R", 0x08);
|
||||
ui->modeSelectCombo->addItem("S-AM (D)", 0x11);
|
||||
ui->modeSelectCombo->addItem("S-AM (L)", 0x14);
|
||||
ui->modeSelectCombo->addItem("S-AM (U)", 0x15);
|
||||
ui->modeSelectCombo->addItem("P25", 0x16);
|
||||
ui->modeSelectCombo->addItem("dPMR", 0x18);
|
||||
ui->modeSelectCombo->addItem("NXDN-VN", 0x19);
|
||||
ui->modeSelectCombo->addItem("NXDN-N", 0x20);
|
||||
ui->modeSelectCombo->addItem("DCR", 0x21);
|
||||
}
|
||||
|
||||
if (rigCaps.model == model705)
|
||||
{
|
||||
ui->modeSelectCombo->addItem("WFM", 0x06);
|
||||
}
|
||||
ui->modeSelectCombo->blockSignals(false);
|
||||
|
||||
if(rigCaps.model == model9700)
|
||||
{
|
||||
|
|
Ładowanie…
Reference in New Issue