mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-04-04 10:38:45 -04:00
Packet modulator: API changes
This commit is contained in:
parent
d785694c87
commit
8fb31a147b
@ -60,7 +60,6 @@ struct PacketDemodSettings
|
||||
int m_columnIndexes[PACKETDEMOD_COLUMNS];//!< How the columns are ordered in the table
|
||||
int m_columnSizes[PACKETDEMOD_COLUMNS]; //!< Size of the columns in the table
|
||||
|
||||
static const int PACKETDEMOD_CHANNEL_BANDWIDTH = 9600;
|
||||
static const int PACKETDEMOD_CHANNEL_SAMPLE_RATE = 38400; // Must be integer multiple of baud rate (x32, x4)
|
||||
|
||||
PacketDemodSettings();
|
||||
|
@ -49,7 +49,8 @@
|
||||
#include "packetmod.h"
|
||||
|
||||
MESSAGE_CLASS_DEFINITION(PacketMod::MsgConfigurePacketMod, Message)
|
||||
MESSAGE_CLASS_DEFINITION(PacketMod::MsgTXPacketMod, Message)
|
||||
MESSAGE_CLASS_DEFINITION(PacketMod::MsgTx, Message)
|
||||
MESSAGE_CLASS_DEFINITION(PacketMod::MsgReportTx, Message)
|
||||
MESSAGE_CLASS_DEFINITION(PacketMod::MsgTXPacketBytes, Message)
|
||||
|
||||
const char* const PacketMod::m_channelIdURI = "sdrangel.channeltx.modpacket";
|
||||
@ -122,12 +123,10 @@ bool PacketMod::handleMessage(const Message& cmd)
|
||||
|
||||
return true;
|
||||
}
|
||||
else if (MsgTXPacketMod::match(cmd))
|
||||
if (MsgTx::match(cmd))
|
||||
{
|
||||
// Forward a copy to baseband
|
||||
MsgTXPacketMod* rep = new MsgTXPacketMod((MsgTXPacketMod&)cmd);
|
||||
qDebug() << "PacketMod::handleMessage: MsgTXPacketMod";
|
||||
m_basebandSource->getInputMessageQueue()->push(rep);
|
||||
MsgTx *msg = new MsgTx((const MsgTx&) cmd);
|
||||
m_basebandSource->getInputMessageQueue()->push(msg);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -158,6 +157,8 @@ void PacketMod::applySettings(const PacketModSettings& settings, bool force)
|
||||
{
|
||||
qDebug() << "PacketMod::applySettings:"
|
||||
<< " m_inputFrequencyOffset: " << settings.m_inputFrequencyOffset
|
||||
<< " m_modulation: " << settings.m_modulation
|
||||
<< " m_baud: " << settings.m_baud
|
||||
<< " m_rfBandwidth: " << settings.m_rfBandwidth
|
||||
<< " m_fmDeviation: " << settings.m_fmDeviation
|
||||
<< " m_gain: " << settings.m_gain
|
||||
@ -186,6 +187,14 @@ void PacketMod::applySettings(const PacketModSettings& settings, bool force)
|
||||
reverseAPIKeys.append("inputFrequencyOffset");
|
||||
}
|
||||
|
||||
if ((settings.m_modulation != m_settings.m_modulation) || force) {
|
||||
reverseAPIKeys.append("modulation");
|
||||
}
|
||||
|
||||
if ((settings.m_baud != m_settings.m_baud) || force) {
|
||||
reverseAPIKeys.append("baud");
|
||||
}
|
||||
|
||||
if ((settings.m_rfBandwidth != m_settings.m_rfBandwidth) || force) {
|
||||
reverseAPIKeys.append("rfBandwidth");
|
||||
}
|
||||
@ -476,8 +485,11 @@ void PacketMod::webapiUpdateChannelSettings(
|
||||
if (channelSettingsKeys.contains("inputFrequencyOffset")) {
|
||||
settings.m_inputFrequencyOffset = response.getPacketModSettings()->getInputFrequencyOffset();
|
||||
}
|
||||
if (channelSettingsKeys.contains("mode")) {
|
||||
settings.setMode(*response.getPacketModSettings()->getMode());
|
||||
if (channelSettingsKeys.contains("modulation")) {
|
||||
settings.m_modulation = (PacketModSettings::Modulation) response.getPacketModSettings()->getModulation();
|
||||
}
|
||||
if (channelSettingsKeys.contains("baud")) {
|
||||
settings.m_baud = response.getPacketModSettings()->getBaud();
|
||||
}
|
||||
if (channelSettingsKeys.contains("rfBandwidth")) {
|
||||
settings.m_rfBandwidth = response.getPacketModSettings()->getRfBandwidth();
|
||||
@ -647,25 +659,22 @@ int PacketMod::webapiActionsPost(
|
||||
{
|
||||
if (channelActionsKeys.contains("tx"))
|
||||
{
|
||||
SWGSDRangel::SWGPacketModActions_tx* tx = swgPacketModActions->getTx();
|
||||
QString *callsignP = tx->getCallsign();
|
||||
QString *toP = tx->getTo();
|
||||
QString *viaP = tx->getVia();
|
||||
QString *dataP = tx->getData();
|
||||
if (callsignP && toP && viaP && dataP)
|
||||
if (swgPacketModActions->getTx() != 0)
|
||||
{
|
||||
QString callsign(*callsignP);
|
||||
QString to(*toP);
|
||||
QString via(*viaP);
|
||||
QString data(*dataP);
|
||||
|
||||
PacketMod::MsgTXPacketMod *msg = PacketMod::MsgTXPacketMod::create(callsign, to, via, data);
|
||||
MsgTx *msg = MsgTx::create();
|
||||
m_basebandSource->getInputMessageQueue()->push(msg);
|
||||
|
||||
if (getMessageQueueToGUI())
|
||||
{
|
||||
MsgReportTx *msg = MsgReportTx::create();
|
||||
getMessageQueueToGUI()->push(msg);
|
||||
}
|
||||
|
||||
return 202;
|
||||
}
|
||||
else
|
||||
{
|
||||
errorMessage = "Packet must contain callsign, to, via and data";
|
||||
errorMessage = "Packet must contain tx action";
|
||||
return 400;
|
||||
}
|
||||
}
|
||||
@ -685,7 +694,8 @@ int PacketMod::webapiActionsPost(
|
||||
void PacketMod::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& response, const PacketModSettings& settings)
|
||||
{
|
||||
response.getPacketModSettings()->setInputFrequencyOffset(settings.m_inputFrequencyOffset);
|
||||
response.getPacketModSettings()->setMode(new QString(settings.getMode()));
|
||||
response.getPacketModSettings()->setModulation((int) settings.m_modulation);
|
||||
response.getPacketModSettings()->setBaud(settings.m_baud);
|
||||
response.getPacketModSettings()->setRfBandwidth(settings.m_rfBandwidth);
|
||||
response.getPacketModSettings()->setFmDeviation(settings.m_fmDeviation);
|
||||
response.getPacketModSettings()->setGain(settings.m_gain);
|
||||
@ -842,6 +852,12 @@ void PacketMod::webapiFormatChannelSettings(
|
||||
if (channelSettingsKeys.contains("inputFrequencyOffset") || force) {
|
||||
swgPacketModSettings->setInputFrequencyOffset(settings.m_inputFrequencyOffset);
|
||||
}
|
||||
if (channelSettingsKeys.contains("modulation") || force) {
|
||||
swgPacketModSettings->setModulation((int) settings.m_modulation);
|
||||
}
|
||||
if (channelSettingsKeys.contains("baud") || force) {
|
||||
swgPacketModSettings->setBaud((int) settings.m_baud);
|
||||
}
|
||||
if (channelSettingsKeys.contains("rfBandwidth") || force) {
|
||||
swgPacketModSettings->setRfBandwidth(settings.m_rfBandwidth);
|
||||
}
|
||||
|
@ -67,28 +67,31 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
class MsgTXPacketMod : public Message {
|
||||
class MsgTx : public Message {
|
||||
MESSAGE_CLASS_DECLARATION
|
||||
|
||||
public:
|
||||
static MsgTXPacketMod* create(QString callsign, QString to, QString via, QString data)
|
||||
{
|
||||
return new MsgTXPacketMod(callsign, to, via, data);
|
||||
static MsgTx* create() {
|
||||
return new MsgTx();
|
||||
}
|
||||
|
||||
QString m_callsign;
|
||||
QString m_to;
|
||||
QString m_via;
|
||||
QString m_data;
|
||||
private:
|
||||
MsgTx() :
|
||||
Message()
|
||||
{ }
|
||||
};
|
||||
|
||||
class MsgReportTx : public Message {
|
||||
MESSAGE_CLASS_DECLARATION
|
||||
|
||||
public:
|
||||
static MsgReportTx* create() {
|
||||
return new MsgReportTx();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
MsgTXPacketMod(QString callsign, QString to, QString via, QString data) :
|
||||
Message(),
|
||||
m_callsign(callsign),
|
||||
m_to(to),
|
||||
m_via(via),
|
||||
m_data(data)
|
||||
MsgReportTx() :
|
||||
Message()
|
||||
{ }
|
||||
};
|
||||
|
||||
@ -96,8 +99,7 @@ public:
|
||||
MESSAGE_CLASS_DECLARATION
|
||||
|
||||
public:
|
||||
static MsgTXPacketBytes* create(QByteArray data)
|
||||
{
|
||||
static MsgTXPacketBytes* create(QByteArray data) {
|
||||
return new MsgTXPacketBytes(data);
|
||||
}
|
||||
|
||||
|
@ -150,10 +150,10 @@ bool PacketModBaseband::handleMessage(const Message& cmd)
|
||||
|
||||
return true;
|
||||
}
|
||||
else if (PacketMod::MsgTXPacketMod::match(cmd))
|
||||
else if (PacketMod::MsgTx::match(cmd))
|
||||
{
|
||||
PacketMod::MsgTXPacketMod& tx = (PacketMod::MsgTXPacketMod&) cmd;
|
||||
m_source.addTXPacket(tx.m_callsign, tx.m_to, tx.m_via, tx.m_data);
|
||||
qDebug() << "PacketModBaseband::handleMessage: MsgTx";
|
||||
m_source.addTXPacket(m_settings.m_callsign, m_settings.m_to, m_settings.m_via, m_settings.m_data);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -88,6 +88,12 @@ bool PacketModGUI::handleMessage(const Message& message)
|
||||
blockApplySettings(false);
|
||||
return true;
|
||||
}
|
||||
else if (PacketMod::MsgReportTx::match(message))
|
||||
{
|
||||
QString str = m_settings.m_callsign + ">" + m_settings.m_to + "," + m_settings.m_via + ":" + m_settings.m_data;
|
||||
ui->transmittedText->appendPlainText(str);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
@ -489,14 +495,10 @@ PacketModGUI::~PacketModGUI()
|
||||
|
||||
void PacketModGUI::transmit()
|
||||
{
|
||||
QString callsign = ui->callsign->text();
|
||||
QString to = ui->to->currentText();
|
||||
QString via = ui->via->currentText();
|
||||
QString data = ui->packet->text();
|
||||
// TODO: Any validation?
|
||||
QString str = callsign + ">" + to + "," + via + ":" + data;
|
||||
ui->transmittedText->appendPlainText(str + "\n");
|
||||
PacketMod::MsgTXPacketMod *msg = PacketMod::MsgTXPacketMod::create(callsign, to, via, data);
|
||||
QString str = m_settings.m_callsign + ">" + m_settings.m_to + "," + m_settings.m_via + ":" + m_settings.m_data;
|
||||
ui->transmittedText->appendPlainText(str);
|
||||
PacketMod::MsgTx *msg = PacketMod::MsgTx::create();
|
||||
m_packetMod->getInputMessageQueue()->push(msg);
|
||||
}
|
||||
|
||||
|
@ -89,11 +89,14 @@ bool PacketModSettings::setMode(QString mode)
|
||||
{
|
||||
int baud;
|
||||
bool valid;
|
||||
bool setCommon = false;
|
||||
|
||||
// First part of mode string should give baud rate
|
||||
baud = mode.split(" ")[0].toInt(&valid);
|
||||
if (!valid)
|
||||
|
||||
if (!valid) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mode.endsWith("AFSK"))
|
||||
{
|
||||
@ -102,22 +105,56 @@ bool PacketModSettings::setMode(QString mode)
|
||||
m_scramble = false;
|
||||
m_rfBandwidth = 12500.0f;
|
||||
m_fmDeviation = 2500.0f;
|
||||
m_spectrumRate = 8000;
|
||||
m_modulation = PacketModSettings::AFSK;
|
||||
m_markFrequency = 2200;
|
||||
m_spaceFrequency = 1200;
|
||||
setCommon = true;
|
||||
}
|
||||
else if (mode.endsWith("FSK"))
|
||||
{
|
||||
// G3RUH - http://www.jrmiller.demon.co.uk/products/figs/man9k6.pdf
|
||||
m_baud = baud;
|
||||
m_scramble = true;
|
||||
m_polynomial = 0x10800;
|
||||
m_rfBandwidth = 20000.0f;
|
||||
m_fmDeviation = 3000.0f;
|
||||
m_spectrumRate = 24000;
|
||||
m_bpf = false;
|
||||
m_modulation = PacketModSettings::FSK;
|
||||
m_beta = 0.5f;
|
||||
m_symbolSpan = 6;
|
||||
setCommon = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (baud <= 2400) {
|
||||
m_spectrumRate = 8000;
|
||||
} else {
|
||||
m_spectrumRate = 24000;
|
||||
}
|
||||
|
||||
if (setCommon)
|
||||
{
|
||||
m_ax25PreFlags = 5;
|
||||
m_ax25PostFlags = 4;
|
||||
m_ax25PID = 0xf0;
|
||||
m_ax25Control = 3;
|
||||
m_preEmphasis = false;
|
||||
m_preEmphasisTau = 531e-6f; // Narrowband FM
|
||||
m_preEmphasisHighFreq = 3000.0f;
|
||||
m_lpfTaps = 301;
|
||||
m_rampUpBits = 8;
|
||||
m_rampDownBits = 8;
|
||||
m_rampRange = 60;
|
||||
m_modulateWhileRamping = true;
|
||||
m_bpf = false;
|
||||
m_bpfLowCutoff = m_spaceFrequency - 400.0f;
|
||||
m_bpfHighCutoff = m_markFrequency + 400.0f;
|
||||
m_bpfTaps = 301;
|
||||
m_pulseShaping = true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -8222,27 +8222,11 @@ margin-bottom: 20px;
|
||||
defs.PacketModActions = {
|
||||
"properties" : {
|
||||
"tx" : {
|
||||
"$ref" : "#/definitions/PacketModActions_tx"
|
||||
"type" : "integer",
|
||||
"description" : "Transmit with current data\n * 0 - Do nothing\n * 1 - Transmit\n"
|
||||
}
|
||||
},
|
||||
"description" : "PacketMod"
|
||||
};
|
||||
defs.PacketModActions_tx = {
|
||||
"properties" : {
|
||||
"callsign" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"to" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"via" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"data" : {
|
||||
"type" : "string"
|
||||
}
|
||||
},
|
||||
"description" : "Transmit a packet\n"
|
||||
};
|
||||
defs.PacketModReport = {
|
||||
"properties" : {
|
||||
@ -8266,9 +8250,13 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"format" : "int64"
|
||||
},
|
||||
"mode" : {
|
||||
"type" : "string",
|
||||
"description" : "Transmission mode\n * \"1200 AFSK\"\n * \"9600 FSK\".\n"
|
||||
"modulation" : {
|
||||
"type" : "integer",
|
||||
"description" : "Modulation mode\n * 0 - AFSK\n * 1 - FSK\n"
|
||||
},
|
||||
"baud" : {
|
||||
"type" : "integer",
|
||||
"description" : "Baud rate"
|
||||
},
|
||||
"rfBandwidth" : {
|
||||
"type" : "number",
|
||||
@ -8333,6 +8321,10 @@ margin-bottom: 20px;
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
"preEmphasisLowFreq" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
"preEmphasisHighFreq" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
@ -51298,7 +51290,7 @@ except ApiException as e:
|
||||
</div>
|
||||
<div id="generator">
|
||||
<div class="content">
|
||||
Generated 2021-11-11T23:23:22.877+01:00
|
||||
Generated 2021-11-13T22:32:53.016+01:00
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -4,12 +4,15 @@ PacketModSettings:
|
||||
inputFrequencyOffset:
|
||||
type: integer
|
||||
format: int64
|
||||
mode:
|
||||
type: string
|
||||
modulation:
|
||||
type: integer
|
||||
description: >
|
||||
Transmission mode
|
||||
* "1200 AFSK"
|
||||
* "9600 FSK".
|
||||
Modulation mode
|
||||
* 0 - AFSK
|
||||
* 1 - FSK
|
||||
baud:
|
||||
type: integer
|
||||
description: Baud rate
|
||||
rfBandwidth:
|
||||
type: number
|
||||
format: float
|
||||
@ -57,6 +60,9 @@ PacketModSettings:
|
||||
preEmphasisTau:
|
||||
type: number
|
||||
format: float
|
||||
preEmphasisLowFreq:
|
||||
type: number
|
||||
format: float
|
||||
preEmphasisHighFreq:
|
||||
type: number
|
||||
format: float
|
||||
@ -163,15 +169,8 @@ PacketModActions:
|
||||
description: PacketMod
|
||||
properties:
|
||||
tx:
|
||||
type: object
|
||||
properties:
|
||||
callsign:
|
||||
type: string
|
||||
to:
|
||||
type: string
|
||||
via:
|
||||
type: string
|
||||
data:
|
||||
type: string
|
||||
type: integer
|
||||
description: >
|
||||
Transmit a packet
|
||||
Transmit with current data
|
||||
* 0 - Do nothing
|
||||
* 1 - Transmit
|
||||
|
@ -4,12 +4,15 @@ PacketModSettings:
|
||||
inputFrequencyOffset:
|
||||
type: integer
|
||||
format: int64
|
||||
mode:
|
||||
type: string
|
||||
modulation:
|
||||
type: integer
|
||||
description: >
|
||||
Transmission mode
|
||||
* "1200 AFSK"
|
||||
* "9600 FSK".
|
||||
Modulation mode
|
||||
* 0 - AFSK
|
||||
* 1 - FSK
|
||||
baud:
|
||||
type: integer
|
||||
description: Baud rate
|
||||
rfBandwidth:
|
||||
type: number
|
||||
format: float
|
||||
@ -163,15 +166,8 @@ PacketModActions:
|
||||
description: PacketMod
|
||||
properties:
|
||||
tx:
|
||||
type: object
|
||||
properties:
|
||||
callsign:
|
||||
type: string
|
||||
to:
|
||||
type: string
|
||||
via:
|
||||
type: string
|
||||
data:
|
||||
type: string
|
||||
type: integer
|
||||
description: >
|
||||
Transmit a packet
|
||||
Transmit with current data
|
||||
* 0 - Do nothing
|
||||
* 1 - Transmit
|
||||
|
@ -8222,27 +8222,11 @@ margin-bottom: 20px;
|
||||
defs.PacketModActions = {
|
||||
"properties" : {
|
||||
"tx" : {
|
||||
"$ref" : "#/definitions/PacketModActions_tx"
|
||||
"type" : "integer",
|
||||
"description" : "Transmit with current data\n * 0 - Do nothing\n * 1 - Transmit\n"
|
||||
}
|
||||
},
|
||||
"description" : "PacketMod"
|
||||
};
|
||||
defs.PacketModActions_tx = {
|
||||
"properties" : {
|
||||
"callsign" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"to" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"via" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"data" : {
|
||||
"type" : "string"
|
||||
}
|
||||
},
|
||||
"description" : "Transmit a packet\n"
|
||||
};
|
||||
defs.PacketModReport = {
|
||||
"properties" : {
|
||||
@ -8266,9 +8250,13 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"format" : "int64"
|
||||
},
|
||||
"mode" : {
|
||||
"type" : "string",
|
||||
"description" : "Transmission mode\n * \"1200 AFSK\"\n * \"9600 FSK\".\n"
|
||||
"modulation" : {
|
||||
"type" : "integer",
|
||||
"description" : "Modulation mode\n * 0 - AFSK\n * 1 - FSK\n"
|
||||
},
|
||||
"baud" : {
|
||||
"type" : "integer",
|
||||
"description" : "Baud rate"
|
||||
},
|
||||
"rfBandwidth" : {
|
||||
"type" : "number",
|
||||
@ -8333,6 +8321,10 @@ margin-bottom: 20px;
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
"preEmphasisLowFreq" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
"preEmphasisHighFreq" : {
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
@ -51298,7 +51290,7 @@ except ApiException as e:
|
||||
</div>
|
||||
<div id="generator">
|
||||
<div class="content">
|
||||
Generated 2021-11-11T23:23:22.877+01:00
|
||||
Generated 2021-11-13T22:32:53.016+01:00
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -189,7 +189,6 @@
|
||||
#include "SWGPacketDemodReport.h"
|
||||
#include "SWGPacketDemodSettings.h"
|
||||
#include "SWGPacketModActions.h"
|
||||
#include "SWGPacketModActions_tx.h"
|
||||
#include "SWGPacketModReport.h"
|
||||
#include "SWGPacketModSettings.h"
|
||||
#include "SWGPagerDemodReport.h"
|
||||
@ -1184,11 +1183,6 @@ namespace SWGSDRangel {
|
||||
obj->init();
|
||||
return obj;
|
||||
}
|
||||
if(QString("SWGPacketModActions_tx").compare(type) == 0) {
|
||||
SWGPacketModActions_tx *obj = new SWGPacketModActions_tx();
|
||||
obj->init();
|
||||
return obj;
|
||||
}
|
||||
if(QString("SWGPacketModReport").compare(type) == 0) {
|
||||
SWGPacketModReport *obj = new SWGPacketModReport();
|
||||
obj->init();
|
||||
|
@ -28,7 +28,7 @@ SWGPacketModActions::SWGPacketModActions(QString* json) {
|
||||
}
|
||||
|
||||
SWGPacketModActions::SWGPacketModActions() {
|
||||
tx = nullptr;
|
||||
tx = 0;
|
||||
m_tx_isSet = false;
|
||||
}
|
||||
|
||||
@ -38,15 +38,13 @@ SWGPacketModActions::~SWGPacketModActions() {
|
||||
|
||||
void
|
||||
SWGPacketModActions::init() {
|
||||
tx = new SWGPacketModActions_tx();
|
||||
tx = 0;
|
||||
m_tx_isSet = false;
|
||||
}
|
||||
|
||||
void
|
||||
SWGPacketModActions::cleanup() {
|
||||
if(tx != nullptr) {
|
||||
delete tx;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
SWGPacketModActions*
|
||||
@ -60,7 +58,7 @@ SWGPacketModActions::fromJson(QString &json) {
|
||||
|
||||
void
|
||||
SWGPacketModActions::fromJsonObject(QJsonObject &pJson) {
|
||||
::SWGSDRangel::setValue(&tx, pJson["tx"], "SWGPacketModActions_tx", "SWGPacketModActions_tx");
|
||||
::SWGSDRangel::setValue(&tx, pJson["tx"], "qint32", "");
|
||||
|
||||
}
|
||||
|
||||
@ -78,19 +76,19 @@ SWGPacketModActions::asJson ()
|
||||
QJsonObject*
|
||||
SWGPacketModActions::asJsonObject() {
|
||||
QJsonObject* obj = new QJsonObject();
|
||||
if((tx != nullptr) && (tx->isSet())){
|
||||
toJsonValue(QString("tx"), tx, obj, QString("SWGPacketModActions_tx"));
|
||||
if(m_tx_isSet){
|
||||
obj->insert("tx", QJsonValue(tx));
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
SWGPacketModActions_tx*
|
||||
qint32
|
||||
SWGPacketModActions::getTx() {
|
||||
return tx;
|
||||
}
|
||||
void
|
||||
SWGPacketModActions::setTx(SWGPacketModActions_tx* tx) {
|
||||
SWGPacketModActions::setTx(qint32 tx) {
|
||||
this->tx = tx;
|
||||
this->m_tx_isSet = true;
|
||||
}
|
||||
@ -100,7 +98,7 @@ bool
|
||||
SWGPacketModActions::isSet(){
|
||||
bool isObjectUpdated = false;
|
||||
do{
|
||||
if(tx && tx->isSet()){
|
||||
if(m_tx_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
}while(false);
|
||||
|
@ -22,7 +22,6 @@
|
||||
#include <QJsonObject>
|
||||
|
||||
|
||||
#include "SWGPacketModActions_tx.h"
|
||||
|
||||
#include "SWGObject.h"
|
||||
#include "export.h"
|
||||
@ -42,14 +41,14 @@ public:
|
||||
virtual void fromJsonObject(QJsonObject &json) override;
|
||||
virtual SWGPacketModActions* fromJson(QString &jsonString) override;
|
||||
|
||||
SWGPacketModActions_tx* getTx();
|
||||
void setTx(SWGPacketModActions_tx* tx);
|
||||
qint32 getTx();
|
||||
void setTx(qint32 tx);
|
||||
|
||||
|
||||
virtual bool isSet() override;
|
||||
|
||||
private:
|
||||
SWGPacketModActions_tx* tx;
|
||||
qint32 tx;
|
||||
bool m_tx_isSet;
|
||||
|
||||
};
|
||||
|
@ -30,8 +30,10 @@ SWGPacketModSettings::SWGPacketModSettings(QString* json) {
|
||||
SWGPacketModSettings::SWGPacketModSettings() {
|
||||
input_frequency_offset = 0L;
|
||||
m_input_frequency_offset_isSet = false;
|
||||
mode = nullptr;
|
||||
m_mode_isSet = false;
|
||||
modulation = 0;
|
||||
m_modulation_isSet = false;
|
||||
baud = 0;
|
||||
m_baud_isSet = false;
|
||||
rf_bandwidth = 0.0f;
|
||||
m_rf_bandwidth_isSet = false;
|
||||
fm_deviation = 0.0f;
|
||||
@ -70,6 +72,8 @@ SWGPacketModSettings::SWGPacketModSettings() {
|
||||
m_pre_emphasis_isSet = false;
|
||||
pre_emphasis_tau = 0.0f;
|
||||
m_pre_emphasis_tau_isSet = false;
|
||||
pre_emphasis_low_freq = 0.0f;
|
||||
m_pre_emphasis_low_freq_isSet = false;
|
||||
pre_emphasis_high_freq = 0.0f;
|
||||
m_pre_emphasis_high_freq_isSet = false;
|
||||
lpf_taps = 0;
|
||||
@ -140,8 +144,10 @@ void
|
||||
SWGPacketModSettings::init() {
|
||||
input_frequency_offset = 0L;
|
||||
m_input_frequency_offset_isSet = false;
|
||||
mode = new QString("");
|
||||
m_mode_isSet = false;
|
||||
modulation = 0;
|
||||
m_modulation_isSet = false;
|
||||
baud = 0;
|
||||
m_baud_isSet = false;
|
||||
rf_bandwidth = 0.0f;
|
||||
m_rf_bandwidth_isSet = false;
|
||||
fm_deviation = 0.0f;
|
||||
@ -180,6 +186,8 @@ SWGPacketModSettings::init() {
|
||||
m_pre_emphasis_isSet = false;
|
||||
pre_emphasis_tau = 0.0f;
|
||||
m_pre_emphasis_tau_isSet = false;
|
||||
pre_emphasis_low_freq = 0.0f;
|
||||
m_pre_emphasis_low_freq_isSet = false;
|
||||
pre_emphasis_high_freq = 0.0f;
|
||||
m_pre_emphasis_high_freq_isSet = false;
|
||||
lpf_taps = 0;
|
||||
@ -245,9 +253,9 @@ SWGPacketModSettings::init() {
|
||||
void
|
||||
SWGPacketModSettings::cleanup() {
|
||||
|
||||
if(mode != nullptr) {
|
||||
delete mode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -326,7 +334,9 @@ void
|
||||
SWGPacketModSettings::fromJsonObject(QJsonObject &pJson) {
|
||||
::SWGSDRangel::setValue(&input_frequency_offset, pJson["inputFrequencyOffset"], "qint64", "");
|
||||
|
||||
::SWGSDRangel::setValue(&mode, pJson["mode"], "QString", "QString");
|
||||
::SWGSDRangel::setValue(&modulation, pJson["modulation"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&baud, pJson["baud"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&rf_bandwidth, pJson["rfBandwidth"], "float", "");
|
||||
|
||||
@ -366,6 +376,8 @@ SWGPacketModSettings::fromJsonObject(QJsonObject &pJson) {
|
||||
|
||||
::SWGSDRangel::setValue(&pre_emphasis_tau, pJson["preEmphasisTau"], "float", "");
|
||||
|
||||
::SWGSDRangel::setValue(&pre_emphasis_low_freq, pJson["preEmphasisLowFreq"], "float", "");
|
||||
|
||||
::SWGSDRangel::setValue(&pre_emphasis_high_freq, pJson["preEmphasisHighFreq"], "float", "");
|
||||
|
||||
::SWGSDRangel::setValue(&lpf_taps, pJson["lpfTaps"], "qint32", "");
|
||||
@ -445,8 +457,11 @@ SWGPacketModSettings::asJsonObject() {
|
||||
if(m_input_frequency_offset_isSet){
|
||||
obj->insert("inputFrequencyOffset", QJsonValue(input_frequency_offset));
|
||||
}
|
||||
if(mode != nullptr && *mode != QString("")){
|
||||
toJsonValue(QString("mode"), mode, obj, QString("QString"));
|
||||
if(m_modulation_isSet){
|
||||
obj->insert("modulation", QJsonValue(modulation));
|
||||
}
|
||||
if(m_baud_isSet){
|
||||
obj->insert("baud", QJsonValue(baud));
|
||||
}
|
||||
if(m_rf_bandwidth_isSet){
|
||||
obj->insert("rfBandwidth", QJsonValue(rf_bandwidth));
|
||||
@ -505,6 +520,9 @@ SWGPacketModSettings::asJsonObject() {
|
||||
if(m_pre_emphasis_tau_isSet){
|
||||
obj->insert("preEmphasisTau", QJsonValue(pre_emphasis_tau));
|
||||
}
|
||||
if(m_pre_emphasis_low_freq_isSet){
|
||||
obj->insert("preEmphasisLowFreq", QJsonValue(pre_emphasis_low_freq));
|
||||
}
|
||||
if(m_pre_emphasis_high_freq_isSet){
|
||||
obj->insert("preEmphasisHighFreq", QJsonValue(pre_emphasis_high_freq));
|
||||
}
|
||||
@ -609,14 +627,24 @@ SWGPacketModSettings::setInputFrequencyOffset(qint64 input_frequency_offset) {
|
||||
this->m_input_frequency_offset_isSet = true;
|
||||
}
|
||||
|
||||
QString*
|
||||
SWGPacketModSettings::getMode() {
|
||||
return mode;
|
||||
qint32
|
||||
SWGPacketModSettings::getModulation() {
|
||||
return modulation;
|
||||
}
|
||||
void
|
||||
SWGPacketModSettings::setMode(QString* mode) {
|
||||
this->mode = mode;
|
||||
this->m_mode_isSet = true;
|
||||
SWGPacketModSettings::setModulation(qint32 modulation) {
|
||||
this->modulation = modulation;
|
||||
this->m_modulation_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGPacketModSettings::getBaud() {
|
||||
return baud;
|
||||
}
|
||||
void
|
||||
SWGPacketModSettings::setBaud(qint32 baud) {
|
||||
this->baud = baud;
|
||||
this->m_baud_isSet = true;
|
||||
}
|
||||
|
||||
float
|
||||
@ -809,6 +837,16 @@ SWGPacketModSettings::setPreEmphasisTau(float pre_emphasis_tau) {
|
||||
this->m_pre_emphasis_tau_isSet = true;
|
||||
}
|
||||
|
||||
float
|
||||
SWGPacketModSettings::getPreEmphasisLowFreq() {
|
||||
return pre_emphasis_low_freq;
|
||||
}
|
||||
void
|
||||
SWGPacketModSettings::setPreEmphasisLowFreq(float pre_emphasis_low_freq) {
|
||||
this->pre_emphasis_low_freq = pre_emphasis_low_freq;
|
||||
this->m_pre_emphasis_low_freq_isSet = true;
|
||||
}
|
||||
|
||||
float
|
||||
SWGPacketModSettings::getPreEmphasisHighFreq() {
|
||||
return pre_emphasis_high_freq;
|
||||
@ -1117,7 +1155,10 @@ SWGPacketModSettings::isSet(){
|
||||
if(m_input_frequency_offset_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(mode && *mode != QString("")){
|
||||
if(m_modulation_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_baud_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_rf_bandwidth_isSet){
|
||||
@ -1177,6 +1218,9 @@ SWGPacketModSettings::isSet(){
|
||||
if(m_pre_emphasis_tau_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_pre_emphasis_low_freq_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_pre_emphasis_high_freq_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
|
@ -45,8 +45,11 @@ public:
|
||||
qint64 getInputFrequencyOffset();
|
||||
void setInputFrequencyOffset(qint64 input_frequency_offset);
|
||||
|
||||
QString* getMode();
|
||||
void setMode(QString* mode);
|
||||
qint32 getModulation();
|
||||
void setModulation(qint32 modulation);
|
||||
|
||||
qint32 getBaud();
|
||||
void setBaud(qint32 baud);
|
||||
|
||||
float getRfBandwidth();
|
||||
void setRfBandwidth(float rf_bandwidth);
|
||||
@ -105,6 +108,9 @@ public:
|
||||
float getPreEmphasisTau();
|
||||
void setPreEmphasisTau(float pre_emphasis_tau);
|
||||
|
||||
float getPreEmphasisLowFreq();
|
||||
void setPreEmphasisLowFreq(float pre_emphasis_low_freq);
|
||||
|
||||
float getPreEmphasisHighFreq();
|
||||
void setPreEmphasisHighFreq(float pre_emphasis_high_freq);
|
||||
|
||||
@ -202,8 +208,11 @@ private:
|
||||
qint64 input_frequency_offset;
|
||||
bool m_input_frequency_offset_isSet;
|
||||
|
||||
QString* mode;
|
||||
bool m_mode_isSet;
|
||||
qint32 modulation;
|
||||
bool m_modulation_isSet;
|
||||
|
||||
qint32 baud;
|
||||
bool m_baud_isSet;
|
||||
|
||||
float rf_bandwidth;
|
||||
bool m_rf_bandwidth_isSet;
|
||||
@ -262,6 +271,9 @@ private:
|
||||
float pre_emphasis_tau;
|
||||
bool m_pre_emphasis_tau_isSet;
|
||||
|
||||
float pre_emphasis_low_freq;
|
||||
bool m_pre_emphasis_low_freq_isSet;
|
||||
|
||||
float pre_emphasis_high_freq;
|
||||
bool m_pre_emphasis_high_freq_isSet;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user