Antenna selection might work, untested.

merge-requests/2/head
Elliott Liggett 2021-04-09 15:57:16 -07:00
rodzic aff2e281e8
commit 6b967a52b9
5 zmienionych plików z 55 dodań i 7 usunięć

Wyświetl plik

@ -29,6 +29,7 @@ repeaterSetup::~repeaterSetup()
rig.inputs.clear();
rig.preamps.clear();
rig.attenuators.clear();
rig.antennas.clear();
delete ui;
}

Wyświetl plik

@ -2327,8 +2327,11 @@ void rigCommander::determineRigCaps()
rigCaps.hasAttenuator = true; // Verify that all recent rigs have attenuators
rigCaps.attenuators.push_back('\x00');
rigCaps.hasPreamp = true;
rigCaps.preamps.push_back('\x00');
rigCaps.hasAntennaSel = false;
rigCaps.hasTransmit = true;
switch(model){
@ -2367,6 +2370,8 @@ void rigCommander::determineRigCaps()
rigCaps.attenuators.push_back('\x30');
rigCaps.preamps.push_back('\x01');
rigCaps.preamps.push_back('\x02');
rigCaps.hasAntennaSel = true;
rigCaps.antennas = {0x00, 0x01, 0x02};
break;
case model9700:
rigCaps.modelName = QString("IC-9700");
@ -2407,6 +2412,8 @@ void rigCommander::determineRigCaps()
'\x39', '\x42', '\x45'});
rigCaps.preamps.push_back('\x01');
rigCaps.preamps.push_back('\x02');
rigCaps.hasAntennaSel = true;
rigCaps.antennas = {0x00, 0x01};
break;
case model7850:
rigCaps.modelName = QString("IC-785x");
@ -2428,6 +2435,8 @@ void rigCommander::determineRigCaps()
'\x12', '\x15', '\x18', '\x21'});
rigCaps.preamps.push_back('\x01');
rigCaps.preamps.push_back('\x02');
rigCaps.hasAntennaSel = true;
rigCaps.antennas = {0x00, 0x01, 0x02, 0x03};
break;
case model705:
rigCaps.modelName = QString("IC-705");
@ -2484,6 +2493,8 @@ void rigCommander::determineRigCaps()
rigCaps.hasLan = false;
rigCaps.hasEthernet = false;
rigCaps.hasWiFi = false;
rigCaps.hasPreamp = false;
rigCaps.hasAntennaSel = false;
rigCaps.attenuators.push_back('\x10');
rigCaps.attenuators.push_back('\x12');
rigCaps.attenuators.push_back('\x20');

Wyświetl plik

@ -66,11 +66,13 @@ struct rigCapabilities {
bool hasDTCS;
bool hasTransmit;
bool hasAttenuator;
bool hasPreamp;
bool hasAntennaSel;
//QVector <unsigned char> attenuators;
std::vector <unsigned char> attenuators;
std::vector <unsigned char> preamps;
std::vector <unsigned char> antennas;
};

Wyświetl plik

@ -483,6 +483,7 @@ wfmain::wfmain(const QString serialPortCL, const QString hostCL, QWidget *parent
connect(rig, SIGNAL(haveRigID(rigCapabilities)), this, SLOT(receiveRigID(rigCapabilities)));
connect(this, SIGNAL(setAttenuator(unsigned char)), rig, SLOT(setAttenuator(unsigned char)));
connect(this, SIGNAL(setPreamp(unsigned char)), rig, SLOT(setPreamp(unsigned char)));
connect(this, SIGNAL(setAntenna(unsigned char)), rig, SLOT(setAntenna(unsigned char)));
// Speech (emitted from rig speaker)
@ -2054,18 +2055,43 @@ void wfmain::receiveRigID(rigCapabilities rigCaps)
}
ui->attSelCombo->clear();
for(unsigned int i=0; i < rigCaps.attenuators.size(); i++)
if(rigCaps.hasAttenuator)
{
inName = (i==0)?QString("0dB"):QString("-%1 dB").arg(rigCaps.attenuators.at(i), 0, 16);
ui->attSelCombo->addItem(inName, rigCaps.attenuators.at(i));
ui->attSelCombo->setDisabled(false);
for(unsigned int i=0; i < rigCaps.attenuators.size(); i++)
{
inName = (i==0)?QString("0dB"):QString("-%1 dB").arg(rigCaps.attenuators.at(i), 0, 16);
ui->attSelCombo->addItem(inName, rigCaps.attenuators.at(i));
}
} else {
ui->attSelCombo->setDisabled(true);
}
for(unsigned int i=0; i < rigCaps.preamps.size(); i++)
ui->preampSelCombo->clear();
if(rigCaps.hasPreamp)
{
inName = (i==0)?QString("Disabled"):QString("Pre #%1").arg(rigCaps.preamps.at(i), 0, 16);
ui->preampSelCombo->addItem(inName, rigCaps.preamps.at(i));
ui->preampSelCombo->setDisabled(false);
for(unsigned int i=0; i < rigCaps.preamps.size(); i++)
{
inName = (i==0)?QString("Disabled"):QString("Pre #%1").arg(rigCaps.preamps.at(i), 0, 16);
ui->preampSelCombo->addItem(inName, rigCaps.preamps.at(i));
}
} else {
ui->preampSelCombo->setDisabled(true);
}
ui->antennaSelCombo->clear();
if(rigCaps.hasAntennaSel)
{
ui->antennaSelCombo->setDisabled(false);
for(unsigned int i=0; i < rigCaps.antennas.size(); i++)
{
inName = QString("%1").arg(rigCaps.antennas.at(i), 0, 16);
ui->antennaSelCombo->addItem(inName, rigCaps.antennas.at(i));
}
} else {
ui->antennaSelCombo->setDisabled(true);
}
@ -3672,6 +3698,12 @@ void wfmain::on_preampSelCombo_activated(int index)
emit setPreamp(pre);
}
void wfmain::on_antennaSelCombo_activated(int index)
{
unsigned char ant = (unsigned char)ui->antennaSelCombo->itemData(index).toInt();
emit setAntenna(ant);
}
// --- DEBUG FUNCTION ---
void wfmain::on_debugBtn_clicked()
{

Wyświetl plik

@ -391,6 +391,8 @@ private slots:
void on_preampSelCombo_activated(int index);
void on_antennaSelCombo_activated(int index);
private:
Ui::wfmain *ui;
QSettings settings;