mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-25 09:18:54 -05:00
Audio CAT SISO: polling time and spectrum follows PTT
This commit is contained in:
parent
ecc08f8337
commit
246303cd46
BIN
doc/img/AudioCATSISO_plugin.png
Normal file
BIN
doc/img/AudioCATSISO_plugin.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 40 KiB |
BIN
doc/img/AudioCATSISO_plugin.xcf
Normal file
BIN
doc/img/AudioCATSISO_plugin.xcf
Normal file
Binary file not shown.
@ -749,10 +749,16 @@ void AudioCATSISO::webapiUpdateDeviceSettings(
|
||||
if (deviceSettingsKeys.contains("catRTSHigh")) {
|
||||
settings.m_catRTSHigh = response.getAudioCatsisoSettings()->getCatRtsHigh() != 0;
|
||||
}
|
||||
if (deviceSettingsKeys.contains("catRTSHigh")) {
|
||||
settings.m_catPollingMs = response.getAudioCatsisoSettings()->getCatPollingMs();
|
||||
}
|
||||
|
||||
if (deviceSettingsKeys.contains("txEnable")) {
|
||||
settings.m_txEnable = response.getAudioCatsisoSettings()->getTxEnable() != 0;
|
||||
}
|
||||
if (deviceSettingsKeys.contains("pttSpectrumLink")) {
|
||||
settings.m_pttSpectrumLink = response.getAudioCatsisoSettings()->getPttSpectrumLink() != 0;
|
||||
}
|
||||
if (deviceSettingsKeys.contains("useReverseAPI")) {
|
||||
settings.m_useReverseAPI = response.getAudioCatsisoSettings()->getUseReverseApi() != 0;
|
||||
}
|
||||
@ -787,6 +793,7 @@ void AudioCATSISO::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& re
|
||||
response.getAudioCatsisoSettings()->setTxVolume(settings.m_txVolume);
|
||||
|
||||
response.getAudioCatsisoSettings()->setTxEnable(settings.m_txEnable ? 1 : 0);
|
||||
response.getAudioCatsisoSettings()->setPttSpectrumLink(settings.m_pttSpectrumLink ? 1 : 0);
|
||||
|
||||
response.getAudioCatsisoSettings()->setCatSpeedIndex(settings.m_catSpeedIndex);
|
||||
response.getAudioCatsisoSettings()->setCatHandshakeIndex(settings.m_catHandshakeIndex);
|
||||
@ -795,6 +802,7 @@ void AudioCATSISO::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& re
|
||||
response.getAudioCatsisoSettings()->setCatStopBitsIndex(settings.m_catPTTMethodIndex);
|
||||
response.getAudioCatsisoSettings()->setCatDtrHigh(settings.m_catDTRHigh ? 1 : 0);
|
||||
response.getAudioCatsisoSettings()->setCatRtsHigh(settings.m_catRTSHigh ? 1 : 0);
|
||||
response.getAudioCatsisoSettings()->setCatPollingMs(settings.m_catPollingMs);
|
||||
|
||||
response.getAudioCatsisoSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0);
|
||||
|
||||
@ -869,6 +877,9 @@ void AudioCATSISO::webapiReverseSendSettings(const QList<QString>& deviceSetting
|
||||
if (deviceSettingsKeys.contains("txEnable")) {
|
||||
swgAudioCATSISOSettings->setTxEnable(settings.m_txEnable ? 1 : 0);
|
||||
}
|
||||
if (deviceSettingsKeys.contains("pttSpectrumLink")) {
|
||||
swgAudioCATSISOSettings->setPttSpectrumLink(settings.m_pttSpectrumLink ? 1 : 0);
|
||||
}
|
||||
|
||||
if (deviceSettingsKeys.contains("catSpeedIndex")) {
|
||||
swgAudioCATSISOSettings->setCatSpeedIndex(settings.m_catSpeedIndex);
|
||||
@ -891,6 +902,9 @@ void AudioCATSISO::webapiReverseSendSettings(const QList<QString>& deviceSetting
|
||||
if (deviceSettingsKeys.contains("catRTSHigh")) {
|
||||
swgAudioCATSISOSettings->setCatRtsHigh(settings.m_catRTSHigh ? 1 : 0);
|
||||
}
|
||||
if (deviceSettingsKeys.contains("catPollingMs")) {
|
||||
swgAudioCATSISOSettings->setCatPollingMs(settings.m_catPollingMs);
|
||||
}
|
||||
|
||||
QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/settings")
|
||||
.arg(settings.m_reverseAPIAddress)
|
||||
|
@ -33,6 +33,7 @@ AudioCATSISOCATDialog::AudioCATSISOCATDialog(AudioCATSISOSettings& settings, QLi
|
||||
ui->pttMethod->blockSignals(true);
|
||||
ui->dtrHigh->blockSignals(true);
|
||||
ui->rtsHigh->blockSignals(true);
|
||||
ui->pollingTime->blockSignals(true);
|
||||
|
||||
ui->baudRate->setCurrentIndex(m_settings.m_catSpeedIndex);
|
||||
ui->handshake->setCurrentIndex(m_settings.m_catHandshakeIndex);
|
||||
@ -41,6 +42,7 @@ AudioCATSISOCATDialog::AudioCATSISOCATDialog(AudioCATSISOSettings& settings, QLi
|
||||
ui->pttMethod->setCurrentIndex(m_settings.m_catPTTMethodIndex);
|
||||
ui->dtrHigh->setCurrentIndex(m_settings.m_catDTRHigh ? 1 : 0);
|
||||
ui->rtsHigh->setCurrentIndex(m_settings.m_catRTSHigh ? 1 : 0);
|
||||
ui->pollingTime->setValue(m_settings.m_catPollingMs);
|
||||
|
||||
ui->baudRate->blockSignals(false);
|
||||
ui->handshake->blockSignals(false);
|
||||
@ -49,6 +51,7 @@ AudioCATSISOCATDialog::AudioCATSISOCATDialog(AudioCATSISOSettings& settings, QLi
|
||||
ui->pttMethod->blockSignals(false);
|
||||
ui->dtrHigh->blockSignals(false);
|
||||
ui->rtsHigh->blockSignals(false);
|
||||
ui->pollingTime->blockSignals(false);
|
||||
}
|
||||
|
||||
AudioCATSISOCATDialog::~AudioCATSISOCATDialog()
|
||||
@ -123,3 +126,12 @@ void AudioCATSISOCATDialog::on_rtsHigh_currentIndexChanged(int index)
|
||||
m_settingsKeys.append("catRTSHigh");
|
||||
}
|
||||
}
|
||||
|
||||
void AudioCATSISOCATDialog::on_pollingTime_valueChanged(int value)
|
||||
{
|
||||
m_settings.m_catPollingMs = value;
|
||||
|
||||
if (!m_settingsKeys.contains("catPollingMs")) {
|
||||
m_settingsKeys.append("catPollingMs");
|
||||
}
|
||||
}
|
||||
|
@ -44,6 +44,7 @@ private slots:
|
||||
void on_pttMethod_currentIndexChanged(int index);
|
||||
void on_dtrHigh_currentIndexChanged(int index);
|
||||
void on_rtsHigh_currentIndexChanged(int index);
|
||||
void on_pollingTime_valueChanged(int value);
|
||||
|
||||
private:
|
||||
Ui::AudioCATSISOCATDialog* ui;
|
||||
|
@ -6,7 +6,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>319</width>
|
||||
<width>337</width>
|
||||
<height>256</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -243,6 +243,32 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="pollingLabel">
|
||||
<property name="text">
|
||||
<string>Polling (ms)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QSpinBox" name="pollingTime">
|
||||
<property name="toolTip">
|
||||
<string>CAT frequency polling time in milliseconds</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>500</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>5000</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>100</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -79,6 +79,11 @@ void AudioCATSISOCATWorker::applySettings(const AudioCATSISOSettings& settings,
|
||||
}
|
||||
}
|
||||
|
||||
if (settingsKeys.contains("catPollingMs") || force)
|
||||
{
|
||||
m_pollTimer.setInterval(settings.m_catPollingMs);
|
||||
}
|
||||
|
||||
if (force) {
|
||||
m_settings = settings;
|
||||
} else {
|
||||
@ -268,6 +273,7 @@ void AudioCATSISOCATWorker::pollingTick()
|
||||
|
||||
if (retcode == RIG_OK)
|
||||
{
|
||||
// qDebug("AudioCATSISOCATWorker::pollingTick: %f %lu", freq, m_frequency);
|
||||
if (m_frequency != freq)
|
||||
{
|
||||
qDebug("AudioCATSISOCATWorker::pollingTick: %lu", m_frequency);
|
||||
|
@ -156,6 +156,8 @@ bool AudioCATSISOGUI::deserialize(const QByteArray& data)
|
||||
|
||||
void AudioCATSISOGUI::on_startStop_toggled(bool checked)
|
||||
{
|
||||
ui->txEnable->setEnabled(!checked);
|
||||
|
||||
if (m_doApplySettings)
|
||||
{
|
||||
AudioCATSISO::MsgStartStop *message = AudioCATSISO::MsgStartStop::create(checked);
|
||||
@ -165,10 +167,21 @@ void AudioCATSISOGUI::on_startStop_toggled(bool checked)
|
||||
|
||||
void AudioCATSISOGUI::on_ptt_toggled(bool checked)
|
||||
{
|
||||
if (m_settings.m_pttSpectrumLink) {
|
||||
ui->streamSide->setCurrentIndex(checked ? 1 : 0);
|
||||
}
|
||||
|
||||
AudioCATSISOSettings::MsgPTT *msg = AudioCATSISOSettings::MsgPTT::create(checked);
|
||||
m_sampleMIMO->getInputMessageQueue()->push(msg);
|
||||
}
|
||||
|
||||
void AudioCATSISOGUI::on_pttSpectrumLinkToggled(bool checked)
|
||||
{
|
||||
m_settings.m_pttSpectrumLink = checked;
|
||||
m_settingsKeys.append("pttSpectrumLink");
|
||||
sendSettings();
|
||||
}
|
||||
|
||||
void AudioCATSISOGUI::on_catConnect_toggled(bool checked)
|
||||
{
|
||||
AudioCATSISOSettings::MsgCATConnect *msg = AudioCATSISOSettings::MsgCATConnect::create(checked);
|
||||
@ -408,10 +421,11 @@ void AudioCATSISOGUI::displaySettings()
|
||||
ui->dcBlock->setChecked(m_settings.m_dcBlock);
|
||||
ui->iqCorrection->setChecked(m_settings.m_iqCorrection);
|
||||
ui->txEnable->setChecked(m_settings.m_txEnable);
|
||||
ui->pttSpectrumLink->setChecked(m_settings.m_pttSpectrumLink);
|
||||
ui->rxVolume->setValue((int)(m_settings.m_rxVolume*10.0f));
|
||||
ui->rxVolumeText->setText(QString("%1").arg(m_settings.m_rxVolume, 3, 'f', 1));
|
||||
ui->rxChannels->setCurrentIndex((int)m_settings.m_rxIQMapping);
|
||||
ui->txVolume->setValue((int)(m_settings.m_txVolume*10.0f));
|
||||
ui->txVolume->setValue((int)(m_settings.m_txVolume));
|
||||
ui->txVolumeText->setText(tr("%1").arg(m_settings.m_txVolume));
|
||||
ui->txChannels->setCurrentIndex((int)m_settings.m_txIQMapping);
|
||||
ui->fcPosRx->setCurrentIndex(m_settings.m_fcPosRx);
|
||||
@ -753,6 +767,7 @@ void AudioCATSISOGUI::makeUIConnections()
|
||||
QObject::connect(ui->dcBlock, &ButtonSwitch::toggled, this, &AudioCATSISOGUI::on_dcBlock_toggled);
|
||||
QObject::connect(ui->iqCorrection, &ButtonSwitch::toggled, this, &AudioCATSISOGUI::on_iqCorrection_toggled);
|
||||
QObject::connect(ui->txEnable, &ButtonSwitch::toggled, this, &AudioCATSISOGUI::on_txEnable_toggled);
|
||||
QObject::connect(ui->pttSpectrumLink, &ButtonSwitch::toggled, this, &AudioCATSISOGUI::on_pttSpectrumLinkToggled);
|
||||
QObject::connect(ui->transverter, &TransverterButton::clicked, this, &AudioCATSISOGUI::on_transverter_clicked);
|
||||
QObject::connect(ui->rxDeviceSelect, &QPushButton::clicked, this, &AudioCATSISOGUI::on_rxDeviceSelect_clicked);
|
||||
QObject::connect(ui->txDeviceSelect, &QPushButton::clicked, this, &AudioCATSISOGUI::on_txDeviceSelect_clicked);
|
||||
|
@ -90,6 +90,7 @@ private slots:
|
||||
void on_streamLock_toggled(bool checked);
|
||||
void on_startStop_toggled(bool checked);
|
||||
void on_ptt_toggled(bool checked);
|
||||
void on_pttSpectrumLinkToggled(bool checked);
|
||||
void on_catConnect_toggled(bool checked);
|
||||
void on_centerFrequency_changed(quint64 value);
|
||||
void on_log2Decim_currentIndexChanged(int index);
|
||||
|
@ -180,6 +180,26 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="ButtonSwitch" name="pttSpectrumLink">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>24</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Toggles PTT switches spectrum view</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../../sdrgui/resources/res.qrc">
|
||||
<normaloff>:/link.png</normaloff>:/link.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_7">
|
||||
<property name="orientation">
|
||||
|
@ -69,6 +69,8 @@ AudioCATSISOSettings::AudioCATSISOSettings()
|
||||
|
||||
void AudioCATSISOSettings::resetToDefaults()
|
||||
{
|
||||
m_txEnable = false;
|
||||
m_pttSpectrumLink = true;
|
||||
m_rxCenterFrequency = 14200000;
|
||||
m_txCenterFrequency = 14200000;
|
||||
m_rxDeviceName = "";
|
||||
@ -100,6 +102,8 @@ void AudioCATSISOSettings::resetToDefaults()
|
||||
|
||||
AudioCATSISOSettings::AudioCATSISOSettings(const AudioCATSISOSettings& other)
|
||||
{
|
||||
m_txEnable = other.m_txEnable;
|
||||
m_pttSpectrumLink = other.m_pttSpectrumLink;
|
||||
m_rxCenterFrequency = other.m_rxCenterFrequency;
|
||||
m_txCenterFrequency = other.m_txCenterFrequency;
|
||||
m_rxDeviceName = other.m_rxDeviceName;
|
||||
@ -112,7 +116,6 @@ AudioCATSISOSettings::AudioCATSISOSettings(const AudioCATSISOSettings& other)
|
||||
m_txDeviceName = other.m_txDeviceName;
|
||||
m_txVolume = other.m_txVolume;
|
||||
m_txIQMapping = other.m_txIQMapping;
|
||||
m_txEnable = other.m_txEnable;
|
||||
m_catDevicePath = other.m_catDevicePath;
|
||||
m_hamlibModel = other.m_hamlibModel;
|
||||
m_catSpeedIndex = other.m_catSpeedIndex;
|
||||
@ -162,6 +165,7 @@ QByteArray AudioCATSISOSettings::serialize() const
|
||||
s.writeString(52, m_reverseAPIAddress);
|
||||
s.writeU32(53, m_reverseAPIPort);
|
||||
s.writeU32(54, m_reverseAPIDeviceIndex);
|
||||
s.writeBool(56, m_pttSpectrumLink);
|
||||
s.writeBool(57, m_txEnable);
|
||||
|
||||
return s.final();
|
||||
@ -221,6 +225,7 @@ bool AudioCATSISOSettings::deserialize(const QByteArray& data)
|
||||
d.readU32(54, &uintval, 0);
|
||||
m_reverseAPIDeviceIndex = uintval > 99 ? 99 : uintval;
|
||||
|
||||
d.readBool(56, &m_pttSpectrumLink, true);
|
||||
d.readBool(57, &m_txEnable, false);
|
||||
|
||||
return true;
|
||||
@ -275,6 +280,9 @@ void AudioCATSISOSettings::applySettings(const QStringList& settingsKeys, const
|
||||
if (settingsKeys.contains("txEnable")) {
|
||||
m_txEnable = settings.m_txEnable;
|
||||
}
|
||||
if (settingsKeys.contains("pttSpectrumLink")) {
|
||||
m_pttSpectrumLink = settings.m_pttSpectrumLink;
|
||||
}
|
||||
if (settingsKeys.contains("catDevicePath")) {
|
||||
m_catDevicePath = settings.m_catDevicePath;
|
||||
}
|
||||
@ -365,6 +373,9 @@ QString AudioCATSISOSettings::getDebugString(const QStringList& settingsKeys, bo
|
||||
if (settingsKeys.contains("txEnable") || force) {
|
||||
ostr << " m_txEnable: " << m_txEnable;
|
||||
}
|
||||
if (settingsKeys.contains("pttSpectrumLink") || force) {
|
||||
ostr << " m_pttSpectrumLink: " << m_pttSpectrumLink;
|
||||
}
|
||||
if (settingsKeys.contains("catDevicePath") || force) {
|
||||
ostr << " m_catDevicePath: " << m_catDevicePath.toStdString();
|
||||
}
|
||||
|
@ -106,6 +106,7 @@ struct AudioCATSISOSettings {
|
||||
qint64 m_transverterDeltaFrequency;
|
||||
bool m_iqOrder;
|
||||
bool m_txEnable;
|
||||
bool m_pttSpectrumLink;
|
||||
|
||||
QString m_rxDeviceName; // Including realm, as from getFullDeviceName below
|
||||
IQMapping m_rxIQMapping;
|
||||
|
38
plugins/samplemimo/audiocatsiso/readme.md
Normal file
38
plugins/samplemimo/audiocatsiso/readme.md
Normal file
@ -0,0 +1,38 @@
|
||||
<h1>Audio CAT SISO plugin</h1>
|
||||
|
||||
<h2>Introduction</h2>
|
||||
|
||||
This MIMO plugin gets its samples from an audio device on the Rx side and sends its samples to an audio device on the Tx side. It is single stream on both Rx and Tx therefore it has "SISO" in the name. In addition it allows CAT control of a radio device using Hamlib. CAT control is limited to frequency and PTT for radios that are transceivers. You can enable or disable the Tx side. It does not use VFO-A and VFO-B to manage split operation instead it holds one frequency for Rx and one for Tx and switches the current VFO to the appropriate value according to PTT status. It is specifically designed for radios with internal audio cards but you may also connect the audio I/O of a "traditional" radio to the line in and out of a soundcard. Not a lot of radios (if any) allow true I/Q modulation through their audio in interface therefore transmission will be limited to mono audio transfer with the radio in USB mode and have limited bandwidth only on the positive frequencies of the baseband (using the negative side just switches USB to LSB).
|
||||
|
||||
<h2>Interface</h2>
|
||||
|
||||
The top and bottom bars of the device window are described [here](../../../sdrgui/device/readme.md)
|
||||
|
||||
![Audio output plugin GUI](../../../doc/img/AudioOutput_plugin.png)
|
||||
|
||||
<h3>1: Start/Stop</h3>
|
||||
|
||||
Device start / stop button. Use this switch button to play or stop audio playback
|
||||
|
||||
<h3>2: Audio sample rate</h3>
|
||||
|
||||
Audio sample rate in Hz (Sa/s) with multiplier indicator (k).
|
||||
|
||||
<h3>3: Select audio device</h3>
|
||||
|
||||
Use this push button to open a dialog that lets you choose the audio playback device. See [audio management documentation](../../../sdrgui/audio.md) for details.
|
||||
|
||||
<h3>4: Audio device</h3>
|
||||
|
||||
The name of the audio device in use.
|
||||
|
||||
<h3>5: Volume</h3>
|
||||
|
||||
A control to set the output volume. This is not supported by all output audio devices.
|
||||
|
||||
<h3>6: Channel Map</h3>
|
||||
|
||||
This controls how the left and right audio channels map on to the IQ channels.
|
||||
|
||||
* I=L, Q=R - The left audio channel is driven to the I channel. The right audio channel is driven to the Q channel for a complex (analytic signal)input.
|
||||
* I=R, Q=L - The right audio channel is driven to the I channel. The left audio channel is driven to the Q channel for a complex (analytic signal)input.
|
@ -2474,6 +2474,10 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"description" : "Enable or disable transmission\n * 0 - Disable transmission\n * 1 - Enable transmission\n"
|
||||
},
|
||||
"pttSpectrumLink" : {
|
||||
"type" : "integer",
|
||||
"description" : "Main spectrum display (Rx/Tx) follows PTT (GUI)\n * 0 - Disable PTT following\n * 1 - Enable PTT following\n"
|
||||
},
|
||||
"rxDeviceName" : {
|
||||
"type" : "string",
|
||||
"description" : "The name of the input audio device"
|
||||
@ -2541,6 +2545,10 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"description" : "CAT RTS control\n * 0 - low\n * 1 - high (default)\n"
|
||||
},
|
||||
"catPollingMs" : {
|
||||
"type" : "integer",
|
||||
"description" : "CAT frequency polling interval in milliseconds"
|
||||
},
|
||||
"useReverseAPI" : {
|
||||
"type" : "integer",
|
||||
"description" : "Synchronize with reverse API (1 for yes, 0 for no)"
|
||||
@ -57798,7 +57806,7 @@ except ApiException as e:
|
||||
</div>
|
||||
<div id="generator">
|
||||
<div class="content">
|
||||
Generated 2023-06-12T01:13:22.125+02:00
|
||||
Generated 2023-06-16T17:40:24.489+02:00
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -24,6 +24,12 @@ AudioCATSISOSettings:
|
||||
Enable or disable transmission
|
||||
* 0 - Disable transmission
|
||||
* 1 - Enable transmission
|
||||
pttSpectrumLink:
|
||||
type: integer
|
||||
description: >
|
||||
Main spectrum display (Rx/Tx) follows PTT (GUI)
|
||||
* 0 - Disable PTT following
|
||||
* 1 - Enable PTT following
|
||||
rxDeviceName:
|
||||
description: The name of the input audio device
|
||||
type: string
|
||||
@ -122,6 +128,9 @@ AudioCATSISOSettings:
|
||||
CAT RTS control
|
||||
* 0 - low
|
||||
* 1 - high (default)
|
||||
catPollingMs:
|
||||
type: integer
|
||||
description: CAT frequency polling interval in milliseconds
|
||||
useReverseAPI:
|
||||
description: Synchronize with reverse API (1 for yes, 0 for no)
|
||||
type: integer
|
||||
|
@ -24,6 +24,12 @@ AudioCATSISOSettings:
|
||||
Enable or disable transmission
|
||||
* 0 - Disable transmission
|
||||
* 1 - Enable transmission
|
||||
pttSpectrumLink:
|
||||
type: integer
|
||||
description: >
|
||||
Main spectrum display (Rx/Tx) follows PTT (GUI)
|
||||
* 0 - Disable PTT following
|
||||
* 1 - Enable PTT following
|
||||
rxDeviceName:
|
||||
description: The name of the input audio device
|
||||
type: string
|
||||
@ -122,6 +128,9 @@ AudioCATSISOSettings:
|
||||
CAT RTS control
|
||||
* 0 - low
|
||||
* 1 - high (default)
|
||||
catPollingMs:
|
||||
type: integer
|
||||
description: CAT frequency polling interval in milliseconds
|
||||
useReverseAPI:
|
||||
description: Synchronize with reverse API (1 for yes, 0 for no)
|
||||
type: integer
|
||||
|
@ -2474,6 +2474,10 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"description" : "Enable or disable transmission\n * 0 - Disable transmission\n * 1 - Enable transmission\n"
|
||||
},
|
||||
"pttSpectrumLink" : {
|
||||
"type" : "integer",
|
||||
"description" : "Main spectrum display (Rx/Tx) follows PTT (GUI)\n * 0 - Disable PTT following\n * 1 - Enable PTT following\n"
|
||||
},
|
||||
"rxDeviceName" : {
|
||||
"type" : "string",
|
||||
"description" : "The name of the input audio device"
|
||||
@ -2541,6 +2545,10 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"description" : "CAT RTS control\n * 0 - low\n * 1 - high (default)\n"
|
||||
},
|
||||
"catPollingMs" : {
|
||||
"type" : "integer",
|
||||
"description" : "CAT frequency polling interval in milliseconds"
|
||||
},
|
||||
"useReverseAPI" : {
|
||||
"type" : "integer",
|
||||
"description" : "Synchronize with reverse API (1 for yes, 0 for no)"
|
||||
@ -57798,7 +57806,7 @@ except ApiException as e:
|
||||
</div>
|
||||
<div id="generator">
|
||||
<div class="content">
|
||||
Generated 2023-06-12T01:13:22.125+02:00
|
||||
Generated 2023-06-16T17:40:24.489+02:00
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -40,6 +40,8 @@ SWGAudioCATSISOSettings::SWGAudioCATSISOSettings() {
|
||||
m_iq_order_isSet = false;
|
||||
tx_enable = 0;
|
||||
m_tx_enable_isSet = false;
|
||||
ptt_spectrum_link = 0;
|
||||
m_ptt_spectrum_link_isSet = false;
|
||||
rx_device_name = nullptr;
|
||||
m_rx_device_name_isSet = false;
|
||||
rx_iq_mapping = 0;
|
||||
@ -74,6 +76,8 @@ SWGAudioCATSISOSettings::SWGAudioCATSISOSettings() {
|
||||
m_cat_dtr_high_isSet = false;
|
||||
cat_rts_high = 0;
|
||||
m_cat_rts_high_isSet = false;
|
||||
cat_polling_ms = 0;
|
||||
m_cat_polling_ms_isSet = false;
|
||||
use_reverse_api = 0;
|
||||
m_use_reverse_api_isSet = false;
|
||||
reverse_api_address = nullptr;
|
||||
@ -102,6 +106,8 @@ SWGAudioCATSISOSettings::init() {
|
||||
m_iq_order_isSet = false;
|
||||
tx_enable = 0;
|
||||
m_tx_enable_isSet = false;
|
||||
ptt_spectrum_link = 0;
|
||||
m_ptt_spectrum_link_isSet = false;
|
||||
rx_device_name = new QString("");
|
||||
m_rx_device_name_isSet = false;
|
||||
rx_iq_mapping = 0;
|
||||
@ -136,6 +142,8 @@ SWGAudioCATSISOSettings::init() {
|
||||
m_cat_dtr_high_isSet = false;
|
||||
cat_rts_high = 0;
|
||||
m_cat_rts_high_isSet = false;
|
||||
cat_polling_ms = 0;
|
||||
m_cat_polling_ms_isSet = false;
|
||||
use_reverse_api = 0;
|
||||
m_use_reverse_api_isSet = false;
|
||||
reverse_api_address = new QString("");
|
||||
@ -154,6 +162,7 @@ SWGAudioCATSISOSettings::cleanup() {
|
||||
|
||||
|
||||
|
||||
|
||||
if(rx_device_name != nullptr) {
|
||||
delete rx_device_name;
|
||||
}
|
||||
@ -176,6 +185,7 @@ SWGAudioCATSISOSettings::cleanup() {
|
||||
|
||||
|
||||
|
||||
|
||||
if(reverse_api_address != nullptr) {
|
||||
delete reverse_api_address;
|
||||
}
|
||||
@ -206,6 +216,8 @@ SWGAudioCATSISOSettings::fromJsonObject(QJsonObject &pJson) {
|
||||
|
||||
::SWGSDRangel::setValue(&tx_enable, pJson["txEnable"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&ptt_spectrum_link, pJson["pttSpectrumLink"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&rx_device_name, pJson["rxDeviceName"], "QString", "QString");
|
||||
|
||||
::SWGSDRangel::setValue(&rx_iq_mapping, pJson["rxIQMapping"], "qint32", "");
|
||||
@ -240,6 +252,8 @@ SWGAudioCATSISOSettings::fromJsonObject(QJsonObject &pJson) {
|
||||
|
||||
::SWGSDRangel::setValue(&cat_rts_high, pJson["catRTSHigh"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&cat_polling_ms, pJson["catPollingMs"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&use_reverse_api, pJson["useReverseAPI"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&reverse_api_address, pJson["reverseAPIAddress"], "QString", "QString");
|
||||
@ -282,6 +296,9 @@ SWGAudioCATSISOSettings::asJsonObject() {
|
||||
if(m_tx_enable_isSet){
|
||||
obj->insert("txEnable", QJsonValue(tx_enable));
|
||||
}
|
||||
if(m_ptt_spectrum_link_isSet){
|
||||
obj->insert("pttSpectrumLink", QJsonValue(ptt_spectrum_link));
|
||||
}
|
||||
if(rx_device_name != nullptr && *rx_device_name != QString("")){
|
||||
toJsonValue(QString("rxDeviceName"), rx_device_name, obj, QString("QString"));
|
||||
}
|
||||
@ -333,6 +350,9 @@ SWGAudioCATSISOSettings::asJsonObject() {
|
||||
if(m_cat_rts_high_isSet){
|
||||
obj->insert("catRTSHigh", QJsonValue(cat_rts_high));
|
||||
}
|
||||
if(m_cat_polling_ms_isSet){
|
||||
obj->insert("catPollingMs", QJsonValue(cat_polling_ms));
|
||||
}
|
||||
if(m_use_reverse_api_isSet){
|
||||
obj->insert("useReverseAPI", QJsonValue(use_reverse_api));
|
||||
}
|
||||
@ -409,6 +429,16 @@ SWGAudioCATSISOSettings::setTxEnable(qint32 tx_enable) {
|
||||
this->m_tx_enable_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGAudioCATSISOSettings::getPttSpectrumLink() {
|
||||
return ptt_spectrum_link;
|
||||
}
|
||||
void
|
||||
SWGAudioCATSISOSettings::setPttSpectrumLink(qint32 ptt_spectrum_link) {
|
||||
this->ptt_spectrum_link = ptt_spectrum_link;
|
||||
this->m_ptt_spectrum_link_isSet = true;
|
||||
}
|
||||
|
||||
QString*
|
||||
SWGAudioCATSISOSettings::getRxDeviceName() {
|
||||
return rx_device_name;
|
||||
@ -579,6 +609,16 @@ SWGAudioCATSISOSettings::setCatRtsHigh(qint32 cat_rts_high) {
|
||||
this->m_cat_rts_high_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGAudioCATSISOSettings::getCatPollingMs() {
|
||||
return cat_polling_ms;
|
||||
}
|
||||
void
|
||||
SWGAudioCATSISOSettings::setCatPollingMs(qint32 cat_polling_ms) {
|
||||
this->cat_polling_ms = cat_polling_ms;
|
||||
this->m_cat_polling_ms_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGAudioCATSISOSettings::getUseReverseApi() {
|
||||
return use_reverse_api;
|
||||
@ -642,6 +682,9 @@ SWGAudioCATSISOSettings::isSet(){
|
||||
if(m_tx_enable_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_ptt_spectrum_link_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(rx_device_name && *rx_device_name != QString("")){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
@ -693,6 +736,9 @@ SWGAudioCATSISOSettings::isSet(){
|
||||
if(m_cat_rts_high_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_cat_polling_ms_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_use_reverse_api_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
|
@ -60,6 +60,9 @@ public:
|
||||
qint32 getTxEnable();
|
||||
void setTxEnable(qint32 tx_enable);
|
||||
|
||||
qint32 getPttSpectrumLink();
|
||||
void setPttSpectrumLink(qint32 ptt_spectrum_link);
|
||||
|
||||
QString* getRxDeviceName();
|
||||
void setRxDeviceName(QString* rx_device_name);
|
||||
|
||||
@ -111,6 +114,9 @@ public:
|
||||
qint32 getCatRtsHigh();
|
||||
void setCatRtsHigh(qint32 cat_rts_high);
|
||||
|
||||
qint32 getCatPollingMs();
|
||||
void setCatPollingMs(qint32 cat_polling_ms);
|
||||
|
||||
qint32 getUseReverseApi();
|
||||
void setUseReverseApi(qint32 use_reverse_api);
|
||||
|
||||
@ -145,6 +151,9 @@ private:
|
||||
qint32 tx_enable;
|
||||
bool m_tx_enable_isSet;
|
||||
|
||||
qint32 ptt_spectrum_link;
|
||||
bool m_ptt_spectrum_link_isSet;
|
||||
|
||||
QString* rx_device_name;
|
||||
bool m_rx_device_name_isSet;
|
||||
|
||||
@ -196,6 +205,9 @@ private:
|
||||
qint32 cat_rts_high;
|
||||
bool m_cat_rts_high_isSet;
|
||||
|
||||
qint32 cat_polling_ms;
|
||||
bool m_cat_polling_ms_isSet;
|
||||
|
||||
qint32 use_reverse_api;
|
||||
bool m_use_reverse_api_isSet;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user