1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-11-14 04:03:25 -05:00

ChirpChat demod: added option to change FFT window. Added more narrower bandwidths

This commit is contained in:
f4exb 2020-03-07 11:04:57 +01:00
parent 22a668394e
commit cfe726bcfa
17 changed files with 300 additions and 135 deletions

View File

@ -297,6 +297,9 @@ void ChirpChatDemod::applySettings(const ChirpChatDemodSettings& settings, bool
if ((settings.m_deBits != m_settings.m_deBits) || force) { if ((settings.m_deBits != m_settings.m_deBits) || force) {
reverseAPIKeys.append("deBits"); reverseAPIKeys.append("deBits");
} }
if ((settings.m_fftWindow != m_settings.m_fftWindow) || force) {
reverseAPIKeys.append("fftWindow");
}
if ((settings.m_spreadFactor != m_settings.m_spreadFactor) if ((settings.m_spreadFactor != m_settings.m_spreadFactor)
|| (settings.m_deBits != m_settings.m_deBits) || force) { || (settings.m_deBits != m_settings.m_deBits) || force) {
@ -453,6 +456,9 @@ void ChirpChatDemod::webapiUpdateChannelSettings(
if (channelSettingsKeys.contains("deBits")) { if (channelSettingsKeys.contains("deBits")) {
settings.m_deBits = response.getChirpChatDemodSettings()->getDeBits(); settings.m_deBits = response.getChirpChatDemodSettings()->getDeBits();
} }
if (channelSettingsKeys.contains("fftWindow")) {
settings.m_fftWindow = (FFTWindow::Function) response.getChirpChatDemodSettings()->getFftWindow();
}
if (channelSettingsKeys.contains("codingScheme")) { if (channelSettingsKeys.contains("codingScheme")) {
settings.m_codingScheme = (ChirpChatDemodSettings::CodingScheme) response.getChirpChatDemodSettings()->getCodingScheme(); settings.m_codingScheme = (ChirpChatDemodSettings::CodingScheme) response.getChirpChatDemodSettings()->getCodingScheme();
} }
@ -537,6 +543,7 @@ void ChirpChatDemod::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings
response.getChirpChatDemodSettings()->setBandwidthIndex(settings.m_bandwidthIndex); response.getChirpChatDemodSettings()->setBandwidthIndex(settings.m_bandwidthIndex);
response.getChirpChatDemodSettings()->setSpreadFactor(settings.m_spreadFactor); response.getChirpChatDemodSettings()->setSpreadFactor(settings.m_spreadFactor);
response.getChirpChatDemodSettings()->setDeBits(settings.m_deBits); response.getChirpChatDemodSettings()->setDeBits(settings.m_deBits);
response.getChirpChatDemodSettings()->setFftWindow((int) settings.m_fftWindow);
response.getChirpChatDemodSettings()->setCodingScheme((int) settings.m_codingScheme); response.getChirpChatDemodSettings()->setCodingScheme((int) settings.m_codingScheme);
response.getChirpChatDemodSettings()->setDecodeActive(settings.m_decodeActive ? 1 : 0); response.getChirpChatDemodSettings()->setDecodeActive(settings.m_decodeActive ? 1 : 0);
response.getChirpChatDemodSettings()->setEomSquelchTenths(settings.m_eomSquelchTenths); response.getChirpChatDemodSettings()->setEomSquelchTenths(settings.m_eomSquelchTenths);
@ -629,6 +636,9 @@ void ChirpChatDemod::webapiReverseSendSettings(QList<QString>& channelSettingsKe
if (channelSettingsKeys.contains("deBits") || force) { if (channelSettingsKeys.contains("deBits") || force) {
swgChirpChatDemodSettings->setDeBits(settings.m_deBits); swgChirpChatDemodSettings->setDeBits(settings.m_deBits);
} }
if (channelSettingsKeys.contains("fftWindow") || force) {
swgChirpChatDemodSettings->setFftWindow((int) settings.m_fftWindow);
}
if (channelSettingsKeys.contains("codingScheme") || force) { if (channelSettingsKeys.contains("codingScheme") || force) {
swgChirpChatDemodSettings->setCodingScheme((int) settings.m_codingScheme); swgChirpChatDemodSettings->setCodingScheme((int) settings.m_codingScheme);
} }

View File

@ -211,6 +211,12 @@ void ChirpChatDemodGUI::on_deBits_valueChanged(int value)
applySettings(); applySettings();
} }
void ChirpChatDemodGUI::on_fftWindow_currentIndexChanged(int index)
{
m_settings.m_fftWindow = (FFTWindow::Function) index;
applySettings();
}
void ChirpChatDemodGUI::on_preambleChirps_valueChanged(int value) void ChirpChatDemodGUI::on_preambleChirps_valueChanged(int value)
{ {
m_settings.m_preambleChirps = value; m_settings.m_preambleChirps = value;
@ -484,6 +490,7 @@ void ChirpChatDemodGUI::displaySettings()
ui->Spread->setValue(m_settings.m_spreadFactor); ui->Spread->setValue(m_settings.m_spreadFactor);
ui->SpreadText->setText(tr("%1").arg(m_settings.m_spreadFactor)); ui->SpreadText->setText(tr("%1").arg(m_settings.m_spreadFactor));
ui->deBits->setValue(m_settings.m_deBits); ui->deBits->setValue(m_settings.m_deBits);
ui->fftWindow->setCurrentIndex((int) m_settings.m_fftWindow);
ui->deBitsText->setText(tr("%1").arg(m_settings.m_deBits)); ui->deBitsText->setText(tr("%1").arg(m_settings.m_deBits));
ui->preambleChirps->setValue(m_settings.m_preambleChirps); ui->preambleChirps->setValue(m_settings.m_preambleChirps);
ui->preambleChirpsText->setText(tr("%1").arg(m_settings.m_preambleChirps)); ui->preambleChirpsText->setText(tr("%1").arg(m_settings.m_preambleChirps));

View File

@ -59,6 +59,7 @@ private slots:
void on_BW_valueChanged(int value); void on_BW_valueChanged(int value);
void on_Spread_valueChanged(int value); void on_Spread_valueChanged(int value);
void on_deBits_valueChanged(int value); void on_deBits_valueChanged(int value);
void on_fftWindow_currentIndexChanged(int index);
void on_preambleChirps_valueChanged(int value); void on_preambleChirps_valueChanged(int value);
void on_scheme_currentIndexChanged(int index); void on_scheme_currentIndexChanged(int index);
void on_mute_toggled(bool checked); void on_mute_toggled(bool checked);

View File

@ -59,7 +59,7 @@
<widget class="QLabel" name="spreadLabel"> <widget class="QLabel" name="spreadLabel">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>2</x> <x>130</x>
<y>70</y> <y>70</y>
<width>22</width> <width>22</width>
<height>16</height> <height>16</height>
@ -100,9 +100,9 @@
<widget class="QSlider" name="Spread"> <widget class="QSlider" name="Spread">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>30</x> <x>150</x>
<y>70</y> <y>70</y>
<width>101</width> <width>70</width>
<height>16</height> <height>16</height>
</rect> </rect>
</property> </property>
@ -131,7 +131,7 @@
<widget class="QLabel" name="SpreadText"> <widget class="QLabel" name="SpreadText">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>140</x> <x>220</x>
<y>70</y> <y>70</y>
<width>20</width> <width>20</width>
<height>16</height> <height>16</height>
@ -169,7 +169,7 @@
<widget class="QLabel" name="deBitsLabel"> <widget class="QLabel" name="deBitsLabel">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>190</x> <x>260</x>
<y>70</y> <y>70</y>
<width>22</width> <width>22</width>
<height>16</height> <height>16</height>
@ -182,7 +182,7 @@
<widget class="QLabel" name="deBitsText"> <widget class="QLabel" name="deBitsText">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>320</x> <x>360</x>
<y>70</y> <y>70</y>
<width>15</width> <width>15</width>
<height>16</height> <height>16</height>
@ -204,9 +204,9 @@
<widget class="QSlider" name="deBits"> <widget class="QSlider" name="deBits">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>220</x> <x>290</x>
<y>70</y> <y>70</y>
<width>91</width> <width>70</width>
<height>16</height> <height>16</height>
</rect> </rect>
</property> </property>
@ -340,7 +340,7 @@
<widget class="QLabel" name="preambleChirpsText"> <widget class="QLabel" name="preambleChirpsText">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>480</x> <x>490</x>
<y>70</y> <y>70</y>
<width>20</width> <width>20</width>
<height>16</height> <height>16</height>
@ -362,9 +362,9 @@
<widget class="QLabel" name="preambleChirpsLabel"> <widget class="QLabel" name="preambleChirpsLabel">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>350</x> <x>390</x>
<y>70</y> <y>70</y>
<width>32</width> <width>25</width>
<height>16</height> <height>16</height>
</rect> </rect>
</property> </property>
@ -375,10 +375,10 @@
<widget class="QSlider" name="preambleChirps"> <widget class="QSlider" name="preambleChirps">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>380</x> <x>420</x>
<y>70</y> <y>70</y>
<width>91</width> <width>60</width>
<height>16</height> <height>20</height>
</rect> </rect>
</property> </property>
<property name="toolTip"> <property name="toolTip">
@ -530,6 +530,69 @@
<string>N</string> <string>N</string>
</property> </property>
</widget> </widget>
<widget class="QComboBox" name="fftWindow">
<property name="geometry">
<rect>
<x>50</x>
<y>70</y>
<width>60</width>
<height>18</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>8</pointsize>
</font>
</property>
<item>
<property name="text">
<string>Bart</string>
</property>
</item>
<item>
<property name="text">
<string>B-H</string>
</property>
</item>
<item>
<property name="text">
<string>FT</string>
</property>
</item>
<item>
<property name="text">
<string>Ham</string>
</property>
</item>
<item>
<property name="text">
<string>Han</string>
</property>
</item>
<item>
<property name="text">
<string>Rec</string>
</property>
</item>
<item>
<property name="text">
<string>Kai</string>
</property>
</item>
</widget>
<widget class="QLabel" name="fftWindowLabel">
<property name="geometry">
<rect>
<x>2</x>
<y>70</y>
<width>41</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>FFTW</string>
</property>
</widget>
</widget> </widget>
<widget class="QWidget" name="payloadContainer" native="true"> <widget class="QWidget" name="payloadContainer" native="true">
<property name="geometry"> <property name="geometry">

View File

@ -24,6 +24,9 @@
#include "chirpchatdemodsettings.h" #include "chirpchatdemodsettings.h"
const int ChirpChatDemodSettings::bandwidths[] = { const int ChirpChatDemodSettings::bandwidths[] = {
325, // 384k / 1024
750, // 384k / 512
1500, // 384k / 256
2604, // 333k / 128 2604, // 333k / 128
3125, // 400k / 128 3125, // 400k / 128
3906, // 500k / 128 3906, // 500k / 128
@ -49,7 +52,7 @@ const int ChirpChatDemodSettings::bandwidths[] = {
400000, // 400k / 1 400000, // 400k / 1
500000 // 500k / 1 500000 // 500k / 1
}; };
const int ChirpChatDemodSettings::nbBandwidths = 3*8; const int ChirpChatDemodSettings::nbBandwidths = 3*8 + 3;
const int ChirpChatDemodSettings::oversampling = 2; const int ChirpChatDemodSettings::oversampling = 2;
ChirpChatDemodSettings::ChirpChatDemodSettings() : ChirpChatDemodSettings::ChirpChatDemodSettings() :
@ -67,6 +70,7 @@ void ChirpChatDemodSettings::resetToDefaults()
m_deBits = 0; m_deBits = 0;
m_codingScheme = CodingLoRa; m_codingScheme = CodingLoRa;
m_decodeActive = true; m_decodeActive = true;
m_fftWindow = FFTWindow::Rectangle;
m_eomSquelchTenths = 60; m_eomSquelchTenths = 60;
m_nbSymbolsMax = 255; m_nbSymbolsMax = 255;
m_preambleChirps = 8; m_preambleChirps = 8;
@ -113,6 +117,7 @@ QByteArray ChirpChatDemodSettings::serialize() const
s.writeBool(14, m_hasCRC); s.writeBool(14, m_hasCRC);
s.writeBool(15, m_hasHeader); s.writeBool(15, m_hasHeader);
s.writeS32(17, m_preambleChirps); s.writeS32(17, m_preambleChirps);
s.writeS32(18, (int) m_fftWindow);
s.writeBool(20, m_useReverseAPI); s.writeBool(20, m_useReverseAPI);
s.writeString(21, m_reverseAPIAddress); s.writeString(21, m_reverseAPIAddress);
s.writeU32(22, m_reverseAPIPort); s.writeU32(22, m_reverseAPIPort);
@ -168,7 +173,8 @@ bool ChirpChatDemodSettings::deserialize(const QByteArray& data)
d.readBool(14, &m_hasCRC, true); d.readBool(14, &m_hasCRC, true);
d.readBool(15, &m_hasHeader, true); d.readBool(15, &m_hasHeader, true);
d.readS32(17, &m_preambleChirps, 8); d.readS32(17, &m_preambleChirps, 8);
d.readS32(18, &tmp, (int) FFTWindow::Rectangle);
m_fftWindow = (FFTWindow::Function) tmp;
d.readBool(20, &m_useReverseAPI, false); d.readBool(20, &m_useReverseAPI, false);
d.readString(21, &m_reverseAPIAddress, "127.0.0.1"); d.readString(21, &m_reverseAPIAddress, "127.0.0.1");
d.readU32(22, &utmp, 0); d.readU32(22, &utmp, 0);

View File

@ -24,6 +24,8 @@
#include <stdint.h> #include <stdint.h>
#include "dsp/fftwindow.h"
class Serializable; class Serializable;
struct ChirpChatDemodSettings struct ChirpChatDemodSettings
@ -38,7 +40,8 @@ struct ChirpChatDemodSettings
int m_inputFrequencyOffset; int m_inputFrequencyOffset;
int m_bandwidthIndex; int m_bandwidthIndex;
int m_spreadFactor; int m_spreadFactor;
int m_deBits; //!< Low data rate optmize (DE) bits int m_deBits; //!< Low data rate optmize (DE) bits
FFTWindow::Function m_fftWindow;
CodingScheme m_codingScheme; CodingScheme m_codingScheme;
bool m_decodeActive; bool m_decodeActive;
int m_eomSquelchTenths; //!< Squelch factor to trigger end of message (/10) int m_eomSquelchTenths; //!< Squelch factor to trigger end of message (/10)

View File

@ -52,7 +52,7 @@ ChirpChatDemodSink::ChirpChatDemodSink() :
m_fft = FFTEngine::create(); m_fft = FFTEngine::create();
m_fftSFD = FFTEngine::create(); m_fftSFD = FFTEngine::create();
initSF(m_settings.m_spreadFactor, m_settings.m_deBits); initSF(m_settings.m_spreadFactor, m_settings.m_deBits, m_settings.m_fftWindow);
} }
ChirpChatDemodSink::~ChirpChatDemodSink() ChirpChatDemodSink::~ChirpChatDemodSink()
@ -65,7 +65,7 @@ ChirpChatDemodSink::~ChirpChatDemodSink()
delete[] m_spectrumLine; delete[] m_spectrumLine;
} }
void ChirpChatDemodSink::initSF(unsigned int sf, unsigned int deBits) void ChirpChatDemodSink::initSF(unsigned int sf, unsigned int deBits, FFTWindow::Function fftWindow)
{ {
if (m_downChirps) { if (m_downChirps) {
delete[] m_downChirps; delete[] m_downChirps;
@ -84,14 +84,14 @@ void ChirpChatDemodSink::initSF(unsigned int sf, unsigned int deBits)
m_nbSymbolsEff = 1 << (sf - deBits); m_nbSymbolsEff = 1 << (sf - deBits);
m_deLength = 1 << deBits; m_deLength = 1 << deBits;
m_fftLength = m_nbSymbols; m_fftLength = m_nbSymbols;
m_fftWindow.create(fftWindow, m_fftLength);
m_fftWindow.setKaiserAlpha(M_PI);
m_interpolatedFFTLength = m_fftInterpolation*m_fftLength; m_interpolatedFFTLength = m_fftInterpolation*m_fftLength;
m_preambleTolerance = (m_deLength*m_fftInterpolation)/2; m_preambleTolerance = (m_deLength*m_fftInterpolation)/2;
m_fft->configure(m_interpolatedFFTLength, false); m_fft->configure(m_interpolatedFFTLength, false);
m_fftSFD->configure(m_interpolatedFFTLength, false); m_fftSFD->configure(m_interpolatedFFTLength, false);
m_state = ChirpChatStateReset; m_state = ChirpChatStateReset;
m_sfdSkip = m_fftLength / 4; m_sfdSkip = m_fftLength / 4;
m_fftWindow.create(FFTWindow::Function::Kaiser, m_fftLength);
m_fftWindow.setKaiserAlpha(M_PI);
m_downChirps = new Complex[2*m_nbSymbols]; // Each table is 2 chirps long to allow processing from arbitrary offsets. m_downChirps = new Complex[2*m_nbSymbols]; // Each table is 2 chirps long to allow processing from arbitrary offsets.
m_upChirps = new Complex[2*m_nbSymbols]; m_upChirps = new Complex[2*m_nbSymbols];
m_spectrumBuffer = new Complex[m_nbSymbols]; m_spectrumBuffer = new Complex[m_nbSymbols];
@ -233,7 +233,7 @@ void ChirpChatDemodSink::processSample(const Complex& ci)
else if (m_state == ChirpChatStatePreamble) // preamble found look for SFD start else if (m_state == ChirpChatStatePreamble) // preamble found look for SFD start
{ {
m_fft->in()[m_fftCounter] = ci * m_downChirps[m_chirp]; // de-chirp the up ramp m_fft->in()[m_fftCounter] = ci * m_downChirps[m_chirp]; // de-chirp the up ramp
m_fftSFD->in()[m_fftCounter] = ci * m_upChirps[m_chirp]; // de-chiro the down ramp m_fftSFD->in()[m_fftCounter] = ci * m_upChirps[m_chirp]; // de-chirp the down ramp
m_fftCounter++; m_fftCounter++;
if (m_fftCounter == m_fftLength) if (m_fftCounter == m_fftLength)
@ -620,8 +620,9 @@ void ChirpChatDemodSink::applySettings(const ChirpChatDemodSettings& settings, b
<< " force: " << force; << " force: " << force;
if ((settings.m_spreadFactor != m_settings.m_spreadFactor) if ((settings.m_spreadFactor != m_settings.m_spreadFactor)
|| (settings.m_deBits != m_settings.m_deBits) || force) { || (settings.m_deBits != m_settings.m_deBits)
initSF(settings.m_spreadFactor, settings.m_deBits); || (settings.m_fftWindow != m_settings.m_fftWindow) || force) {
initSF(settings.m_spreadFactor, settings.m_deBits, settings.m_fftWindow);
} }
m_settings = settings; m_settings = settings;

View File

@ -115,7 +115,7 @@ private:
int m_preambleTolerance; //!< Number of FFT bins to collate when looking for preamble int m_preambleTolerance; //!< Number of FFT bins to collate when looking for preamble
void processSample(const Complex& ci); void processSample(const Complex& ci);
void initSF(unsigned int sf, unsigned int deBits); //!< Init tables, FFTs, depending on spread factor void initSF(unsigned int sf, unsigned int deBits, FFTWindow::Function fftWindow); //!< Init tables, FFTs, depending on spread factor
void reset(); void reset();
unsigned int argmax( unsigned int argmax(
const Complex *fftBins, const Complex *fftBins,

View File

@ -24,6 +24,9 @@
#include "chirpchatmodsettings.h" #include "chirpchatmodsettings.h"
const int ChirpChatModSettings::bandwidths[] = { const int ChirpChatModSettings::bandwidths[] = {
325, // 384k / 1024
750, // 384k / 512
1500, // 384k / 256
2604, // 333k / 128 2604, // 333k / 128
3125, // 400k / 128 3125, // 400k / 128
3906, // 500k / 128 3906, // 500k / 128
@ -49,7 +52,7 @@ const int ChirpChatModSettings::bandwidths[] = {
400000, // 400k / 1 400000, // 400k / 1
500000 // 500k / 1 500000 // 500k / 1
}; };
const int ChirpChatModSettings::nbBandwidths = 3*8; const int ChirpChatModSettings::nbBandwidths = 3*8 + 3;
const int ChirpChatModSettings::oversampling = 4; const int ChirpChatModSettings::oversampling = 4;
ChirpChatModSettings::ChirpChatModSettings() : ChirpChatModSettings::ChirpChatModSettings() :

View File

@ -2435,7 +2435,7 @@ margin-bottom: 20px;
}, },
"bandwidthIndex" : { "bandwidthIndex" : {
"type" : "integer", "type" : "integer",
"description" : "standard bandwidths index:\n * 0 - 2604 Hz (333333 / 128)\n * 1 - 3125 Hz (400000 / 128)\n * 2 - 3906 Hz (500000 / 128)\n * 3 - 5208 Hz (333333 / 64)\n * 4 - 6250 Hz (400000 / 64)\n * 5 - 7813 Hz (500000 / 64)\n * 6 - 10417 Hz (333333 / 32)\n * 7 - 12500 Hz (400000 / 32)\n * 8 - 15625 Hz (500000 / 32)\n * 9 - 20833 Hz (333333 / 16)\n * 10 - 25000 Hz (400000 / 16)\n * 11 - 31250 Hz (500000 / 16)\n * 12 - 41667 Hz (333333 / 8)\n * 13 - 50000 Hz (400000 / 8)\n * 14 - 62500 Hz (500000 / 8)\n * 15 - 83333 Hz (333333 / 4)\n * 16 - 100000 Hz (400000 / 4)\n * 17 - 125000 Hz (500000 / 4)\n * 18 - 166667 Hz (333333 / 2)\n * 19 - 200000 Hz (400000 / 2)\n * 20 - 250000 Hz (500000 / 2)\n * 21 - 333333 Hz (333333 / 1)\n * 22 - 400000 Hz (400000 / 1)\n * 23 - 500000 Hz (500000 / 1)\n" "description" : "standard bandwidths index:\n * 0 - 375 Hz (384000 / 1024)\n * 1 - 750 Hz (384000 / 512)\n * 2 - 1500 Hz (384000 / 256)\n * 3 - 2604 Hz (333333 / 128)\n * 4 - 3125 Hz (400000 / 128)\n * 5 - 3906 Hz (500000 / 128)\n * 6 - 5208 Hz (333333 / 64)\n * 7 - 6250 Hz (400000 / 64)\n * 8 - 7813 Hz (500000 / 64)\n * 9 - 10417 Hz (333333 / 32)\n * 10 - 12500 Hz (400000 / 32)\n * 11 - 15625 Hz (500000 / 32)\n * 12 - 20833 Hz (333333 / 16)\n * 13 - 25000 Hz (400000 / 16)\n * 14 - 31250 Hz (500000 / 16)\n * 15 - 41667 Hz (333333 / 8)\n * 16 - 50000 Hz (400000 / 8)\n * 17 - 62500 Hz (500000 / 8)\n * 18 - 83333 Hz (333333 / 4)\n * 19 - 100000 Hz (400000 / 4)\n * 20 - 125000 Hz (500000 / 4)\n * 21 - 166667 Hz (333333 / 2)\n * 22 - 200000 Hz (400000 / 2)\n * 23 - 250000 Hz (500000 / 2)\n * 24 - 333333 Hz (333333 / 1)\n * 25 - 400000 Hz (400000 / 1)\n * 26 - 500000 Hz (500000 / 1)\n"
}, },
"spreadFactor" : { "spreadFactor" : {
"type" : "integer" "type" : "integer"
@ -2444,9 +2444,13 @@ margin-bottom: 20px;
"type" : "integer", "type" : "integer",
"description" : "Low data rate optmize (DE) bits i.e. nb of FFT bins per effective symbol" "description" : "Low data rate optmize (DE) bits i.e. nb of FFT bins per effective symbol"
}, },
"fftWindow" : {
"type" : "integer",
"description" : "FFT Window index (FFTWindow::Function):\n * 0 - Bartlett\n * 1 - BlackmanHarris\n * 2 - Flattop\n * 3 - Hamming\n * 4 - Hanning\n * 5 - Rectangle\n * 6 - Kaiser\n"
},
"codingScheme" : { "codingScheme" : {
"type" : "integer", "type" : "integer",
"description" : "message encoding scheme (LoRaModSettings::CodingScheme):\n * 0 - LoRa\n * 1 - Plain ASCII (7 bit)\n * 2 - Teletype (5 bit Baudot) a.k.a TTY\n" "description" : "message encoding scheme (ChirpChatDemodSettings::CodingScheme):\n * 0 - LoRa\n * 1 - Plain ASCII (7 bit)\n * 2 - Teletype (5 bit Baudot) a.k.a TTY\n"
}, },
"decodeActive" : { "decodeActive" : {
"type" : "integer", "type" : "integer",
@ -2561,7 +2565,7 @@ margin-bottom: 20px;
}, },
"bandwidthIndex" : { "bandwidthIndex" : {
"type" : "integer", "type" : "integer",
"description" : "standard bandwidths index:\n * 0 - 2604 Hz (333333 / 128)\n * 1 - 3125 Hz (400000 / 128)\n * 2 - 3906 Hz (500000 / 128)\n * 3 - 5208 Hz (333333 / 64)\n * 4 - 6250 Hz (400000 / 64)\n * 5 - 7813 Hz (500000 / 64)\n * 6 - 10417 Hz (333333 / 32)\n * 7 - 12500 Hz (400000 / 32)\n * 8 - 15625 Hz (500000 / 32)\n * 9 - 20833 Hz (333333 / 16)\n * 10 - 25000 Hz (400000 / 16)\n * 11 - 31250 Hz (500000 / 16)\n * 12 - 41667 Hz (333333 / 8)\n * 13 - 50000 Hz (400000 / 8)\n * 14 - 62500 Hz (500000 / 8)\n * 15 - 83333 Hz (333333 / 4)\n * 16 - 100000 Hz (400000 / 4)\n * 17 - 125000 Hz (500000 / 4)\n * 18 - 166667 Hz (333333 / 2)\n * 19 - 200000 Hz (400000 / 2)\n * 20 - 250000 Hz (500000 / 2)\n * 21 - 333333 Hz (333333 / 1)\n * 22 - 400000 Hz (400000 / 1)\n * 23 - 500000 Hz (500000 / 1)\n" "description" : "standard bandwidths index:\n * 0 - 375 Hz (384000 / 1024)\n * 1 - 750 Hz (384000 / 512)\n * 2 - 1500 Hz (384000 / 256)\n * 3 - 2604 Hz (333333 / 128)\n * 4 - 3125 Hz (400000 / 128)\n * 5 - 3906 Hz (500000 / 128)\n * 6 - 5208 Hz (333333 / 64)\n * 7 - 6250 Hz (400000 / 64)\n * 8 - 7813 Hz (500000 / 64)\n * 9 - 10417 Hz (333333 / 32)\n * 10 - 12500 Hz (400000 / 32)\n * 11 - 15625 Hz (500000 / 32)\n * 12 - 20833 Hz (333333 / 16)\n * 13 - 25000 Hz (400000 / 16)\n * 14 - 31250 Hz (500000 / 16)\n * 15 - 41667 Hz (333333 / 8)\n * 16 - 50000 Hz (400000 / 8)\n * 17 - 62500 Hz (500000 / 8)\n * 18 - 83333 Hz (333333 / 4)\n * 19 - 100000 Hz (400000 / 4)\n * 20 - 125000 Hz (500000 / 4)\n * 21 - 166667 Hz (333333 / 2)\n * 22 - 200000 Hz (400000 / 2)\n * 23 - 250000 Hz (500000 / 2)\n * 24 - 333333 Hz (333333 / 1)\n * 25 - 400000 Hz (400000 / 1)\n * 26 - 500000 Hz (500000 / 1)\n"
}, },
"spreadFactor" : { "spreadFactor" : {
"type" : "integer" "type" : "integer"
@ -2588,7 +2592,7 @@ margin-bottom: 20px;
}, },
"codingScheme" : { "codingScheme" : {
"type" : "integer", "type" : "integer",
"description" : "message encoding scheme (LoRaModSettings::CodingScheme):\n * 0 - LoRa\n * 1 - Plain ASCII (7 bit)\n * 2 - Teletype (5 bit Baudot) a.k.a TTY\n" "description" : "message encoding scheme (ChirpChatModSettings::CodingScheme):\n * 0 - LoRa\n * 1 - Plain ASCII (7 bit)\n * 2 - Teletype (5 bit Baudot) a.k.a TTY\n"
}, },
"nbParityBits" : { "nbParityBits" : {
"type" : "integer", "type" : "integer",
@ -2620,7 +2624,7 @@ margin-bottom: 20px;
}, },
"messageType" : { "messageType" : {
"type" : "integer", "type" : "integer",
"description" : "type of message to send (LoRaModSettings::MessageType):\n * 0 - No message i.e no output. Use this as a transition to resend the same message.\n * 1 - Beacon. Sends message specified in beaconMessage\n * 2 - CQ call. Sends message specified in cqMessage\n * 3 - Reply to CQ call. Sends message specified in replyMessage\n * 4 - Report to callee. Sends message specified in reportMessage\n * 5 - Report to caller. Sends message specified in replyReportMessage\n * 6 - RRR to callee. Sends message specified in rrrMessage\n * 7 - 73 to caller. Sends message specified in message73\n * 8 - Random message with callsigns. Sends message specified in qsoTextMessage\n * 9 - Plain text. Sends message specified in textMessage\n * 10 - Binary payload. Sends bytes specified in bytesMessage\n" "description" : "type of message to send (ChirpChatModSettings::MessageType):\n * 0 - No message i.e no output. Use this as a transition to resend the same message.\n * 1 - Beacon. Sends message specified in beaconMessage\n * 2 - CQ call. Sends message specified in cqMessage\n * 3 - Reply to CQ call. Sends message specified in replyMessage\n * 4 - Report to callee. Sends message specified in reportMessage\n * 5 - Report to caller. Sends message specified in replyReportMessage\n * 6 - RRR to callee. Sends message specified in rrrMessage\n * 7 - 73 to caller. Sends message specified in message73\n * 8 - Random message with callsigns. Sends message specified in qsoTextMessage\n * 9 - Plain text. Sends message specified in textMessage\n * 10 - Binary payload. Sends bytes specified in bytesMessage\n"
}, },
"beaconMessage" : { "beaconMessage" : {
"type" : "string", "type" : "string",
@ -32618,7 +32622,7 @@ except ApiException as e:
</div> </div>
<div id="generator"> <div id="generator">
<div class="content"> <div class="content">
Generated 2020-03-03T23:14:21.625+01:00 Generated 2020-03-07T09:49:57.763+01:00
</div> </div>
</div> </div>
</div> </div>

View File

@ -8,39 +8,53 @@ ChirpChatDemodSettings:
type: integer type: integer
description: > description: >
standard bandwidths index: standard bandwidths index:
* 0 - 2604 Hz (333333 / 128) * 0 - 375 Hz (384000 / 1024)
* 1 - 3125 Hz (400000 / 128) * 1 - 750 Hz (384000 / 512)
* 2 - 3906 Hz (500000 / 128) * 2 - 1500 Hz (384000 / 256)
* 3 - 5208 Hz (333333 / 64) * 3 - 2604 Hz (333333 / 128)
* 4 - 6250 Hz (400000 / 64) * 4 - 3125 Hz (400000 / 128)
* 5 - 7813 Hz (500000 / 64) * 5 - 3906 Hz (500000 / 128)
* 6 - 10417 Hz (333333 / 32) * 6 - 5208 Hz (333333 / 64)
* 7 - 12500 Hz (400000 / 32) * 7 - 6250 Hz (400000 / 64)
* 8 - 15625 Hz (500000 / 32) * 8 - 7813 Hz (500000 / 64)
* 9 - 20833 Hz (333333 / 16) * 9 - 10417 Hz (333333 / 32)
* 10 - 25000 Hz (400000 / 16) * 10 - 12500 Hz (400000 / 32)
* 11 - 31250 Hz (500000 / 16) * 11 - 15625 Hz (500000 / 32)
* 12 - 41667 Hz (333333 / 8) * 12 - 20833 Hz (333333 / 16)
* 13 - 50000 Hz (400000 / 8) * 13 - 25000 Hz (400000 / 16)
* 14 - 62500 Hz (500000 / 8) * 14 - 31250 Hz (500000 / 16)
* 15 - 83333 Hz (333333 / 4) * 15 - 41667 Hz (333333 / 8)
* 16 - 100000 Hz (400000 / 4) * 16 - 50000 Hz (400000 / 8)
* 17 - 125000 Hz (500000 / 4) * 17 - 62500 Hz (500000 / 8)
* 18 - 166667 Hz (333333 / 2) * 18 - 83333 Hz (333333 / 4)
* 19 - 200000 Hz (400000 / 2) * 19 - 100000 Hz (400000 / 4)
* 20 - 250000 Hz (500000 / 2) * 20 - 125000 Hz (500000 / 4)
* 21 - 333333 Hz (333333 / 1) * 21 - 166667 Hz (333333 / 2)
* 22 - 400000 Hz (400000 / 1) * 22 - 200000 Hz (400000 / 2)
* 23 - 500000 Hz (500000 / 1) * 23 - 250000 Hz (500000 / 2)
* 24 - 333333 Hz (333333 / 1)
* 25 - 400000 Hz (400000 / 1)
* 26 - 500000 Hz (500000 / 1)
spreadFactor: spreadFactor:
type: integer type: integer
deBits: deBits:
description: Low data rate optmize (DE) bits i.e. nb of FFT bins per effective symbol description: Low data rate optmize (DE) bits i.e. nb of FFT bins per effective symbol
type: integer type: integer
fftWindow:
type: integer
description: >
FFT Window index (FFTWindow::Function):
* 0 - Bartlett
* 1 - BlackmanHarris
* 2 - Flattop
* 3 - Hamming
* 4 - Hanning
* 5 - Rectangle
* 6 - Kaiser
codingScheme: codingScheme:
type: integer type: integer
description: > description: >
message encoding scheme (ChirpChatModSettings::CodingScheme): message encoding scheme (ChirpChatDemodSettings::CodingScheme):
* 0 - LoRa * 0 - LoRa
* 1 - Plain ASCII (7 bit) * 1 - Plain ASCII (7 bit)
* 2 - Teletype (5 bit Baudot) a.k.a TTY * 2 - Teletype (5 bit Baudot) a.k.a TTY

View File

@ -8,30 +8,33 @@ ChirpChatModSettings:
type: integer type: integer
description: > description: >
standard bandwidths index: standard bandwidths index:
* 0 - 2604 Hz (333333 / 128) * 0 - 375 Hz (384000 / 1024)
* 1 - 3125 Hz (400000 / 128) * 1 - 750 Hz (384000 / 512)
* 2 - 3906 Hz (500000 / 128) * 2 - 1500 Hz (384000 / 256)
* 3 - 5208 Hz (333333 / 64) * 3 - 2604 Hz (333333 / 128)
* 4 - 6250 Hz (400000 / 64) * 4 - 3125 Hz (400000 / 128)
* 5 - 7813 Hz (500000 / 64) * 5 - 3906 Hz (500000 / 128)
* 6 - 10417 Hz (333333 / 32) * 6 - 5208 Hz (333333 / 64)
* 7 - 12500 Hz (400000 / 32) * 7 - 6250 Hz (400000 / 64)
* 8 - 15625 Hz (500000 / 32) * 8 - 7813 Hz (500000 / 64)
* 9 - 20833 Hz (333333 / 16) * 9 - 10417 Hz (333333 / 32)
* 10 - 25000 Hz (400000 / 16) * 10 - 12500 Hz (400000 / 32)
* 11 - 31250 Hz (500000 / 16) * 11 - 15625 Hz (500000 / 32)
* 12 - 41667 Hz (333333 / 8) * 12 - 20833 Hz (333333 / 16)
* 13 - 50000 Hz (400000 / 8) * 13 - 25000 Hz (400000 / 16)
* 14 - 62500 Hz (500000 / 8) * 14 - 31250 Hz (500000 / 16)
* 15 - 83333 Hz (333333 / 4) * 15 - 41667 Hz (333333 / 8)
* 16 - 100000 Hz (400000 / 4) * 16 - 50000 Hz (400000 / 8)
* 17 - 125000 Hz (500000 / 4) * 17 - 62500 Hz (500000 / 8)
* 18 - 166667 Hz (333333 / 2) * 18 - 83333 Hz (333333 / 4)
* 19 - 200000 Hz (400000 / 2) * 19 - 100000 Hz (400000 / 4)
* 20 - 250000 Hz (500000 / 2) * 20 - 125000 Hz (500000 / 4)
* 21 - 333333 Hz (333333 / 1) * 21 - 166667 Hz (333333 / 2)
* 22 - 400000 Hz (400000 / 1) * 22 - 200000 Hz (400000 / 2)
* 23 - 500000 Hz (500000 / 1) * 23 - 250000 Hz (500000 / 2)
* 24 - 333333 Hz (333333 / 1)
* 25 - 400000 Hz (400000 / 1)
* 26 - 500000 Hz (500000 / 1)
spreadFactor: spreadFactor:
type: integer type: integer
deBits: deBits:

View File

@ -8,35 +8,49 @@ ChirpChatDemodSettings:
type: integer type: integer
description: > description: >
standard bandwidths index: standard bandwidths index:
* 0 - 2604 Hz (333333 / 128) * 0 - 375 Hz (384000 / 1024)
* 1 - 3125 Hz (400000 / 128) * 1 - 750 Hz (384000 / 512)
* 2 - 3906 Hz (500000 / 128) * 2 - 1500 Hz (384000 / 256)
* 3 - 5208 Hz (333333 / 64) * 3 - 2604 Hz (333333 / 128)
* 4 - 6250 Hz (400000 / 64) * 4 - 3125 Hz (400000 / 128)
* 5 - 7813 Hz (500000 / 64) * 5 - 3906 Hz (500000 / 128)
* 6 - 10417 Hz (333333 / 32) * 6 - 5208 Hz (333333 / 64)
* 7 - 12500 Hz (400000 / 32) * 7 - 6250 Hz (400000 / 64)
* 8 - 15625 Hz (500000 / 32) * 8 - 7813 Hz (500000 / 64)
* 9 - 20833 Hz (333333 / 16) * 9 - 10417 Hz (333333 / 32)
* 10 - 25000 Hz (400000 / 16) * 10 - 12500 Hz (400000 / 32)
* 11 - 31250 Hz (500000 / 16) * 11 - 15625 Hz (500000 / 32)
* 12 - 41667 Hz (333333 / 8) * 12 - 20833 Hz (333333 / 16)
* 13 - 50000 Hz (400000 / 8) * 13 - 25000 Hz (400000 / 16)
* 14 - 62500 Hz (500000 / 8) * 14 - 31250 Hz (500000 / 16)
* 15 - 83333 Hz (333333 / 4) * 15 - 41667 Hz (333333 / 8)
* 16 - 100000 Hz (400000 / 4) * 16 - 50000 Hz (400000 / 8)
* 17 - 125000 Hz (500000 / 4) * 17 - 62500 Hz (500000 / 8)
* 18 - 166667 Hz (333333 / 2) * 18 - 83333 Hz (333333 / 4)
* 19 - 200000 Hz (400000 / 2) * 19 - 100000 Hz (400000 / 4)
* 20 - 250000 Hz (500000 / 2) * 20 - 125000 Hz (500000 / 4)
* 21 - 333333 Hz (333333 / 1) * 21 - 166667 Hz (333333 / 2)
* 22 - 400000 Hz (400000 / 1) * 22 - 200000 Hz (400000 / 2)
* 23 - 500000 Hz (500000 / 1) * 23 - 250000 Hz (500000 / 2)
* 24 - 333333 Hz (333333 / 1)
* 25 - 400000 Hz (400000 / 1)
* 26 - 500000 Hz (500000 / 1)
spreadFactor: spreadFactor:
type: integer type: integer
deBits: deBits:
description: Low data rate optmize (DE) bits i.e. nb of FFT bins per effective symbol description: Low data rate optmize (DE) bits i.e. nb of FFT bins per effective symbol
type: integer type: integer
fftWindow:
type: integer
description: >
FFT Window index (FFTWindow::Function):
* 0 - Bartlett
* 1 - BlackmanHarris
* 2 - Flattop
* 3 - Hamming
* 4 - Hanning
* 5 - Rectangle
* 6 - Kaiser
codingScheme: codingScheme:
type: integer type: integer
description: > description: >

View File

@ -8,30 +8,33 @@ ChirpChatModSettings:
type: integer type: integer
description: > description: >
standard bandwidths index: standard bandwidths index:
* 0 - 2604 Hz (333333 / 128) * 0 - 375 Hz (384000 / 1024)
* 1 - 3125 Hz (400000 / 128) * 1 - 750 Hz (384000 / 512)
* 2 - 3906 Hz (500000 / 128) * 2 - 1500 Hz (384000 / 256)
* 3 - 5208 Hz (333333 / 64) * 3 - 2604 Hz (333333 / 128)
* 4 - 6250 Hz (400000 / 64) * 4 - 3125 Hz (400000 / 128)
* 5 - 7813 Hz (500000 / 64) * 5 - 3906 Hz (500000 / 128)
* 6 - 10417 Hz (333333 / 32) * 6 - 5208 Hz (333333 / 64)
* 7 - 12500 Hz (400000 / 32) * 7 - 6250 Hz (400000 / 64)
* 8 - 15625 Hz (500000 / 32) * 8 - 7813 Hz (500000 / 64)
* 9 - 20833 Hz (333333 / 16) * 9 - 10417 Hz (333333 / 32)
* 10 - 25000 Hz (400000 / 16) * 10 - 12500 Hz (400000 / 32)
* 11 - 31250 Hz (500000 / 16) * 11 - 15625 Hz (500000 / 32)
* 12 - 41667 Hz (333333 / 8) * 12 - 20833 Hz (333333 / 16)
* 13 - 50000 Hz (400000 / 8) * 13 - 25000 Hz (400000 / 16)
* 14 - 62500 Hz (500000 / 8) * 14 - 31250 Hz (500000 / 16)
* 15 - 83333 Hz (333333 / 4) * 15 - 41667 Hz (333333 / 8)
* 16 - 100000 Hz (400000 / 4) * 16 - 50000 Hz (400000 / 8)
* 17 - 125000 Hz (500000 / 4) * 17 - 62500 Hz (500000 / 8)
* 18 - 166667 Hz (333333 / 2) * 18 - 83333 Hz (333333 / 4)
* 19 - 200000 Hz (400000 / 2) * 19 - 100000 Hz (400000 / 4)
* 20 - 250000 Hz (500000 / 2) * 20 - 125000 Hz (500000 / 4)
* 21 - 333333 Hz (333333 / 1) * 21 - 166667 Hz (333333 / 2)
* 22 - 400000 Hz (400000 / 1) * 22 - 200000 Hz (400000 / 2)
* 23 - 500000 Hz (500000 / 1) * 23 - 250000 Hz (500000 / 2)
* 24 - 333333 Hz (333333 / 1)
* 25 - 400000 Hz (400000 / 1)
* 26 - 500000 Hz (500000 / 1)
spreadFactor: spreadFactor:
type: integer type: integer
deBits: deBits:

View File

@ -2435,7 +2435,7 @@ margin-bottom: 20px;
}, },
"bandwidthIndex" : { "bandwidthIndex" : {
"type" : "integer", "type" : "integer",
"description" : "standard bandwidths index:\n * 0 - 2604 Hz (333333 / 128)\n * 1 - 3125 Hz (400000 / 128)\n * 2 - 3906 Hz (500000 / 128)\n * 3 - 5208 Hz (333333 / 64)\n * 4 - 6250 Hz (400000 / 64)\n * 5 - 7813 Hz (500000 / 64)\n * 6 - 10417 Hz (333333 / 32)\n * 7 - 12500 Hz (400000 / 32)\n * 8 - 15625 Hz (500000 / 32)\n * 9 - 20833 Hz (333333 / 16)\n * 10 - 25000 Hz (400000 / 16)\n * 11 - 31250 Hz (500000 / 16)\n * 12 - 41667 Hz (333333 / 8)\n * 13 - 50000 Hz (400000 / 8)\n * 14 - 62500 Hz (500000 / 8)\n * 15 - 83333 Hz (333333 / 4)\n * 16 - 100000 Hz (400000 / 4)\n * 17 - 125000 Hz (500000 / 4)\n * 18 - 166667 Hz (333333 / 2)\n * 19 - 200000 Hz (400000 / 2)\n * 20 - 250000 Hz (500000 / 2)\n * 21 - 333333 Hz (333333 / 1)\n * 22 - 400000 Hz (400000 / 1)\n * 23 - 500000 Hz (500000 / 1)\n" "description" : "standard bandwidths index:\n * 0 - 375 Hz (384000 / 1024)\n * 1 - 750 Hz (384000 / 512)\n * 2 - 1500 Hz (384000 / 256)\n * 3 - 2604 Hz (333333 / 128)\n * 4 - 3125 Hz (400000 / 128)\n * 5 - 3906 Hz (500000 / 128)\n * 6 - 5208 Hz (333333 / 64)\n * 7 - 6250 Hz (400000 / 64)\n * 8 - 7813 Hz (500000 / 64)\n * 9 - 10417 Hz (333333 / 32)\n * 10 - 12500 Hz (400000 / 32)\n * 11 - 15625 Hz (500000 / 32)\n * 12 - 20833 Hz (333333 / 16)\n * 13 - 25000 Hz (400000 / 16)\n * 14 - 31250 Hz (500000 / 16)\n * 15 - 41667 Hz (333333 / 8)\n * 16 - 50000 Hz (400000 / 8)\n * 17 - 62500 Hz (500000 / 8)\n * 18 - 83333 Hz (333333 / 4)\n * 19 - 100000 Hz (400000 / 4)\n * 20 - 125000 Hz (500000 / 4)\n * 21 - 166667 Hz (333333 / 2)\n * 22 - 200000 Hz (400000 / 2)\n * 23 - 250000 Hz (500000 / 2)\n * 24 - 333333 Hz (333333 / 1)\n * 25 - 400000 Hz (400000 / 1)\n * 26 - 500000 Hz (500000 / 1)\n"
}, },
"spreadFactor" : { "spreadFactor" : {
"type" : "integer" "type" : "integer"
@ -2444,9 +2444,13 @@ margin-bottom: 20px;
"type" : "integer", "type" : "integer",
"description" : "Low data rate optmize (DE) bits i.e. nb of FFT bins per effective symbol" "description" : "Low data rate optmize (DE) bits i.e. nb of FFT bins per effective symbol"
}, },
"fftWindow" : {
"type" : "integer",
"description" : "FFT Window index (FFTWindow::Function):\n * 0 - Bartlett\n * 1 - BlackmanHarris\n * 2 - Flattop\n * 3 - Hamming\n * 4 - Hanning\n * 5 - Rectangle\n * 6 - Kaiser\n"
},
"codingScheme" : { "codingScheme" : {
"type" : "integer", "type" : "integer",
"description" : "message encoding scheme (LoRaModSettings::CodingScheme):\n * 0 - LoRa\n * 1 - Plain ASCII (7 bit)\n * 2 - Teletype (5 bit Baudot) a.k.a TTY\n" "description" : "message encoding scheme (ChirpChatDemodSettings::CodingScheme):\n * 0 - LoRa\n * 1 - Plain ASCII (7 bit)\n * 2 - Teletype (5 bit Baudot) a.k.a TTY\n"
}, },
"decodeActive" : { "decodeActive" : {
"type" : "integer", "type" : "integer",
@ -2561,7 +2565,7 @@ margin-bottom: 20px;
}, },
"bandwidthIndex" : { "bandwidthIndex" : {
"type" : "integer", "type" : "integer",
"description" : "standard bandwidths index:\n * 0 - 2604 Hz (333333 / 128)\n * 1 - 3125 Hz (400000 / 128)\n * 2 - 3906 Hz (500000 / 128)\n * 3 - 5208 Hz (333333 / 64)\n * 4 - 6250 Hz (400000 / 64)\n * 5 - 7813 Hz (500000 / 64)\n * 6 - 10417 Hz (333333 / 32)\n * 7 - 12500 Hz (400000 / 32)\n * 8 - 15625 Hz (500000 / 32)\n * 9 - 20833 Hz (333333 / 16)\n * 10 - 25000 Hz (400000 / 16)\n * 11 - 31250 Hz (500000 / 16)\n * 12 - 41667 Hz (333333 / 8)\n * 13 - 50000 Hz (400000 / 8)\n * 14 - 62500 Hz (500000 / 8)\n * 15 - 83333 Hz (333333 / 4)\n * 16 - 100000 Hz (400000 / 4)\n * 17 - 125000 Hz (500000 / 4)\n * 18 - 166667 Hz (333333 / 2)\n * 19 - 200000 Hz (400000 / 2)\n * 20 - 250000 Hz (500000 / 2)\n * 21 - 333333 Hz (333333 / 1)\n * 22 - 400000 Hz (400000 / 1)\n * 23 - 500000 Hz (500000 / 1)\n" "description" : "standard bandwidths index:\n * 0 - 375 Hz (384000 / 1024)\n * 1 - 750 Hz (384000 / 512)\n * 2 - 1500 Hz (384000 / 256)\n * 3 - 2604 Hz (333333 / 128)\n * 4 - 3125 Hz (400000 / 128)\n * 5 - 3906 Hz (500000 / 128)\n * 6 - 5208 Hz (333333 / 64)\n * 7 - 6250 Hz (400000 / 64)\n * 8 - 7813 Hz (500000 / 64)\n * 9 - 10417 Hz (333333 / 32)\n * 10 - 12500 Hz (400000 / 32)\n * 11 - 15625 Hz (500000 / 32)\n * 12 - 20833 Hz (333333 / 16)\n * 13 - 25000 Hz (400000 / 16)\n * 14 - 31250 Hz (500000 / 16)\n * 15 - 41667 Hz (333333 / 8)\n * 16 - 50000 Hz (400000 / 8)\n * 17 - 62500 Hz (500000 / 8)\n * 18 - 83333 Hz (333333 / 4)\n * 19 - 100000 Hz (400000 / 4)\n * 20 - 125000 Hz (500000 / 4)\n * 21 - 166667 Hz (333333 / 2)\n * 22 - 200000 Hz (400000 / 2)\n * 23 - 250000 Hz (500000 / 2)\n * 24 - 333333 Hz (333333 / 1)\n * 25 - 400000 Hz (400000 / 1)\n * 26 - 500000 Hz (500000 / 1)\n"
}, },
"spreadFactor" : { "spreadFactor" : {
"type" : "integer" "type" : "integer"
@ -2588,7 +2592,7 @@ margin-bottom: 20px;
}, },
"codingScheme" : { "codingScheme" : {
"type" : "integer", "type" : "integer",
"description" : "message encoding scheme (LoRaModSettings::CodingScheme):\n * 0 - LoRa\n * 1 - Plain ASCII (7 bit)\n * 2 - Teletype (5 bit Baudot) a.k.a TTY\n" "description" : "message encoding scheme (ChirpChatModSettings::CodingScheme):\n * 0 - LoRa\n * 1 - Plain ASCII (7 bit)\n * 2 - Teletype (5 bit Baudot) a.k.a TTY\n"
}, },
"nbParityBits" : { "nbParityBits" : {
"type" : "integer", "type" : "integer",
@ -2620,7 +2624,7 @@ margin-bottom: 20px;
}, },
"messageType" : { "messageType" : {
"type" : "integer", "type" : "integer",
"description" : "type of message to send (LoRaModSettings::MessageType):\n * 0 - No message i.e no output. Use this as a transition to resend the same message.\n * 1 - Beacon. Sends message specified in beaconMessage\n * 2 - CQ call. Sends message specified in cqMessage\n * 3 - Reply to CQ call. Sends message specified in replyMessage\n * 4 - Report to callee. Sends message specified in reportMessage\n * 5 - Report to caller. Sends message specified in replyReportMessage\n * 6 - RRR to callee. Sends message specified in rrrMessage\n * 7 - 73 to caller. Sends message specified in message73\n * 8 - Random message with callsigns. Sends message specified in qsoTextMessage\n * 9 - Plain text. Sends message specified in textMessage\n * 10 - Binary payload. Sends bytes specified in bytesMessage\n" "description" : "type of message to send (ChirpChatModSettings::MessageType):\n * 0 - No message i.e no output. Use this as a transition to resend the same message.\n * 1 - Beacon. Sends message specified in beaconMessage\n * 2 - CQ call. Sends message specified in cqMessage\n * 3 - Reply to CQ call. Sends message specified in replyMessage\n * 4 - Report to callee. Sends message specified in reportMessage\n * 5 - Report to caller. Sends message specified in replyReportMessage\n * 6 - RRR to callee. Sends message specified in rrrMessage\n * 7 - 73 to caller. Sends message specified in message73\n * 8 - Random message with callsigns. Sends message specified in qsoTextMessage\n * 9 - Plain text. Sends message specified in textMessage\n * 10 - Binary payload. Sends bytes specified in bytesMessage\n"
}, },
"beaconMessage" : { "beaconMessage" : {
"type" : "string", "type" : "string",
@ -32618,7 +32622,7 @@ except ApiException as e:
</div> </div>
<div id="generator"> <div id="generator">
<div class="content"> <div class="content">
Generated 2020-03-03T23:14:21.625+01:00 Generated 2020-03-07T09:49:57.763+01:00
</div> </div>
</div> </div>
</div> </div>

View File

@ -36,6 +36,8 @@ SWGChirpChatDemodSettings::SWGChirpChatDemodSettings() {
m_spread_factor_isSet = false; m_spread_factor_isSet = false;
de_bits = 0; de_bits = 0;
m_de_bits_isSet = false; m_de_bits_isSet = false;
fft_window = 0;
m_fft_window_isSet = false;
coding_scheme = 0; coding_scheme = 0;
m_coding_scheme_isSet = false; m_coding_scheme_isSet = false;
decode_active = 0; decode_active = 0;
@ -94,6 +96,8 @@ SWGChirpChatDemodSettings::init() {
m_spread_factor_isSet = false; m_spread_factor_isSet = false;
de_bits = 0; de_bits = 0;
m_de_bits_isSet = false; m_de_bits_isSet = false;
fft_window = 0;
m_fft_window_isSet = false;
coding_scheme = 0; coding_scheme = 0;
m_coding_scheme_isSet = false; m_coding_scheme_isSet = false;
decode_active = 0; decode_active = 0;
@ -155,6 +159,7 @@ SWGChirpChatDemodSettings::cleanup() {
if(udp_address != nullptr) { if(udp_address != nullptr) {
delete udp_address; delete udp_address;
} }
@ -192,6 +197,8 @@ SWGChirpChatDemodSettings::fromJsonObject(QJsonObject &pJson) {
::SWGSDRangel::setValue(&de_bits, pJson["deBits"], "qint32", ""); ::SWGSDRangel::setValue(&de_bits, pJson["deBits"], "qint32", "");
::SWGSDRangel::setValue(&fft_window, pJson["fftWindow"], "qint32", "");
::SWGSDRangel::setValue(&coding_scheme, pJson["codingScheme"], "qint32", ""); ::SWGSDRangel::setValue(&coding_scheme, pJson["codingScheme"], "qint32", "");
::SWGSDRangel::setValue(&decode_active, pJson["decodeActive"], "qint32", ""); ::SWGSDRangel::setValue(&decode_active, pJson["decodeActive"], "qint32", "");
@ -262,6 +269,9 @@ SWGChirpChatDemodSettings::asJsonObject() {
if(m_de_bits_isSet){ if(m_de_bits_isSet){
obj->insert("deBits", QJsonValue(de_bits)); obj->insert("deBits", QJsonValue(de_bits));
} }
if(m_fft_window_isSet){
obj->insert("fftWindow", QJsonValue(fft_window));
}
if(m_coding_scheme_isSet){ if(m_coding_scheme_isSet){
obj->insert("codingScheme", QJsonValue(coding_scheme)); obj->insert("codingScheme", QJsonValue(coding_scheme));
} }
@ -369,6 +379,16 @@ SWGChirpChatDemodSettings::setDeBits(qint32 de_bits) {
this->m_de_bits_isSet = true; this->m_de_bits_isSet = true;
} }
qint32
SWGChirpChatDemodSettings::getFftWindow() {
return fft_window;
}
void
SWGChirpChatDemodSettings::setFftWindow(qint32 fft_window) {
this->fft_window = fft_window;
this->m_fft_window_isSet = true;
}
qint32 qint32
SWGChirpChatDemodSettings::getCodingScheme() { SWGChirpChatDemodSettings::getCodingScheme() {
return coding_scheme; return coding_scheme;
@ -596,6 +616,9 @@ SWGChirpChatDemodSettings::isSet(){
if(m_de_bits_isSet){ if(m_de_bits_isSet){
isObjectUpdated = true; break; isObjectUpdated = true; break;
} }
if(m_fft_window_isSet){
isObjectUpdated = true; break;
}
if(m_coding_scheme_isSet){ if(m_coding_scheme_isSet){
isObjectUpdated = true; break; isObjectUpdated = true; break;
} }

View File

@ -54,6 +54,9 @@ public:
qint32 getDeBits(); qint32 getDeBits();
void setDeBits(qint32 de_bits); void setDeBits(qint32 de_bits);
qint32 getFftWindow();
void setFftWindow(qint32 fft_window);
qint32 getCodingScheme(); qint32 getCodingScheme();
void setCodingScheme(qint32 coding_scheme); void setCodingScheme(qint32 coding_scheme);
@ -133,6 +136,9 @@ private:
qint32 de_bits; qint32 de_bits;
bool m_de_bits_isSet; bool m_de_bits_isSet;
qint32 fft_window;
bool m_fft_window_isSet;
qint32 coding_scheme; qint32 coding_scheme;
bool m_coding_scheme_isSet; bool m_coding_scheme_isSet;