mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-12-01 12:23:55 -05:00
Metis MISO: implemented 7 receivers
This commit is contained in:
parent
a180c552f8
commit
73487e619e
@ -79,7 +79,7 @@ void DeviceMetisScan::enumOriginDevices(const QString& hardwareId, PluginInterfa
|
||||
hardwareId,
|
||||
serial,
|
||||
i, // sequence
|
||||
4, // Nb Rx
|
||||
7, // Nb Rx
|
||||
1 // Nb Tx
|
||||
));
|
||||
}
|
||||
|
||||
@ -50,8 +50,8 @@ MetisMISO::MetisMISO(DeviceAPI *deviceAPI) :
|
||||
m_masterTimer(deviceAPI->getMasterTimer())
|
||||
{
|
||||
m_mimoType = MIMOHalfSynchronous;
|
||||
m_sampleMIFifo.init(4, 96000 * 4);
|
||||
m_deviceAPI->setNbSourceStreams(4);
|
||||
m_sampleMIFifo.init(MetisMISOSettings::m_maxReceivers, 96000 * 4);
|
||||
m_deviceAPI->setNbSourceStreams(MetisMISOSettings::m_maxReceivers);
|
||||
m_deviceAPI->setNbSinkStreams(1);
|
||||
int deviceSequence = m_deviceAPI->getSamplingDeviceSequence();
|
||||
const DeviceMetisScan::DeviceScan *deviceScan = DeviceMetis::instance().getDeviceScanAt(deviceSequence);
|
||||
@ -330,6 +330,24 @@ bool MetisMISO::applySettings(const MetisMISOSettings& settings, bool force)
|
||||
propagateSettings = true;
|
||||
}
|
||||
|
||||
if ((m_settings.m_rx5CenterFrequency != settings.m_rx5CenterFrequency) || force)
|
||||
{
|
||||
reverseAPIKeys.append("rx5CenterFrequency");
|
||||
propagateSettings = true;
|
||||
}
|
||||
|
||||
if ((m_settings.m_rx6CenterFrequency != settings.m_rx6CenterFrequency) || force)
|
||||
{
|
||||
reverseAPIKeys.append("rx6CenterFrequency");
|
||||
propagateSettings = true;
|
||||
}
|
||||
|
||||
if ((m_settings.m_rx7CenterFrequency != settings.m_rx7CenterFrequency) || force)
|
||||
{
|
||||
reverseAPIKeys.append("rx7CenterFrequency");
|
||||
propagateSettings = true;
|
||||
}
|
||||
|
||||
if ((m_settings.m_txCenterFrequency != settings.m_txCenterFrequency) || force)
|
||||
{
|
||||
reverseAPIKeys.append("txCenterFrequency");
|
||||
@ -407,6 +425,39 @@ bool MetisMISO::applySettings(const MetisMISOSettings& settings, bool force)
|
||||
m_deviceAPI->getDeviceEngineInputMessageQueue()->push(engineRx4Notif);
|
||||
}
|
||||
|
||||
if ((m_settings.m_rx5CenterFrequency != settings.m_rx5CenterFrequency) ||
|
||||
(m_settings.m_sampleRateIndex != settings.m_sampleRateIndex) ||
|
||||
(m_settings.m_log2Decim != settings.m_log2Decim) || force)
|
||||
{
|
||||
int devSampleRate = (1<<settings.m_sampleRateIndex) * 48000;
|
||||
int sampleRate = devSampleRate / (1<<settings.m_log2Decim);
|
||||
DSPMIMOSignalNotification *engineRx5Notif = new DSPMIMOSignalNotification(
|
||||
sampleRate, settings.m_rx5CenterFrequency, true, 4);
|
||||
m_deviceAPI->getDeviceEngineInputMessageQueue()->push(engineRx5Notif);
|
||||
}
|
||||
|
||||
if ((m_settings.m_rx6CenterFrequency != settings.m_rx6CenterFrequency) ||
|
||||
(m_settings.m_sampleRateIndex != settings.m_sampleRateIndex) ||
|
||||
(m_settings.m_log2Decim != settings.m_log2Decim) || force)
|
||||
{
|
||||
int devSampleRate = (1<<settings.m_sampleRateIndex) * 48000;
|
||||
int sampleRate = devSampleRate / (1<<settings.m_log2Decim);
|
||||
DSPMIMOSignalNotification *engineRx6Notif = new DSPMIMOSignalNotification(
|
||||
sampleRate, settings.m_rx6CenterFrequency, true, 5);
|
||||
m_deviceAPI->getDeviceEngineInputMessageQueue()->push(engineRx6Notif);
|
||||
}
|
||||
|
||||
if ((m_settings.m_rx7CenterFrequency != settings.m_rx7CenterFrequency) ||
|
||||
(m_settings.m_sampleRateIndex != settings.m_sampleRateIndex) ||
|
||||
(m_settings.m_log2Decim != settings.m_log2Decim) || force)
|
||||
{
|
||||
int devSampleRate = (1<<settings.m_sampleRateIndex) * 48000;
|
||||
int sampleRate = devSampleRate / (1<<settings.m_log2Decim);
|
||||
DSPMIMOSignalNotification *engineRx7Notif = new DSPMIMOSignalNotification(
|
||||
sampleRate, settings.m_rx7CenterFrequency, true, 6);
|
||||
m_deviceAPI->getDeviceEngineInputMessageQueue()->push(engineRx7Notif);
|
||||
}
|
||||
|
||||
if ((m_settings.m_txCenterFrequency != settings.m_txCenterFrequency) ||
|
||||
(m_settings.m_sampleRateIndex != settings.m_sampleRateIndex) ||
|
||||
(m_settings.m_log2Decim != settings.m_log2Decim) || force)
|
||||
@ -520,6 +571,9 @@ void MetisMISO::webapiUpdateDeviceSettings(
|
||||
const QStringList& deviceSettingsKeys,
|
||||
SWGSDRangel::SWGDeviceSettings& response)
|
||||
{
|
||||
if (deviceSettingsKeys.contains("nbReceivers")) {
|
||||
settings.m_nbReceivers = response.getMetisMisoSettings()->getNbReceivers();
|
||||
}
|
||||
if (deviceSettingsKeys.contains("rx1CenterFrequency")) {
|
||||
settings.m_rx1CenterFrequency = response.getMetisMisoSettings()->getRx1CenterFrequency();
|
||||
}
|
||||
@ -529,12 +583,27 @@ void MetisMISO::webapiUpdateDeviceSettings(
|
||||
if (deviceSettingsKeys.contains("rx3CenterFrequency")) {
|
||||
settings.m_rx3CenterFrequency = response.getMetisMisoSettings()->getRx3CenterFrequency();
|
||||
}
|
||||
if (deviceSettingsKeys.contains("rx4CenterFrequency")) {
|
||||
settings.m_rx4CenterFrequency = response.getMetisMisoSettings()->getRx4CenterFrequency();
|
||||
}
|
||||
if (deviceSettingsKeys.contains("rx5CenterFrequency")) {
|
||||
settings.m_rx5CenterFrequency = response.getMetisMisoSettings()->getRx5CenterFrequency();
|
||||
}
|
||||
if (deviceSettingsKeys.contains("rx6CenterFrequency")) {
|
||||
settings.m_rx6CenterFrequency = response.getMetisMisoSettings()->getRx6CenterFrequency();
|
||||
}
|
||||
if (deviceSettingsKeys.contains("rx7CenterFrequency")) {
|
||||
settings.m_rx7CenterFrequency = response.getMetisMisoSettings()->getRx7CenterFrequency();
|
||||
}
|
||||
if (deviceSettingsKeys.contains("txCenterFrequency")) {
|
||||
settings.m_txCenterFrequency = response.getMetisMisoSettings()->getTxCenterFrequency();
|
||||
}
|
||||
if (deviceSettingsKeys.contains("sampleRateIndex")) {
|
||||
settings.m_sampleRateIndex = response.getMetisMisoSettings()->getSampleRateIndex();
|
||||
}
|
||||
if (deviceSettingsKeys.contains("log2Decim")) {
|
||||
settings.m_log2Decim = response.getMetisMisoSettings()->getLog2Decim();
|
||||
}
|
||||
if (deviceSettingsKeys.contains("preamp")) {
|
||||
settings.m_preamp = response.getMetisMisoSettings()->getPreamp() != 0;
|
||||
}
|
||||
@ -569,11 +638,17 @@ void MetisMISO::webapiUpdateDeviceSettings(
|
||||
|
||||
void MetisMISO::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& response, const MetisMISOSettings& settings)
|
||||
{
|
||||
response.getMetisMisoSettings()->setNbReceivers(settings.m_nbReceivers);
|
||||
response.getMetisMisoSettings()->setRx1CenterFrequency(settings.m_rx1CenterFrequency);
|
||||
response.getMetisMisoSettings()->setRx2CenterFrequency(settings.m_rx2CenterFrequency);
|
||||
response.getMetisMisoSettings()->setRx3CenterFrequency(settings.m_rx3CenterFrequency);
|
||||
response.getMetisMisoSettings()->setRx4CenterFrequency(settings.m_rx4CenterFrequency);
|
||||
response.getMetisMisoSettings()->setRx5CenterFrequency(settings.m_rx5CenterFrequency);
|
||||
response.getMetisMisoSettings()->setRx6CenterFrequency(settings.m_rx6CenterFrequency);
|
||||
response.getMetisMisoSettings()->setRx7CenterFrequency(settings.m_rx7CenterFrequency);
|
||||
response.getMetisMisoSettings()->setTxCenterFrequency(settings.m_txCenterFrequency);
|
||||
response.getMetisMisoSettings()->setSampleRateIndex(settings.m_sampleRateIndex);
|
||||
response.getMetisMisoSettings()->setLog2Decim(settings.m_log2Decim);
|
||||
response.getMetisMisoSettings()->setPreamp(settings.m_preamp ? 1 : 0);
|
||||
response.getMetisMisoSettings()->setRandom(settings.m_random ? 1 : 0);
|
||||
response.getMetisMisoSettings()->setDither(settings.m_dither ? 1 : 0);
|
||||
@ -601,6 +676,9 @@ void MetisMISO::webapiReverseSendSettings(const QList<QString>& deviceSettingsKe
|
||||
swgDeviceSettings->setMetisMisoSettings(new SWGSDRangel::SWGMetisMISOSettings());
|
||||
SWGSDRangel::SWGMetisMISOSettings *swgMetisMISOSettings = swgDeviceSettings->getMetisMisoSettings();
|
||||
|
||||
if (deviceSettingsKeys.contains("nbReceivers") || force) {
|
||||
swgMetisMISOSettings->setNbReceivers(settings.m_nbReceivers);
|
||||
}
|
||||
if (deviceSettingsKeys.contains("rx1CenterFrequency") || force) {
|
||||
swgMetisMISOSettings->setRx1CenterFrequency(settings.m_rx1CenterFrequency);
|
||||
}
|
||||
@ -610,12 +688,27 @@ void MetisMISO::webapiReverseSendSettings(const QList<QString>& deviceSettingsKe
|
||||
if (deviceSettingsKeys.contains("rx3CenterFrequency") || force) {
|
||||
swgMetisMISOSettings->setRx3CenterFrequency(settings.m_rx3CenterFrequency);
|
||||
}
|
||||
if (deviceSettingsKeys.contains("rx4CenterFrequency") || force) {
|
||||
swgMetisMISOSettings->setRx4CenterFrequency(settings.m_rx4CenterFrequency);
|
||||
}
|
||||
if (deviceSettingsKeys.contains("rx5CenterFrequency") || force) {
|
||||
swgMetisMISOSettings->setRx5CenterFrequency(settings.m_rx5CenterFrequency);
|
||||
}
|
||||
if (deviceSettingsKeys.contains("rx6CenterFrequency") || force) {
|
||||
swgMetisMISOSettings->setRx6CenterFrequency(settings.m_rx6CenterFrequency);
|
||||
}
|
||||
if (deviceSettingsKeys.contains("rx7CenterFrequency") || force) {
|
||||
swgMetisMISOSettings->setRx7CenterFrequency(settings.m_rx7CenterFrequency);
|
||||
}
|
||||
if (deviceSettingsKeys.contains("txCenterFrequency") || force) {
|
||||
swgMetisMISOSettings->setTxCenterFrequency(settings.m_txCenterFrequency);
|
||||
}
|
||||
if (deviceSettingsKeys.contains("sampleRateIndex") || force) {
|
||||
swgMetisMISOSettings->setSampleRateIndex(settings.m_sampleRateIndex);
|
||||
}
|
||||
if (deviceSettingsKeys.contains("log2Decim") || force) {
|
||||
swgMetisMISOSettings->setLog2Decim(settings.m_log2Decim);
|
||||
}
|
||||
if (deviceSettingsKeys.contains("preamp") || force) {
|
||||
swgMetisMISOSettings->setPreamp(settings.m_preamp ? 1 : 0);
|
||||
}
|
||||
|
||||
@ -112,6 +112,12 @@ qint64 MetisMISOGui::getCenterFrequency() const
|
||||
} else if (m_streamIndex == 3) {
|
||||
return m_settings.m_rx4CenterFrequency;
|
||||
} else if (m_streamIndex == 4) {
|
||||
return m_settings.m_rx5CenterFrequency;
|
||||
} else if (m_streamIndex == 5) {
|
||||
return m_settings.m_rx6CenterFrequency;
|
||||
} else if (m_streamIndex == 6) {
|
||||
return m_settings.m_rx7CenterFrequency;
|
||||
} else if (m_streamIndex == 7) {
|
||||
return m_settings.m_txCenterFrequency;
|
||||
} else {
|
||||
return 0;
|
||||
@ -129,6 +135,12 @@ void MetisMISOGui::setCenterFrequency(qint64 centerFrequency)
|
||||
} else if (m_streamIndex == 3) {
|
||||
m_settings.m_rx4CenterFrequency = centerFrequency;
|
||||
} else if (m_streamIndex == 4) {
|
||||
m_settings.m_rx5CenterFrequency = centerFrequency;
|
||||
} else if (m_streamIndex == 5) {
|
||||
m_settings.m_rx6CenterFrequency = centerFrequency;
|
||||
} else if (m_streamIndex == 6) {
|
||||
m_settings.m_rx7CenterFrequency = centerFrequency;
|
||||
} else if (m_streamIndex == 7) {
|
||||
m_settings.m_txCenterFrequency = centerFrequency;
|
||||
} else {
|
||||
m_settings.m_txCenterFrequency = 0;
|
||||
@ -237,6 +249,12 @@ void MetisMISOGui::on_centerFrequency_changed(quint64 value)
|
||||
} else if (m_streamIndex == 3) {
|
||||
m_settings.m_rx4CenterFrequency = value * 1000;
|
||||
} else if (m_streamIndex == 4) {
|
||||
m_settings.m_rx5CenterFrequency = value * 1000;
|
||||
} else if (m_streamIndex == 5) {
|
||||
m_settings.m_rx6CenterFrequency = value * 1000;
|
||||
} else if (m_streamIndex == 6) {
|
||||
m_settings.m_rx7CenterFrequency = value * 1000;
|
||||
} else if (m_streamIndex == 7) {
|
||||
m_settings.m_txCenterFrequency = value * 1000;
|
||||
} else {
|
||||
m_settings.m_txCenterFrequency = 0;
|
||||
@ -419,7 +437,13 @@ void MetisMISOGui::handleInputMessages()
|
||||
m_settings.m_rx3CenterFrequency = frequency;
|
||||
} else if (istream == 3) {
|
||||
m_settings.m_rx4CenterFrequency = frequency;
|
||||
}
|
||||
} else if (istream == 4) {
|
||||
m_settings.m_rx5CenterFrequency = frequency;
|
||||
} else if (istream == 5) {
|
||||
m_settings.m_rx6CenterFrequency = frequency;
|
||||
} else if (istream == 6) {
|
||||
m_settings.m_rx7CenterFrequency = frequency;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -460,6 +484,12 @@ void MetisMISOGui::displayFrequency()
|
||||
} else if (m_streamIndex == 3) {
|
||||
centerFrequency = m_settings.m_rx4CenterFrequency;
|
||||
} else if (m_streamIndex == 4) {
|
||||
centerFrequency = m_settings.m_rx5CenterFrequency;
|
||||
} else if (m_streamIndex == 5) {
|
||||
centerFrequency = m_settings.m_rx6CenterFrequency;
|
||||
} else if (m_streamIndex == 6) {
|
||||
centerFrequency = m_settings.m_rx7CenterFrequency;
|
||||
} else if (m_streamIndex == 7) {
|
||||
centerFrequency = m_settings.m_txCenterFrequency;
|
||||
} else {
|
||||
centerFrequency = 0;
|
||||
@ -488,6 +518,12 @@ void MetisMISOGui::updateSpectrum()
|
||||
} else if (m_spectrumStreamIndex == 3) {
|
||||
centerFrequency = m_settings.m_rx4CenterFrequency;
|
||||
} else if (m_spectrumStreamIndex == 4) {
|
||||
centerFrequency = m_settings.m_rx5CenterFrequency;
|
||||
} else if (m_spectrumStreamIndex == 5) {
|
||||
centerFrequency = m_settings.m_rx6CenterFrequency;
|
||||
} else if (m_spectrumStreamIndex == 6) {
|
||||
centerFrequency = m_settings.m_rx7CenterFrequency;
|
||||
} else if (m_spectrumStreamIndex == 7) {
|
||||
centerFrequency = m_settings.m_txCenterFrequency;
|
||||
} else {
|
||||
centerFrequency = 0;
|
||||
|
||||
@ -90,6 +90,21 @@
|
||||
<string>Rx3</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Rx4</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Rx5</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Rx6</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Tx</string>
|
||||
@ -141,6 +156,21 @@
|
||||
<string>Rx3</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Rx4</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Rx5</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Rx6</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Tx</string>
|
||||
|
||||
@ -31,6 +31,9 @@ MetisMISOSettings::MetisMISOSettings(const MetisMISOSettings& other)
|
||||
m_rx2CenterFrequency = other.m_rx2CenterFrequency;
|
||||
m_rx3CenterFrequency = other.m_rx3CenterFrequency;
|
||||
m_rx4CenterFrequency = other.m_rx4CenterFrequency;
|
||||
m_rx5CenterFrequency = other.m_rx5CenterFrequency;
|
||||
m_rx6CenterFrequency = other.m_rx6CenterFrequency;
|
||||
m_rx7CenterFrequency = other.m_rx7CenterFrequency;
|
||||
m_txCenterFrequency = other.m_txCenterFrequency;
|
||||
m_sampleRateIndex = other.m_sampleRateIndex;
|
||||
m_log2Decim = other.m_log2Decim;
|
||||
@ -53,6 +56,9 @@ void MetisMISOSettings::resetToDefaults()
|
||||
m_rx2CenterFrequency = 7074000;
|
||||
m_rx3CenterFrequency = 7074000;
|
||||
m_rx4CenterFrequency = 7074000;
|
||||
m_rx5CenterFrequency = 7074000;
|
||||
m_rx6CenterFrequency = 7074000;
|
||||
m_rx7CenterFrequency = 7074000;
|
||||
m_txCenterFrequency = 7074000;
|
||||
m_sampleRateIndex = 0; // 48000 kS/s
|
||||
m_log2Decim = 0;
|
||||
@ -77,19 +83,22 @@ QByteArray MetisMISOSettings::serialize() const
|
||||
s.writeU64(3, m_rx2CenterFrequency);
|
||||
s.writeU64(4, m_rx3CenterFrequency);
|
||||
s.writeU64(5, m_rx4CenterFrequency);
|
||||
s.writeU64(6, m_txCenterFrequency);
|
||||
s.writeU32(7, m_sampleRateIndex);
|
||||
s.writeU32(8, m_log2Decim);
|
||||
s.writeBool(9, m_preamp);
|
||||
s.writeBool(10, m_random);
|
||||
s.writeBool(11, m_dither);
|
||||
s.writeBool(12, m_duplex);
|
||||
s.writeBool(13, m_dcBlock);
|
||||
s.writeBool(14, m_iqCorrection);
|
||||
s.writeBool(15, m_useReverseAPI);
|
||||
s.writeString(16, m_reverseAPIAddress);
|
||||
s.writeU32(17, m_reverseAPIPort);
|
||||
s.writeU32(18, m_reverseAPIDeviceIndex);
|
||||
s.writeU64(6, m_rx5CenterFrequency);
|
||||
s.writeU64(7, m_rx6CenterFrequency);
|
||||
s.writeU64(8, m_rx7CenterFrequency);
|
||||
s.writeU64(9, m_txCenterFrequency);
|
||||
s.writeU32(10, m_sampleRateIndex);
|
||||
s.writeU32(11, m_log2Decim);
|
||||
s.writeBool(12, m_preamp);
|
||||
s.writeBool(13, m_random);
|
||||
s.writeBool(14, m_dither);
|
||||
s.writeBool(15, m_duplex);
|
||||
s.writeBool(16, m_dcBlock);
|
||||
s.writeBool(17, m_iqCorrection);
|
||||
s.writeBool(18, m_useReverseAPI);
|
||||
s.writeString(19, m_reverseAPIAddress);
|
||||
s.writeU32(20, m_reverseAPIPort);
|
||||
s.writeU32(21, m_reverseAPIDeviceIndex);
|
||||
|
||||
return s.final();
|
||||
}
|
||||
@ -114,18 +123,21 @@ bool MetisMISOSettings::deserialize(const QByteArray& data)
|
||||
d.readU64(3, &m_rx2CenterFrequency, 7074000);
|
||||
d.readU64(4, &m_rx3CenterFrequency, 7074000);
|
||||
d.readU64(5, &m_rx4CenterFrequency, 7074000);
|
||||
d.readU64(6, &m_txCenterFrequency, 7074000);
|
||||
d.readU32(7, &m_sampleRateIndex, 0);
|
||||
d.readU32(8, &m_log2Decim, 0);
|
||||
d.readBool(8, &m_preamp, false);
|
||||
d.readBool(9, &m_random, false);
|
||||
d.readBool(10, &m_dither, false);
|
||||
d.readBool(11, &m_duplex, false);
|
||||
d.readBool(12, &m_dcBlock, false);
|
||||
d.readBool(13, &m_iqCorrection, false);
|
||||
d.readBool(14, &m_useReverseAPI, false);
|
||||
d.readString(15, &m_reverseAPIAddress, "127.0.0.1");
|
||||
d.readU32(16, &utmp, 0);
|
||||
d.readU64(6, &m_rx5CenterFrequency, 7074000);
|
||||
d.readU64(7, &m_rx6CenterFrequency, 7074000);
|
||||
d.readU64(8, &m_rx7CenterFrequency, 7074000);
|
||||
d.readU64(9, &m_txCenterFrequency, 7074000);
|
||||
d.readU32(10, &m_sampleRateIndex, 0);
|
||||
d.readU32(11, &m_log2Decim, 0);
|
||||
d.readBool(12, &m_preamp, false);
|
||||
d.readBool(13, &m_random, false);
|
||||
d.readBool(14, &m_dither, false);
|
||||
d.readBool(15, &m_duplex, false);
|
||||
d.readBool(16, &m_dcBlock, false);
|
||||
d.readBool(17, &m_iqCorrection, false);
|
||||
d.readBool(18, &m_useReverseAPI, false);
|
||||
d.readString(19, &m_reverseAPIAddress, "127.0.0.1");
|
||||
d.readU32(20, &utmp, 0);
|
||||
|
||||
if ((utmp > 1023) && (utmp < 65535)) {
|
||||
m_reverseAPIPort = utmp;
|
||||
@ -133,7 +145,7 @@ bool MetisMISOSettings::deserialize(const QByteArray& data)
|
||||
m_reverseAPIPort = 8888;
|
||||
}
|
||||
|
||||
d.readU32(17, &utmp, 0);
|
||||
d.readU32(21, &utmp, 0);
|
||||
m_reverseAPIDeviceIndex = utmp > 99 ? 99 : utmp;
|
||||
|
||||
return true;
|
||||
|
||||
@ -26,6 +26,9 @@ struct MetisMISOSettings {
|
||||
quint64 m_rx2CenterFrequency;
|
||||
quint64 m_rx3CenterFrequency;
|
||||
quint64 m_rx4CenterFrequency;
|
||||
quint64 m_rx5CenterFrequency;
|
||||
quint64 m_rx6CenterFrequency;
|
||||
quint64 m_rx7CenterFrequency;
|
||||
quint64 m_txCenterFrequency;
|
||||
unsigned int m_sampleRateIndex;
|
||||
unsigned int m_log2Decim;
|
||||
@ -40,7 +43,7 @@ struct MetisMISOSettings {
|
||||
uint16_t m_reverseAPIPort;
|
||||
uint16_t m_reverseAPIDeviceIndex;
|
||||
|
||||
static const int m_maxReceivers = 4;
|
||||
static const int m_maxReceivers = 7;
|
||||
|
||||
MetisMISOSettings();
|
||||
MetisMISOSettings(const MetisMISOSettings& other);
|
||||
|
||||
@ -310,8 +310,10 @@ void MetisMISOUDPHandler::dataReadyRead()
|
||||
qDebug() << "MetisMISOUDPHandler::dataReadyRead: expected data packet (1) got " << receiveBuffer[2];
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
qDebug()<<"expected EFFE";
|
||||
}
|
||||
else
|
||||
{
|
||||
qDebug() << "MetisMISOUDPHandler::dataReadyRead: expected EFFE";
|
||||
}
|
||||
}
|
||||
|
||||
@ -382,6 +384,18 @@ int MetisMISOUDPHandler::getCommandValue(int commandIndex)
|
||||
{
|
||||
return m_settings.m_rx4CenterFrequency;
|
||||
}
|
||||
else if (commandIndex == 12)
|
||||
{
|
||||
return m_settings.m_rx5CenterFrequency;
|
||||
}
|
||||
else if (commandIndex == 14)
|
||||
{
|
||||
return m_settings.m_rx6CenterFrequency;
|
||||
}
|
||||
else if (commandIndex == 16)
|
||||
{
|
||||
return m_settings.m_rx7CenterFrequency;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
@ -527,8 +541,8 @@ void MetisMISOUDPHandler::processIQBuffer(unsigned char* buffer)
|
||||
}
|
||||
}
|
||||
|
||||
sampleMic = (int)((signed char) buffer[b++]) << 8;
|
||||
sampleMic += (int)((unsigned char)buffer[b++]);
|
||||
sampleMic = (int)((signed char) buffer[b++]) << 8;
|
||||
sampleMic += (int)((unsigned char)buffer[b++]);
|
||||
|
||||
if (samplesAdded != 0)
|
||||
{
|
||||
|
||||
@ -5521,6 +5521,18 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"format" : "uint64"
|
||||
},
|
||||
"rx5CenterFrequency" : {
|
||||
"type" : "integer",
|
||||
"format" : "uint64"
|
||||
},
|
||||
"rx6CenterFrequency" : {
|
||||
"type" : "integer",
|
||||
"format" : "uint64"
|
||||
},
|
||||
"rx7CenterFrequency" : {
|
||||
"type" : "integer",
|
||||
"format" : "uint64"
|
||||
},
|
||||
"txCenterFrequency" : {
|
||||
"type" : "integer",
|
||||
"format" : "uint64"
|
||||
@ -37534,7 +37546,7 @@ except ApiException as e:
|
||||
</div>
|
||||
<div id="generator">
|
||||
<div class="content">
|
||||
Generated 2020-09-05T10:34:53.674+02:00
|
||||
Generated 2020-09-05T10:52:03.956+02:00
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -16,6 +16,15 @@ MetisMISOSettings:
|
||||
rx4CenterFrequency:
|
||||
type: integer
|
||||
format: uint64
|
||||
rx5CenterFrequency:
|
||||
type: integer
|
||||
format: uint64
|
||||
rx6CenterFrequency:
|
||||
type: integer
|
||||
format: uint64
|
||||
rx7CenterFrequency:
|
||||
type: integer
|
||||
format: uint64
|
||||
txCenterFrequency:
|
||||
type: integer
|
||||
format: uint64
|
||||
|
||||
@ -16,6 +16,15 @@ MetisMISOSettings:
|
||||
rx4CenterFrequency:
|
||||
type: integer
|
||||
format: uint64
|
||||
rx5CenterFrequency:
|
||||
type: integer
|
||||
format: uint64
|
||||
rx6CenterFrequency:
|
||||
type: integer
|
||||
format: uint64
|
||||
rx7CenterFrequency:
|
||||
type: integer
|
||||
format: uint64
|
||||
txCenterFrequency:
|
||||
type: integer
|
||||
format: uint64
|
||||
|
||||
@ -5521,6 +5521,18 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"format" : "uint64"
|
||||
},
|
||||
"rx5CenterFrequency" : {
|
||||
"type" : "integer",
|
||||
"format" : "uint64"
|
||||
},
|
||||
"rx6CenterFrequency" : {
|
||||
"type" : "integer",
|
||||
"format" : "uint64"
|
||||
},
|
||||
"rx7CenterFrequency" : {
|
||||
"type" : "integer",
|
||||
"format" : "uint64"
|
||||
},
|
||||
"txCenterFrequency" : {
|
||||
"type" : "integer",
|
||||
"format" : "uint64"
|
||||
@ -37534,7 +37546,7 @@ except ApiException as e:
|
||||
</div>
|
||||
<div id="generator">
|
||||
<div class="content">
|
||||
Generated 2020-09-05T10:34:53.674+02:00
|
||||
Generated 2020-09-05T10:52:03.956+02:00
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -38,6 +38,12 @@ SWGMetisMISOSettings::SWGMetisMISOSettings() {
|
||||
m_rx3_center_frequency_isSet = false;
|
||||
rx4_center_frequency = 0;
|
||||
m_rx4_center_frequency_isSet = false;
|
||||
rx5_center_frequency = 0;
|
||||
m_rx5_center_frequency_isSet = false;
|
||||
rx6_center_frequency = 0;
|
||||
m_rx6_center_frequency_isSet = false;
|
||||
rx7_center_frequency = 0;
|
||||
m_rx7_center_frequency_isSet = false;
|
||||
tx_center_frequency = 0;
|
||||
m_tx_center_frequency_isSet = false;
|
||||
sample_rate_index = 0;
|
||||
@ -82,6 +88,12 @@ SWGMetisMISOSettings::init() {
|
||||
m_rx3_center_frequency_isSet = false;
|
||||
rx4_center_frequency = 0;
|
||||
m_rx4_center_frequency_isSet = false;
|
||||
rx5_center_frequency = 0;
|
||||
m_rx5_center_frequency_isSet = false;
|
||||
rx6_center_frequency = 0;
|
||||
m_rx6_center_frequency_isSet = false;
|
||||
rx7_center_frequency = 0;
|
||||
m_rx7_center_frequency_isSet = false;
|
||||
tx_center_frequency = 0;
|
||||
m_tx_center_frequency_isSet = false;
|
||||
sample_rate_index = 0;
|
||||
@ -127,6 +139,9 @@ SWGMetisMISOSettings::cleanup() {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if(reverse_api_address != nullptr) {
|
||||
delete reverse_api_address;
|
||||
}
|
||||
@ -155,6 +170,12 @@ SWGMetisMISOSettings::fromJsonObject(QJsonObject &pJson) {
|
||||
|
||||
::SWGSDRangel::setValue(&rx4_center_frequency, pJson["rx4CenterFrequency"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&rx5_center_frequency, pJson["rx5CenterFrequency"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&rx6_center_frequency, pJson["rx6CenterFrequency"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&rx7_center_frequency, pJson["rx7CenterFrequency"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&tx_center_frequency, pJson["txCenterFrequency"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&sample_rate_index, pJson["sampleRateIndex"], "qint32", "");
|
||||
@ -212,6 +233,15 @@ SWGMetisMISOSettings::asJsonObject() {
|
||||
if(m_rx4_center_frequency_isSet){
|
||||
obj->insert("rx4CenterFrequency", QJsonValue(rx4_center_frequency));
|
||||
}
|
||||
if(m_rx5_center_frequency_isSet){
|
||||
obj->insert("rx5CenterFrequency", QJsonValue(rx5_center_frequency));
|
||||
}
|
||||
if(m_rx6_center_frequency_isSet){
|
||||
obj->insert("rx6CenterFrequency", QJsonValue(rx6_center_frequency));
|
||||
}
|
||||
if(m_rx7_center_frequency_isSet){
|
||||
obj->insert("rx7CenterFrequency", QJsonValue(rx7_center_frequency));
|
||||
}
|
||||
if(m_tx_center_frequency_isSet){
|
||||
obj->insert("txCenterFrequency", QJsonValue(tx_center_frequency));
|
||||
}
|
||||
@ -305,6 +335,36 @@ SWGMetisMISOSettings::setRx4CenterFrequency(qint32 rx4_center_frequency) {
|
||||
this->m_rx4_center_frequency_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGMetisMISOSettings::getRx5CenterFrequency() {
|
||||
return rx5_center_frequency;
|
||||
}
|
||||
void
|
||||
SWGMetisMISOSettings::setRx5CenterFrequency(qint32 rx5_center_frequency) {
|
||||
this->rx5_center_frequency = rx5_center_frequency;
|
||||
this->m_rx5_center_frequency_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGMetisMISOSettings::getRx6CenterFrequency() {
|
||||
return rx6_center_frequency;
|
||||
}
|
||||
void
|
||||
SWGMetisMISOSettings::setRx6CenterFrequency(qint32 rx6_center_frequency) {
|
||||
this->rx6_center_frequency = rx6_center_frequency;
|
||||
this->m_rx6_center_frequency_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGMetisMISOSettings::getRx7CenterFrequency() {
|
||||
return rx7_center_frequency;
|
||||
}
|
||||
void
|
||||
SWGMetisMISOSettings::setRx7CenterFrequency(qint32 rx7_center_frequency) {
|
||||
this->rx7_center_frequency = rx7_center_frequency;
|
||||
this->m_rx7_center_frequency_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGMetisMISOSettings::getTxCenterFrequency() {
|
||||
return tx_center_frequency;
|
||||
@ -455,6 +515,15 @@ SWGMetisMISOSettings::isSet(){
|
||||
if(m_rx4_center_frequency_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_rx5_center_frequency_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_rx6_center_frequency_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_rx7_center_frequency_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_tx_center_frequency_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
|
||||
@ -57,6 +57,15 @@ public:
|
||||
qint32 getRx4CenterFrequency();
|
||||
void setRx4CenterFrequency(qint32 rx4_center_frequency);
|
||||
|
||||
qint32 getRx5CenterFrequency();
|
||||
void setRx5CenterFrequency(qint32 rx5_center_frequency);
|
||||
|
||||
qint32 getRx6CenterFrequency();
|
||||
void setRx6CenterFrequency(qint32 rx6_center_frequency);
|
||||
|
||||
qint32 getRx7CenterFrequency();
|
||||
void setRx7CenterFrequency(qint32 rx7_center_frequency);
|
||||
|
||||
qint32 getTxCenterFrequency();
|
||||
void setTxCenterFrequency(qint32 tx_center_frequency);
|
||||
|
||||
@ -115,6 +124,15 @@ private:
|
||||
qint32 rx4_center_frequency;
|
||||
bool m_rx4_center_frequency_isSet;
|
||||
|
||||
qint32 rx5_center_frequency;
|
||||
bool m_rx5_center_frequency_isSet;
|
||||
|
||||
qint32 rx6_center_frequency;
|
||||
bool m_rx6_center_frequency_isSet;
|
||||
|
||||
qint32 rx7_center_frequency;
|
||||
bool m_rx7_center_frequency_isSet;
|
||||
|
||||
qint32 tx_center_frequency;
|
||||
bool m_tx_center_frequency_isSet;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user