Merge branch 'audio-enhance'

merge-requests/6/head
Roeland Jansen 2021-08-07 21:35:55 +02:00
commit dfc101eabe
6 zmienionych plików z 116 dodań i 28 usunięć

Wyświetl plik

@ -26,7 +26,7 @@ rigCommander::rigCommander()
rigState.mode = 0;
rigState.ptt = 0;
rigState.currentVfo = 0;
rigState.splitEnabled = 0;
rigState.duplex = dmSplitOff;
}
rigCommander::~rigCommander()
@ -1220,6 +1220,7 @@ void rigCommander::parseCommand()
break;
case '\x0F':
emit haveDuplexMode((duplexMode)(unsigned char)payloadIn[1]);
rigState.duplex = (duplexMode)(unsigned char)payloadIn[1];
break;
case '\x11':
emit haveAttenuator((unsigned char)payloadIn.at(1));
@ -1227,6 +1228,8 @@ void rigCommander::parseCommand()
break;
case '\x12':
emit haveAntenna((unsigned char)payloadIn.at(1), (bool)payloadIn.at(2));
rigState.antenna = (unsigned char)payloadIn.at(1);
rigState.rxAntenna = (bool)payloadIn.at(2);
break;
case '\x14':
// read levels
@ -2291,7 +2294,7 @@ void rigCommander::parsePTT()
// PTT on
emit havePTTStatus(true);
}
rigState.ptt = (unsigned char)payloadIn[2];
rigState.ptt = (bool)payloadIn[2];
}
@ -2855,6 +2858,7 @@ void rigCommander::determineRigCaps()
switch(model){
case model7300:
rigCaps.modelName = QString("IC-7300");
rigCaps.rigctlModel = 3073;
rigCaps.hasSpectrum = true;
rigCaps.spectSeqMax = 11;
rigCaps.spectAmpMax = 160;
@ -2878,6 +2882,7 @@ void rigCommander::determineRigCaps()
break;
case modelR8600:
rigCaps.modelName = QString("IC-R8600");
rigCaps.rigctlModel = 3079;
rigCaps.hasSpectrum = true;
rigCaps.spectSeqMax = 11;
rigCaps.spectAmpMax = 160;
@ -2912,6 +2917,7 @@ void rigCommander::determineRigCaps()
break;
case model9700:
rigCaps.modelName = QString("IC-9700");
rigCaps.rigctlModel = 3081;
rigCaps.hasSpectrum = true;
rigCaps.spectSeqMax = 11;
rigCaps.spectAmpMax = 160;
@ -2939,6 +2945,7 @@ void rigCommander::determineRigCaps()
break;
case model910h:
rigCaps.modelName = QString("IC-910H");
rigCaps.rigctlModel = 3044;
rigCaps.hasSpectrum = false;
rigCaps.hasLan = false;
rigCaps.hasEthernet = false;
@ -2960,6 +2967,7 @@ void rigCommander::determineRigCaps()
break;
case model7600:
rigCaps.modelName = QString("IC-7600");
rigCaps.rigctlModel = 3063;
rigCaps.hasSpectrum = false;
rigCaps.inputs.append(inputACC);
rigCaps.inputs.append(inputUSB);
@ -2983,6 +2991,7 @@ void rigCommander::determineRigCaps()
break;
case model7610:
rigCaps.modelName = QString("IC-7610");
rigCaps.rigctlModel = 3078;
rigCaps.hasSpectrum = true;
rigCaps.spectSeqMax = 15;
rigCaps.spectAmpMax = 200;
@ -3013,6 +3022,7 @@ void rigCommander::determineRigCaps()
break;
case model7850:
rigCaps.modelName = QString("IC-785x");
rigCaps.rigctlModel = 3075;
rigCaps.hasSpectrum = true;
rigCaps.spectSeqMax = 15;
rigCaps.spectAmpMax = 136;
@ -3044,6 +3054,7 @@ void rigCommander::determineRigCaps()
break;
case model705:
rigCaps.modelName = QString("IC-705");
rigCaps.rigctlModel = 3085;
rigCaps.hasSpectrum = true;
rigCaps.spectSeqMax = 11;
rigCaps.spectAmpMax = 160;
@ -3079,6 +3090,7 @@ void rigCommander::determineRigCaps()
break;
case model7000:
rigCaps.modelName = QString("IC-7000");
rigCaps.rigctlModel = 3060;
rigCaps.hasSpectrum = false;
rigCaps.inputs.append(inputACC);
rigCaps.hasLan = false;
@ -3100,6 +3112,7 @@ void rigCommander::determineRigCaps()
break;
case model7410:
rigCaps.modelName = QString("IC-7410");
rigCaps.rigctlModel = 3067;
rigCaps.hasSpectrum = false;
rigCaps.inputs.append(inputACC);
rigCaps.hasLan = false;
@ -3120,6 +3133,7 @@ void rigCommander::determineRigCaps()
break;
case model7100:
rigCaps.modelName = QString("IC-7100");
rigCaps.rigctlModel = 3070;
rigCaps.hasSpectrum = false;
rigCaps.inputs.append(inputUSB);
rigCaps.inputs.append(inputACC);
@ -3146,6 +3160,7 @@ void rigCommander::determineRigCaps()
break;
case model7200:
rigCaps.modelName = QString("IC-7200");
rigCaps.rigctlModel = 3061;
rigCaps.hasSpectrum = false;
rigCaps.inputs.append(inputUSB);
rigCaps.inputs.append(inputACC);
@ -3165,6 +3180,7 @@ void rigCommander::determineRigCaps()
break;
case model7700:
rigCaps.modelName = QString("IC-7700");
rigCaps.rigctlModel = 3062;
rigCaps.hasSpectrum = false;
rigCaps.inputs.append(inputLAN);
//rigCaps.inputs.append(inputSPDIF);
@ -3190,6 +3206,7 @@ void rigCommander::determineRigCaps()
break;
case model706:
rigCaps.modelName = QString("IC-706");
rigCaps.rigctlModel = 3009;
rigCaps.hasSpectrum = false;
rigCaps.inputs.clear();
rigCaps.hasLan = false;
@ -3208,6 +3225,7 @@ void rigCommander::determineRigCaps()
break;
case model718:
rigCaps.modelName = QString("IC-718");
rigCaps.rigctlModel = 3013;
rigCaps.hasSpectrum = false;
rigCaps.inputs.clear();
rigCaps.hasLan = false;
@ -3230,6 +3248,7 @@ void rigCommander::determineRigCaps()
break;
case model756pro:
rigCaps.modelName = QString("IC-756 Pro");
rigCaps.rigctlModel = 3027;
rigCaps.hasSpectrum = false;
rigCaps.inputs.clear();
rigCaps.hasLan = false;
@ -3248,6 +3267,7 @@ void rigCommander::determineRigCaps()
break;
case model756proii:
rigCaps.modelName = QString("IC-756 Pro II");
rigCaps.rigctlModel = 3027;
rigCaps.hasSpectrum = false;
rigCaps.inputs.clear();
rigCaps.hasLan = false;
@ -3266,6 +3286,7 @@ void rigCommander::determineRigCaps()
break;
case model756proiii:
rigCaps.modelName = QString("IC-756 Pro III");
rigCaps.rigctlModel = 3027;
rigCaps.hasSpectrum = false;
rigCaps.inputs.clear();
rigCaps.hasLan = false;

Wyświetl plik

@ -63,11 +63,13 @@ struct rigStateStruct {
freqt vfoAFreq;
freqt vfoBFreq;
unsigned char currentVfo;
unsigned char ptt;
bool ptt;
unsigned char mode;
unsigned char filter;
unsigned char splitEnabled;
duplexMode duplex;
bool datamode;
unsigned char antenna;
bool rxAntenna;
// Tones
quint16 ctcss;
quint16 tsql;

Wyświetl plik

@ -144,7 +144,7 @@ void rigCtlClient::socketReadyRead()
{
// Currently send "fake" state information until I can work out what is required!
response.append("1");
response.append("1");
response.append(QString("%1").arg(rigCaps.rigctlModel));
response.append("0");
for (bandType band : rigCaps.bands)
{
@ -204,15 +204,24 @@ void rigCtlClient::socketReadyRead()
attens = "0";
}
response.append(attens);
response.append("0x3effffff");
response.append("0x3effffff");
response.append("0x7fffffff");
response.append("0x7fffffff");
response.append("0x7fffffff");
response.append("0x7fffffff");
response.append("done");
response.append("0xffffffffffffffff");
response.append("0xffffffffffffffff");
response.append("0xfffffffff7ffffff");
response.append("0xfffffff083ffffff");
response.append("0xffffffffffffffff");
response.append("0xffffffffffffffbf");
/*
response.append("0x3effffff");
response.append("0x3effffff");
response.append("0x7fffffff");
response.append("0x7fffffff");
response.append("0x7fffffff");
response.append("0x7fffffff");
*/
response.append("done");
}
else if (command[0] == "f" || command[0] == "get_freq")
@ -339,10 +348,10 @@ void rigCtlClient::socketReadyRead()
else if (command[0] == "s" || command[0] == "get_split_vfo")
{
if (longReply) {
response.append(QString("Split: %1").arg(rigState->splitEnabled));
response.append(QString("Split: %1").arg(rigState->duplex));
}
else {
response.append(QString("%1").arg(rigState->splitEnabled));
response.append(QString("%1").arg(rigState->duplex));
}
QString resp;
@ -364,10 +373,12 @@ void rigCtlClient::socketReadyRead()
setCommand = true;
if (command[1] == "1")
{
emit parent->setSplit(1);
emit parent->setDuplexMode(dmSplitOn);
rigState->duplex = dmSplitOn;
}
else {
emit parent->setSplit(0);
emit parent->setDuplexMode(dmSplitOff);
rigState->duplex = dmSplitOff;
}
}
else if (command[0] == "\xf3" || command[0] == "get_vfo_info")
@ -383,7 +394,7 @@ void rigCtlClient::socketReadyRead()
}
response.append(QString("Mode: %1").arg(getMode(rigState->mode, rigState->datamode)));
response.append(QString("Width: %1").arg(getFilter(rigState->mode, rigState->filter)));
response.append(QString("Split: %1").arg(rigState->splitEnabled));
response.append(QString("Split: %1").arg(rigState->duplex));
response.append(QString("SatMode: %1").arg(0)); // Need to get satmode
}
else {
@ -483,18 +494,42 @@ void rigCtlClient::socketReadyRead()
{
setCommand = true;
}
else if (command[0] == "y" || command[0] == "get_ant")
{
qInfo(logRigCtlD()) << "get_ant:";
if (command.length() > 1) {
if (longReply) {
response.append(QString("AntCurr: %1").arg(getAntName((unsigned char)command[1].toInt())));
response.append(QString("Option: %1").arg(0));
response.append(QString("AntTx: %1").arg(getAntName(rigState->antenna)));
response.append(QString("AntRx: %1").arg(getAntName(rigState->antenna)));
}
else {
response.append(QString("%1").arg(getAntName((unsigned char)command[1].toInt())));
response.append(QString("%1").arg(0));
response.append(QString("%1").arg(getAntName(rigState->antenna)));
response.append(QString("%1").arg(getAntName(rigState->antenna)));
}
}
}
else if (command[0] == "Y" || command[0] == "set_ant")
{
qInfo(logRigCtlD()) << "set_ant:";
setCommand = true;
}
else if (command[0] == "z" || command[0] == "get_xit")
{
QString resp;
if (longReply) {
resp.append("XIT: ");
}
resp.append(QString("%1").arg(0));
response.append(resp);
QString resp;
if (longReply) {
resp.append("XIT: ");
}
resp.append(QString("%1").arg(0));
response.append(resp);
}
else if (command[0] == "Z" || command[0] == "set_xit")
{
setCommand = true;
setCommand = true;
}
else if (command.length() > 1 && (command[0] == "l" || command[0] == "get_level"))
{
@ -956,11 +991,20 @@ QString rigCtlClient::generateFreqRange(bandType band)
QString ret = "";
if (lowFreq > 0 && highFreq > 0) {
ret = QString("%1 %2 0x%3 %4 %5 0x%6 0x%7").arg(lowFreq).arg(highFreq).arg(getRadioModes(),0,16).arg(-1).arg(-1).arg(0x16000003,0,16).arg(0xf,0,16);
ret = QString("%1 %2 0x%3 %4 %5 0x%6 0x%7").arg(lowFreq).arg(highFreq).arg(getRadioModes(),0,16).arg(-1).arg(-1).arg(0x16000003,0,16).arg(getAntennas(),0,16);
}
return ret;
}
unsigned char rigCtlClient::getAntennas()
{
unsigned char ant=0;
for (unsigned char i : rigCaps.antennas)
{
ant |= 1<<i;
}
return ant;
}
quint64 rigCtlClient::getRadioModes()
{
@ -984,4 +1028,21 @@ quint64 rigCtlClient::getRadioModes()
}
}
return modes;
}
QString rigCtlClient::getAntName(unsigned char ant)
{
QString ret;
switch (ant)
{
case 0: ret = "ANT1"; break;
case 1: ret = "ANT2"; break;
case 2: ret = "ANT3"; break;
case 3: ret = "ANT4"; break;
case 4: ret = "ANT5"; break;
case 30: ret = "ANT_UNKNOWN"; break;
case 31: ret = "ANT_CURR"; break;
default: ret = "ANT_UNK"; break;
}
return ret;
}

Wyświetl plik

@ -125,6 +125,7 @@ signals:
void setDataMode(bool dataOn, unsigned char modeFilter);
void setVFO(unsigned char vfo);
void setSplit(unsigned char split);
void setDuplexMode(duplexMode dm);
// Power
void sendPowerOn();
@ -187,7 +188,9 @@ private:
unsigned char getMode(QString modeString);
QString getFilter(unsigned char mode, unsigned char filter);
QString generateFreqRange(bandType band);
unsigned char getAntennas();
quint64 getRadioModes();
QString getAntName(unsigned char ant);
};

Wyświetl plik

@ -90,10 +90,9 @@ model_kind determineRadioModel(unsigned char rigID);
struct rigCapabilities {
model_kind model;
quint8 civ;
quint8 modelID;
int rigctlModel;
QString modelName;
bool hasLan; // OEM ethernet or wifi connection

Wyświetl plik

@ -409,6 +409,7 @@ void wfmain::makeRig()
connect(rigCtl, SIGNAL(setAttenuator(unsigned char)), rig, SLOT(setAttenuator(unsigned char)));
connect(rigCtl, SIGNAL(setPreamp(unsigned char)), rig, SLOT(setPreamp(unsigned char)));
connect(rigCtl, SIGNAL(setDuplexMode(duplexMode)), rig, SLOT(setDuplexMode(duplexMode)));
// Levels: Set:
connect(rigCtl, SIGNAL(setRfGain(unsigned char)), rig, SLOT(setRfGain(unsigned char)));
@ -5287,6 +5288,7 @@ void wfmain::on_enableRigctldChk_clicked(bool checked)
connect(rigCtl, SIGNAL(setAttenuator(unsigned char)), rig, SLOT(setAttenuator(unsigned char)));
connect(rigCtl, SIGNAL(setPreamp(unsigned char)), rig, SLOT(setPreamp(unsigned char)));
connect(rigCtl, SIGNAL(setDuplexMode(duplexMode)), rig, SLOT(setDuplexMode(duplexMode)));
// Levels: Set:
connect(rigCtl, SIGNAL(setRfGain(unsigned char)), rig, SLOT(setRfGain(unsigned char)));