mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-12-23 01:55:48 -05:00
M17 demod: updated API
This commit is contained in:
parent
2efa765750
commit
823cffdae1
@ -65,7 +65,7 @@ M17Demod::M17Demod(DeviceAPI *deviceAPI) :
|
||||
m_basebandSink->setDemodInputMessageQueue(&m_inputMessageQueue);
|
||||
m_basebandSink->moveToThread(m_thread);
|
||||
|
||||
applySettings(m_settings, true);
|
||||
applySettings(m_settings, QList<QString>(), true);
|
||||
|
||||
m_deviceAPI->addChannelSink(this);
|
||||
m_deviceAPI->addChannelSinkAPI(this);
|
||||
@ -150,7 +150,7 @@ bool M17Demod::handleMessage(const Message& cmd)
|
||||
{
|
||||
MsgConfigureM17Demod& cfg = (MsgConfigureM17Demod&) cmd;
|
||||
qDebug("M17Demod::handleMessage: MsgConfigureM17Demod");
|
||||
applySettings(cfg.getSettings(), cfg.getForce());
|
||||
applySettings(cfg.getSettings(), cfg.getSettingsKeys(), cfg.getForce());
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -217,18 +217,19 @@ void M17Demod::setCenterFrequency(qint64 frequency)
|
||||
{
|
||||
M17DemodSettings settings = m_settings;
|
||||
settings.m_inputFrequencyOffset = frequency;
|
||||
applySettings(settings, false);
|
||||
applySettings(settings, QList<QString>({"inputFrequencyOffset"}), false);
|
||||
|
||||
if (m_guiMessageQueue) // forward to GUI if any
|
||||
{
|
||||
MsgConfigureM17Demod *msgToGUI = MsgConfigureM17Demod::create(settings, false);
|
||||
MsgConfigureM17Demod *msgToGUI = MsgConfigureM17Demod::create(settings, QList<QString>({"inputFrequencyOffset"}), false);
|
||||
m_guiMessageQueue->push(msgToGUI);
|
||||
}
|
||||
}
|
||||
|
||||
void M17Demod::applySettings(const M17DemodSettings& settings, bool force)
|
||||
void M17Demod::applySettings(const M17DemodSettings& settings, const QList<QString>& settingsKeys, bool force)
|
||||
{
|
||||
qDebug() << "M17Demod::applySettings: "
|
||||
<< " settingsKeys: " << settingsKeys
|
||||
<< " m_inputFrequencyOffset: " << settings.m_inputFrequencyOffset
|
||||
<< " m_rfBandwidth: " << settings.m_rfBandwidth
|
||||
<< " m_fmDeviation: " << settings.m_fmDeviation
|
||||
@ -246,46 +247,7 @@ void M17Demod::applySettings(const M17DemodSettings& settings, bool force)
|
||||
<< " m_streamIndex: " << settings.m_streamIndex
|
||||
<< " force: " << force;
|
||||
|
||||
QList<QString> reverseAPIKeys;
|
||||
|
||||
if ((settings.m_inputFrequencyOffset != m_settings.m_inputFrequencyOffset) || force) {
|
||||
reverseAPIKeys.append("inputFrequencyOffset");
|
||||
}
|
||||
if ((settings.m_audioMute != m_settings.m_audioMute) || force) {
|
||||
reverseAPIKeys.append("audioMute");
|
||||
}
|
||||
if ((settings.m_syncOrConstellation != m_settings.m_syncOrConstellation) || force) {
|
||||
reverseAPIKeys.append("syncOrConstellation");
|
||||
}
|
||||
if ((settings.m_traceLengthMutliplier != m_settings.m_traceLengthMutliplier) || force) {
|
||||
reverseAPIKeys.append("traceLengthMutliplier");
|
||||
}
|
||||
if ((settings.m_rfBandwidth != m_settings.m_rfBandwidth) || force) {
|
||||
reverseAPIKeys.append("rfBandwidth");
|
||||
}
|
||||
if ((settings.m_fmDeviation != m_settings.m_fmDeviation) || force) {
|
||||
reverseAPIKeys.append("fmDeviation");
|
||||
}
|
||||
if ((settings.m_squelchGate != m_settings.m_squelchGate) || force) {
|
||||
reverseAPIKeys.append("squelchGate");
|
||||
}
|
||||
if ((settings.m_squelch != m_settings.m_squelch) || force) {
|
||||
reverseAPIKeys.append("squelch");
|
||||
}
|
||||
if ((settings.m_volume != m_settings.m_volume) || force) {
|
||||
reverseAPIKeys.append("volume");
|
||||
}
|
||||
if ((settings.m_baudRate != m_settings.m_baudRate) || force) {
|
||||
reverseAPIKeys.append("baudRate");
|
||||
}
|
||||
if ((settings.m_highPassFilter != m_settings.m_highPassFilter) || force) {
|
||||
reverseAPIKeys.append("highPassFilter");
|
||||
}
|
||||
if ((settings.m_audioDeviceName != m_settings.m_audioDeviceName) || force) {
|
||||
reverseAPIKeys.append("audioDeviceName");
|
||||
}
|
||||
|
||||
if (m_settings.m_streamIndex != settings.m_streamIndex)
|
||||
if (settingsKeys.contains("streamIndex"))
|
||||
{
|
||||
if (m_deviceAPI->getSampleMIMO()) // change of stream is possible for MIMO devices only
|
||||
{
|
||||
@ -294,31 +256,33 @@ void M17Demod::applySettings(const M17DemodSettings& settings, bool force)
|
||||
m_deviceAPI->addChannelSink(this, settings.m_streamIndex);
|
||||
m_deviceAPI->addChannelSinkAPI(this);
|
||||
}
|
||||
|
||||
reverseAPIKeys.append("streamIndex");
|
||||
}
|
||||
|
||||
M17DemodBaseband::MsgConfigureM17DemodBaseband *msg = M17DemodBaseband::MsgConfigureM17DemodBaseband::create(settings, force);
|
||||
M17DemodBaseband::MsgConfigureM17DemodBaseband *msg = M17DemodBaseband::MsgConfigureM17DemodBaseband::create(settings, settingsKeys, force);
|
||||
m_basebandSink->getInputMessageQueue()->push(msg);
|
||||
|
||||
if (settings.m_useReverseAPI)
|
||||
if (settingsKeys.contains("m_useReverseAPI"))
|
||||
{
|
||||
bool fullUpdate = ((m_settings.m_useReverseAPI != settings.m_useReverseAPI) && settings.m_useReverseAPI) ||
|
||||
(m_settings.m_reverseAPIAddress != settings.m_reverseAPIAddress) ||
|
||||
(m_settings.m_reverseAPIPort != settings.m_reverseAPIPort) ||
|
||||
(m_settings.m_reverseAPIDeviceIndex != settings.m_reverseAPIDeviceIndex) ||
|
||||
(m_settings.m_reverseAPIChannelIndex != settings.m_reverseAPIChannelIndex);
|
||||
webapiReverseSendSettings(reverseAPIKeys, settings, fullUpdate || force);
|
||||
webapiReverseSendSettings(settingsKeys, settings, fullUpdate || force);
|
||||
}
|
||||
|
||||
QList<ObjectPipe*> pipes;
|
||||
MainCore::instance()->getMessagePipes().getMessagePipes(this, "settings", pipes);
|
||||
|
||||
if (pipes.size() > 0) {
|
||||
sendChannelSettings(pipes, reverseAPIKeys, settings, force);
|
||||
sendChannelSettings(pipes, settingsKeys, settings, force);
|
||||
}
|
||||
|
||||
m_settings = settings;
|
||||
if (force) {
|
||||
m_settings = settings;
|
||||
} else {
|
||||
m_settings.applySettings(settingsKeys, settings);
|
||||
}
|
||||
}
|
||||
|
||||
QByteArray M17Demod::serialize() const
|
||||
@ -330,14 +294,14 @@ bool M17Demod::deserialize(const QByteArray& data)
|
||||
{
|
||||
if (m_settings.deserialize(data))
|
||||
{
|
||||
MsgConfigureM17Demod *msg = MsgConfigureM17Demod::create(m_settings, true);
|
||||
MsgConfigureM17Demod *msg = MsgConfigureM17Demod::create(m_settings, QList<QString>(), true);
|
||||
m_inputMessageQueue.push(msg);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_settings.resetToDefaults();
|
||||
MsgConfigureM17Demod *msg = MsgConfigureM17Demod::create(m_settings, true);
|
||||
MsgConfigureM17Demod *msg = MsgConfigureM17Demod::create(m_settings, QList<QString>(), true);
|
||||
m_inputMessageQueue.push(msg);
|
||||
return false;
|
||||
}
|
||||
@ -392,13 +356,13 @@ int M17Demod::webapiSettingsPutPatch(
|
||||
M17DemodSettings settings = m_settings;
|
||||
webapiUpdateChannelSettings(settings, channelSettingsKeys, response);
|
||||
|
||||
MsgConfigureM17Demod *msg = MsgConfigureM17Demod::create(settings, force);
|
||||
MsgConfigureM17Demod *msg = MsgConfigureM17Demod::create(settings, channelSettingsKeys, force);
|
||||
m_inputMessageQueue.push(msg);
|
||||
|
||||
qDebug("M17Demod::webapiSettingsPutPatch: forward to GUI: %p", m_guiMessageQueue);
|
||||
if (m_guiMessageQueue) // forward to GUI if any
|
||||
{
|
||||
MsgConfigureM17Demod *msgToGUI = MsgConfigureM17Demod::create(settings, force);
|
||||
MsgConfigureM17Demod *msgToGUI = MsgConfigureM17Demod::create(settings, channelSettingsKeys, force);
|
||||
m_guiMessageQueue->push(msgToGUI);
|
||||
}
|
||||
|
||||
@ -445,6 +409,9 @@ void M17Demod::webapiUpdateChannelSettings(
|
||||
if (channelSettingsKeys.contains("title")) {
|
||||
settings.m_title = *response.getM17DemodSettings()->getTitle();
|
||||
}
|
||||
if (channelSettingsKeys.contains("statusLogEnabled")) {
|
||||
settings.m_statusLogEnabled = response.getM17DemodSettings()->getStatusLogEnabled() != 0;
|
||||
}
|
||||
if (channelSettingsKeys.contains("audioDeviceName")) {
|
||||
settings.m_audioDeviceName = *response.getM17DemodSettings()->getAudioDeviceName();
|
||||
}
|
||||
@ -508,6 +475,7 @@ void M17Demod::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& resp
|
||||
response.getM17DemodSettings()->setSquelch(settings.m_squelch);
|
||||
response.getM17DemodSettings()->setAudioMute(settings.m_audioMute ? 1 : 0);
|
||||
response.getM17DemodSettings()->setSyncOrConstellation(settings.m_syncOrConstellation ? 1 : 0);
|
||||
response.getM17DemodSettings()->setStatusLogEnabled(settings.m_statusLogEnabled ? 1 : 0);
|
||||
response.getM17DemodSettings()->setRgbColor(settings.m_rgbColor);
|
||||
|
||||
if (response.getM17DemodSettings()->getTitle()) {
|
||||
@ -580,7 +548,7 @@ void M17Demod::webapiFormatChannelReport(SWGSDRangel::SWGChannelReport& response
|
||||
response.getM17DemodReport()->setSquelch(m_basebandSink->getSquelchOpen() ? 1 : 0);
|
||||
}
|
||||
|
||||
void M17Demod::webapiReverseSendSettings(QList<QString>& channelSettingsKeys, const M17DemodSettings& settings, bool force)
|
||||
void M17Demod::webapiReverseSendSettings(const QList<QString>& channelSettingsKeys, const M17DemodSettings& settings, bool force)
|
||||
{
|
||||
SWGSDRangel::SWGChannelSettings *swgChannelSettings = new SWGSDRangel::SWGChannelSettings();
|
||||
webapiFormatChannelSettings(channelSettingsKeys, swgChannelSettings, settings, force);
|
||||
@ -607,7 +575,7 @@ void M17Demod::webapiReverseSendSettings(QList<QString>& channelSettingsKeys, co
|
||||
|
||||
void M17Demod::sendChannelSettings(
|
||||
const QList<ObjectPipe*>& pipes,
|
||||
QList<QString>& channelSettingsKeys,
|
||||
const QList<QString>& channelSettingsKeys,
|
||||
const M17DemodSettings& settings,
|
||||
bool force)
|
||||
{
|
||||
@ -631,7 +599,7 @@ void M17Demod::sendChannelSettings(
|
||||
}
|
||||
|
||||
void M17Demod::webapiFormatChannelSettings(
|
||||
QList<QString>& channelSettingsKeys,
|
||||
const QList<QString>& channelSettingsKeys,
|
||||
SWGSDRangel::SWGChannelSettings *swgChannelSettings,
|
||||
const M17DemodSettings& settings,
|
||||
bool force
|
||||
@ -673,6 +641,9 @@ void M17Demod::webapiFormatChannelSettings(
|
||||
if (channelSettingsKeys.contains("syncOrConstellation") || force) {
|
||||
swgM17DemodSettings->setSyncOrConstellation(settings.m_syncOrConstellation ? 1 : 0);
|
||||
}
|
||||
if (channelSettingsKeys.contains("statusLogEnabled") || force) {
|
||||
swgM17DemodSettings->setStatusLogEnabled(settings.m_statusLogEnabled ? 1 : 0);
|
||||
}
|
||||
if (channelSettingsKeys.contains("rgbColor") || force) {
|
||||
swgM17DemodSettings->setRgbColor(settings.m_rgbColor);
|
||||
}
|
||||
|
@ -43,19 +43,22 @@ public:
|
||||
|
||||
public:
|
||||
const M17DemodSettings& getSettings() const { return m_settings; }
|
||||
const QList<QString>& getSettingsKeys() const { return m_settingsKeys; }
|
||||
bool getForce() const { return m_force; }
|
||||
|
||||
static MsgConfigureM17Demod* create(const M17DemodSettings& settings, bool force) {
|
||||
return new MsgConfigureM17Demod(settings, force);
|
||||
static MsgConfigureM17Demod* create(const M17DemodSettings& settings, const QList<QString>& settingsKeys, bool force) {
|
||||
return new MsgConfigureM17Demod(settings, settingsKeys, force);
|
||||
}
|
||||
|
||||
private:
|
||||
M17DemodSettings m_settings;
|
||||
QList<QString> m_settingsKeys;
|
||||
bool m_force;
|
||||
|
||||
MsgConfigureM17Demod(const M17DemodSettings& settings, bool force) :
|
||||
MsgConfigureM17Demod(const M17DemodSettings& settings, const QList<QString>& settingsKeys, bool force) :
|
||||
Message(),
|
||||
m_settings(settings),
|
||||
m_settingsKeys(settingsKeys),
|
||||
m_force(force)
|
||||
{ }
|
||||
};
|
||||
@ -272,18 +275,18 @@ private:
|
||||
static const int m_udpBlockSize;
|
||||
|
||||
virtual bool handleMessage(const Message& cmd);
|
||||
void applySettings(const M17DemodSettings& settings, bool force = false);
|
||||
void applySettings(const M17DemodSettings& settings, const QList<QString>& settingsKeys, bool force = false);
|
||||
void sendSampleRateToDemodAnalyzer();
|
||||
void webapiFormatChannelReport(SWGSDRangel::SWGChannelReport& response);
|
||||
void webapiReverseSendSettings(QList<QString>& channelSettingsKeys, const M17DemodSettings& settings, bool force);
|
||||
void webapiReverseSendSettings(const QList<QString>& channelSettingsKeys, const M17DemodSettings& settings, bool force);
|
||||
void sendChannelSettings(
|
||||
const QList<ObjectPipe*>& pipes,
|
||||
QList<QString>& channelSettingsKeys,
|
||||
const QList<QString>& channelSettingsKeys,
|
||||
const M17DemodSettings& settings,
|
||||
bool force
|
||||
);
|
||||
void webapiFormatChannelSettings(
|
||||
QList<QString>& channelSettingsKeys,
|
||||
const QList<QString>& channelSettingsKeys,
|
||||
SWGSDRangel::SWGChannelSettings *swgChannelSettings,
|
||||
const M17DemodSettings& settings,
|
||||
bool force
|
||||
|
@ -117,7 +117,7 @@ bool M17DemodBaseband::handleMessage(const Message& cmd)
|
||||
MsgConfigureM17DemodBaseband& cfg = (MsgConfigureM17DemodBaseband&) cmd;
|
||||
qDebug() << "M17DemodBaseband::handleMessage: MsgConfigureM17DemodBaseband";
|
||||
|
||||
applySettings(cfg.getSettings(), cfg.getForce());
|
||||
applySettings(cfg.getSettings(), cfg.getSettingsKeys(), cfg.getForce());
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -144,9 +144,9 @@ bool M17DemodBaseband::handleMessage(const Message& cmd)
|
||||
}
|
||||
}
|
||||
|
||||
void M17DemodBaseband::applySettings(const M17DemodSettings& settings, bool force)
|
||||
void M17DemodBaseband::applySettings(const M17DemodSettings& settings, const QList<QString>& settingsKeys, bool force)
|
||||
{
|
||||
if ((settings.m_inputFrequencyOffset != m_settings.m_inputFrequencyOffset) || force)
|
||||
if (settingsKeys.contains("inputFrequencyOffset") || force)
|
||||
{
|
||||
m_channelizer->setChannelization(48000, settings.m_inputFrequencyOffset);
|
||||
m_sink.applyChannelSettings(m_channelizer->getChannelSampleRate(), m_channelizer->getChannelFrequencyOffset());
|
||||
@ -158,7 +158,7 @@ void M17DemodBaseband::applySettings(const M17DemodSettings& settings, bool forc
|
||||
}
|
||||
}
|
||||
|
||||
if ((settings.m_audioDeviceName != m_settings.m_audioDeviceName) || force)
|
||||
if (settingsKeys.contains("audioDeviceName") || force)
|
||||
{
|
||||
AudioDeviceManager *audioDeviceManager = DSPEngine::instance()->getAudioDeviceManager();
|
||||
int audioDeviceIndex = audioDeviceManager->getOutputDeviceIndex(settings.m_audioDeviceName);
|
||||
@ -172,9 +172,13 @@ void M17DemodBaseband::applySettings(const M17DemodSettings& settings, bool forc
|
||||
}
|
||||
}
|
||||
|
||||
m_sink.applySettings(settings, force);
|
||||
m_sink.applySettings(settings, settingsKeys, force);
|
||||
|
||||
m_settings = settings;
|
||||
if (force) {
|
||||
m_settings = settings;
|
||||
} else {
|
||||
m_settings.applySettings(settingsKeys, settings);
|
||||
}
|
||||
}
|
||||
|
||||
int M17DemodBaseband::getChannelSampleRate() const
|
||||
|
@ -39,20 +39,22 @@ public:
|
||||
|
||||
public:
|
||||
const M17DemodSettings& getSettings() const { return m_settings; }
|
||||
const QList<QString>& getSettingsKeys() const { return m_settingsKeys; }
|
||||
bool getForce() const { return m_force; }
|
||||
|
||||
static MsgConfigureM17DemodBaseband* create(const M17DemodSettings& settings, bool force)
|
||||
{
|
||||
return new MsgConfigureM17DemodBaseband(settings, force);
|
||||
static MsgConfigureM17DemodBaseband* create(const M17DemodSettings& settings, const QList<QString>& settingsKeys, bool force) {
|
||||
return new MsgConfigureM17DemodBaseband(settings, settingsKeys, force);
|
||||
}
|
||||
|
||||
private:
|
||||
M17DemodSettings m_settings;
|
||||
QList<QString> m_settingsKeys;
|
||||
bool m_force;
|
||||
|
||||
MsgConfigureM17DemodBaseband(const M17DemodSettings& settings, bool force) :
|
||||
MsgConfigureM17DemodBaseband(const M17DemodSettings& settings, const QList<QString>& settingsKeys, bool force) :
|
||||
Message(),
|
||||
m_settings(settings),
|
||||
m_settingsKeys(settingsKeys),
|
||||
m_force(force)
|
||||
{ }
|
||||
};
|
||||
@ -128,7 +130,7 @@ private:
|
||||
QMutex m_mutex;
|
||||
|
||||
bool handleMessage(const Message& cmd);
|
||||
void applySettings(const M17DemodSettings& settings, bool force = false);
|
||||
void applySettings(const M17DemodSettings& settings, const QList<QString>& settingsKeys, bool force = false);
|
||||
|
||||
private slots:
|
||||
void handleInputMessages();
|
||||
|
@ -63,7 +63,7 @@ void M17DemodGUI::resetToDefaults()
|
||||
blockApplySettings(true);
|
||||
displaySettings();
|
||||
blockApplySettings(false);
|
||||
applySettings();
|
||||
applySettings(QList<QString>(), true);
|
||||
}
|
||||
|
||||
QByteArray M17DemodGUI::serialize() const
|
||||
@ -76,7 +76,7 @@ bool M17DemodGUI::deserialize(const QByteArray& data)
|
||||
if (m_settings.deserialize(data))
|
||||
{
|
||||
displaySettings();
|
||||
applySettings(true);
|
||||
applySettings(QList<QString>(), true);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@ -100,7 +100,13 @@ bool M17DemodGUI::handleMessage(const Message& message)
|
||||
{
|
||||
qDebug("M17DemodGUI::handleMessage: M17Demod::MsgConfigureM17Demod");
|
||||
const M17Demod::MsgConfigureM17Demod& cfg = (M17Demod::MsgConfigureM17Demod&) message;
|
||||
m_settings = cfg.getSettings();
|
||||
|
||||
if (cfg.getForce()) {
|
||||
m_settings = cfg.getSettings();
|
||||
} else {
|
||||
m_settings.applySettings(cfg.getSettingsKeys(), cfg.getSettings());
|
||||
}
|
||||
|
||||
blockApplySettings(true);
|
||||
m_channelMarker.updateSettings(static_cast<const ChannelMarker*>(m_settings.m_channelMarker));
|
||||
displaySettings();
|
||||
@ -124,14 +130,19 @@ bool M17DemodGUI::handleMessage(const Message& message)
|
||||
QString dateStr = dt.toString("HH:mm:ss");
|
||||
QTextCursor cursor = ui->smsLog->textCursor();
|
||||
cursor.movePosition(QTextCursor::End, QTextCursor::MoveAnchor);
|
||||
cursor.insertText(tr("=== %1 %2 to %3 ===\n%4\n")
|
||||
QString s(tr("=== %1 %2 to %3 ===\n%4\n")
|
||||
.arg(dateStr)
|
||||
.arg(report.getSource())
|
||||
.arg(report.getDest())
|
||||
.arg(report.getSMS())
|
||||
);
|
||||
cursor.insertText(s);
|
||||
ui->smsLog->verticalScrollBar()->setValue(ui->smsLog->verticalScrollBar()->maximum());
|
||||
|
||||
if (ui->activateStatusLog->isChecked()) {
|
||||
m_m17StatusTextDialog.addLine(tr("SMS: %1").arg(report.getSMS()));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else if (M17Demod::MsgReportAPRS::match(message))
|
||||
@ -169,6 +180,19 @@ bool M17DemodGUI::handleMessage(const Message& message)
|
||||
ui->aprsPackets->scrollToBottom();
|
||||
}
|
||||
|
||||
if (ui->activateStatusLog->isChecked())
|
||||
{
|
||||
QString s(tr("APRS: %1 to %2 via %3 typ %4 pid %5: %6")
|
||||
.arg(report.getFrom())
|
||||
.arg(report.getTo())
|
||||
.arg(report.getVia())
|
||||
.arg(report.getType())
|
||||
.arg(report.getPID())
|
||||
.arg(report.getData())
|
||||
);
|
||||
m_m17StatusTextDialog.addLine(s);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@ -195,7 +219,7 @@ void M17DemodGUI::on_deltaFrequency_changed(qint64 value)
|
||||
m_channelMarker.setCenterFrequency(value);
|
||||
m_settings.m_inputFrequencyOffset = m_channelMarker.getCenterFrequency();
|
||||
updateAbsoluteCenterFrequency();
|
||||
applySettings();
|
||||
applySettings(QList<QString>({"inputFrequencyOffset"}));
|
||||
}
|
||||
|
||||
void M17DemodGUI::on_rfBW_valueChanged(int value)
|
||||
@ -203,33 +227,33 @@ void M17DemodGUI::on_rfBW_valueChanged(int value)
|
||||
m_channelMarker.setBandwidth(value * 100);
|
||||
m_settings.m_rfBandwidth = value * 100.0;
|
||||
ui->rfBWText->setText(QString("%1k").arg(value / 10.0, 0, 'f', 1));
|
||||
applySettings();
|
||||
applySettings(QList<QString>({"rfBandwidth"}));
|
||||
}
|
||||
|
||||
void M17DemodGUI::on_fmDeviation_valueChanged(int value)
|
||||
{
|
||||
m_settings.m_fmDeviation = value * 100.0;
|
||||
ui->fmDeviationText->setText(QString("%1%2k").arg(QChar(0xB1, 0x00)).arg(value / 10.0, 0, 'f', 1));
|
||||
applySettings();
|
||||
applySettings(QList<QString>({"fmDeviation"}));
|
||||
}
|
||||
|
||||
void M17DemodGUI::on_volume_valueChanged(int value)
|
||||
{
|
||||
m_settings.m_volume= value / 100.0;
|
||||
ui->volumeText->setText(QString("%1").arg(value / 100.0, 0, 'f', 2));
|
||||
applySettings();
|
||||
applySettings(QList<QString>({"volume"}));
|
||||
}
|
||||
|
||||
void M17DemodGUI::on_baudRate_currentIndexChanged(int index)
|
||||
{
|
||||
m_settings.m_baudRate = M17DemodBaudRates::getRate(index);
|
||||
applySettings();
|
||||
applySettings(QList<QString>({"baudRate"}));
|
||||
}
|
||||
|
||||
void M17DemodGUI::on_syncOrConstellation_toggled(bool checked)
|
||||
{
|
||||
m_settings.m_syncOrConstellation = checked;
|
||||
applySettings();
|
||||
applySettings(QList<QString>({"syncOrConstellation"}));
|
||||
}
|
||||
|
||||
void M17DemodGUI::on_traceLength_valueChanged(int value)
|
||||
@ -257,26 +281,26 @@ void M17DemodGUI::on_squelchGate_valueChanged(int value)
|
||||
{
|
||||
m_settings.m_squelchGate = value;
|
||||
ui->squelchGateText->setText(QString("%1").arg(value * 10.0, 0, 'f', 0));
|
||||
applySettings();
|
||||
applySettings(QList<QString>({"squelchGate"}));
|
||||
}
|
||||
|
||||
void M17DemodGUI::on_squelch_valueChanged(int value)
|
||||
{
|
||||
ui->squelchText->setText(QString("%1").arg(value / 1.0, 0, 'f', 0));
|
||||
m_settings.m_squelch = value;
|
||||
applySettings();
|
||||
applySettings(QList<QString>({"squelch"}));
|
||||
}
|
||||
|
||||
void M17DemodGUI::on_audioMute_toggled(bool checked)
|
||||
{
|
||||
m_settings.m_audioMute = checked;
|
||||
applySettings();
|
||||
applySettings(QList<QString>({"audioMute"}));
|
||||
}
|
||||
|
||||
void M17DemodGUI::on_highPassFilter_toggled(bool checked)
|
||||
{
|
||||
m_settings.m_highPassFilter = checked;
|
||||
applySettings();
|
||||
applySettings(QList<QString>({"highPassFilter"}));
|
||||
}
|
||||
|
||||
void M17DemodGUI::on_aprsClearTable_clicked()
|
||||
@ -326,7 +350,6 @@ void M17DemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
|
||||
(void) rollDown;
|
||||
|
||||
getRollupContents()->saveState(m_rollupState);
|
||||
applySettings();
|
||||
}
|
||||
|
||||
void M17DemodGUI::onMenuDialogCalled(const QPoint &p)
|
||||
@ -362,15 +385,26 @@ void M17DemodGUI::onMenuDialogCalled(const QPoint &p)
|
||||
setTitle(m_channelMarker.getTitle());
|
||||
setTitleColor(m_settings.m_rgbColor);
|
||||
|
||||
QList<QString> settingsKeys({
|
||||
"m_rgbColor",
|
||||
"title",
|
||||
"useReverseAPI",
|
||||
"reverseAPIAddress",
|
||||
"reverseAPIPort",
|
||||
"reverseAPIDeviceIndex",
|
||||
"reverseAPIChannelIndex"
|
||||
});
|
||||
|
||||
if (m_deviceUISet->m_deviceMIMOEngine)
|
||||
{
|
||||
settingsKeys.append("streamIndex");
|
||||
m_settings.m_streamIndex = dialog.getSelectedStreamIndex();
|
||||
m_channelMarker.clearStreamIndexes();
|
||||
m_channelMarker.addStreamIndex(m_settings.m_streamIndex);
|
||||
updateIndexLabel();
|
||||
}
|
||||
|
||||
applySettings();
|
||||
applySettings(settingsKeys);
|
||||
}
|
||||
|
||||
resetContextMenuType();
|
||||
@ -483,7 +517,7 @@ M17DemodGUI::M17DemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban
|
||||
updateMyPosition();
|
||||
displaySettings();
|
||||
makeUIConnections();
|
||||
applySettings(true);
|
||||
applySettings(QList<QString>(), true);
|
||||
}
|
||||
|
||||
M17DemodGUI::~M17DemodGUI()
|
||||
@ -569,13 +603,13 @@ void M17DemodGUI::displaySettings()
|
||||
blockApplySettings(false);
|
||||
}
|
||||
|
||||
void M17DemodGUI::applySettings(bool force)
|
||||
void M17DemodGUI::applySettings(const QList<QString>& settingsKeys, bool force)
|
||||
{
|
||||
if (m_doApplySettings)
|
||||
{
|
||||
qDebug() << "M17DemodGUI::applySettings";
|
||||
|
||||
M17Demod::MsgConfigureM17Demod* message = M17Demod::MsgConfigureM17Demod::create( m_settings, force);
|
||||
M17Demod::MsgConfigureM17Demod* message = M17Demod::MsgConfigureM17Demod::create( m_settings, settingsKeys, force);
|
||||
m_m17Demod->getInputMessageQueue()->push(message);
|
||||
}
|
||||
}
|
||||
@ -601,7 +635,7 @@ void M17DemodGUI::channelMarkerChangedByCursor()
|
||||
{
|
||||
ui->deltaFrequency->setValue(m_channelMarker.getCenterFrequency());
|
||||
m_settings.m_inputFrequencyOffset = m_channelMarker.getCenterFrequency();
|
||||
applySettings();
|
||||
applySettings(QList<QString>({"inputFrequencyOffset"}));
|
||||
}
|
||||
|
||||
void M17DemodGUI::channelMarkerHighlightedByCursor()
|
||||
@ -611,14 +645,13 @@ void M17DemodGUI::channelMarkerHighlightedByCursor()
|
||||
|
||||
void M17DemodGUI::audioSelect()
|
||||
{
|
||||
qDebug("M17DemodGUI::audioSelect");
|
||||
AudioSelectDialog audioSelect(DSPEngine::instance()->getAudioDeviceManager(), m_settings.m_audioDeviceName);
|
||||
audioSelect.exec();
|
||||
|
||||
if (audioSelect.m_selected)
|
||||
{
|
||||
m_settings.m_audioDeviceName = audioSelect.m_audioDeviceName;
|
||||
applySettings();
|
||||
applySettings(QList<QString>({"audioDeviceName"}));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -124,7 +124,7 @@ private:
|
||||
virtual ~M17DemodGUI();
|
||||
|
||||
void blockApplySettings(bool block);
|
||||
void applySettings(bool force = false);
|
||||
void applySettings(const QList<QString>& settingsKeys, bool force = false);
|
||||
void displaySettings();
|
||||
void updateAMBEFeaturesList();
|
||||
void updateMyPosition();
|
||||
@ -159,9 +159,9 @@ private slots:
|
||||
void on_berButton_toggled(bool checked);
|
||||
void on_berHistory_valueChanged(int value);
|
||||
void on_berReset_clicked();
|
||||
void on_viewStatusLog_clicked();
|
||||
void onWidgetRolled(QWidget* widget, bool rollDown);
|
||||
void onMenuDialogCalled(const QPoint& p);
|
||||
void on_viewStatusLog_clicked();
|
||||
void handleInputMessages();
|
||||
void audioSelect();
|
||||
void tick();
|
||||
|
@ -280,14 +280,14 @@
|
||||
<widget class="QPushButton" name="viewStatusLog">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>0</height>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>16777215</height>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
|
@ -48,6 +48,7 @@ void M17DemodSettings::resetToDefaults()
|
||||
m_traceStroke = 100;
|
||||
m_traceDecay = 200;
|
||||
m_audioDeviceName = AudioDeviceManager::m_defaultDeviceName;
|
||||
m_statusLogEnabled = false;
|
||||
m_streamIndex = 0;
|
||||
m_useReverseAPI = false;
|
||||
m_reverseAPIAddress = "127.0.0.1";
|
||||
@ -69,6 +70,7 @@ QByteArray M17DemodSettings::serialize() const
|
||||
s.writeS32(8, m_squelchGate);
|
||||
s.writeS32(9, m_volume*10.0);
|
||||
s.writeS32(11, m_baudRate);
|
||||
s.writeBool(12, m_statusLogEnabled);
|
||||
s.writeBool(13, m_syncOrConstellation);
|
||||
|
||||
if (m_channelMarker) {
|
||||
@ -127,7 +129,6 @@ bool M17DemodSettings::deserialize(const QByteArray& data)
|
||||
m_inputFrequencyOffset = tmp;
|
||||
d.readS32(2, &tmp, 125);
|
||||
m_rfBandwidth = tmp * 100.0;
|
||||
d.readS32(3, &tmp, 125);
|
||||
d.readS32(4, &tmp, 50);
|
||||
m_fmDeviation = tmp * 100.0;
|
||||
d.readS32(5, &tmp, -40);
|
||||
@ -137,6 +138,7 @@ bool M17DemodSettings::deserialize(const QByteArray& data)
|
||||
d.readS32(9, &tmp, 20);
|
||||
m_volume = tmp / 10.0;
|
||||
d.readS32(11, &m_baudRate, 4800);
|
||||
d.readBool(12, &m_statusLogEnabled, false);
|
||||
d.readBool(13, &m_syncOrConstellation, false);
|
||||
d.readString(18, &m_title, "M17 Demodulator");
|
||||
d.readBool(19, &m_highPassFilter, false);
|
||||
@ -183,3 +185,78 @@ bool M17DemodSettings::deserialize(const QByteArray& data)
|
||||
}
|
||||
}
|
||||
|
||||
void M17DemodSettings::applySettings(const QStringList& settingsKeys, const M17DemodSettings& settings)
|
||||
{
|
||||
if (settingsKeys.contains("inputFrequencyOffset")) {
|
||||
m_inputFrequencyOffset = settings.m_inputFrequencyOffset;
|
||||
}
|
||||
if (settingsKeys.contains("rfBandwidth")) {
|
||||
m_rfBandwidth = settings.m_rfBandwidth;
|
||||
}
|
||||
if (settingsKeys.contains("fmDeviation")) {
|
||||
m_fmDeviation = settings.m_fmDeviation;
|
||||
}
|
||||
if (settingsKeys.contains("squelch")) {
|
||||
m_squelch = settings.m_squelch;
|
||||
}
|
||||
if (settingsKeys.contains("rgbColor")) {
|
||||
m_rgbColor = settings.m_rgbColor;
|
||||
}
|
||||
if (settingsKeys.contains("squelchGate")) {
|
||||
m_squelchGate = settings.m_squelchGate;
|
||||
}
|
||||
if (settingsKeys.contains("volume")) {
|
||||
m_volume = settings.m_volume;
|
||||
}
|
||||
if (settingsKeys.contains("baudRate")) {
|
||||
m_baudRate = settings.m_baudRate;
|
||||
}
|
||||
if (settingsKeys.contains("statusLogEnabled")) {
|
||||
m_statusLogEnabled = settings.m_statusLogEnabled;
|
||||
}
|
||||
if (settingsKeys.contains("syncOrConstellation")) {
|
||||
m_syncOrConstellation = settings.m_syncOrConstellation;
|
||||
}
|
||||
if (settingsKeys.contains("title")) {
|
||||
m_title = settings.m_title;
|
||||
}
|
||||
if (settingsKeys.contains("highPassFilter")) {
|
||||
m_highPassFilter = settings.m_highPassFilter;
|
||||
}
|
||||
if (settingsKeys.contains("audioDeviceName")) {
|
||||
m_audioDeviceName = settings.m_audioDeviceName;
|
||||
}
|
||||
if (settingsKeys.contains("traceLengthMutliplier")) {
|
||||
m_traceLengthMutliplier = settings.m_traceLengthMutliplier;
|
||||
}
|
||||
if (settingsKeys.contains("traceStroke")) {
|
||||
m_traceStroke = settings.m_traceStroke;
|
||||
}
|
||||
if (settingsKeys.contains("traceDecay")) {
|
||||
m_traceDecay = settings.m_traceDecay;
|
||||
}
|
||||
if (settingsKeys.contains("useReverseAPI")) {
|
||||
m_useReverseAPI = settings.m_useReverseAPI;
|
||||
}
|
||||
if (settingsKeys.contains("reverseAPIAddress")) {
|
||||
m_reverseAPIAddress = settings.m_reverseAPIAddress;
|
||||
}
|
||||
if (settingsKeys.contains("reverseAPIPort")) {
|
||||
m_reverseAPIPort = settings.m_reverseAPIPort;
|
||||
}
|
||||
if (settingsKeys.contains("reverseAPIDeviceIndex")) {
|
||||
m_reverseAPIDeviceIndex = settings.m_reverseAPIDeviceIndex;
|
||||
}
|
||||
if (settingsKeys.contains("audioMute")) {
|
||||
m_audioMute = settings.m_audioMute;
|
||||
}
|
||||
if (settingsKeys.contains("streamIndex")) {
|
||||
m_streamIndex = settings.m_streamIndex;
|
||||
}
|
||||
if (settingsKeys.contains("rollupState")) {
|
||||
m_rollupState = settings.m_rollupState;
|
||||
}
|
||||
if (settingsKeys.contains("channelMarker")) {
|
||||
m_channelMarker = settings.m_channelMarker;
|
||||
}
|
||||
}
|
||||
|
@ -43,8 +43,7 @@ struct M17DemodSettings
|
||||
int m_traceStroke; // [0..255]
|
||||
int m_traceDecay; // [0..255]
|
||||
QString m_audioDeviceName;
|
||||
QString m_aprsLogFilename;
|
||||
bool m_aprsLogEnabled;
|
||||
bool m_statusLogEnabled;
|
||||
int m_streamIndex; //!< MIMO channel. Not relevant when connected to SI (single Rx).
|
||||
bool m_useReverseAPI;
|
||||
QString m_reverseAPIAddress;
|
||||
@ -64,6 +63,7 @@ struct M17DemodSettings
|
||||
void setRollupState(Serializable *rollupState) { m_rollupState = rollupState; }
|
||||
QByteArray serialize() const;
|
||||
bool deserialize(const QByteArray& data);
|
||||
void applySettings(const QStringList& settingsKeys, const M17DemodSettings& settings);
|
||||
};
|
||||
|
||||
|
||||
|
@ -74,7 +74,7 @@ M17DemodSink::M17DemodSink() :
|
||||
m_magsqPeak = 0.0f;
|
||||
m_magsqCount = 0;
|
||||
|
||||
applySettings(m_settings, true);
|
||||
applySettings(m_settings, QList<QString>(), true);
|
||||
applyChannelSettings(m_channelSampleRate, m_channelFrequencyOffset, true);
|
||||
}
|
||||
|
||||
@ -305,9 +305,10 @@ void M17DemodSink::applyChannelSettings(int channelSampleRate, int channelFreque
|
||||
}
|
||||
|
||||
|
||||
void M17DemodSink::applySettings(const M17DemodSettings& settings, bool force)
|
||||
void M17DemodSink::applySettings(const M17DemodSettings& settings, const QList<QString>& settingsKeys, bool force)
|
||||
{
|
||||
qDebug() << "M17DemodSink::applySettings: "
|
||||
<< " settingsKeys: " << settingsKeys
|
||||
<< " m_inputFrequencyOffset: " << settings.m_inputFrequencyOffset
|
||||
<< " m_rfBandwidth: " << settings.m_rfBandwidth
|
||||
<< " m_fmDeviation: " << settings.m_fmDeviation
|
||||
@ -325,7 +326,7 @@ void M17DemodSink::applySettings(const M17DemodSettings& settings, bool force)
|
||||
<< " m_streamIndex: " << settings.m_streamIndex
|
||||
<< " force: " << force;
|
||||
|
||||
if ((settings.m_rfBandwidth != m_settings.m_rfBandwidth) || force)
|
||||
if (settingsKeys.contains("rfBandwidth") || force)
|
||||
{
|
||||
m_interpolator.create(16, m_channelSampleRate, (settings.m_rfBandwidth) / 2.2);
|
||||
m_interpolatorDistanceRemain = 0;
|
||||
@ -333,38 +334,42 @@ void M17DemodSink::applySettings(const M17DemodSettings& settings, bool force)
|
||||
//m_phaseDiscri.setFMScaling((float) settings.m_rfBandwidth / (float) settings.m_fmDeviation);
|
||||
}
|
||||
|
||||
if ((settings.m_fmDeviation != m_settings.m_fmDeviation) || force) {
|
||||
if (settingsKeys.contains("fmDeviation") || force) {
|
||||
m_phaseDiscri.setFMScaling(48000.0f / (2.0f*settings.m_fmDeviation));
|
||||
}
|
||||
|
||||
if ((settings.m_squelchGate != m_settings.m_squelchGate) || force)
|
||||
if (settingsKeys.contains("squelchGate") || force)
|
||||
{
|
||||
m_squelchGate = 480 * settings.m_squelchGate; // gate is given in 10s of ms at 48000 Hz audio sample rate
|
||||
m_squelchCount = 0; // reset squelch open counter
|
||||
}
|
||||
|
||||
if ((settings.m_squelch != m_settings.m_squelch) || force) {
|
||||
if (settingsKeys.contains("squelch") || force) {
|
||||
m_squelchLevel = std::pow(10.0, settings.m_squelch / 10.0); // input is a value in dB
|
||||
}
|
||||
|
||||
if ((settings.m_audioMute != m_settings.m_audioMute) || force) {
|
||||
if (settingsKeys.contains("audioMute") || force) {
|
||||
m_m17DemodProcessor.setAudioMute(settings.m_audioMute);
|
||||
}
|
||||
|
||||
if ((settings.m_volume != m_settings.m_volume) || force) {
|
||||
if (settingsKeys.contains("volume") || force) {
|
||||
m_m17DemodProcessor.setVolume(settings.m_volume);
|
||||
}
|
||||
|
||||
if ((settings.m_baudRate != m_settings.m_baudRate) || force)
|
||||
if (settingsKeys.contains("baudRate") || force)
|
||||
{
|
||||
// m_dsdDecoder.setBaudRate(settings.m_baudRate);
|
||||
// m_dsdDecoder.setBaudRate(settings.m_baudRate); (future)
|
||||
}
|
||||
|
||||
if ((settings.m_highPassFilter != m_settings.m_highPassFilter) || force) {
|
||||
if (settingsKeys.contains("highPassFilter") || force) {
|
||||
m_m17DemodProcessor.setHP(settings.m_highPassFilter);
|
||||
}
|
||||
|
||||
m_settings = settings;
|
||||
if (force) {
|
||||
m_settings = settings;
|
||||
} else {
|
||||
m_settings.applySettings(settingsKeys, settings);
|
||||
}
|
||||
}
|
||||
|
||||
void M17DemodSink::configureMyPosition(float myLatitude, float myLongitude)
|
||||
|
@ -46,7 +46,7 @@ public:
|
||||
|
||||
void applyAudioSampleRate(int sampleRate);
|
||||
void applyChannelSettings(int channelSampleRate, int channelFrequencyOffset, bool force = false);
|
||||
void applySettings(const M17DemodSettings& settings, bool force = false);
|
||||
void applySettings(const M17DemodSettings& settings, const QList<QString>& settingsKeys, bool force = false);
|
||||
AudioFifo *getAudioFifo() { return &m_audioFifo; }
|
||||
void setAudioFifoLabel(const QString& label) { m_audioFifo.setLabel("1:" + label); }
|
||||
int getAudioSampleRate() const { return m_audioSampleRate; }
|
||||
|
@ -102,7 +102,13 @@ bool M17ModGUI::handleMessage(const Message& message)
|
||||
else if (M17Mod::MsgConfigureM17Mod::match(message))
|
||||
{
|
||||
const M17Mod::MsgConfigureM17Mod& cfg = (M17Mod::MsgConfigureM17Mod&) message;
|
||||
m_settings = cfg.getSettings();
|
||||
|
||||
if (cfg.getForce()) {
|
||||
m_settings = cfg.getSettings();
|
||||
} else {
|
||||
m_settings.applySettings(cfg.getSettingsKeys(), cfg.getSettings());
|
||||
}
|
||||
|
||||
blockApplySettings(true);
|
||||
m_channelMarker.updateSettings(static_cast<const ChannelMarker*>(m_settings.m_channelMarker));
|
||||
displaySettings();
|
||||
|
@ -8257,11 +8257,11 @@ margin-bottom: 20px;
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
"demodGain" : {
|
||||
"volume" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
"volume" : {
|
||||
"demodGain" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
@ -8281,18 +8281,12 @@ margin-bottom: 20px;
|
||||
"syncOrConstellation" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"pllLock" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"rgbColor" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"title" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"audioDeviceName" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"highPassFilter" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
@ -8308,6 +8302,12 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"description" : "0 to 255"
|
||||
},
|
||||
"audioDeviceName" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"statusLogEnabled" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"streamIndex" : {
|
||||
"type" : "integer",
|
||||
"description" : "MIMO channel. Not relevant when connected to SI (single Rx)."
|
||||
@ -56435,7 +56435,7 @@ except ApiException as e:
|
||||
</div>
|
||||
<div id="generator">
|
||||
<div class="content">
|
||||
Generated 2022-07-09T11:05:50.499+02:00
|
||||
Generated 2022-07-10T10:00:03.872+02:00
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -10,10 +10,10 @@ M17DemodSettings:
|
||||
fmDeviation:
|
||||
type: number
|
||||
format: float
|
||||
demodGain:
|
||||
volume:
|
||||
type: number
|
||||
format: float
|
||||
volume:
|
||||
demodGain:
|
||||
type: number
|
||||
format: float
|
||||
baudRate:
|
||||
@ -27,14 +27,10 @@ M17DemodSettings:
|
||||
type: integer
|
||||
syncOrConstellation:
|
||||
type: integer
|
||||
pllLock:
|
||||
type: integer
|
||||
rgbColor:
|
||||
type: integer
|
||||
title:
|
||||
type: string
|
||||
audioDeviceName:
|
||||
type: string
|
||||
highPassFilter:
|
||||
type: integer
|
||||
traceLengthMutliplier:
|
||||
@ -46,6 +42,10 @@ M17DemodSettings:
|
||||
traceDecay:
|
||||
description: 0 to 255
|
||||
type: integer
|
||||
audioDeviceName:
|
||||
type: string
|
||||
statusLogEnabled:
|
||||
type: integer
|
||||
streamIndex:
|
||||
description: MIMO channel. Not relevant when connected to SI (single Rx).
|
||||
type: integer
|
||||
|
@ -10,10 +10,10 @@ M17DemodSettings:
|
||||
fmDeviation:
|
||||
type: number
|
||||
format: float
|
||||
demodGain:
|
||||
volume:
|
||||
type: number
|
||||
format: float
|
||||
volume:
|
||||
demodGain:
|
||||
type: number
|
||||
format: float
|
||||
baudRate:
|
||||
@ -27,14 +27,10 @@ M17DemodSettings:
|
||||
type: integer
|
||||
syncOrConstellation:
|
||||
type: integer
|
||||
pllLock:
|
||||
type: integer
|
||||
rgbColor:
|
||||
type: integer
|
||||
title:
|
||||
type: string
|
||||
audioDeviceName:
|
||||
type: string
|
||||
highPassFilter:
|
||||
type: integer
|
||||
traceLengthMutliplier:
|
||||
@ -46,6 +42,10 @@ M17DemodSettings:
|
||||
traceDecay:
|
||||
description: 0 to 255
|
||||
type: integer
|
||||
audioDeviceName:
|
||||
type: string
|
||||
statusLogEnabled:
|
||||
type: integer
|
||||
streamIndex:
|
||||
description: MIMO channel. Not relevant when connected to SI (single Rx).
|
||||
type: integer
|
||||
|
@ -8257,11 +8257,11 @@ margin-bottom: 20px;
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
"demodGain" : {
|
||||
"volume" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
"volume" : {
|
||||
"demodGain" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
@ -8281,18 +8281,12 @@ margin-bottom: 20px;
|
||||
"syncOrConstellation" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"pllLock" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"rgbColor" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"title" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"audioDeviceName" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"highPassFilter" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
@ -8308,6 +8302,12 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"description" : "0 to 255"
|
||||
},
|
||||
"audioDeviceName" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"statusLogEnabled" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"streamIndex" : {
|
||||
"type" : "integer",
|
||||
"description" : "MIMO channel. Not relevant when connected to SI (single Rx)."
|
||||
@ -56435,7 +56435,7 @@ except ApiException as e:
|
||||
</div>
|
||||
<div id="generator">
|
||||
<div class="content">
|
||||
Generated 2022-07-09T11:05:50.499+02:00
|
||||
Generated 2022-07-10T10:00:03.872+02:00
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -34,10 +34,10 @@ SWGM17DemodSettings::SWGM17DemodSettings() {
|
||||
m_rf_bandwidth_isSet = false;
|
||||
fm_deviation = 0.0f;
|
||||
m_fm_deviation_isSet = false;
|
||||
demod_gain = 0.0f;
|
||||
m_demod_gain_isSet = false;
|
||||
volume = 0.0f;
|
||||
m_volume_isSet = false;
|
||||
demod_gain = 0.0f;
|
||||
m_demod_gain_isSet = false;
|
||||
baud_rate = 0;
|
||||
m_baud_rate_isSet = false;
|
||||
squelch_gate = 0;
|
||||
@ -48,14 +48,10 @@ SWGM17DemodSettings::SWGM17DemodSettings() {
|
||||
m_audio_mute_isSet = false;
|
||||
sync_or_constellation = 0;
|
||||
m_sync_or_constellation_isSet = false;
|
||||
pll_lock = 0;
|
||||
m_pll_lock_isSet = false;
|
||||
rgb_color = 0;
|
||||
m_rgb_color_isSet = false;
|
||||
title = nullptr;
|
||||
m_title_isSet = false;
|
||||
audio_device_name = nullptr;
|
||||
m_audio_device_name_isSet = false;
|
||||
high_pass_filter = 0;
|
||||
m_high_pass_filter_isSet = false;
|
||||
trace_length_mutliplier = 0;
|
||||
@ -64,6 +60,10 @@ SWGM17DemodSettings::SWGM17DemodSettings() {
|
||||
m_trace_stroke_isSet = false;
|
||||
trace_decay = 0;
|
||||
m_trace_decay_isSet = false;
|
||||
audio_device_name = nullptr;
|
||||
m_audio_device_name_isSet = false;
|
||||
status_log_enabled = 0;
|
||||
m_status_log_enabled_isSet = false;
|
||||
stream_index = 0;
|
||||
m_stream_index_isSet = false;
|
||||
use_reverse_api = 0;
|
||||
@ -94,10 +94,10 @@ SWGM17DemodSettings::init() {
|
||||
m_rf_bandwidth_isSet = false;
|
||||
fm_deviation = 0.0f;
|
||||
m_fm_deviation_isSet = false;
|
||||
demod_gain = 0.0f;
|
||||
m_demod_gain_isSet = false;
|
||||
volume = 0.0f;
|
||||
m_volume_isSet = false;
|
||||
demod_gain = 0.0f;
|
||||
m_demod_gain_isSet = false;
|
||||
baud_rate = 0;
|
||||
m_baud_rate_isSet = false;
|
||||
squelch_gate = 0;
|
||||
@ -108,14 +108,10 @@ SWGM17DemodSettings::init() {
|
||||
m_audio_mute_isSet = false;
|
||||
sync_or_constellation = 0;
|
||||
m_sync_or_constellation_isSet = false;
|
||||
pll_lock = 0;
|
||||
m_pll_lock_isSet = false;
|
||||
rgb_color = 0;
|
||||
m_rgb_color_isSet = false;
|
||||
title = new QString("");
|
||||
m_title_isSet = false;
|
||||
audio_device_name = new QString("");
|
||||
m_audio_device_name_isSet = false;
|
||||
high_pass_filter = 0;
|
||||
m_high_pass_filter_isSet = false;
|
||||
trace_length_mutliplier = 0;
|
||||
@ -124,6 +120,10 @@ SWGM17DemodSettings::init() {
|
||||
m_trace_stroke_isSet = false;
|
||||
trace_decay = 0;
|
||||
m_trace_decay_isSet = false;
|
||||
audio_device_name = new QString("");
|
||||
m_audio_device_name_isSet = false;
|
||||
status_log_enabled = 0;
|
||||
m_status_log_enabled_isSet = false;
|
||||
stream_index = 0;
|
||||
m_stream_index_isSet = false;
|
||||
use_reverse_api = 0;
|
||||
@ -155,19 +155,19 @@ SWGM17DemodSettings::cleanup() {
|
||||
|
||||
|
||||
|
||||
|
||||
if(title != nullptr) {
|
||||
delete title;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if(audio_device_name != nullptr) {
|
||||
delete audio_device_name;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if(reverse_api_address != nullptr) {
|
||||
delete reverse_api_address;
|
||||
}
|
||||
@ -199,10 +199,10 @@ SWGM17DemodSettings::fromJsonObject(QJsonObject &pJson) {
|
||||
|
||||
::SWGSDRangel::setValue(&fm_deviation, pJson["fmDeviation"], "float", "");
|
||||
|
||||
::SWGSDRangel::setValue(&demod_gain, pJson["demodGain"], "float", "");
|
||||
|
||||
::SWGSDRangel::setValue(&volume, pJson["volume"], "float", "");
|
||||
|
||||
::SWGSDRangel::setValue(&demod_gain, pJson["demodGain"], "float", "");
|
||||
|
||||
::SWGSDRangel::setValue(&baud_rate, pJson["baudRate"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&squelch_gate, pJson["squelchGate"], "qint32", "");
|
||||
@ -213,14 +213,10 @@ SWGM17DemodSettings::fromJsonObject(QJsonObject &pJson) {
|
||||
|
||||
::SWGSDRangel::setValue(&sync_or_constellation, pJson["syncOrConstellation"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&pll_lock, pJson["pllLock"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&rgb_color, pJson["rgbColor"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&title, pJson["title"], "QString", "QString");
|
||||
|
||||
::SWGSDRangel::setValue(&audio_device_name, pJson["audioDeviceName"], "QString", "QString");
|
||||
|
||||
::SWGSDRangel::setValue(&high_pass_filter, pJson["highPassFilter"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&trace_length_mutliplier, pJson["traceLengthMutliplier"], "qint32", "");
|
||||
@ -229,6 +225,10 @@ SWGM17DemodSettings::fromJsonObject(QJsonObject &pJson) {
|
||||
|
||||
::SWGSDRangel::setValue(&trace_decay, pJson["traceDecay"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&audio_device_name, pJson["audioDeviceName"], "QString", "QString");
|
||||
|
||||
::SWGSDRangel::setValue(&status_log_enabled, pJson["statusLogEnabled"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&stream_index, pJson["streamIndex"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&use_reverse_api, pJson["useReverseAPI"], "qint32", "");
|
||||
@ -270,12 +270,12 @@ SWGM17DemodSettings::asJsonObject() {
|
||||
if(m_fm_deviation_isSet){
|
||||
obj->insert("fmDeviation", QJsonValue(fm_deviation));
|
||||
}
|
||||
if(m_demod_gain_isSet){
|
||||
obj->insert("demodGain", QJsonValue(demod_gain));
|
||||
}
|
||||
if(m_volume_isSet){
|
||||
obj->insert("volume", QJsonValue(volume));
|
||||
}
|
||||
if(m_demod_gain_isSet){
|
||||
obj->insert("demodGain", QJsonValue(demod_gain));
|
||||
}
|
||||
if(m_baud_rate_isSet){
|
||||
obj->insert("baudRate", QJsonValue(baud_rate));
|
||||
}
|
||||
@ -291,18 +291,12 @@ SWGM17DemodSettings::asJsonObject() {
|
||||
if(m_sync_or_constellation_isSet){
|
||||
obj->insert("syncOrConstellation", QJsonValue(sync_or_constellation));
|
||||
}
|
||||
if(m_pll_lock_isSet){
|
||||
obj->insert("pllLock", QJsonValue(pll_lock));
|
||||
}
|
||||
if(m_rgb_color_isSet){
|
||||
obj->insert("rgbColor", QJsonValue(rgb_color));
|
||||
}
|
||||
if(title != nullptr && *title != QString("")){
|
||||
toJsonValue(QString("title"), title, obj, QString("QString"));
|
||||
}
|
||||
if(audio_device_name != nullptr && *audio_device_name != QString("")){
|
||||
toJsonValue(QString("audioDeviceName"), audio_device_name, obj, QString("QString"));
|
||||
}
|
||||
if(m_high_pass_filter_isSet){
|
||||
obj->insert("highPassFilter", QJsonValue(high_pass_filter));
|
||||
}
|
||||
@ -315,6 +309,12 @@ SWGM17DemodSettings::asJsonObject() {
|
||||
if(m_trace_decay_isSet){
|
||||
obj->insert("traceDecay", QJsonValue(trace_decay));
|
||||
}
|
||||
if(audio_device_name != nullptr && *audio_device_name != QString("")){
|
||||
toJsonValue(QString("audioDeviceName"), audio_device_name, obj, QString("QString"));
|
||||
}
|
||||
if(m_status_log_enabled_isSet){
|
||||
obj->insert("statusLogEnabled", QJsonValue(status_log_enabled));
|
||||
}
|
||||
if(m_stream_index_isSet){
|
||||
obj->insert("streamIndex", QJsonValue(stream_index));
|
||||
}
|
||||
@ -373,16 +373,6 @@ SWGM17DemodSettings::setFmDeviation(float fm_deviation) {
|
||||
this->m_fm_deviation_isSet = true;
|
||||
}
|
||||
|
||||
float
|
||||
SWGM17DemodSettings::getDemodGain() {
|
||||
return demod_gain;
|
||||
}
|
||||
void
|
||||
SWGM17DemodSettings::setDemodGain(float demod_gain) {
|
||||
this->demod_gain = demod_gain;
|
||||
this->m_demod_gain_isSet = true;
|
||||
}
|
||||
|
||||
float
|
||||
SWGM17DemodSettings::getVolume() {
|
||||
return volume;
|
||||
@ -393,6 +383,16 @@ SWGM17DemodSettings::setVolume(float volume) {
|
||||
this->m_volume_isSet = true;
|
||||
}
|
||||
|
||||
float
|
||||
SWGM17DemodSettings::getDemodGain() {
|
||||
return demod_gain;
|
||||
}
|
||||
void
|
||||
SWGM17DemodSettings::setDemodGain(float demod_gain) {
|
||||
this->demod_gain = demod_gain;
|
||||
this->m_demod_gain_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGM17DemodSettings::getBaudRate() {
|
||||
return baud_rate;
|
||||
@ -443,16 +443,6 @@ SWGM17DemodSettings::setSyncOrConstellation(qint32 sync_or_constellation) {
|
||||
this->m_sync_or_constellation_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGM17DemodSettings::getPllLock() {
|
||||
return pll_lock;
|
||||
}
|
||||
void
|
||||
SWGM17DemodSettings::setPllLock(qint32 pll_lock) {
|
||||
this->pll_lock = pll_lock;
|
||||
this->m_pll_lock_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGM17DemodSettings::getRgbColor() {
|
||||
return rgb_color;
|
||||
@ -473,16 +463,6 @@ SWGM17DemodSettings::setTitle(QString* title) {
|
||||
this->m_title_isSet = true;
|
||||
}
|
||||
|
||||
QString*
|
||||
SWGM17DemodSettings::getAudioDeviceName() {
|
||||
return audio_device_name;
|
||||
}
|
||||
void
|
||||
SWGM17DemodSettings::setAudioDeviceName(QString* audio_device_name) {
|
||||
this->audio_device_name = audio_device_name;
|
||||
this->m_audio_device_name_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGM17DemodSettings::getHighPassFilter() {
|
||||
return high_pass_filter;
|
||||
@ -523,6 +503,26 @@ SWGM17DemodSettings::setTraceDecay(qint32 trace_decay) {
|
||||
this->m_trace_decay_isSet = true;
|
||||
}
|
||||
|
||||
QString*
|
||||
SWGM17DemodSettings::getAudioDeviceName() {
|
||||
return audio_device_name;
|
||||
}
|
||||
void
|
||||
SWGM17DemodSettings::setAudioDeviceName(QString* audio_device_name) {
|
||||
this->audio_device_name = audio_device_name;
|
||||
this->m_audio_device_name_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGM17DemodSettings::getStatusLogEnabled() {
|
||||
return status_log_enabled;
|
||||
}
|
||||
void
|
||||
SWGM17DemodSettings::setStatusLogEnabled(qint32 status_log_enabled) {
|
||||
this->status_log_enabled = status_log_enabled;
|
||||
this->m_status_log_enabled_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGM17DemodSettings::getStreamIndex() {
|
||||
return stream_index;
|
||||
@ -617,10 +617,10 @@ SWGM17DemodSettings::isSet(){
|
||||
if(m_fm_deviation_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_demod_gain_isSet){
|
||||
if(m_volume_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_volume_isSet){
|
||||
if(m_demod_gain_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_baud_rate_isSet){
|
||||
@ -638,18 +638,12 @@ SWGM17DemodSettings::isSet(){
|
||||
if(m_sync_or_constellation_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_pll_lock_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_rgb_color_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(title && *title != QString("")){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(audio_device_name && *audio_device_name != QString("")){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_high_pass_filter_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
@ -662,6 +656,12 @@ SWGM17DemodSettings::isSet(){
|
||||
if(m_trace_decay_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(audio_device_name && *audio_device_name != QString("")){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_status_log_enabled_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_stream_index_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
|
@ -53,12 +53,12 @@ public:
|
||||
float getFmDeviation();
|
||||
void setFmDeviation(float fm_deviation);
|
||||
|
||||
float getDemodGain();
|
||||
void setDemodGain(float demod_gain);
|
||||
|
||||
float getVolume();
|
||||
void setVolume(float volume);
|
||||
|
||||
float getDemodGain();
|
||||
void setDemodGain(float demod_gain);
|
||||
|
||||
qint32 getBaudRate();
|
||||
void setBaudRate(qint32 baud_rate);
|
||||
|
||||
@ -74,18 +74,12 @@ public:
|
||||
qint32 getSyncOrConstellation();
|
||||
void setSyncOrConstellation(qint32 sync_or_constellation);
|
||||
|
||||
qint32 getPllLock();
|
||||
void setPllLock(qint32 pll_lock);
|
||||
|
||||
qint32 getRgbColor();
|
||||
void setRgbColor(qint32 rgb_color);
|
||||
|
||||
QString* getTitle();
|
||||
void setTitle(QString* title);
|
||||
|
||||
QString* getAudioDeviceName();
|
||||
void setAudioDeviceName(QString* audio_device_name);
|
||||
|
||||
qint32 getHighPassFilter();
|
||||
void setHighPassFilter(qint32 high_pass_filter);
|
||||
|
||||
@ -98,6 +92,12 @@ public:
|
||||
qint32 getTraceDecay();
|
||||
void setTraceDecay(qint32 trace_decay);
|
||||
|
||||
QString* getAudioDeviceName();
|
||||
void setAudioDeviceName(QString* audio_device_name);
|
||||
|
||||
qint32 getStatusLogEnabled();
|
||||
void setStatusLogEnabled(qint32 status_log_enabled);
|
||||
|
||||
qint32 getStreamIndex();
|
||||
void setStreamIndex(qint32 stream_index);
|
||||
|
||||
@ -135,12 +135,12 @@ private:
|
||||
float fm_deviation;
|
||||
bool m_fm_deviation_isSet;
|
||||
|
||||
float demod_gain;
|
||||
bool m_demod_gain_isSet;
|
||||
|
||||
float volume;
|
||||
bool m_volume_isSet;
|
||||
|
||||
float demod_gain;
|
||||
bool m_demod_gain_isSet;
|
||||
|
||||
qint32 baud_rate;
|
||||
bool m_baud_rate_isSet;
|
||||
|
||||
@ -156,18 +156,12 @@ private:
|
||||
qint32 sync_or_constellation;
|
||||
bool m_sync_or_constellation_isSet;
|
||||
|
||||
qint32 pll_lock;
|
||||
bool m_pll_lock_isSet;
|
||||
|
||||
qint32 rgb_color;
|
||||
bool m_rgb_color_isSet;
|
||||
|
||||
QString* title;
|
||||
bool m_title_isSet;
|
||||
|
||||
QString* audio_device_name;
|
||||
bool m_audio_device_name_isSet;
|
||||
|
||||
qint32 high_pass_filter;
|
||||
bool m_high_pass_filter_isSet;
|
||||
|
||||
@ -180,6 +174,12 @@ private:
|
||||
qint32 trace_decay;
|
||||
bool m_trace_decay_isSet;
|
||||
|
||||
QString* audio_device_name;
|
||||
bool m_audio_device_name_isSet;
|
||||
|
||||
qint32 status_log_enabled;
|
||||
bool m_status_log_enabled_isSet;
|
||||
|
||||
qint32 stream_index;
|
||||
bool m_stream_index_isSet;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user