mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-25 09:18:54 -05:00
IEEE 802.15.4 modulator: API and GUI changes
This commit is contained in:
parent
830e3ff2f2
commit
7c9327c125
BIN
doc/img/IEEE_802_15_4_Mod_frame.png
Normal file
BIN
doc/img/IEEE_802_15_4_Mod_frame.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 98 KiB |
Binary file not shown.
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 42 KiB |
BIN
doc/img/IEEE_802_15_4_Mod_plugin.xcf
Normal file
BIN
doc/img/IEEE_802_15_4_Mod_plugin.xcf
Normal file
Binary file not shown.
@ -153,17 +153,41 @@ void IEEE_802_15_4_Mod::applySettings(const IEEE_802_15_4_ModSettings& settings,
|
||||
{
|
||||
qDebug() << "IEEE_802_15_4_Mod::applySettings:"
|
||||
<< " m_inputFrequencyOffset: " << settings.m_inputFrequencyOffset
|
||||
<< " m_modulation: " << settings.m_modulation
|
||||
<< " m_bitRate: " << settings.m_bitRate
|
||||
<< " m_subGHzBand: " << settings.m_subGHzBand
|
||||
<< " m_rfBandwidth: " << settings.m_rfBandwidth
|
||||
<< " m_gain: " << settings.m_gain
|
||||
<< " m_channelMute: " << settings.m_channelMute
|
||||
<< " m_repeat: " << settings.m_repeat
|
||||
<< " m_repeatDelay: " << settings.m_repeatDelay
|
||||
<< " m_repeatCount: " << settings.m_repeatCount
|
||||
<< " m_rampUpBits: " << settings.m_rampUpBits
|
||||
<< " m_rampDownBits: " << settings.m_rampDownBits
|
||||
<< " m_rampRange: " << settings.m_rampRange
|
||||
<< " m_modulateWhileRamping: "<< settings.m_modulateWhileRamping
|
||||
<< " m_lpfTaps: " << settings.m_lpfTaps
|
||||
<< " m_bbNoise: " << settings.m_bbNoise
|
||||
<< " m_writeToFile: " << settings.m_writeToFile
|
||||
<< " m_spectrumRate: " << settings.m_spectrumRate
|
||||
<< " m_data: " << settings.m_data
|
||||
<< " m_rgbColor: " << settings.m_rgbColor
|
||||
<< " m_title: " << settings.m_title
|
||||
<< " m_streamIndex: " << settings.m_streamIndex
|
||||
<< " m_useReverseAPI: " << settings.m_useReverseAPI
|
||||
<< " m_reverseAPIAddress: " << settings.m_reverseAPIAddress
|
||||
<< " m_reverseAPIAddress: " << settings.m_reverseAPIPort
|
||||
<< " m_reverseAPIDeviceIndex: " << settings.m_reverseAPIDeviceIndex
|
||||
<< " m_reverseAPIChannelIndex: " << settings.m_reverseAPIChannelIndex
|
||||
<< " m_scramble: " << settings.m_scramble
|
||||
<< " m_polynomial: " << settings.m_polynomial
|
||||
<< " m_pulseShaping: " << settings.m_pulseShaping
|
||||
<< " m_beta: " << settings.m_beta
|
||||
<< " m_symbolSpan: " << settings.m_symbolSpan
|
||||
<< " m_udpEnabled: " << settings.m_udpEnabled
|
||||
<< " m_udpBytesFormat: " << settings.m_udpBytesFormat
|
||||
<< " m_udpAddress: " << settings.m_udpAddress
|
||||
<< " m_udpPort: " << settings.m_udpPort
|
||||
<< " force: " << force;
|
||||
|
||||
QList<QString> reverseAPIKeys;
|
||||
@ -172,6 +196,18 @@ void IEEE_802_15_4_Mod::applySettings(const IEEE_802_15_4_ModSettings& settings,
|
||||
reverseAPIKeys.append("inputFrequencyOffset");
|
||||
}
|
||||
|
||||
if ((settings.m_modulation != m_settings.m_modulation) || force) {
|
||||
reverseAPIKeys.append("modulation");
|
||||
}
|
||||
|
||||
if ((settings.m_bitRate != m_settings.m_bitRate) || force) {
|
||||
reverseAPIKeys.append("bitRate");
|
||||
}
|
||||
|
||||
if ((settings.m_subGHzBand != m_settings.m_subGHzBand) || force) {
|
||||
reverseAPIKeys.append("subGHzBand");
|
||||
}
|
||||
|
||||
if ((settings.m_rfBandwidth != m_settings.m_rfBandwidth) || force) {
|
||||
reverseAPIKeys.append("rfBandwidth");
|
||||
}
|
||||
@ -196,6 +232,94 @@ void IEEE_802_15_4_Mod::applySettings(const IEEE_802_15_4_ModSettings& settings,
|
||||
reverseAPIKeys.append("repeatCount");
|
||||
}
|
||||
|
||||
if ((settings.m_rampUpBits != m_settings.m_rampUpBits) || force) {
|
||||
reverseAPIKeys.append("rampUpBits");
|
||||
}
|
||||
|
||||
if ((settings.m_rampDownBits != m_settings.m_rampDownBits) || force) {
|
||||
reverseAPIKeys.append("rampDownBits");
|
||||
}
|
||||
|
||||
if ((settings.m_rampRange != m_settings.m_rampRange) || force) {
|
||||
reverseAPIKeys.append("rampRange");
|
||||
}
|
||||
|
||||
if ((settings.m_modulateWhileRamping != m_settings.m_modulateWhileRamping) || force) {
|
||||
reverseAPIKeys.append("modulateWhileRamping");
|
||||
}
|
||||
|
||||
if ((settings.m_lpfTaps != m_settings.m_lpfTaps) || force) {
|
||||
reverseAPIKeys.append("lpfTaps");
|
||||
}
|
||||
|
||||
if ((settings.m_bbNoise != m_settings.m_bbNoise) || force) {
|
||||
reverseAPIKeys.append("bbNoise");
|
||||
}
|
||||
|
||||
if ((settings.m_writeToFile != m_settings.m_writeToFile) || force) {
|
||||
reverseAPIKeys.append("writeToFile");
|
||||
}
|
||||
|
||||
if ((settings.m_spectrumRate != m_settings.m_spectrumRate) || force) {
|
||||
reverseAPIKeys.append("spectrumRate");
|
||||
}
|
||||
|
||||
if ((settings.m_data != m_settings.m_data) || force) {
|
||||
reverseAPIKeys.append("data");
|
||||
}
|
||||
|
||||
if ((settings.m_rgbColor != m_settings.m_rgbColor) || force) {
|
||||
reverseAPIKeys.append("rgbColor");
|
||||
}
|
||||
|
||||
if ((settings.m_title != m_settings.m_title) || force) {
|
||||
reverseAPIKeys.append("title");
|
||||
}
|
||||
|
||||
if ((settings.m_streamIndex != m_settings.m_streamIndex) || force) {
|
||||
reverseAPIKeys.append("streamIndex");
|
||||
}
|
||||
|
||||
if ((settings.m_useReverseAPI != m_settings.m_useReverseAPI) || force) {
|
||||
reverseAPIKeys.append("useReverseAPI");
|
||||
}
|
||||
|
||||
if ((settings.m_reverseAPIAddress != m_settings.m_reverseAPIAddress) || force) {
|
||||
reverseAPIKeys.append("reverseAPIAddress");
|
||||
}
|
||||
|
||||
if ((settings.m_reverseAPIPort != m_settings.m_reverseAPIPort) || force) {
|
||||
reverseAPIKeys.append("reverseAPIPort");
|
||||
}
|
||||
|
||||
if ((settings.m_reverseAPIDeviceIndex != m_settings.m_reverseAPIDeviceIndex) || force) {
|
||||
reverseAPIKeys.append("reverseAPIDeviceIndex");
|
||||
}
|
||||
|
||||
if ((settings.m_reverseAPIChannelIndex != m_settings.m_reverseAPIChannelIndex) || force) {
|
||||
reverseAPIKeys.append("reverseAPIChannelIndex");
|
||||
}
|
||||
|
||||
if ((settings.m_scramble != m_settings.m_scramble) || force) {
|
||||
reverseAPIKeys.append("scramble");
|
||||
}
|
||||
|
||||
if ((settings.m_polynomial != m_settings.m_polynomial) || force) {
|
||||
reverseAPIKeys.append("polynomial");
|
||||
}
|
||||
|
||||
if ((settings.m_pulseShaping != m_settings.m_pulseShaping) || force) {
|
||||
reverseAPIKeys.append("pulseShaping");
|
||||
}
|
||||
|
||||
if ((settings.m_beta != m_settings.m_beta) || force) {
|
||||
reverseAPIKeys.append("beta");
|
||||
}
|
||||
|
||||
if ((settings.m_symbolSpan != m_settings.m_symbolSpan) || force) {
|
||||
reverseAPIKeys.append("symbolSpan");
|
||||
}
|
||||
|
||||
if ((settings.m_udpEnabled != m_settings.m_udpEnabled) || force) {
|
||||
reverseAPIKeys.append("udpEnabled");
|
||||
}
|
||||
@ -312,8 +436,14 @@ void IEEE_802_15_4_Mod::webapiUpdateChannelSettings(
|
||||
if (channelSettingsKeys.contains("inputFrequencyOffset")) {
|
||||
settings.m_inputFrequencyOffset = response.getIeee802154ModSettings()->getInputFrequencyOffset();
|
||||
}
|
||||
if (channelSettingsKeys.contains("phy")) {
|
||||
settings.setPHY(*response.getIeee802154ModSettings()->getPhy());
|
||||
if (channelSettingsKeys.contains("modulation")) {
|
||||
settings.m_modulation = (IEEE_802_15_4_ModSettings::Modulation) response.getIeee802154ModSettings()->getModulation();
|
||||
}
|
||||
if (channelSettingsKeys.contains("bitRate")) {
|
||||
settings.m_bitRate = response.getIeee802154ModSettings()->getBitRate();
|
||||
}
|
||||
if (channelSettingsKeys.contains("subGHzBand")) {
|
||||
settings.m_subGHzBand = response.getIeee802154ModSettings()->getSubGHzBand() != 0;
|
||||
}
|
||||
if (channelSettingsKeys.contains("rfBandwidth")) {
|
||||
settings.m_rfBandwidth = response.getIeee802154ModSettings()->getRfBandwidth();
|
||||
@ -333,17 +463,32 @@ void IEEE_802_15_4_Mod::webapiUpdateChannelSettings(
|
||||
if (channelSettingsKeys.contains("repeatCount")) {
|
||||
settings.m_repeatCount = response.getIeee802154ModSettings()->getRepeatCount();
|
||||
}
|
||||
if (channelSettingsKeys.contains("udpEnabled")) {
|
||||
settings.m_udpEnabled = response.getIeee802154ModSettings()->getUdpEnabled() != 0;
|
||||
if (channelSettingsKeys.contains("rampUpBits")) {
|
||||
settings.m_rampUpBits = response.getIeee802154ModSettings()->getRampUpBits();
|
||||
}
|
||||
if (channelSettingsKeys.contains("udpBytesFormat")) {
|
||||
settings.m_udpBytesFormat = response.getIeee802154ModSettings()->getMUdpBytesFormat() != 0;
|
||||
if (channelSettingsKeys.contains("rampDownBits")) {
|
||||
settings.m_rampDownBits = response.getIeee802154ModSettings()->getRampDownBits();
|
||||
}
|
||||
if (channelSettingsKeys.contains("udpAddress")) {
|
||||
settings.m_udpAddress = *response.getIeee802154ModSettings()->getUdpAddress();
|
||||
if (channelSettingsKeys.contains("rampRange")) {
|
||||
settings.m_rampRange = response.getIeee802154ModSettings()->getRampRange();
|
||||
}
|
||||
if (channelSettingsKeys.contains("udpPort")) {
|
||||
settings.m_udpPort = response.getIeee802154ModSettings()->getUdpPort();
|
||||
if (channelSettingsKeys.contains("modulateWhileRamping")) {
|
||||
settings.m_modulateWhileRamping = response.getIeee802154ModSettings()->getModulateWhileRamping() != 0;
|
||||
}
|
||||
if (channelSettingsKeys.contains("lpfTaps")) {
|
||||
settings.m_lpfTaps = response.getIeee802154ModSettings()->getLpfTaps();
|
||||
}
|
||||
if (channelSettingsKeys.contains("bbNoise")) {
|
||||
settings.m_bbNoise = response.getIeee802154ModSettings()->getBbNoise() != 0;
|
||||
}
|
||||
if (channelSettingsKeys.contains("writeToFile")) {
|
||||
settings.m_writeToFile = response.getIeee802154ModSettings()->getWriteToFile() != 0;
|
||||
}
|
||||
if (channelSettingsKeys.contains("spectrumRate")) {
|
||||
settings.m_spectrumRate = response.getIeee802154ModSettings()->getSpectrumRate();
|
||||
}
|
||||
if (channelSettingsKeys.contains("data")) {
|
||||
settings.m_data = *response.getIeee802154ModSettings()->getData();
|
||||
}
|
||||
if (channelSettingsKeys.contains("rgbColor")) {
|
||||
settings.m_rgbColor = response.getIeee802154ModSettings()->getRgbColor();
|
||||
@ -369,6 +514,33 @@ void IEEE_802_15_4_Mod::webapiUpdateChannelSettings(
|
||||
if (channelSettingsKeys.contains("reverseAPIChannelIndex")) {
|
||||
settings.m_reverseAPIChannelIndex = response.getIeee802154ModSettings()->getReverseApiChannelIndex();
|
||||
}
|
||||
if (channelSettingsKeys.contains("scramble")) {
|
||||
settings.m_scramble = response.getIeee802154ModSettings()->getScramble() != 0;
|
||||
}
|
||||
if (channelSettingsKeys.contains("polynomial")) {
|
||||
settings.m_polynomial = response.getIeee802154ModSettings()->getPolynomial();
|
||||
}
|
||||
if (channelSettingsKeys.contains("pulseShaping")) {
|
||||
settings.m_pulseShaping = (IEEE_802_15_4_ModSettings::PulseShaping) response.getIeee802154ModSettings()->getPulseShaping();
|
||||
}
|
||||
if (channelSettingsKeys.contains("beta")) {
|
||||
settings.m_beta = response.getIeee802154ModSettings()->getBeta();
|
||||
}
|
||||
if (channelSettingsKeys.contains("symbolSpan")) {
|
||||
settings.m_symbolSpan = response.getIeee802154ModSettings()->getSymbolSpan();
|
||||
}
|
||||
if (channelSettingsKeys.contains("udpEnabled")) {
|
||||
settings.m_udpEnabled = response.getIeee802154ModSettings()->getUdpEnabled() != 0;
|
||||
}
|
||||
if (channelSettingsKeys.contains("udpBytesFormat")) {
|
||||
settings.m_udpBytesFormat = response.getIeee802154ModSettings()->getUdpBytesFormat() != 0;
|
||||
}
|
||||
if (channelSettingsKeys.contains("udpAddress")) {
|
||||
settings.m_udpAddress = *response.getIeee802154ModSettings()->getUdpAddress();
|
||||
}
|
||||
if (channelSettingsKeys.contains("udpPort")) {
|
||||
settings.m_udpPort = response.getIeee802154ModSettings()->getUdpPort();
|
||||
}
|
||||
}
|
||||
|
||||
int IEEE_802_15_4_Mod::webapiReportGet(
|
||||
@ -391,14 +563,19 @@ int IEEE_802_15_4_Mod::webapiActionsPost(
|
||||
|
||||
if (swgIEEE_802_15_4_ModActions)
|
||||
{
|
||||
if (channelActionsKeys.contains("tx"))
|
||||
if (channelActionsKeys.contains("tx") && (swgIEEE_802_15_4_ModActions->getTx() != 0))
|
||||
{
|
||||
SWGSDRangel::SWGIEEE_802_15_4_ModActions_tx* tx = swgIEEE_802_15_4_ModActions->getTx();
|
||||
QString *dataP = tx->getData();
|
||||
QString *dataP;
|
||||
|
||||
if (channelActionsKeys.contains("data")) {
|
||||
dataP = swgIEEE_802_15_4_ModActions->getData();
|
||||
} else {
|
||||
dataP = &m_settings.m_data;
|
||||
}
|
||||
|
||||
if (dataP != nullptr)
|
||||
{
|
||||
QString data(*dataP);
|
||||
|
||||
IEEE_802_15_4_Mod::MsgTxHexString *msg = IEEE_802_15_4_Mod::MsgTxHexString::create(data);
|
||||
m_basebandSource->getInputMessageQueue()->push(msg);
|
||||
return 202;
|
||||
@ -425,17 +602,24 @@ int IEEE_802_15_4_Mod::webapiActionsPost(
|
||||
void IEEE_802_15_4_Mod::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& response, const IEEE_802_15_4_ModSettings& settings)
|
||||
{
|
||||
response.getIeee802154ModSettings()->setInputFrequencyOffset(settings.m_inputFrequencyOffset);
|
||||
response.getIeee802154ModSettings()->setPhy(new QString(settings.getPHY()));
|
||||
response.getIeee802154ModSettings()->setModulation((int) settings.m_modulation);
|
||||
response.getIeee802154ModSettings()->setBitRate(settings.m_bitRate);
|
||||
response.getIeee802154ModSettings()->setSubGHzBand(settings.m_subGHzBand ? 1 : 0);
|
||||
response.getIeee802154ModSettings()->setRfBandwidth(settings.m_rfBandwidth);
|
||||
response.getIeee802154ModSettings()->setGain(settings.m_gain);
|
||||
response.getIeee802154ModSettings()->setChannelMute(settings.m_channelMute ? 1 : 0);
|
||||
response.getIeee802154ModSettings()->setRepeat(settings.m_repeat ? 1 : 0);
|
||||
response.getIeee802154ModSettings()->setRepeatDelay(settings.m_repeatDelay);
|
||||
response.getIeee802154ModSettings()->setRepeatCount(settings.m_repeatCount);
|
||||
response.getIeee802154ModSettings()->setUdpEnabled(settings.m_udpEnabled ? 1 : 0);
|
||||
response.getIeee802154ModSettings()->setMUdpBytesFormat(settings.m_udpBytesFormat ? 1 : 0);
|
||||
response.getIeee802154ModSettings()->setUdpAddress(new QString(settings.m_udpAddress));
|
||||
response.getIeee802154ModSettings()->setUdpPort(settings.m_udpPort);
|
||||
response.getIeee802154ModSettings()->setRampUpBits(settings.m_rampUpBits);
|
||||
response.getIeee802154ModSettings()->setRampDownBits(settings.m_rampDownBits);
|
||||
response.getIeee802154ModSettings()->setRampRange(settings.m_rampRange);
|
||||
response.getIeee802154ModSettings()->setModulateWhileRamping(settings.m_modulateWhileRamping ? 1 : 0);
|
||||
response.getIeee802154ModSettings()->setLpfTaps(settings.m_lpfTaps);
|
||||
response.getIeee802154ModSettings()->setBbNoise(settings.m_bbNoise ? 1 : 0);
|
||||
response.getIeee802154ModSettings()->setWriteToFile(settings.m_writeToFile ? 1 : 0);
|
||||
response.getIeee802154ModSettings()->setSpectrumRate(settings.m_spectrumRate);
|
||||
response.getIeee802154ModSettings()->setData(new QString(settings.m_data));
|
||||
response.getIeee802154ModSettings()->setRgbColor(settings.m_rgbColor);
|
||||
|
||||
if (response.getIeee802154ModSettings()->getTitle()) {
|
||||
@ -444,6 +628,7 @@ void IEEE_802_15_4_Mod::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSetti
|
||||
response.getIeee802154ModSettings()->setTitle(new QString(settings.m_title));
|
||||
}
|
||||
|
||||
response.getIeee802154ModSettings()->setStreamIndex(settings.m_streamIndex);
|
||||
response.getIeee802154ModSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0);
|
||||
|
||||
if (response.getIeee802154ModSettings()->getReverseApiAddress()) {
|
||||
@ -455,6 +640,21 @@ void IEEE_802_15_4_Mod::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSetti
|
||||
response.getIeee802154ModSettings()->setReverseApiPort(settings.m_reverseAPIPort);
|
||||
response.getIeee802154ModSettings()->setReverseApiDeviceIndex(settings.m_reverseAPIDeviceIndex);
|
||||
response.getIeee802154ModSettings()->setReverseApiChannelIndex(settings.m_reverseAPIChannelIndex);
|
||||
response.getIeee802154ModSettings()->setScramble(settings.m_scramble);
|
||||
response.getIeee802154ModSettings()->setPolynomial(settings.m_polynomial);
|
||||
response.getIeee802154ModSettings()->setPulseShaping(settings.m_pulseShaping ? 1 : 0);
|
||||
response.getIeee802154ModSettings()->setBeta(settings.m_beta);
|
||||
response.getIeee802154ModSettings()->setSymbolSpan(settings.m_symbolSpan);
|
||||
response.getIeee802154ModSettings()->setUdpEnabled(settings.m_udpEnabled ? 1 : 0);
|
||||
response.getIeee802154ModSettings()->setUdpBytesFormat(settings.m_udpBytesFormat ? 1 : 0);
|
||||
|
||||
if (response.getIeee802154ModSettings()->getUdpAddress()) {
|
||||
*response.getIeee802154ModSettings()->getUdpAddress() = settings.m_udpAddress;
|
||||
} else {
|
||||
response.getIeee802154ModSettings()->setUdpAddress(new QString(settings.m_udpAddress));
|
||||
}
|
||||
|
||||
response.getIeee802154ModSettings()->setUdpPort(settings.m_udpPort);
|
||||
}
|
||||
|
||||
void IEEE_802_15_4_Mod::webapiFormatChannelReport(SWGSDRangel::SWGChannelReport& response)
|
||||
@ -529,6 +729,15 @@ void IEEE_802_15_4_Mod::webapiFormatChannelSettings(
|
||||
if (channelSettingsKeys.contains("inputFrequencyOffset") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setInputFrequencyOffset(settings.m_inputFrequencyOffset);
|
||||
}
|
||||
if (channelSettingsKeys.contains("modulation") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setModulation((int) settings.m_modulation);
|
||||
}
|
||||
if (channelSettingsKeys.contains("bitRate") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setBitRate(settings.m_bitRate);
|
||||
}
|
||||
if (channelSettingsKeys.contains("subGHzBand") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setSubGHzBand(settings.m_subGHzBand ? 1 : 0);
|
||||
}
|
||||
if (channelSettingsKeys.contains("rfBandwidth") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setRfBandwidth(settings.m_rfBandwidth);
|
||||
}
|
||||
@ -547,17 +756,32 @@ void IEEE_802_15_4_Mod::webapiFormatChannelSettings(
|
||||
if (channelSettingsKeys.contains("repeatCount") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setRepeatCount(settings.m_repeatCount);
|
||||
}
|
||||
if (channelSettingsKeys.contains("udpEnabled") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setUdpEnabled(settings.m_udpEnabled ? 1 : 0);
|
||||
if (channelSettingsKeys.contains("rampUpBits") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setRampUpBits(settings.m_rampUpBits);
|
||||
}
|
||||
if (channelSettingsKeys.contains("udpBytesFormat") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setMUdpBytesFormat(settings.m_udpBytesFormat ? 1 : 0);
|
||||
if (channelSettingsKeys.contains("rampDownBits") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setRampDownBits(settings.m_rampDownBits);
|
||||
}
|
||||
if (channelSettingsKeys.contains("udpAddress") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setUdpAddress(new QString(settings.m_udpAddress));
|
||||
if (channelSettingsKeys.contains("rampRange") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setRampRange(settings.m_rampRange);
|
||||
}
|
||||
if (channelSettingsKeys.contains("udpPort") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setUdpPort(settings.m_udpPort);
|
||||
if (channelSettingsKeys.contains("rampRange") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setModulateWhileRamping(settings.m_modulateWhileRamping ? 1 : 0);
|
||||
}
|
||||
if (channelSettingsKeys.contains("lpfTaps") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setLpfTaps(settings.m_lpfTaps);
|
||||
}
|
||||
if (channelSettingsKeys.contains("bbNoise") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setBbNoise(settings.m_bbNoise ? 1 : 0);
|
||||
}
|
||||
if (channelSettingsKeys.contains("writeToFile") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setWriteToFile(settings.m_writeToFile ? 1 : 0);
|
||||
}
|
||||
if (channelSettingsKeys.contains("spectrumRate") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setSpectrumRate(settings.m_spectrumRate);
|
||||
}
|
||||
if (channelSettingsKeys.contains("data") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setData(new QString(settings.m_data));
|
||||
}
|
||||
if (channelSettingsKeys.contains("rgbColor") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setRgbColor(settings.m_rgbColor);
|
||||
@ -568,6 +792,48 @@ void IEEE_802_15_4_Mod::webapiFormatChannelSettings(
|
||||
if (channelSettingsKeys.contains("streamIndex") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setStreamIndex(settings.m_streamIndex);
|
||||
}
|
||||
if (channelSettingsKeys.contains("useReverseAPI") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0);
|
||||
}
|
||||
if (channelSettingsKeys.contains("reverseAPIAddress") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setReverseApiAddress(new QString(settings.m_reverseAPIAddress));
|
||||
}
|
||||
if (channelSettingsKeys.contains("reverseAPIPort") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setReverseApiPort(settings.m_reverseAPIPort);
|
||||
}
|
||||
if (channelSettingsKeys.contains("reverseAPIDeviceIndex") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setReverseApiDeviceIndex(settings.m_reverseAPIDeviceIndex);
|
||||
}
|
||||
if (channelSettingsKeys.contains("reverseAPIChannelIndex") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setReverseApiChannelIndex(settings.m_reverseAPIChannelIndex);
|
||||
}
|
||||
if (channelSettingsKeys.contains("scramble") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setScramble(settings.m_scramble ? 1 : 0);
|
||||
}
|
||||
if (channelSettingsKeys.contains("polynomial") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setPolynomial(settings.m_polynomial);
|
||||
}
|
||||
if (channelSettingsKeys.contains("pulseShaping") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setPolynomial(settings.m_pulseShaping ? 1 : 0);
|
||||
}
|
||||
if (channelSettingsKeys.contains("beta") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setBeta(settings.m_beta);
|
||||
}
|
||||
if (channelSettingsKeys.contains("symbolSpan") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setBeta(settings.m_symbolSpan);
|
||||
}
|
||||
if (channelSettingsKeys.contains("udpEnabled") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setUdpEnabled(settings.m_udpEnabled ? 1 : 0);
|
||||
}
|
||||
if (channelSettingsKeys.contains("udpBytesFormat") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setUdpBytesFormat(settings.m_udpBytesFormat ? 1 : 0);
|
||||
}
|
||||
if (channelSettingsKeys.contains("udpAddress") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setUdpAddress(new QString(settings.m_udpAddress));
|
||||
}
|
||||
if (channelSettingsKeys.contains("udpPort") || force) {
|
||||
swgIEEE_802_15_4_ModSettings->setUdpPort(settings.m_udpPort);
|
||||
}
|
||||
}
|
||||
|
||||
void IEEE_802_15_4_Mod::networkManagerFinished(QNetworkReply *reply)
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include <QFileDialog>
|
||||
#include <QTime>
|
||||
#include <QDebug>
|
||||
#include <QMessageBox>
|
||||
|
||||
#include "device/deviceuiset.h"
|
||||
#include "plugin/pluginapi.h"
|
||||
@ -110,6 +111,7 @@ bool IEEE_802_15_4_ModGUI::handleMessage(const Message& message)
|
||||
}
|
||||
else if (IEEE_802_15_4_Mod::MsgConfigureIEEE_802_15_4_Mod::match(message))
|
||||
{
|
||||
qDebug("IEEE_802_15_4_ModGUI::handleMessage: MsgConfigureIEEE_802_15_4_Mod");
|
||||
const IEEE_802_15_4_Mod::MsgConfigureIEEE_802_15_4_Mod& cfg = (IEEE_802_15_4_Mod::MsgConfigureIEEE_802_15_4_Mod&) message;
|
||||
m_settings = cfg.getSettings();
|
||||
blockApplySettings(true);
|
||||
@ -147,12 +149,22 @@ void IEEE_802_15_4_ModGUI::handleSourceMessages()
|
||||
void IEEE_802_15_4_ModGUI::checkSampleRate()
|
||||
{
|
||||
int cr = m_settings.getChipRate();
|
||||
|
||||
if ((m_basebandSampleRate % cr) != 0)
|
||||
setWindowTitle(m_channelMarker.getTitle() + " - Baseband sample rate is not an integer multiple of chip rate");
|
||||
{
|
||||
ui->chipRateText->setStyleSheet("QLabel { background:rgb(200,50,50); }");
|
||||
ui->chipRateText->setToolTip(QString("Baseband sample rate %1 S/s is not an integer multiple of chip rate %2 S/s").arg(m_basebandSampleRate).arg(cr));
|
||||
}
|
||||
else if ((m_basebandSampleRate / cr) <= 2)
|
||||
setWindowTitle(m_channelMarker.getTitle() + " - Baseband sample rate is too low");
|
||||
{
|
||||
ui->chipRateText->setStyleSheet("QLabel { background:rgb(200,50,50); }");
|
||||
ui->chipRateText->setToolTip(QString("Baseband sample rate %1 S/s is too low for chip rate %2 S/s").arg(m_basebandSampleRate).arg(cr));
|
||||
}
|
||||
else
|
||||
setWindowTitle(m_channelMarker.getTitle());
|
||||
{
|
||||
ui->chipRateText->setStyleSheet("QLabel { background:rgb(79,79,79); }");
|
||||
ui->chipRateText->setToolTip("Chip rate");
|
||||
}
|
||||
}
|
||||
|
||||
void IEEE_802_15_4_ModGUI::on_deltaFrequency_changed(qint64 value)
|
||||
@ -172,11 +184,12 @@ void IEEE_802_15_4_ModGUI::on_phy_currentIndexChanged(int value)
|
||||
if (m_doApplySettings)
|
||||
m_settings.setPHY(phy);
|
||||
|
||||
ui->rfBWText->setText(QString("%1M").arg(m_settings.m_rfBandwidth / 1000000.0, 0, 'f', 1));
|
||||
displayRFBandwidth(m_settings.m_rfBandwidth);
|
||||
ui->rfBW->setValue(m_settings.m_rfBandwidth / 1000.0);
|
||||
ui->glSpectrum->setCenterFrequency(0);
|
||||
ui->glSpectrum->setSampleRate(m_settings.m_spectrumRate);
|
||||
checkSampleRate();
|
||||
displayChipRate(m_settings);
|
||||
checkSampleRate();
|
||||
applySettings();
|
||||
|
||||
// Remove custom PHY when deselected, as we no longer know how to set it
|
||||
@ -187,7 +200,7 @@ void IEEE_802_15_4_ModGUI::on_phy_currentIndexChanged(int value)
|
||||
void IEEE_802_15_4_ModGUI::on_rfBW_valueChanged(int value)
|
||||
{
|
||||
float bw = value * 1000.0f;
|
||||
ui->rfBWText->setText(QString("%1M").arg(value / 1000.0, 0, 'f', 1));
|
||||
displayRFBandwidth(bw);
|
||||
m_channelMarker.setBandwidth(bw);
|
||||
m_settings.m_rfBandwidth = bw;
|
||||
applySettings();
|
||||
@ -241,14 +254,22 @@ void IEEE_802_15_4_ModGUI::repeatSelect()
|
||||
|
||||
void IEEE_802_15_4_ModGUI::txSettingsSelect()
|
||||
{
|
||||
IEEE_802_15_4_ModTXSettingsDialog dialog(m_settings.m_rampUpBits, m_settings.m_rampDownBits,
|
||||
m_settings.m_rampRange, m_settings.m_modulateWhileRamping,
|
||||
m_settings.m_modulation, m_settings.m_bitRate,
|
||||
m_settings.m_pulseShaping, m_settings.m_beta, m_settings.m_symbolSpan,
|
||||
m_settings.m_scramble, m_settings.m_polynomial,
|
||||
m_settings.m_lpfTaps,
|
||||
m_settings.m_bbNoise,
|
||||
m_settings.m_writeToFile);
|
||||
IEEE_802_15_4_ModTXSettingsDialog dialog(
|
||||
m_settings.m_rampUpBits,
|
||||
m_settings.m_rampDownBits,
|
||||
m_settings.m_rampRange,
|
||||
m_settings.m_modulateWhileRamping,
|
||||
m_settings.m_modulation,
|
||||
m_settings.m_bitRate,
|
||||
m_settings.m_pulseShaping,
|
||||
m_settings.m_beta,
|
||||
m_settings.m_symbolSpan,
|
||||
m_settings.m_scramble,
|
||||
m_settings.m_polynomial,
|
||||
m_settings.m_lpfTaps,
|
||||
m_settings.m_bbNoise,
|
||||
m_settings.m_writeToFile
|
||||
);
|
||||
if (dialog.exec() == QDialog::Accepted)
|
||||
{
|
||||
m_settings.m_rampUpBits = dialog.m_rampUpBits;
|
||||
@ -523,9 +544,11 @@ void IEEE_802_15_4_ModGUI::displaySettings()
|
||||
ui->glSpectrum->setCenterFrequency(0);
|
||||
ui->glSpectrum->setSampleRate(m_settings.m_spectrumRate);
|
||||
|
||||
ui->rfBWText->setText(QString("%1M").arg(m_settings.m_rfBandwidth / 1000000.0, 0, 'f', 1));
|
||||
displayRFBandwidth(m_settings.m_rfBandwidth);
|
||||
ui->rfBW->setValue(m_settings.m_rfBandwidth / 1000.0);
|
||||
|
||||
displayChipRate(m_settings);
|
||||
|
||||
ui->gainText->setText(QString("%1").arg((double)m_settings.m_gain, 0, 'f', 1));
|
||||
ui->gain->setValue(m_settings.m_gain);
|
||||
|
||||
@ -541,6 +564,35 @@ void IEEE_802_15_4_ModGUI::displaySettings()
|
||||
blockApplySettings(false);
|
||||
}
|
||||
|
||||
void IEEE_802_15_4_ModGUI::displayRFBandwidth(int bandwidth)
|
||||
{
|
||||
ui->rfBWText->setText(getDisplayValueWithMultiplier(bandwidth));
|
||||
}
|
||||
|
||||
void IEEE_802_15_4_ModGUI::displayChipRate(const IEEE_802_15_4_ModSettings& settings)
|
||||
{
|
||||
ui->chipRateText->setText(getDisplayValueWithMultiplier(settings.getChipRate()));
|
||||
}
|
||||
|
||||
QString IEEE_802_15_4_ModGUI::getDisplayValueWithMultiplier(int value)
|
||||
{
|
||||
if (value < 1000) {
|
||||
return QString("%1").arg(value);
|
||||
} else if (value < 10000) {
|
||||
return QString("%1k").arg(value / 1000.0, 0, 'f', 2);
|
||||
} else if (value < 100000) {
|
||||
return QString("%1k").arg(value / 1000.0, 0, 'f', 1);
|
||||
} else if (value < 1000000) {
|
||||
return QString("%1k").arg(value / 1000.0);
|
||||
} else if (value < 10000000) {
|
||||
return QString("%1M").arg(value / 1000000.0, 0, 'f', 2);
|
||||
} else if (value < 100000000) {
|
||||
return QString("%1M").arg(value / 1000000.0, 0, 'f', 1);
|
||||
} else {
|
||||
return QString("%1M").arg(value / 1000000.0);
|
||||
}
|
||||
}
|
||||
|
||||
void IEEE_802_15_4_ModGUI::displayStreamIndex()
|
||||
{
|
||||
if (m_deviceUISet->m_deviceMIMOEngine) {
|
||||
|
@ -84,6 +84,9 @@ private:
|
||||
void applySettings(bool force = false);
|
||||
void displaySettings();
|
||||
void displayStreamIndex();
|
||||
void displayRFBandwidth(int bandwidth);
|
||||
void displayChipRate(const IEEE_802_15_4_ModSettings& settings);
|
||||
QString getDisplayValueWithMultiplier(int value);
|
||||
|
||||
void leaveEvent(QEvent*);
|
||||
void enterEvent(QEvent*);
|
||||
|
@ -6,7 +6,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>363</width>
|
||||
<width>605</width>
|
||||
<height>937</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -42,13 +42,13 @@
|
||||
<rect>
|
||||
<x>2</x>
|
||||
<y>2</y>
|
||||
<width>341</width>
|
||||
<width>600</width>
|
||||
<height>151</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>280</width>
|
||||
<width>600</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
@ -192,7 +192,7 @@
|
||||
<widget class="QComboBox" name="phy">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>170</width>
|
||||
<width>200</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
@ -241,9 +241,25 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
<widget class="QLabel" name="chipRateLabel">
|
||||
<property name="text">
|
||||
<string>CR</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="chipRateText">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>45</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>1000k</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -272,16 +288,16 @@
|
||||
<string>RF bandwidth</string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>300</number>
|
||||
<number>30</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>10000</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>100</number>
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="pageStep">
|
||||
<number>100</number>
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>300</number>
|
||||
@ -295,25 +311,18 @@
|
||||
<widget class="QLabel" name="rfBWText">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>30</width>
|
||||
<width>40</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>2.0M</string>
|
||||
<string>10.0M</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
@ -575,7 +584,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>190</y>
|
||||
<width>351</width>
|
||||
<width>600</width>
|
||||
<height>141</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -585,6 +594,12 @@
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>600</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Transmitted Frames</string>
|
||||
</property>
|
||||
@ -618,10 +633,16 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>340</y>
|
||||
<width>351</width>
|
||||
<width>600</width>
|
||||
<height>284</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>600</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Baseband Waveform</string>
|
||||
</property>
|
||||
@ -667,10 +688,16 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>630</y>
|
||||
<width>351</width>
|
||||
<width>600</width>
|
||||
<height>284</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>600</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Baseband Spectrum</string>
|
||||
</property>
|
||||
|
@ -77,13 +77,15 @@ void IEEE_802_15_4_ModSettings::resetToDefaults()
|
||||
|
||||
bool IEEE_802_15_4_ModSettings::setPHY(QString phy)
|
||||
{
|
||||
int bitRate;
|
||||
float bitRate;
|
||||
bool valid;
|
||||
|
||||
// First part of phy string should give bitrate in kbps
|
||||
bitRate = phy.split("k")[0].toInt(&valid) * 1000;
|
||||
if (!valid)
|
||||
bitRate = phy.split("k")[0].toFloat(&valid) * 1000.0f;
|
||||
|
||||
if (!valid) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (phy.contains("BPSK"))
|
||||
{
|
||||
@ -119,7 +121,13 @@ bool IEEE_802_15_4_ModSettings::setPHY(QString phy)
|
||||
|
||||
QString IEEE_802_15_4_ModSettings::getPHY() const
|
||||
{
|
||||
return QString("%1kbps %2").arg(m_bitRate/1000).arg(m_modulation == IEEE_802_15_4_ModSettings::BPSK ? "BPSK" : "O-QPSK");
|
||||
int decPos = 0;
|
||||
|
||||
if (m_bitRate < 10000) {
|
||||
decPos = 1;
|
||||
}
|
||||
|
||||
return QString("%1kbps %2").arg(m_bitRate / 1000.0, 0, 'f', decPos).arg(m_modulation == IEEE_802_15_4_ModSettings::BPSK ? "BPSK" : "O-QPSK");
|
||||
}
|
||||
|
||||
int IEEE_802_15_4_ModSettings::getChipRate() const
|
||||
@ -136,6 +144,7 @@ int IEEE_802_15_4_ModSettings::getChipRate() const
|
||||
bitsPerSymbol = 4;
|
||||
chipsPerSymbol = m_subGHzBand ? 16 : 32;
|
||||
}
|
||||
|
||||
return m_bitRate * chipsPerSymbol / bitsPerSymbol;
|
||||
}
|
||||
|
||||
|
@ -27,10 +27,20 @@ class Serializable;
|
||||
|
||||
struct IEEE_802_15_4_ModSettings
|
||||
{
|
||||
enum Modulation {
|
||||
BPSK,
|
||||
OQPSK
|
||||
};
|
||||
|
||||
enum PulseShaping {
|
||||
RC,
|
||||
SINE
|
||||
};
|
||||
|
||||
static const int infinitePackets = -1;
|
||||
|
||||
qint64 m_inputFrequencyOffset;
|
||||
enum Modulation {BPSK, OQPSK} m_modulation;
|
||||
Modulation m_modulation;
|
||||
int m_bitRate;
|
||||
bool m_subGHzBand;
|
||||
Real m_rfBandwidth;
|
||||
@ -59,7 +69,7 @@ struct IEEE_802_15_4_ModSettings
|
||||
uint16_t m_reverseAPIChannelIndex;
|
||||
bool m_scramble;
|
||||
int m_polynomial;
|
||||
enum PulseShaping {RC, SINE} m_pulseShaping;
|
||||
PulseShaping m_pulseShaping;
|
||||
float m_beta;
|
||||
int m_symbolSpan;
|
||||
bool m_udpEnabled;
|
||||
|
@ -33,52 +33,79 @@ Channel Page | Channels | Frequencies (MHz) | Bit rate (kbps) | Chip rate (kcps
|
||||
0 | 11-26 | 2405, 2410... 2480 | 250 | 2000 | O-QPSK | Sine | 8
|
||||
2 | 0 | 868.3 | 100 | 400 | O-QPSK | Sine/RC | 2.4
|
||||
2 | 1-10 | 906, 908... 926 | 250 | 1000 | O-QPSK | Sine | 4
|
||||
5 | 0-3 | 780, 782.. 786 | 250 | 1000 | O-QPSK | RC r=.8 | 4
|
||||
5 | 0-3 | 780, 782... 786 | 250 | 1000 | O-QPSK | RC r=.8 | 4
|
||||
11 | 0-6 | 2363, 2368... 2393 | 250 | 2000 | O-QPSK | Sine | 8
|
||||
11 | 7-13 | 2367, 2372... 2397 | 250 | 2000 | O-QPSK | Sine | 8
|
||||
11 | 14 | 2395 | 250 | 2000 | O-QPSK | Sine | 8
|
||||
|
||||
<h3>5: RF Bandwidth</h3>
|
||||
<h3>5: Chip rate</h3>
|
||||
|
||||
This is the chip rate. It must be a multiple of the baseband sample rate and the baseband sample rate should be at least twice the chip rate. If one or both of these conditions are not met the background turns to red and the tooltip details the condition.
|
||||
|
||||
<h3>6: RF Bandwidth</h3>
|
||||
|
||||
This specifies the bandwidth of a LPF that is applied to the output signal to limit the RF bandwidth.
|
||||
|
||||
PHY | Occupied BW (99%)
|
||||
PHY | Occupied BW (99%)
|
||||
----------------------------|-------------------
|
||||
20kbps BPSK | 400kHz
|
||||
40kbps BPSK | 760kHz
|
||||
100kbps O-QPSK | 330kHz
|
||||
250kbps <1GHz O-QPSK (Sine) | 1.2MHz
|
||||
250kbps <1GHz O-QPSK (RC) | 1.2MHz
|
||||
250kbps >2GHz O-QPSK | 2.6MHz
|
||||
20kbps BPSK | 400kHz
|
||||
40kbps BPSK | 760kHz
|
||||
100kbps O-QPSK | 330kHz
|
||||
250kbps <1GHz O-QPSK (Sine) | 1.2MHz
|
||||
250kbps <1GHz O-QPSK (RC) | 1.2MHz
|
||||
250kbps >2GHz O-QPSK | 2.6MHz
|
||||
|
||||
<h3>6: Gain</h3>
|
||||
<h3>7: Gain</h3>
|
||||
|
||||
Adjusts the gain in dB from -60 to 0dB. The gain should be set to ensure the level meter remains below 100%. If the baseband signal clips, this can lead to out-of-band spurious.
|
||||
Adjusts the gain in dB from -60 to 0dB. The gain should be set to ensure the level meter remains below 100% (see 8). If the baseband signal clips, this can lead to out-of-band spurious.
|
||||
|
||||
<h3>7: Level meter in %</h3>
|
||||
<h3>8: Level meter in %</h3>
|
||||
|
||||
- top bar (beige): average value
|
||||
- bottom bar (brown): instantaneous peak value
|
||||
- tip vertical bar (bright red): peak hold value
|
||||
|
||||
<h3>8: Data</h3>
|
||||
<h3>9: UDP input</h3>
|
||||
|
||||
Check to get data from UDP
|
||||
|
||||
<h3>10: UDP address and port</h3>
|
||||
|
||||
This UDP data packets listening address and port
|
||||
|
||||
<h3>11: Get data in bytes format</h3>
|
||||
|
||||
Check this if the data received is in bytes. When not checked data is expected in string format as blank separated hex bytes same as data below (12))
|
||||
|
||||
<h3>12: Data</h3>
|
||||
|
||||
The frame of data to send as hex bytes. For example, to send a MAC ACK frame, enter "02 00 00". The MAC CRC should not be included, as this is calculated and appended automatically.
|
||||
|
||||
<h3>9: Repeat</h3>
|
||||
In the diagram below this is the blue part without the "frame check sequence". Thus its maximum length is 125 bytes.
|
||||
|
||||
![802.15.4 Modulator frame](../../../doc/img/IEEE_802_15_4_Mod_frame.png)
|
||||
|
||||
<h3>13: Repeat</h3>
|
||||
|
||||
Check this button to repeatedly transmit a frame. Right click to open the dialog to adjust the delay between retransmission and number of times the frame should be repeated.
|
||||
|
||||
<h3>10: TX</h3>
|
||||
<h3>14: TX</h3>
|
||||
|
||||
Transmits a frame containing the payload set in the data field.
|
||||
|
||||
<h2>API</h2>
|
||||
|
||||
Full details of the API can be found in the Swagger documentation. Here is a quick example of how to transmit a frame from the command line:
|
||||
Full details of the API can be found in the Swagger documentation.
|
||||
|
||||
curl -X POST "http://127.0.0.1:8091/sdrangel/deviceset/1/channel/0/actions" -d '{"channelType": "IEEE_802_15_4_Mod", "direction": 1, "IEEE_802_15_4_ModActions": { "tx": { "data": "02 00 00" }}}'
|
||||
To transmit stored data just send a "tx" action:
|
||||
|
||||
Or to set the PHY to 20kbps BPSK:
|
||||
curl -X POST "http://127.0.0.1:8091/sdrangel/deviceset/1/channel/0/actions" -d '{"channelType": "IEEE_802_15_4_Mod", "direction": 1, "IEEE_802_15_4_ModActions": { "tx": 1}}
|
||||
|
||||
curl -X PATCH "http://127.0.0.1:8091/sdrangel/deviceset/1/channel/0/settings" -d '{"channelType": "IEEE_802_15_4_Mod", "direction": 1, "IEEE_802_15_4_ModSettings": {"phy": "20kbps BPSK"}}'
|
||||
To transmit a frame from the command line:
|
||||
|
||||
curl -X POST "http://127.0.0.1:8091/sdrangel/deviceset/1/channel/0/actions" -d '{"channelType": "IEEE_802_15_4_Mod", "direction": 1, "IEEE_802_15_4_ModActions": { "tx": 1, "data": "02 00 00" }}'
|
||||
|
||||
To set the PHY to 20kbps BPSK:
|
||||
|
||||
curl -X PATCH "http://127.0.0.1:8091/sdrangel/deviceset/1/channel/0/settings" -d '{"channelType": "IEEE_802_15_4_Mod", "direction": 1, "IEEE_802_15_4_ModSettings": {"beta": 1, "bitRate": 20000,
|
||||
"modulation': 0, "pulseShaping": 0, "rfBandwidth": 400000, "subGHzBand": 1 }}'
|
||||
|
@ -6202,19 +6202,15 @@ margin-bottom: 20px;
|
||||
defs.IEEE_802_15_4_ModActions = {
|
||||
"properties" : {
|
||||
"tx" : {
|
||||
"$ref" : "#/definitions/IEEE_802_15_4_ModActions_tx"
|
||||
"type" : "integer",
|
||||
"description" : "Initialize a transmission cycle\n * 0 - Do nothing\n * 1 - Start transmission cycle\n"
|
||||
},
|
||||
"data" : {
|
||||
"type" : "string",
|
||||
"description" : "Hex coded bytes of data to transmit, excluding CRC (E.g for an ACK - 02 00 00). Preempts settings data.\n"
|
||||
}
|
||||
},
|
||||
"description" : "IEEE_802_15_4_Mod"
|
||||
};
|
||||
defs.IEEE_802_15_4_ModActions_tx = {
|
||||
"properties" : {
|
||||
"data" : {
|
||||
"type" : "string",
|
||||
"description" : "Hex coded bytes of data to transmit, excluding CRC (E.g for an ACK - 02 00 00)."
|
||||
}
|
||||
},
|
||||
"description" : "Transmit a frame\n"
|
||||
};
|
||||
defs.IEEE_802_15_4_ModReport = {
|
||||
"properties" : {
|
||||
@ -6235,9 +6231,16 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"format" : "int64"
|
||||
},
|
||||
"phy" : {
|
||||
"type" : "string",
|
||||
"description" : "Physical layer. \"20kbps BPSK\", \"40kbps BPSK\", \"100kbps <1GHz O-QPSK\", \"250kbps <1GHz O-QPSK (Sine)\", \"250kbps <1GHz O-QPSK (RC)\", or \"250kbps >2GHz O-QPSK\"."
|
||||
"modulation" : {
|
||||
"type" : "integer",
|
||||
"description" : "Modulation type\n * 0 - BPSK\n * 1 - OQPSK\n"
|
||||
},
|
||||
"bitRate" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"subGHzBand" : {
|
||||
"type" : "integer",
|
||||
"description" : "Boolean value\n * 0 - Over 1 GHz standard\n * 1 - Under 1 GHz standard\n"
|
||||
},
|
||||
"rfBandwidth" : {
|
||||
"type" : "number",
|
||||
@ -6248,7 +6251,8 @@ margin-bottom: 20px;
|
||||
"format" : "float"
|
||||
},
|
||||
"channelMute" : {
|
||||
"type" : "integer"
|
||||
"type" : "integer",
|
||||
"description" : "* 0 - Effective transmission * 1 - Transmission is muted\n"
|
||||
},
|
||||
"repeat" : {
|
||||
"type" : "integer",
|
||||
@ -6263,21 +6267,36 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"description" : "Number of times to repeat the frame (-1 for infinite)."
|
||||
},
|
||||
"udpEnabled" : {
|
||||
"type" : "integer",
|
||||
"description" : "Enable forwarding of frames via UDP"
|
||||
"rampUpBits" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"m_udpBytesFormat" : {
|
||||
"type" : "integer",
|
||||
"description" : "Payload format\n * 0 - Blank separated string representation of hex bytes i.e. 00 02 0a\n * 1 - Raw bytes\n"
|
||||
"rampDownBits" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"udpAddress" : {
|
||||
"rampRange" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"modulateWhileRamping" : {
|
||||
"type" : "integer",
|
||||
"description" : "Boolean value\n * 0 - do not modulate in ramping phase\n * 1 - modulate in ramping phase\n"
|
||||
},
|
||||
"lpfTaps" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"bbNoise" : {
|
||||
"type" : "integer",
|
||||
"description" : "Boolean value\n * 0 - Do not add gaussian noise in baseband\n * 1 - Add gaussian noise in baseband\n"
|
||||
},
|
||||
"writeToFile" : {
|
||||
"type" : "integer",
|
||||
"description" : "Boolean value\n * 0 - Do not write frames to .csv file\n * 1 - Write frames to .csv file\n"
|
||||
},
|
||||
"spectrumRate" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"data" : {
|
||||
"type" : "string",
|
||||
"description" : "UDP address to listen for frames to transmit on"
|
||||
},
|
||||
"udpPort" : {
|
||||
"type" : "integer",
|
||||
"description" : "UDP port to listen for frames to transmit on"
|
||||
"description" : "Hex coded bytes of data to transmit, excluding CRC (E.g for an ACK - 02 00 00)"
|
||||
},
|
||||
"rgbColor" : {
|
||||
"type" : "integer"
|
||||
@ -6304,6 +6323,42 @@ margin-bottom: 20px;
|
||||
},
|
||||
"reverseAPIChannelIndex" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"scramble" : {
|
||||
"type" : "integer",
|
||||
"description" : "Boolean value\n * 0 - Do not scramble data\n * 1 - Scramble data\n"
|
||||
},
|
||||
"polynomial" : {
|
||||
"type" : "integer",
|
||||
"description" : "Scrambling polynomial"
|
||||
},
|
||||
"pulseShaping" : {
|
||||
"type" : "integer",
|
||||
"description" : "Pulse shaping filter\n * 0 - Root Cosime\n * 1 - Sine\n"
|
||||
},
|
||||
"beta" : {
|
||||
"type" : "number",
|
||||
"format" : "float",
|
||||
"description" : "Pulse shapint filter beta factor"
|
||||
},
|
||||
"symbolSpan" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"udpEnabled" : {
|
||||
"type" : "integer",
|
||||
"description" : "Enable forwarding of frames via UDP"
|
||||
},
|
||||
"udpBytesFormat" : {
|
||||
"type" : "integer",
|
||||
"description" : "Payload format\n * 0 - Blank separated string representation of hex bytes i.e. 00 02 0a\n * 1 - Raw bytes\n"
|
||||
},
|
||||
"udpAddress" : {
|
||||
"type" : "string",
|
||||
"description" : "UDP address to listen for frames to transmit on"
|
||||
},
|
||||
"udpPort" : {
|
||||
"type" : "integer",
|
||||
"description" : "UDP port to listen for frames to transmit on"
|
||||
}
|
||||
},
|
||||
"description" : "IEEE_802_15_4_Mod"
|
||||
@ -51290,7 +51345,7 @@ except ApiException as e:
|
||||
</div>
|
||||
<div id="generator">
|
||||
<div class="content">
|
||||
Generated 2021-11-16T00:55:07.690+01:00
|
||||
Generated 2021-11-20T13:05:46.792+01:00
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -4,9 +4,20 @@ IEEE_802_15_4_ModSettings:
|
||||
inputFrequencyOffset:
|
||||
type: integer
|
||||
format: int64
|
||||
phy:
|
||||
description: Physical layer. "20kbps BPSK", "40kbps BPSK", "100kbps <1GHz O-QPSK", "250kbps <1GHz O-QPSK (Sine)", "250kbps <1GHz O-QPSK (RC)", or "250kbps >2GHz O-QPSK".
|
||||
type: string
|
||||
modulation:
|
||||
description: >
|
||||
Modulation type
|
||||
* 0 - BPSK
|
||||
* 1 - OQPSK
|
||||
type: integer
|
||||
bitRate:
|
||||
type: integer
|
||||
subGHzBand:
|
||||
type: integer
|
||||
description: >
|
||||
Boolean value
|
||||
* 0 - Over 1 GHz standard
|
||||
* 1 - Under 1 GHz standard
|
||||
rfBandwidth:
|
||||
type: number
|
||||
format: float
|
||||
@ -15,6 +26,9 @@ IEEE_802_15_4_ModSettings:
|
||||
format: float
|
||||
channelMute:
|
||||
type: integer
|
||||
description: >
|
||||
* 0 - Effective transmission
|
||||
* 1 - Transmission is muted
|
||||
repeat:
|
||||
description: Whether to repeated transmit the frame (1 for yes, 0 for no).
|
||||
type: integer
|
||||
@ -25,21 +39,37 @@ IEEE_802_15_4_ModSettings:
|
||||
repeatCount:
|
||||
description: Number of times to repeat the frame (-1 for infinite).
|
||||
type: integer
|
||||
udpEnabled:
|
||||
description: Enable forwarding of frames via UDP
|
||||
rampUpBits:
|
||||
type: integer
|
||||
m_udpBytesFormat:
|
||||
rampDownBits:
|
||||
type: integer
|
||||
rampRange:
|
||||
type: integer
|
||||
modulateWhileRamping:
|
||||
type: integer
|
||||
description: >
|
||||
Payload format
|
||||
* 0 - Blank separated string representation of hex bytes i.e. 00 02 0a
|
||||
* 1 - Raw bytes
|
||||
udpAddress:
|
||||
description: UDP address to listen for frames to transmit on
|
||||
type: string
|
||||
udpPort:
|
||||
description: UDP port to listen for frames to transmit on
|
||||
Boolean value
|
||||
* 0 - do not modulate in ramping phase
|
||||
* 1 - modulate in ramping phase
|
||||
lpfTaps:
|
||||
type: integer
|
||||
bbNoise:
|
||||
type: integer
|
||||
description: >
|
||||
Boolean value
|
||||
* 0 - Do not add gaussian noise in baseband
|
||||
* 1 - Add gaussian noise in baseband
|
||||
writeToFile:
|
||||
type: integer
|
||||
description: >
|
||||
Boolean value
|
||||
* 0 - Do not write frames to .csv file
|
||||
* 1 - Write frames to .csv file
|
||||
spectrumRate:
|
||||
type: integer
|
||||
data:
|
||||
type: string
|
||||
description: Hex coded bytes of data to transmit, excluding CRC (E.g for an ACK - 02 00 00)
|
||||
rgbColor:
|
||||
type: integer
|
||||
title:
|
||||
@ -58,6 +88,42 @@ IEEE_802_15_4_ModSettings:
|
||||
type: integer
|
||||
reverseAPIChannelIndex:
|
||||
type: integer
|
||||
scramble:
|
||||
type: integer
|
||||
description: >
|
||||
Boolean value
|
||||
* 0 - Do not scramble data
|
||||
* 1 - Scramble data
|
||||
polynomial:
|
||||
type: integer
|
||||
description: Scrambling polynomial
|
||||
pulseShaping:
|
||||
type: integer
|
||||
description: >
|
||||
Pulse shaping filter
|
||||
* 0 - Root Cosime
|
||||
* 1 - Sine
|
||||
beta:
|
||||
type: number
|
||||
format: float
|
||||
description: Pulse shapint filter beta factor
|
||||
symbolSpan:
|
||||
type: integer
|
||||
udpEnabled:
|
||||
description: Enable forwarding of frames via UDP
|
||||
type: integer
|
||||
udpBytesFormat:
|
||||
type: integer
|
||||
description: >
|
||||
Payload format
|
||||
* 0 - Blank separated string representation of hex bytes i.e. 00 02 0a
|
||||
* 1 - Raw bytes
|
||||
udpAddress:
|
||||
description: UDP address to listen for frames to transmit on
|
||||
type: string
|
||||
udpPort:
|
||||
description: UDP port to listen for frames to transmit on
|
||||
type: integer
|
||||
|
||||
IEEE_802_15_4_ModReport:
|
||||
description: IEEE_802_15_4_Mod
|
||||
@ -73,10 +139,12 @@ IEEE_802_15_4_ModActions:
|
||||
description: IEEE_802_15_4_Mod
|
||||
properties:
|
||||
tx:
|
||||
type: object
|
||||
properties:
|
||||
data:
|
||||
description: Hex coded bytes of data to transmit, excluding CRC (E.g for an ACK - 02 00 00).
|
||||
type: string
|
||||
type: integer
|
||||
description: >
|
||||
Transmit a frame
|
||||
Initialize a transmission cycle
|
||||
* 0 - Do nothing
|
||||
* 1 - Start transmission cycle
|
||||
data:
|
||||
type: string
|
||||
description: >
|
||||
Hex coded bytes of data to transmit, excluding CRC (E.g for an ACK - 02 00 00). Preempts settings data.
|
||||
|
@ -4,9 +4,20 @@ IEEE_802_15_4_ModSettings:
|
||||
inputFrequencyOffset:
|
||||
type: integer
|
||||
format: int64
|
||||
phy:
|
||||
description: Physical layer. "20kbps BPSK", "40kbps BPSK", "100kbps <1GHz O-QPSK", "250kbps <1GHz O-QPSK (Sine)", "250kbps <1GHz O-QPSK (RC)", or "250kbps >2GHz O-QPSK".
|
||||
type: string
|
||||
modulation:
|
||||
description: >
|
||||
Modulation type
|
||||
* 0 - BPSK
|
||||
* 1 - OQPSK
|
||||
type: integer
|
||||
bitRate:
|
||||
type: integer
|
||||
subGHzBand:
|
||||
type: integer
|
||||
description: >
|
||||
Boolean value
|
||||
* 0 - Over 1 GHz standard
|
||||
* 1 - Under 1 GHz standard
|
||||
rfBandwidth:
|
||||
type: number
|
||||
format: float
|
||||
@ -15,6 +26,9 @@ IEEE_802_15_4_ModSettings:
|
||||
format: float
|
||||
channelMute:
|
||||
type: integer
|
||||
description: >
|
||||
* 0 - Effective transmission
|
||||
* 1 - Transmission is muted
|
||||
repeat:
|
||||
description: Whether to repeated transmit the frame (1 for yes, 0 for no).
|
||||
type: integer
|
||||
@ -25,21 +39,37 @@ IEEE_802_15_4_ModSettings:
|
||||
repeatCount:
|
||||
description: Number of times to repeat the frame (-1 for infinite).
|
||||
type: integer
|
||||
udpEnabled:
|
||||
description: Enable forwarding of frames via UDP
|
||||
rampUpBits:
|
||||
type: integer
|
||||
m_udpBytesFormat:
|
||||
rampDownBits:
|
||||
type: integer
|
||||
rampRange:
|
||||
type: integer
|
||||
modulateWhileRamping:
|
||||
type: integer
|
||||
description: >
|
||||
Payload format
|
||||
* 0 - Blank separated string representation of hex bytes i.e. 00 02 0a
|
||||
* 1 - Raw bytes
|
||||
udpAddress:
|
||||
description: UDP address to listen for frames to transmit on
|
||||
type: string
|
||||
udpPort:
|
||||
description: UDP port to listen for frames to transmit on
|
||||
Boolean value
|
||||
* 0 - do not modulate in ramping phase
|
||||
* 1 - modulate in ramping phase
|
||||
lpfTaps:
|
||||
type: integer
|
||||
bbNoise:
|
||||
type: integer
|
||||
description: >
|
||||
Boolean value
|
||||
* 0 - Do not add gaussian noise in baseband
|
||||
* 1 - Add gaussian noise in baseband
|
||||
writeToFile:
|
||||
type: integer
|
||||
description: >
|
||||
Boolean value
|
||||
* 0 - Do not write frames to .csv file
|
||||
* 1 - Write frames to .csv file
|
||||
spectrumRate:
|
||||
type: integer
|
||||
data:
|
||||
type: string
|
||||
description: Hex coded bytes of data to transmit, excluding CRC (E.g for an ACK - 02 00 00)
|
||||
rgbColor:
|
||||
type: integer
|
||||
title:
|
||||
@ -58,6 +88,42 @@ IEEE_802_15_4_ModSettings:
|
||||
type: integer
|
||||
reverseAPIChannelIndex:
|
||||
type: integer
|
||||
scramble:
|
||||
type: integer
|
||||
description: >
|
||||
Boolean value
|
||||
* 0 - Do not scramble data
|
||||
* 1 - Scramble data
|
||||
polynomial:
|
||||
type: integer
|
||||
description: Scrambling polynomial
|
||||
pulseShaping:
|
||||
type: integer
|
||||
description: >
|
||||
Pulse shaping filter
|
||||
* 0 - Root Cosime
|
||||
* 1 - Sine
|
||||
beta:
|
||||
type: number
|
||||
format: float
|
||||
description: Pulse shapint filter beta factor
|
||||
symbolSpan:
|
||||
type: integer
|
||||
udpEnabled:
|
||||
description: Enable forwarding of frames via UDP
|
||||
type: integer
|
||||
udpBytesFormat:
|
||||
type: integer
|
||||
description: >
|
||||
Payload format
|
||||
* 0 - Blank separated string representation of hex bytes i.e. 00 02 0a
|
||||
* 1 - Raw bytes
|
||||
udpAddress:
|
||||
description: UDP address to listen for frames to transmit on
|
||||
type: string
|
||||
udpPort:
|
||||
description: UDP port to listen for frames to transmit on
|
||||
type: integer
|
||||
|
||||
IEEE_802_15_4_ModReport:
|
||||
description: IEEE_802_15_4_Mod
|
||||
@ -73,10 +139,12 @@ IEEE_802_15_4_ModActions:
|
||||
description: IEEE_802_15_4_Mod
|
||||
properties:
|
||||
tx:
|
||||
type: object
|
||||
properties:
|
||||
data:
|
||||
description: Hex coded bytes of data to transmit, excluding CRC (E.g for an ACK - 02 00 00).
|
||||
type: string
|
||||
type: integer
|
||||
description: >
|
||||
Transmit a frame
|
||||
Initialize a transmission cycle
|
||||
* 0 - Do nothing
|
||||
* 1 - Start transmission cycle
|
||||
data:
|
||||
type: string
|
||||
description: >
|
||||
Hex coded bytes of data to transmit, excluding CRC (E.g for an ACK - 02 00 00). Preempts settings data.
|
||||
|
@ -6202,19 +6202,15 @@ margin-bottom: 20px;
|
||||
defs.IEEE_802_15_4_ModActions = {
|
||||
"properties" : {
|
||||
"tx" : {
|
||||
"$ref" : "#/definitions/IEEE_802_15_4_ModActions_tx"
|
||||
"type" : "integer",
|
||||
"description" : "Initialize a transmission cycle\n * 0 - Do nothing\n * 1 - Start transmission cycle\n"
|
||||
},
|
||||
"data" : {
|
||||
"type" : "string",
|
||||
"description" : "Hex coded bytes of data to transmit, excluding CRC (E.g for an ACK - 02 00 00). Preempts settings data.\n"
|
||||
}
|
||||
},
|
||||
"description" : "IEEE_802_15_4_Mod"
|
||||
};
|
||||
defs.IEEE_802_15_4_ModActions_tx = {
|
||||
"properties" : {
|
||||
"data" : {
|
||||
"type" : "string",
|
||||
"description" : "Hex coded bytes of data to transmit, excluding CRC (E.g for an ACK - 02 00 00)."
|
||||
}
|
||||
},
|
||||
"description" : "Transmit a frame\n"
|
||||
};
|
||||
defs.IEEE_802_15_4_ModReport = {
|
||||
"properties" : {
|
||||
@ -6235,9 +6231,16 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"format" : "int64"
|
||||
},
|
||||
"phy" : {
|
||||
"type" : "string",
|
||||
"description" : "Physical layer. \"20kbps BPSK\", \"40kbps BPSK\", \"100kbps <1GHz O-QPSK\", \"250kbps <1GHz O-QPSK (Sine)\", \"250kbps <1GHz O-QPSK (RC)\", or \"250kbps >2GHz O-QPSK\"."
|
||||
"modulation" : {
|
||||
"type" : "integer",
|
||||
"description" : "Modulation type\n * 0 - BPSK\n * 1 - OQPSK\n"
|
||||
},
|
||||
"bitRate" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"subGHzBand" : {
|
||||
"type" : "integer",
|
||||
"description" : "Boolean value\n * 0 - Over 1 GHz standard\n * 1 - Under 1 GHz standard\n"
|
||||
},
|
||||
"rfBandwidth" : {
|
||||
"type" : "number",
|
||||
@ -6248,7 +6251,8 @@ margin-bottom: 20px;
|
||||
"format" : "float"
|
||||
},
|
||||
"channelMute" : {
|
||||
"type" : "integer"
|
||||
"type" : "integer",
|
||||
"description" : "* 0 - Effective transmission * 1 - Transmission is muted\n"
|
||||
},
|
||||
"repeat" : {
|
||||
"type" : "integer",
|
||||
@ -6263,21 +6267,36 @@ margin-bottom: 20px;
|
||||
"type" : "integer",
|
||||
"description" : "Number of times to repeat the frame (-1 for infinite)."
|
||||
},
|
||||
"udpEnabled" : {
|
||||
"type" : "integer",
|
||||
"description" : "Enable forwarding of frames via UDP"
|
||||
"rampUpBits" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"m_udpBytesFormat" : {
|
||||
"type" : "integer",
|
||||
"description" : "Payload format\n * 0 - Blank separated string representation of hex bytes i.e. 00 02 0a\n * 1 - Raw bytes\n"
|
||||
"rampDownBits" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"udpAddress" : {
|
||||
"rampRange" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"modulateWhileRamping" : {
|
||||
"type" : "integer",
|
||||
"description" : "Boolean value\n * 0 - do not modulate in ramping phase\n * 1 - modulate in ramping phase\n"
|
||||
},
|
||||
"lpfTaps" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"bbNoise" : {
|
||||
"type" : "integer",
|
||||
"description" : "Boolean value\n * 0 - Do not add gaussian noise in baseband\n * 1 - Add gaussian noise in baseband\n"
|
||||
},
|
||||
"writeToFile" : {
|
||||
"type" : "integer",
|
||||
"description" : "Boolean value\n * 0 - Do not write frames to .csv file\n * 1 - Write frames to .csv file\n"
|
||||
},
|
||||
"spectrumRate" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"data" : {
|
||||
"type" : "string",
|
||||
"description" : "UDP address to listen for frames to transmit on"
|
||||
},
|
||||
"udpPort" : {
|
||||
"type" : "integer",
|
||||
"description" : "UDP port to listen for frames to transmit on"
|
||||
"description" : "Hex coded bytes of data to transmit, excluding CRC (E.g for an ACK - 02 00 00)"
|
||||
},
|
||||
"rgbColor" : {
|
||||
"type" : "integer"
|
||||
@ -6304,6 +6323,42 @@ margin-bottom: 20px;
|
||||
},
|
||||
"reverseAPIChannelIndex" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"scramble" : {
|
||||
"type" : "integer",
|
||||
"description" : "Boolean value\n * 0 - Do not scramble data\n * 1 - Scramble data\n"
|
||||
},
|
||||
"polynomial" : {
|
||||
"type" : "integer",
|
||||
"description" : "Scrambling polynomial"
|
||||
},
|
||||
"pulseShaping" : {
|
||||
"type" : "integer",
|
||||
"description" : "Pulse shaping filter\n * 0 - Root Cosime\n * 1 - Sine\n"
|
||||
},
|
||||
"beta" : {
|
||||
"type" : "number",
|
||||
"format" : "float",
|
||||
"description" : "Pulse shapint filter beta factor"
|
||||
},
|
||||
"symbolSpan" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"udpEnabled" : {
|
||||
"type" : "integer",
|
||||
"description" : "Enable forwarding of frames via UDP"
|
||||
},
|
||||
"udpBytesFormat" : {
|
||||
"type" : "integer",
|
||||
"description" : "Payload format\n * 0 - Blank separated string representation of hex bytes i.e. 00 02 0a\n * 1 - Raw bytes\n"
|
||||
},
|
||||
"udpAddress" : {
|
||||
"type" : "string",
|
||||
"description" : "UDP address to listen for frames to transmit on"
|
||||
},
|
||||
"udpPort" : {
|
||||
"type" : "integer",
|
||||
"description" : "UDP port to listen for frames to transmit on"
|
||||
}
|
||||
},
|
||||
"description" : "IEEE_802_15_4_Mod"
|
||||
@ -51290,7 +51345,7 @@ except ApiException as e:
|
||||
</div>
|
||||
<div id="generator">
|
||||
<div class="content">
|
||||
Generated 2021-11-16T00:55:07.690+01:00
|
||||
Generated 2021-11-20T13:05:46.792+01:00
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -28,8 +28,10 @@ SWGIEEE_802_15_4_ModActions::SWGIEEE_802_15_4_ModActions(QString* json) {
|
||||
}
|
||||
|
||||
SWGIEEE_802_15_4_ModActions::SWGIEEE_802_15_4_ModActions() {
|
||||
tx = nullptr;
|
||||
tx = 0;
|
||||
m_tx_isSet = false;
|
||||
data = nullptr;
|
||||
m_data_isSet = false;
|
||||
}
|
||||
|
||||
SWGIEEE_802_15_4_ModActions::~SWGIEEE_802_15_4_ModActions() {
|
||||
@ -38,14 +40,17 @@ SWGIEEE_802_15_4_ModActions::~SWGIEEE_802_15_4_ModActions() {
|
||||
|
||||
void
|
||||
SWGIEEE_802_15_4_ModActions::init() {
|
||||
tx = new SWGIEEE_802_15_4_ModActions_tx();
|
||||
tx = 0;
|
||||
m_tx_isSet = false;
|
||||
data = new QString("");
|
||||
m_data_isSet = false;
|
||||
}
|
||||
|
||||
void
|
||||
SWGIEEE_802_15_4_ModActions::cleanup() {
|
||||
if(tx != nullptr) {
|
||||
delete tx;
|
||||
|
||||
if(data != nullptr) {
|
||||
delete data;
|
||||
}
|
||||
}
|
||||
|
||||
@ -60,7 +65,9 @@ SWGIEEE_802_15_4_ModActions::fromJson(QString &json) {
|
||||
|
||||
void
|
||||
SWGIEEE_802_15_4_ModActions::fromJsonObject(QJsonObject &pJson) {
|
||||
::SWGSDRangel::setValue(&tx, pJson["tx"], "SWGIEEE_802_15_4_ModActions_tx", "SWGIEEE_802_15_4_ModActions_tx");
|
||||
::SWGSDRangel::setValue(&tx, pJson["tx"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&data, pJson["data"], "QString", "QString");
|
||||
|
||||
}
|
||||
|
||||
@ -78,29 +85,45 @@ SWGIEEE_802_15_4_ModActions::asJson ()
|
||||
QJsonObject*
|
||||
SWGIEEE_802_15_4_ModActions::asJsonObject() {
|
||||
QJsonObject* obj = new QJsonObject();
|
||||
if((tx != nullptr) && (tx->isSet())){
|
||||
toJsonValue(QString("tx"), tx, obj, QString("SWGIEEE_802_15_4_ModActions_tx"));
|
||||
if(m_tx_isSet){
|
||||
obj->insert("tx", QJsonValue(tx));
|
||||
}
|
||||
if(data != nullptr && *data != QString("")){
|
||||
toJsonValue(QString("data"), data, obj, QString("QString"));
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
SWGIEEE_802_15_4_ModActions_tx*
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModActions::getTx() {
|
||||
return tx;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModActions::setTx(SWGIEEE_802_15_4_ModActions_tx* tx) {
|
||||
SWGIEEE_802_15_4_ModActions::setTx(qint32 tx) {
|
||||
this->tx = tx;
|
||||
this->m_tx_isSet = true;
|
||||
}
|
||||
|
||||
QString*
|
||||
SWGIEEE_802_15_4_ModActions::getData() {
|
||||
return data;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModActions::setData(QString* data) {
|
||||
this->data = data;
|
||||
this->m_data_isSet = true;
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
SWGIEEE_802_15_4_ModActions::isSet(){
|
||||
bool isObjectUpdated = false;
|
||||
do{
|
||||
if(tx && tx->isSet()){
|
||||
if(m_tx_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(data && *data != QString("")){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
}while(false);
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include <QJsonObject>
|
||||
|
||||
|
||||
#include "SWGIEEE_802_15_4_ModActions_tx.h"
|
||||
#include <QString>
|
||||
|
||||
#include "SWGObject.h"
|
||||
#include "export.h"
|
||||
@ -42,16 +42,22 @@ public:
|
||||
virtual void fromJsonObject(QJsonObject &json) override;
|
||||
virtual SWGIEEE_802_15_4_ModActions* fromJson(QString &jsonString) override;
|
||||
|
||||
SWGIEEE_802_15_4_ModActions_tx* getTx();
|
||||
void setTx(SWGIEEE_802_15_4_ModActions_tx* tx);
|
||||
qint32 getTx();
|
||||
void setTx(qint32 tx);
|
||||
|
||||
QString* getData();
|
||||
void setData(QString* data);
|
||||
|
||||
|
||||
virtual bool isSet() override;
|
||||
|
||||
private:
|
||||
SWGIEEE_802_15_4_ModActions_tx* tx;
|
||||
qint32 tx;
|
||||
bool m_tx_isSet;
|
||||
|
||||
QString* data;
|
||||
bool m_data_isSet;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -30,8 +30,12 @@ SWGIEEE_802_15_4_ModSettings::SWGIEEE_802_15_4_ModSettings(QString* json) {
|
||||
SWGIEEE_802_15_4_ModSettings::SWGIEEE_802_15_4_ModSettings() {
|
||||
input_frequency_offset = 0L;
|
||||
m_input_frequency_offset_isSet = false;
|
||||
phy = nullptr;
|
||||
m_phy_isSet = false;
|
||||
modulation = 0;
|
||||
m_modulation_isSet = false;
|
||||
bit_rate = 0;
|
||||
m_bit_rate_isSet = false;
|
||||
sub_g_hz_band = 0;
|
||||
m_sub_g_hz_band_isSet = false;
|
||||
rf_bandwidth = 0.0f;
|
||||
m_rf_bandwidth_isSet = false;
|
||||
gain = 0.0f;
|
||||
@ -44,14 +48,24 @@ SWGIEEE_802_15_4_ModSettings::SWGIEEE_802_15_4_ModSettings() {
|
||||
m_repeat_delay_isSet = false;
|
||||
repeat_count = 0;
|
||||
m_repeat_count_isSet = false;
|
||||
udp_enabled = 0;
|
||||
m_udp_enabled_isSet = false;
|
||||
m_udp_bytes_format = 0;
|
||||
m_m_udp_bytes_format_isSet = false;
|
||||
udp_address = nullptr;
|
||||
m_udp_address_isSet = false;
|
||||
udp_port = 0;
|
||||
m_udp_port_isSet = false;
|
||||
ramp_up_bits = 0;
|
||||
m_ramp_up_bits_isSet = false;
|
||||
ramp_down_bits = 0;
|
||||
m_ramp_down_bits_isSet = false;
|
||||
ramp_range = 0;
|
||||
m_ramp_range_isSet = false;
|
||||
modulate_while_ramping = 0;
|
||||
m_modulate_while_ramping_isSet = false;
|
||||
lpf_taps = 0;
|
||||
m_lpf_taps_isSet = false;
|
||||
bb_noise = 0;
|
||||
m_bb_noise_isSet = false;
|
||||
write_to_file = 0;
|
||||
m_write_to_file_isSet = false;
|
||||
spectrum_rate = 0;
|
||||
m_spectrum_rate_isSet = false;
|
||||
data = nullptr;
|
||||
m_data_isSet = false;
|
||||
rgb_color = 0;
|
||||
m_rgb_color_isSet = false;
|
||||
title = nullptr;
|
||||
@ -68,6 +82,24 @@ SWGIEEE_802_15_4_ModSettings::SWGIEEE_802_15_4_ModSettings() {
|
||||
m_reverse_api_device_index_isSet = false;
|
||||
reverse_api_channel_index = 0;
|
||||
m_reverse_api_channel_index_isSet = false;
|
||||
scramble = 0;
|
||||
m_scramble_isSet = false;
|
||||
polynomial = 0;
|
||||
m_polynomial_isSet = false;
|
||||
pulse_shaping = 0;
|
||||
m_pulse_shaping_isSet = false;
|
||||
beta = 0.0f;
|
||||
m_beta_isSet = false;
|
||||
symbol_span = 0;
|
||||
m_symbol_span_isSet = false;
|
||||
udp_enabled = 0;
|
||||
m_udp_enabled_isSet = false;
|
||||
udp_bytes_format = 0;
|
||||
m_udp_bytes_format_isSet = false;
|
||||
udp_address = nullptr;
|
||||
m_udp_address_isSet = false;
|
||||
udp_port = 0;
|
||||
m_udp_port_isSet = false;
|
||||
}
|
||||
|
||||
SWGIEEE_802_15_4_ModSettings::~SWGIEEE_802_15_4_ModSettings() {
|
||||
@ -78,8 +110,12 @@ void
|
||||
SWGIEEE_802_15_4_ModSettings::init() {
|
||||
input_frequency_offset = 0L;
|
||||
m_input_frequency_offset_isSet = false;
|
||||
phy = new QString("");
|
||||
m_phy_isSet = false;
|
||||
modulation = 0;
|
||||
m_modulation_isSet = false;
|
||||
bit_rate = 0;
|
||||
m_bit_rate_isSet = false;
|
||||
sub_g_hz_band = 0;
|
||||
m_sub_g_hz_band_isSet = false;
|
||||
rf_bandwidth = 0.0f;
|
||||
m_rf_bandwidth_isSet = false;
|
||||
gain = 0.0f;
|
||||
@ -92,14 +128,24 @@ SWGIEEE_802_15_4_ModSettings::init() {
|
||||
m_repeat_delay_isSet = false;
|
||||
repeat_count = 0;
|
||||
m_repeat_count_isSet = false;
|
||||
udp_enabled = 0;
|
||||
m_udp_enabled_isSet = false;
|
||||
m_udp_bytes_format = 0;
|
||||
m_m_udp_bytes_format_isSet = false;
|
||||
udp_address = new QString("");
|
||||
m_udp_address_isSet = false;
|
||||
udp_port = 0;
|
||||
m_udp_port_isSet = false;
|
||||
ramp_up_bits = 0;
|
||||
m_ramp_up_bits_isSet = false;
|
||||
ramp_down_bits = 0;
|
||||
m_ramp_down_bits_isSet = false;
|
||||
ramp_range = 0;
|
||||
m_ramp_range_isSet = false;
|
||||
modulate_while_ramping = 0;
|
||||
m_modulate_while_ramping_isSet = false;
|
||||
lpf_taps = 0;
|
||||
m_lpf_taps_isSet = false;
|
||||
bb_noise = 0;
|
||||
m_bb_noise_isSet = false;
|
||||
write_to_file = 0;
|
||||
m_write_to_file_isSet = false;
|
||||
spectrum_rate = 0;
|
||||
m_spectrum_rate_isSet = false;
|
||||
data = new QString("");
|
||||
m_data_isSet = false;
|
||||
rgb_color = 0;
|
||||
m_rgb_color_isSet = false;
|
||||
title = new QString("");
|
||||
@ -116,27 +162,50 @@ SWGIEEE_802_15_4_ModSettings::init() {
|
||||
m_reverse_api_device_index_isSet = false;
|
||||
reverse_api_channel_index = 0;
|
||||
m_reverse_api_channel_index_isSet = false;
|
||||
scramble = 0;
|
||||
m_scramble_isSet = false;
|
||||
polynomial = 0;
|
||||
m_polynomial_isSet = false;
|
||||
pulse_shaping = 0;
|
||||
m_pulse_shaping_isSet = false;
|
||||
beta = 0.0f;
|
||||
m_beta_isSet = false;
|
||||
symbol_span = 0;
|
||||
m_symbol_span_isSet = false;
|
||||
udp_enabled = 0;
|
||||
m_udp_enabled_isSet = false;
|
||||
udp_bytes_format = 0;
|
||||
m_udp_bytes_format_isSet = false;
|
||||
udp_address = new QString("");
|
||||
m_udp_address_isSet = false;
|
||||
udp_port = 0;
|
||||
m_udp_port_isSet = false;
|
||||
}
|
||||
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::cleanup() {
|
||||
|
||||
if(phy != nullptr) {
|
||||
delete phy;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if(data != nullptr) {
|
||||
delete data;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if(udp_address != nullptr) {
|
||||
delete udp_address;
|
||||
}
|
||||
|
||||
|
||||
if(title != nullptr) {
|
||||
delete title;
|
||||
}
|
||||
@ -148,6 +217,17 @@ SWGIEEE_802_15_4_ModSettings::cleanup() {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if(udp_address != nullptr) {
|
||||
delete udp_address;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
SWGIEEE_802_15_4_ModSettings*
|
||||
@ -163,7 +243,11 @@ void
|
||||
SWGIEEE_802_15_4_ModSettings::fromJsonObject(QJsonObject &pJson) {
|
||||
::SWGSDRangel::setValue(&input_frequency_offset, pJson["inputFrequencyOffset"], "qint64", "");
|
||||
|
||||
::SWGSDRangel::setValue(&phy, pJson["phy"], "QString", "QString");
|
||||
::SWGSDRangel::setValue(&modulation, pJson["modulation"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&bit_rate, pJson["bitRate"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&sub_g_hz_band, pJson["subGHzBand"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&rf_bandwidth, pJson["rfBandwidth"], "float", "");
|
||||
|
||||
@ -177,13 +261,23 @@ SWGIEEE_802_15_4_ModSettings::fromJsonObject(QJsonObject &pJson) {
|
||||
|
||||
::SWGSDRangel::setValue(&repeat_count, pJson["repeatCount"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&udp_enabled, pJson["udpEnabled"], "qint32", "");
|
||||
::SWGSDRangel::setValue(&ramp_up_bits, pJson["rampUpBits"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&m_udp_bytes_format, pJson["m_udpBytesFormat"], "qint32", "");
|
||||
::SWGSDRangel::setValue(&ramp_down_bits, pJson["rampDownBits"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&udp_address, pJson["udpAddress"], "QString", "QString");
|
||||
::SWGSDRangel::setValue(&ramp_range, pJson["rampRange"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&udp_port, pJson["udpPort"], "qint32", "");
|
||||
::SWGSDRangel::setValue(&modulate_while_ramping, pJson["modulateWhileRamping"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&lpf_taps, pJson["lpfTaps"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&bb_noise, pJson["bbNoise"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&write_to_file, pJson["writeToFile"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&spectrum_rate, pJson["spectrumRate"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&data, pJson["data"], "QString", "QString");
|
||||
|
||||
::SWGSDRangel::setValue(&rgb_color, pJson["rgbColor"], "qint32", "");
|
||||
|
||||
@ -201,6 +295,24 @@ SWGIEEE_802_15_4_ModSettings::fromJsonObject(QJsonObject &pJson) {
|
||||
|
||||
::SWGSDRangel::setValue(&reverse_api_channel_index, pJson["reverseAPIChannelIndex"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&scramble, pJson["scramble"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&polynomial, pJson["polynomial"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&pulse_shaping, pJson["pulseShaping"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&beta, pJson["beta"], "float", "");
|
||||
|
||||
::SWGSDRangel::setValue(&symbol_span, pJson["symbolSpan"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&udp_enabled, pJson["udpEnabled"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&udp_bytes_format, pJson["udpBytesFormat"], "qint32", "");
|
||||
|
||||
::SWGSDRangel::setValue(&udp_address, pJson["udpAddress"], "QString", "QString");
|
||||
|
||||
::SWGSDRangel::setValue(&udp_port, pJson["udpPort"], "qint32", "");
|
||||
|
||||
}
|
||||
|
||||
QString
|
||||
@ -220,8 +332,14 @@ SWGIEEE_802_15_4_ModSettings::asJsonObject() {
|
||||
if(m_input_frequency_offset_isSet){
|
||||
obj->insert("inputFrequencyOffset", QJsonValue(input_frequency_offset));
|
||||
}
|
||||
if(phy != nullptr && *phy != QString("")){
|
||||
toJsonValue(QString("phy"), phy, obj, QString("QString"));
|
||||
if(m_modulation_isSet){
|
||||
obj->insert("modulation", QJsonValue(modulation));
|
||||
}
|
||||
if(m_bit_rate_isSet){
|
||||
obj->insert("bitRate", QJsonValue(bit_rate));
|
||||
}
|
||||
if(m_sub_g_hz_band_isSet){
|
||||
obj->insert("subGHzBand", QJsonValue(sub_g_hz_band));
|
||||
}
|
||||
if(m_rf_bandwidth_isSet){
|
||||
obj->insert("rfBandwidth", QJsonValue(rf_bandwidth));
|
||||
@ -241,17 +359,32 @@ SWGIEEE_802_15_4_ModSettings::asJsonObject() {
|
||||
if(m_repeat_count_isSet){
|
||||
obj->insert("repeatCount", QJsonValue(repeat_count));
|
||||
}
|
||||
if(m_udp_enabled_isSet){
|
||||
obj->insert("udpEnabled", QJsonValue(udp_enabled));
|
||||
if(m_ramp_up_bits_isSet){
|
||||
obj->insert("rampUpBits", QJsonValue(ramp_up_bits));
|
||||
}
|
||||
if(m_m_udp_bytes_format_isSet){
|
||||
obj->insert("m_udpBytesFormat", QJsonValue(m_udp_bytes_format));
|
||||
if(m_ramp_down_bits_isSet){
|
||||
obj->insert("rampDownBits", QJsonValue(ramp_down_bits));
|
||||
}
|
||||
if(udp_address != nullptr && *udp_address != QString("")){
|
||||
toJsonValue(QString("udpAddress"), udp_address, obj, QString("QString"));
|
||||
if(m_ramp_range_isSet){
|
||||
obj->insert("rampRange", QJsonValue(ramp_range));
|
||||
}
|
||||
if(m_udp_port_isSet){
|
||||
obj->insert("udpPort", QJsonValue(udp_port));
|
||||
if(m_modulate_while_ramping_isSet){
|
||||
obj->insert("modulateWhileRamping", QJsonValue(modulate_while_ramping));
|
||||
}
|
||||
if(m_lpf_taps_isSet){
|
||||
obj->insert("lpfTaps", QJsonValue(lpf_taps));
|
||||
}
|
||||
if(m_bb_noise_isSet){
|
||||
obj->insert("bbNoise", QJsonValue(bb_noise));
|
||||
}
|
||||
if(m_write_to_file_isSet){
|
||||
obj->insert("writeToFile", QJsonValue(write_to_file));
|
||||
}
|
||||
if(m_spectrum_rate_isSet){
|
||||
obj->insert("spectrumRate", QJsonValue(spectrum_rate));
|
||||
}
|
||||
if(data != nullptr && *data != QString("")){
|
||||
toJsonValue(QString("data"), data, obj, QString("QString"));
|
||||
}
|
||||
if(m_rgb_color_isSet){
|
||||
obj->insert("rgbColor", QJsonValue(rgb_color));
|
||||
@ -277,6 +410,33 @@ SWGIEEE_802_15_4_ModSettings::asJsonObject() {
|
||||
if(m_reverse_api_channel_index_isSet){
|
||||
obj->insert("reverseAPIChannelIndex", QJsonValue(reverse_api_channel_index));
|
||||
}
|
||||
if(m_scramble_isSet){
|
||||
obj->insert("scramble", QJsonValue(scramble));
|
||||
}
|
||||
if(m_polynomial_isSet){
|
||||
obj->insert("polynomial", QJsonValue(polynomial));
|
||||
}
|
||||
if(m_pulse_shaping_isSet){
|
||||
obj->insert("pulseShaping", QJsonValue(pulse_shaping));
|
||||
}
|
||||
if(m_beta_isSet){
|
||||
obj->insert("beta", QJsonValue(beta));
|
||||
}
|
||||
if(m_symbol_span_isSet){
|
||||
obj->insert("symbolSpan", QJsonValue(symbol_span));
|
||||
}
|
||||
if(m_udp_enabled_isSet){
|
||||
obj->insert("udpEnabled", QJsonValue(udp_enabled));
|
||||
}
|
||||
if(m_udp_bytes_format_isSet){
|
||||
obj->insert("udpBytesFormat", QJsonValue(udp_bytes_format));
|
||||
}
|
||||
if(udp_address != nullptr && *udp_address != QString("")){
|
||||
toJsonValue(QString("udpAddress"), udp_address, obj, QString("QString"));
|
||||
}
|
||||
if(m_udp_port_isSet){
|
||||
obj->insert("udpPort", QJsonValue(udp_port));
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
@ -291,14 +451,34 @@ SWGIEEE_802_15_4_ModSettings::setInputFrequencyOffset(qint64 input_frequency_off
|
||||
this->m_input_frequency_offset_isSet = true;
|
||||
}
|
||||
|
||||
QString*
|
||||
SWGIEEE_802_15_4_ModSettings::getPhy() {
|
||||
return phy;
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModSettings::getModulation() {
|
||||
return modulation;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setPhy(QString* phy) {
|
||||
this->phy = phy;
|
||||
this->m_phy_isSet = true;
|
||||
SWGIEEE_802_15_4_ModSettings::setModulation(qint32 modulation) {
|
||||
this->modulation = modulation;
|
||||
this->m_modulation_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModSettings::getBitRate() {
|
||||
return bit_rate;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setBitRate(qint32 bit_rate) {
|
||||
this->bit_rate = bit_rate;
|
||||
this->m_bit_rate_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModSettings::getSubGHzBand() {
|
||||
return sub_g_hz_band;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setSubGHzBand(qint32 sub_g_hz_band) {
|
||||
this->sub_g_hz_band = sub_g_hz_band;
|
||||
this->m_sub_g_hz_band_isSet = true;
|
||||
}
|
||||
|
||||
float
|
||||
@ -362,43 +542,93 @@ SWGIEEE_802_15_4_ModSettings::setRepeatCount(qint32 repeat_count) {
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModSettings::getUdpEnabled() {
|
||||
return udp_enabled;
|
||||
SWGIEEE_802_15_4_ModSettings::getRampUpBits() {
|
||||
return ramp_up_bits;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setUdpEnabled(qint32 udp_enabled) {
|
||||
this->udp_enabled = udp_enabled;
|
||||
this->m_udp_enabled_isSet = true;
|
||||
SWGIEEE_802_15_4_ModSettings::setRampUpBits(qint32 ramp_up_bits) {
|
||||
this->ramp_up_bits = ramp_up_bits;
|
||||
this->m_ramp_up_bits_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModSettings::getMUdpBytesFormat() {
|
||||
return m_udp_bytes_format;
|
||||
SWGIEEE_802_15_4_ModSettings::getRampDownBits() {
|
||||
return ramp_down_bits;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setMUdpBytesFormat(qint32 m_udp_bytes_format) {
|
||||
this->m_udp_bytes_format = m_udp_bytes_format;
|
||||
this->m_m_udp_bytes_format_isSet = true;
|
||||
SWGIEEE_802_15_4_ModSettings::setRampDownBits(qint32 ramp_down_bits) {
|
||||
this->ramp_down_bits = ramp_down_bits;
|
||||
this->m_ramp_down_bits_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModSettings::getRampRange() {
|
||||
return ramp_range;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setRampRange(qint32 ramp_range) {
|
||||
this->ramp_range = ramp_range;
|
||||
this->m_ramp_range_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModSettings::getModulateWhileRamping() {
|
||||
return modulate_while_ramping;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setModulateWhileRamping(qint32 modulate_while_ramping) {
|
||||
this->modulate_while_ramping = modulate_while_ramping;
|
||||
this->m_modulate_while_ramping_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModSettings::getLpfTaps() {
|
||||
return lpf_taps;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setLpfTaps(qint32 lpf_taps) {
|
||||
this->lpf_taps = lpf_taps;
|
||||
this->m_lpf_taps_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModSettings::getBbNoise() {
|
||||
return bb_noise;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setBbNoise(qint32 bb_noise) {
|
||||
this->bb_noise = bb_noise;
|
||||
this->m_bb_noise_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModSettings::getWriteToFile() {
|
||||
return write_to_file;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setWriteToFile(qint32 write_to_file) {
|
||||
this->write_to_file = write_to_file;
|
||||
this->m_write_to_file_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModSettings::getSpectrumRate() {
|
||||
return spectrum_rate;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setSpectrumRate(qint32 spectrum_rate) {
|
||||
this->spectrum_rate = spectrum_rate;
|
||||
this->m_spectrum_rate_isSet = true;
|
||||
}
|
||||
|
||||
QString*
|
||||
SWGIEEE_802_15_4_ModSettings::getUdpAddress() {
|
||||
return udp_address;
|
||||
SWGIEEE_802_15_4_ModSettings::getData() {
|
||||
return data;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setUdpAddress(QString* udp_address) {
|
||||
this->udp_address = udp_address;
|
||||
this->m_udp_address_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModSettings::getUdpPort() {
|
||||
return udp_port;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setUdpPort(qint32 udp_port) {
|
||||
this->udp_port = udp_port;
|
||||
this->m_udp_port_isSet = true;
|
||||
SWGIEEE_802_15_4_ModSettings::setData(QString* data) {
|
||||
this->data = data;
|
||||
this->m_data_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
@ -481,6 +711,96 @@ SWGIEEE_802_15_4_ModSettings::setReverseApiChannelIndex(qint32 reverse_api_chann
|
||||
this->m_reverse_api_channel_index_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModSettings::getScramble() {
|
||||
return scramble;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setScramble(qint32 scramble) {
|
||||
this->scramble = scramble;
|
||||
this->m_scramble_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModSettings::getPolynomial() {
|
||||
return polynomial;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setPolynomial(qint32 polynomial) {
|
||||
this->polynomial = polynomial;
|
||||
this->m_polynomial_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModSettings::getPulseShaping() {
|
||||
return pulse_shaping;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setPulseShaping(qint32 pulse_shaping) {
|
||||
this->pulse_shaping = pulse_shaping;
|
||||
this->m_pulse_shaping_isSet = true;
|
||||
}
|
||||
|
||||
float
|
||||
SWGIEEE_802_15_4_ModSettings::getBeta() {
|
||||
return beta;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setBeta(float beta) {
|
||||
this->beta = beta;
|
||||
this->m_beta_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModSettings::getSymbolSpan() {
|
||||
return symbol_span;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setSymbolSpan(qint32 symbol_span) {
|
||||
this->symbol_span = symbol_span;
|
||||
this->m_symbol_span_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModSettings::getUdpEnabled() {
|
||||
return udp_enabled;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setUdpEnabled(qint32 udp_enabled) {
|
||||
this->udp_enabled = udp_enabled;
|
||||
this->m_udp_enabled_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModSettings::getUdpBytesFormat() {
|
||||
return udp_bytes_format;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setUdpBytesFormat(qint32 udp_bytes_format) {
|
||||
this->udp_bytes_format = udp_bytes_format;
|
||||
this->m_udp_bytes_format_isSet = true;
|
||||
}
|
||||
|
||||
QString*
|
||||
SWGIEEE_802_15_4_ModSettings::getUdpAddress() {
|
||||
return udp_address;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setUdpAddress(QString* udp_address) {
|
||||
this->udp_address = udp_address;
|
||||
this->m_udp_address_isSet = true;
|
||||
}
|
||||
|
||||
qint32
|
||||
SWGIEEE_802_15_4_ModSettings::getUdpPort() {
|
||||
return udp_port;
|
||||
}
|
||||
void
|
||||
SWGIEEE_802_15_4_ModSettings::setUdpPort(qint32 udp_port) {
|
||||
this->udp_port = udp_port;
|
||||
this->m_udp_port_isSet = true;
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
SWGIEEE_802_15_4_ModSettings::isSet(){
|
||||
@ -489,7 +809,13 @@ SWGIEEE_802_15_4_ModSettings::isSet(){
|
||||
if(m_input_frequency_offset_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(phy && *phy != QString("")){
|
||||
if(m_modulation_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_bit_rate_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_sub_g_hz_band_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_rf_bandwidth_isSet){
|
||||
@ -510,16 +836,31 @@ SWGIEEE_802_15_4_ModSettings::isSet(){
|
||||
if(m_repeat_count_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_udp_enabled_isSet){
|
||||
if(m_ramp_up_bits_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_m_udp_bytes_format_isSet){
|
||||
if(m_ramp_down_bits_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(udp_address && *udp_address != QString("")){
|
||||
if(m_ramp_range_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_udp_port_isSet){
|
||||
if(m_modulate_while_ramping_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_lpf_taps_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_bb_noise_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_write_to_file_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_spectrum_rate_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(data && *data != QString("")){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_rgb_color_isSet){
|
||||
@ -546,6 +887,33 @@ SWGIEEE_802_15_4_ModSettings::isSet(){
|
||||
if(m_reverse_api_channel_index_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_scramble_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_polynomial_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_pulse_shaping_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_beta_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_symbol_span_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_udp_enabled_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_udp_bytes_format_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(udp_address && *udp_address != QString("")){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
if(m_udp_port_isSet){
|
||||
isObjectUpdated = true; break;
|
||||
}
|
||||
}while(false);
|
||||
return isObjectUpdated;
|
||||
}
|
||||
|
@ -45,8 +45,14 @@ public:
|
||||
qint64 getInputFrequencyOffset();
|
||||
void setInputFrequencyOffset(qint64 input_frequency_offset);
|
||||
|
||||
QString* getPhy();
|
||||
void setPhy(QString* phy);
|
||||
qint32 getModulation();
|
||||
void setModulation(qint32 modulation);
|
||||
|
||||
qint32 getBitRate();
|
||||
void setBitRate(qint32 bit_rate);
|
||||
|
||||
qint32 getSubGHzBand();
|
||||
void setSubGHzBand(qint32 sub_g_hz_band);
|
||||
|
||||
float getRfBandwidth();
|
||||
void setRfBandwidth(float rf_bandwidth);
|
||||
@ -66,17 +72,32 @@ public:
|
||||
qint32 getRepeatCount();
|
||||
void setRepeatCount(qint32 repeat_count);
|
||||
|
||||
qint32 getUdpEnabled();
|
||||
void setUdpEnabled(qint32 udp_enabled);
|
||||
qint32 getRampUpBits();
|
||||
void setRampUpBits(qint32 ramp_up_bits);
|
||||
|
||||
qint32 getMUdpBytesFormat();
|
||||
void setMUdpBytesFormat(qint32 m_udp_bytes_format);
|
||||
qint32 getRampDownBits();
|
||||
void setRampDownBits(qint32 ramp_down_bits);
|
||||
|
||||
QString* getUdpAddress();
|
||||
void setUdpAddress(QString* udp_address);
|
||||
qint32 getRampRange();
|
||||
void setRampRange(qint32 ramp_range);
|
||||
|
||||
qint32 getUdpPort();
|
||||
void setUdpPort(qint32 udp_port);
|
||||
qint32 getModulateWhileRamping();
|
||||
void setModulateWhileRamping(qint32 modulate_while_ramping);
|
||||
|
||||
qint32 getLpfTaps();
|
||||
void setLpfTaps(qint32 lpf_taps);
|
||||
|
||||
qint32 getBbNoise();
|
||||
void setBbNoise(qint32 bb_noise);
|
||||
|
||||
qint32 getWriteToFile();
|
||||
void setWriteToFile(qint32 write_to_file);
|
||||
|
||||
qint32 getSpectrumRate();
|
||||
void setSpectrumRate(qint32 spectrum_rate);
|
||||
|
||||
QString* getData();
|
||||
void setData(QString* data);
|
||||
|
||||
qint32 getRgbColor();
|
||||
void setRgbColor(qint32 rgb_color);
|
||||
@ -102,6 +123,33 @@ public:
|
||||
qint32 getReverseApiChannelIndex();
|
||||
void setReverseApiChannelIndex(qint32 reverse_api_channel_index);
|
||||
|
||||
qint32 getScramble();
|
||||
void setScramble(qint32 scramble);
|
||||
|
||||
qint32 getPolynomial();
|
||||
void setPolynomial(qint32 polynomial);
|
||||
|
||||
qint32 getPulseShaping();
|
||||
void setPulseShaping(qint32 pulse_shaping);
|
||||
|
||||
float getBeta();
|
||||
void setBeta(float beta);
|
||||
|
||||
qint32 getSymbolSpan();
|
||||
void setSymbolSpan(qint32 symbol_span);
|
||||
|
||||
qint32 getUdpEnabled();
|
||||
void setUdpEnabled(qint32 udp_enabled);
|
||||
|
||||
qint32 getUdpBytesFormat();
|
||||
void setUdpBytesFormat(qint32 udp_bytes_format);
|
||||
|
||||
QString* getUdpAddress();
|
||||
void setUdpAddress(QString* udp_address);
|
||||
|
||||
qint32 getUdpPort();
|
||||
void setUdpPort(qint32 udp_port);
|
||||
|
||||
|
||||
virtual bool isSet() override;
|
||||
|
||||
@ -109,8 +157,14 @@ private:
|
||||
qint64 input_frequency_offset;
|
||||
bool m_input_frequency_offset_isSet;
|
||||
|
||||
QString* phy;
|
||||
bool m_phy_isSet;
|
||||
qint32 modulation;
|
||||
bool m_modulation_isSet;
|
||||
|
||||
qint32 bit_rate;
|
||||
bool m_bit_rate_isSet;
|
||||
|
||||
qint32 sub_g_hz_band;
|
||||
bool m_sub_g_hz_band_isSet;
|
||||
|
||||
float rf_bandwidth;
|
||||
bool m_rf_bandwidth_isSet;
|
||||
@ -130,17 +184,32 @@ private:
|
||||
qint32 repeat_count;
|
||||
bool m_repeat_count_isSet;
|
||||
|
||||
qint32 udp_enabled;
|
||||
bool m_udp_enabled_isSet;
|
||||
qint32 ramp_up_bits;
|
||||
bool m_ramp_up_bits_isSet;
|
||||
|
||||
qint32 m_udp_bytes_format;
|
||||
bool m_m_udp_bytes_format_isSet;
|
||||
qint32 ramp_down_bits;
|
||||
bool m_ramp_down_bits_isSet;
|
||||
|
||||
QString* udp_address;
|
||||
bool m_udp_address_isSet;
|
||||
qint32 ramp_range;
|
||||
bool m_ramp_range_isSet;
|
||||
|
||||
qint32 udp_port;
|
||||
bool m_udp_port_isSet;
|
||||
qint32 modulate_while_ramping;
|
||||
bool m_modulate_while_ramping_isSet;
|
||||
|
||||
qint32 lpf_taps;
|
||||
bool m_lpf_taps_isSet;
|
||||
|
||||
qint32 bb_noise;
|
||||
bool m_bb_noise_isSet;
|
||||
|
||||
qint32 write_to_file;
|
||||
bool m_write_to_file_isSet;
|
||||
|
||||
qint32 spectrum_rate;
|
||||
bool m_spectrum_rate_isSet;
|
||||
|
||||
QString* data;
|
||||
bool m_data_isSet;
|
||||
|
||||
qint32 rgb_color;
|
||||
bool m_rgb_color_isSet;
|
||||
@ -166,6 +235,33 @@ private:
|
||||
qint32 reverse_api_channel_index;
|
||||
bool m_reverse_api_channel_index_isSet;
|
||||
|
||||
qint32 scramble;
|
||||
bool m_scramble_isSet;
|
||||
|
||||
qint32 polynomial;
|
||||
bool m_polynomial_isSet;
|
||||
|
||||
qint32 pulse_shaping;
|
||||
bool m_pulse_shaping_isSet;
|
||||
|
||||
float beta;
|
||||
bool m_beta_isSet;
|
||||
|
||||
qint32 symbol_span;
|
||||
bool m_symbol_span_isSet;
|
||||
|
||||
qint32 udp_enabled;
|
||||
bool m_udp_enabled_isSet;
|
||||
|
||||
qint32 udp_bytes_format;
|
||||
bool m_udp_bytes_format_isSet;
|
||||
|
||||
QString* udp_address;
|
||||
bool m_udp_address_isSet;
|
||||
|
||||
qint32 udp_port;
|
||||
bool m_udp_port_isSet;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -140,7 +140,6 @@
|
||||
#include "SWGHackRFInputSettings.h"
|
||||
#include "SWGHackRFOutputSettings.h"
|
||||
#include "SWGIEEE_802_15_4_ModActions.h"
|
||||
#include "SWGIEEE_802_15_4_ModActions_tx.h"
|
||||
#include "SWGIEEE_802_15_4_ModReport.h"
|
||||
#include "SWGIEEE_802_15_4_ModSettings.h"
|
||||
#include "SWGInstanceChannelsResponse.h"
|
||||
@ -938,11 +937,6 @@ namespace SWGSDRangel {
|
||||
obj->init();
|
||||
return obj;
|
||||
}
|
||||
if(QString("SWGIEEE_802_15_4_ModActions_tx").compare(type) == 0) {
|
||||
SWGIEEE_802_15_4_ModActions_tx *obj = new SWGIEEE_802_15_4_ModActions_tx();
|
||||
obj->init();
|
||||
return obj;
|
||||
}
|
||||
if(QString("SWGIEEE_802_15_4_ModReport").compare(type) == 0) {
|
||||
SWGIEEE_802_15_4_ModReport *obj = new SWGIEEE_802_15_4_ModReport();
|
||||
obj->init();
|
||||
|
Loading…
Reference in New Issue
Block a user