DSD demod: implemented DMR basic privacy followinf dsdcc v1.8.7 changes

pull/575/head
f4exb 2020-06-15 12:40:59 +02:00
rodzic 8ad440f893
commit e72ec4c879
10 zmienionych plików z 60 dodań i 2 usunięć

Wyświetl plik

@ -12,7 +12,7 @@ set(CODEC2_TAG "v0.9.2")
set(CM256CC_TAG c0e92b92aca3d1d36c990b642b937c64d363c559)
set(MBELIB_TAG 9a04ed5c78176a9965f3d43f7aa1b1f5330e771f)
set(SERIALDV_TAG "v1.1.4")
set(DSDCC_TAG "v1.8.6")
set(DSDCC_TAG "v1.8.7")
set(LIMESUITE_TAG "v20.01.0")
set(BLADERF_TAG "2019.07")
set(LIBIIO_TAG 826563e41b5ce9890b75506f672017de8d76d52d)

Wyświetl plik

@ -50,6 +50,7 @@ public:
bool getVoice2On() const { return m_decoder.getVoice2On(); }
void setTDMAStereo(bool tdmaStereo) { m_decoder.setTDMAStereo(tdmaStereo); }
bool getSymbolPLLLocked() const { return m_decoder.getSymbolPLLLocked(); }
void setDMRBasicPrivacyKey(unsigned char key) { m_decoder.setDMRBasicPrivacyKey(key); }
int getMbeRateIndex() const { return (int) m_decoder.getMbeRate(); }

Wyświetl plik

@ -156,6 +156,7 @@ void DSDDemod::applySettings(const DSDDemodSettings& settings, bool force)
<< " m_slot2On: " << settings.m_slot2On
<< " m_tdmaStereo: " << settings.m_tdmaStereo
<< " m_pllLock: " << settings.m_pllLock
<< " m_dmrBPKey:" << settings.m_dmrBPKey
<< " m_highPassFilter: "<< settings.m_highPassFilter
<< " m_audioDeviceName: " << settings.m_audioDeviceName
<< " m_traceLengthMutliplier: " << settings.m_traceLengthMutliplier
@ -217,6 +218,9 @@ void DSDDemod::applySettings(const DSDDemodSettings& settings, bool force)
if ((settings.m_pllLock != m_settings.m_pllLock) || force) {
reverseAPIKeys.append("pllLock");
}
if ((settings.m_dmrBPKey != m_settings.m_dmrBPKey) || force) {
reverseAPIKeys.append("dmrBPKey");
}
if ((settings.m_highPassFilter != m_settings.m_highPassFilter) || force) {
reverseAPIKeys.append("highPassFilter");
}

Wyświetl plik

@ -263,6 +263,12 @@ void DSDDemodGUI::on_symbolPLLLock_toggled(bool checked)
applySettings();
}
void DSDDemodGUI::on_dmrBPKey_valueChanged(int value)
{
m_settings.m_dmrBPKey = value < 0 ? 0 : value > 255 ? 255 : value;
applySettings();
}
void DSDDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{
(void) widget;

Wyświetl plik

@ -132,6 +132,7 @@ private slots:
void on_highPassFilter_toggled(bool checked);
void on_audioMute_toggled(bool checked);
void on_symbolPLLLock_toggled(bool checked);
void on_dmrBPKey_valueChanged(int value);
void onWidgetRolled(QWidget* widget, bool rollDown);
void onMenuDialogCalled(const QPoint& p);
void on_viewStatusLog_clicked();

Wyświetl plik

@ -1228,6 +1228,41 @@
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
<widget class="QLabel" name="dmrBPLabel">
<property name="geometry">
<rect>
<x>10</x>
<y>170</y>
<width>21</width>
<height>19</height>
</rect>
</property>
<property name="text">
<string>BP</string>
</property>
</widget>
<widget class="QSpinBox" name="dmrBPKey">
<property name="geometry">
<rect>
<x>40</x>
<y>170</y>
<width>50</width>
<height>19</height>
</rect>
</property>
<property name="toolTip">
<string>DMR Basic Privacy key (0: no encryption)</string>
</property>
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="maximum">
<number>255</number>
</property>
</widget>
</widget>
</item>
</layout>

Wyświetl plik

@ -30,7 +30,7 @@
const PluginDescriptor DSDDemodPlugin::m_pluginDescriptor = {
DSDDemod::m_channelId,
QString("DSD Demodulator"),
QString("4.12.3"),
QString("4.14.9"),
QString("(c) Edouard Griffiths, F4EXB"),
QString("https://github.com/f4exb/sdrangel"),
true,

Wyświetl plik

@ -46,6 +46,7 @@ void DSDDemodSettings::resetToDefaults()
m_slot2On = false;
m_tdmaStereo = false;
m_pllLock = true;
m_dmrBPKey = 0;
m_rgbColor = QColor(0, 255, 255).rgb();
m_title = "DSD Demodulator";
m_highPassFilter = false;
@ -102,6 +103,7 @@ QByteArray DSDDemodSettings::serialize() const
s.writeU32(28, m_reverseAPIChannelIndex);
s.writeBool(29, m_audioMute);
s.writeS32(30, m_streamIndex);
s.writeU32(31, m_dmrBPKey);
return s.final();
}
@ -180,6 +182,8 @@ bool DSDDemodSettings::deserialize(const QByteArray& data)
m_reverseAPIChannelIndex = utmp > 99 ? 99 : utmp;
d.readBool(29, &m_audioMute, false);
d.readS32(30, &m_streamIndex, 0);
d.readU32(31, &utmp, 0);
m_dmrBPKey = utmp < 256 ? utmp : 255;
return true;
}

Wyświetl plik

@ -39,6 +39,7 @@ struct DSDDemodSettings
bool m_slot2On;
bool m_tdmaStereo;
bool m_pllLock;
uint8_t m_dmrBPKey; //!< Basic Privacy key index - 0: no encryption
quint32 m_rgbColor;
QString m_title;
bool m_highPassFilter;

Wyświetl plik

@ -334,6 +334,7 @@ void DSDDemodSink::applySettings(const DSDDemodSettings& settings, bool force)
<< " m_slot2On: " << settings.m_slot2On
<< " m_tdmaStereo: " << settings.m_tdmaStereo
<< " m_pllLock: " << settings.m_pllLock
<< " m_dmrBPKey: " << settings.m_dmrBPKey
<< " m_highPassFilter: "<< settings.m_highPassFilter
<< " m_audioDeviceName: " << settings.m_audioDeviceName
<< " m_traceLengthMutliplier: " << settings.m_traceLengthMutliplier
@ -392,6 +393,11 @@ void DSDDemodSink::applySettings(const DSDDemodSettings& settings, bool force)
m_dsdDecoder.setSymbolPLLLock(settings.m_pllLock);
}
if ((settings.m_dmrBPKey != m_settings.m_dmrBPKey) || force)
{
m_dsdDecoder.setDMRBasicPrivacyKey(settings.m_dmrBPKey);
}
if ((settings.m_highPassFilter != m_settings.m_highPassFilter) || force)
{
m_dsdDecoder.useHPMbelib(settings.m_highPassFilter);