|  | SDRAngel
    4.11.5
    Developer docs for <a href="https://github.com/f4exb/sdrangel">SDRangel<\a>, an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware. | 
#include <lorademod.h>
 Inheritance diagram for LoRaDemod:
 Inheritance diagram for LoRaDemod: Collaboration diagram for LoRaDemod:
 Collaboration diagram for LoRaDemod:| Classes | |
| class | MsgConfigureChannelizer | 
| class | MsgConfigureLoRaDemod | 
| Public Member Functions | |
| LoRaDemod (DeviceAPI *deviceAPI) | |
| virtual | ~LoRaDemod () | 
| virtual void | destroy () | 
| void | setSpectrumSink (BasebandSampleSink *sampleSink) | 
| virtual void | feed (const SampleVector::const_iterator &begin, const SampleVector::const_iterator &end, bool pO) | 
| virtual void | start () | 
| virtual void | stop () | 
| virtual bool | handleMessage (const Message &cmd) | 
| Processing of a message. Returns true if message has actually been processed.  More... | |
| virtual void | getIdentifier (QString &id) | 
| virtual void | getTitle (QString &title) | 
| virtual qint64 | getCenterFrequency () const | 
| Applies to a default stream.  More... | |
| virtual QByteArray | serialize () const | 
| virtual bool | deserialize (const QByteArray &data) | 
| virtual int | getNbSinkStreams () const | 
| virtual int | getNbSourceStreams () const | 
| virtual qint64 | getStreamCenterFrequency (int streamIndex, bool sinkElseSource) const | 
|  Public Member Functions inherited from BasebandSampleSink | |
| BasebandSampleSink () | |
| virtual | ~BasebandSampleSink () | 
| MessageQueue * | getInputMessageQueue () | 
| Get the queue for asynchronous inbound communication.  More... | |
| virtual void | setMessageQueueToGUI (MessageQueue *queue) | 
| MessageQueue * | getMessageQueueToGUI () | 
|  Public Member Functions inherited from ChannelAPI | |
| ChannelAPI (const QString &name, StreamType streamType) | |
| virtual | ~ChannelAPI () | 
| virtual void | setName (const QString &name) | 
| virtual const QString & | getName () const | 
| virtual int | webapiSettingsGet (SWGSDRangel::SWGChannelSettings &response, QString &errorMessage) | 
| virtual int | webapiSettingsPutPatch (bool force, const QStringList &channelSettingsKeys, SWGSDRangel::SWGChannelSettings &response, QString &errorMessage) | 
| virtual int | webapiReportGet (SWGSDRangel::SWGChannelReport &response, QString &errorMessage) | 
| int | getIndexInDeviceSet () const | 
| void | setIndexInDeviceSet (int indexInDeviceSet) | 
| int | getDeviceSetIndex () const | 
| void | setDeviceSetIndex (int deviceSetIndex) | 
| DeviceAPI * | getDeviceAPI () | 
| void | setDeviceAPI (DeviceAPI *deviceAPI) | 
| uint64_t | getUID () const | 
| StreamType | getStreamType () const | 
| Static Public Attributes | |
| static const QString | m_channelIdURI = "sdrangel.channel.lorademod" | 
| static const QString | m_channelId = "LoRaDemod" | 
| Private Member Functions | |
| int | detect (Complex sample, Complex angle) | 
| void | dumpRaw (void) | 
| short | synch (short bin) | 
| short | toGray (short bin) | 
| void | interleave6 (char *inout, int size) | 
| void | hamming6 (char *inout, int size) | 
| void | prng6 (char *inout, int size) | 
| Private Attributes | |
| DeviceAPI * | m_deviceAPI | 
| ThreadedBasebandSampleSink * | m_threadedChannelizer | 
| DownChannelizer * | m_channelizer | 
| LoRaDemodSettings | m_settings | 
| Real | m_Bandwidth | 
| int | m_sampleRate | 
| int | m_frequency | 
| int | m_chirp | 
| int | m_angle | 
| int | m_bin | 
| int | m_result | 
| int | m_count | 
| int | m_header | 
| int | m_time | 
| short | m_tune | 
| sfft * | loraFilter | 
| sfft * | negaFilter | 
| float * | mov | 
| short * | history | 
| short * | finetune | 
| NCO | m_nco | 
| Interpolator | m_interpolator | 
| Real | m_sampleDistanceRemain | 
| BasebandSampleSink * | m_sampleSink | 
| SampleVector | m_sampleBuffer | 
| QMutex | m_settingsMutex | 
| Additional Inherited Members | |
|  Public Types inherited from ChannelAPI | |
| enum | StreamType { StreamSingleSink, StreamSingleSource, StreamMIMO } | 
| < This is the same enum as in PluginInterface  More... | |
|  Protected Slots inherited from BasebandSampleSink | |
| void | handleInputMessages () | 
|  Protected Attributes inherited from BasebandSampleSink | |
| MessageQueue | m_inputMessageQueue | 
| Queue for asynchronous inbound communication.  More... | |
| MessageQueue * | m_guiMessageQueue | 
| Input message queue to the GUI.  More... | |
Definition at line 44 of file lorademod.h.
| LoRaDemod::LoRaDemod | ( | DeviceAPI * | deviceAPI | ) | 
Definition at line 39 of file lorademod.cpp.
References DeviceAPI::addChannelSink(), DeviceAPI::addChannelSinkAPI(), LoRaDemodSettings::bandwidths, Interpolator::create(), finetune, history, LORA_SFFT_LEN, loraFilter, m_angle, m_Bandwidth, m_bin, m_channelId, m_channelizer, m_chirp, m_count, m_deviceAPI, m_frequency, m_header, m_interpolator, m_nco, m_result, m_sampleDistanceRemain, m_sampleRate, m_threadedChannelizer, m_time, m_tune, mov, negaFilter, and NCO::setFreq().
Referenced by LoRaDemod::MsgConfigureChannelizer::MsgConfigureChannelizer().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | virtual | 
Definition at line 76 of file lorademod.cpp.
References finetune, history, loraFilter, m_channelizer, m_deviceAPI, m_threadedChannelizer, mov, negaFilter, DeviceAPI::removeChannelSink(), and DeviceAPI::removeChannelSinkAPI().
Referenced by LoRaDemod::MsgConfigureChannelizer::MsgConfigureChannelizer().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | virtual | 
Implements ChannelAPI.
Definition at line 375 of file lorademod.cpp.
References LoRaDemod::MsgConfigureLoRaDemod::create(), LoRaDemodSettings::deserialize(), BasebandSampleSink::m_inputMessageQueue, m_settings, MessageQueue::push(), and LoRaDemodSettings::resetToDefaults().
Referenced by getCenterFrequency().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | inlinevirtual | 
Definition at line 192 of file lorademod.cpp.
References DATA_BITS, sfft::fetch(), finetune, i, LORA_SFFT_LEN, LORA_SQUELCH, loraFilter, m_count, m_result, m_time, mov, negaFilter, sfft::run(), and synch().
Referenced by feed().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | private | 
Definition at line 95 of file lorademod.cpp.
References hamming6(), history, interleave6(), LORA_SFFT_LEN, m_time, m_tune, leansdr::max(), prng6(), and toGray().
Referenced by synch().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | virtual | 
Implements BasebandSampleSink.
Definition at line 255 of file lorademod.cpp.
References cos(), Interpolator::decimate(), detect(), BasebandSampleSink::feed(), LORA_SFFT_LEN, m_angle, m_Bandwidth, m_bin, m_chirp, m_interpolator, m_nco, M_PI, m_sampleBuffer, m_sampleDistanceRemain, m_sampleRate, m_sampleSink, m_settingsMutex, NCO::nextIQ(), SDR_RX_SCALEF, sin(), and SPREADFACTOR.
Referenced by setSpectrumSink().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | inlinevirtual | 
Applies to a default stream.
Implements ChannelAPI.
Definition at line 104 of file lorademod.h.
References deserialize(), and serialize().
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | inlinevirtual | 
| 
 | inlinevirtual | 
| 
 | inlinevirtual | 
| 
 | inlinevirtual | 
Implements ChannelAPI.
Definition at line 112 of file lorademod.h.
| 
 | inlinevirtual | 
Implements ChannelAPI.
Definition at line 103 of file lorademod.h.
References LoRaDemod::MsgConfigureLoRaDemod::m_settings, and LoRaDemodSettings::m_title.
| 
 | private | 
Definition at line 42 of file lorabits.h.
References i.
Referenced by dumpRaw().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | virtual | 
Processing of a message. Returns true if message has actually been processed.
Implements BasebandSampleSink.
Definition at line 300 of file lorademod.cpp.
References LoRaDemodSettings::bandwidths, DownChannelizer::configure(), Interpolator::create(), LoRaDemod::MsgConfigureChannelizer::getCenterFrequency(), DownChannelizer::MsgChannelizerNotification::getFrequencyOffset(), BasebandSampleSink::getInputMessageQueue(), DownChannelizer::MsgChannelizerNotification::getSampleRate(), LoRaDemod::MsgConfigureChannelizer::getSampleRate(), LoRaDemod::MsgConfigureLoRaDemod::getSettings(), BasebandSampleSink::handleMessage(), m_Bandwidth, LoRaDemodSettings::m_bandwidthIndex, m_channelizer, m_interpolator, m_nco, m_sampleDistanceRemain, m_sampleRate, m_sampleSink, m_settings, m_settingsMutex, Message::match(), and NCO::setFreq().
Referenced by setSpectrumSink().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | private | 
Definition at line 14 of file lorabits.h.
References i.
Referenced by dumpRaw().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | private | 
Definition at line 63 of file lorabits.h.
References i.
Referenced by dumpRaw().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | virtual | 
Implements ChannelAPI.
Definition at line 370 of file lorademod.cpp.
References m_settings, and LoRaDemodSettings::serialize().
Referenced by getCenterFrequency().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | inline | 
Definition at line 95 of file lorademod.h.
References feed(), handleMessage(), m_sampleSink, start(), and stop().
Referenced by LoRaDemodGUI::LoRaDemodGUI().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | virtual | 
Implements BasebandSampleSink.
Definition at line 292 of file lorademod.cpp.
Referenced by setSpectrumSink().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | virtual | 
Implements BasebandSampleSink.
Definition at line 296 of file lorademod.cpp.
Referenced by setSpectrumSink().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | private | 
Definition at line 138 of file lorademod.cpp.
References dumpRaw(), finetune, history, i, LORA_SFFT_LEN, m_time, and m_tune.
Referenced by detect().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | private | 
Definition at line 36 of file lorabits.h.
Referenced by dumpRaw().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | private | 
Definition at line 152 of file lorademod.h.
Referenced by detect(), LoRaDemod(), synch(), and ~LoRaDemod().
| 
 | private | 
Definition at line 151 of file lorademod.h.
Referenced by dumpRaw(), LoRaDemod(), synch(), and ~LoRaDemod().
| 
 | private | 
Definition at line 148 of file lorademod.h.
Referenced by detect(), LoRaDemod(), and ~LoRaDemod().
| 
 | private | 
Definition at line 140 of file lorademod.h.
Referenced by feed(), and LoRaDemod().
| 
 | private | 
Definition at line 136 of file lorademod.h.
Referenced by feed(), handleMessage(), and LoRaDemod().
| 
 | private | 
Definition at line 141 of file lorademod.h.
Referenced by feed(), and LoRaDemod().
| 
 | static | 
Definition at line 120 of file lorademod.h.
Referenced by LoRaPlugin::initPlugin(), and LoRaDemod().
| 
 | static | 
Definition at line 119 of file lorademod.h.
Referenced by LoRaPlugin::initPlugin(), and LoRaDemodGUI::LoRaDemodGUI().
| 
 | private | 
Definition at line 133 of file lorademod.h.
Referenced by handleMessage(), LoRaDemod(), and ~LoRaDemod().
| 
 | private | 
Definition at line 139 of file lorademod.h.
Referenced by feed(), and LoRaDemod().
| 
 | private | 
Definition at line 143 of file lorademod.h.
Referenced by detect(), and LoRaDemod().
| 
 | private | 
Definition at line 131 of file lorademod.h.
Referenced by LoRaDemod(), and ~LoRaDemod().
| 
 | private | 
Definition at line 138 of file lorademod.h.
Referenced by LoRaDemod().
| 
 | private | 
Definition at line 144 of file lorademod.h.
Referenced by LoRaDemod().
| 
 | private | 
Definition at line 155 of file lorademod.h.
Referenced by feed(), handleMessage(), and LoRaDemod().
| 
 | private | 
Definition at line 154 of file lorademod.h.
Referenced by feed(), handleMessage(), and LoRaDemod().
| 
 | private | 
Definition at line 142 of file lorademod.h.
Referenced by detect(), and LoRaDemod().
| 
 | private | 
Definition at line 159 of file lorademod.h.
Referenced by feed().
| 
 | private | 
Definition at line 156 of file lorademod.h.
Referenced by feed(), handleMessage(), and LoRaDemod().
| 
 | private | 
Definition at line 137 of file lorademod.h.
Referenced by feed(), LoRaDemod::MsgConfigureChannelizer::getSampleRate(), handleMessage(), and LoRaDemod().
| 
 | private | 
Definition at line 158 of file lorademod.h.
Referenced by feed(), handleMessage(), and setSpectrumSink().
| 
 | private | 
Definition at line 134 of file lorademod.h.
Referenced by deserialize(), handleMessage(), and serialize().
| 
 | private | 
Definition at line 160 of file lorademod.h.
Referenced by feed(), and handleMessage().
| 
 | private | 
Definition at line 132 of file lorademod.h.
Referenced by LoRaDemod(), and ~LoRaDemod().
| 
 | private | 
Definition at line 145 of file lorademod.h.
Referenced by detect(), dumpRaw(), LoRaDemod(), and synch().
| 
 | private | 
Definition at line 146 of file lorademod.h.
Referenced by dumpRaw(), LoRaDemod(), and synch().
| 
 | private | 
Definition at line 150 of file lorademod.h.
Referenced by detect(), LoRaDemod(), and ~LoRaDemod().
| 
 | private | 
Definition at line 149 of file lorademod.h.
Referenced by detect(), LoRaDemod(), and ~LoRaDemod().
 1.8.13
 1.8.13