1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-12-25 20:22:10 -05:00

Audio CAT SISO: polling time and spectrum follows PTT

This commit is contained in:
f4exb 2023-06-17 08:19:53 +02:00
parent ecc08f8337
commit 246303cd46
19 changed files with 242 additions and 5 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

View File

@ -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)

View File

@ -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");
}
}

View File

@ -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;

View File

@ -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>

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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">

View File

@ -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();
}

View File

@ -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;

View 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.

View File

@ -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>

View File

@ -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

View File

@ -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

View File

@ -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>

View File

@ -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;
}

View File

@ -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;