libsdr
0.1.0
A simple SDR library
|
Decodes AX25 (PacketRadio) messages from a bit stream. More...
#include <ax25.hh>
Public Member Functions | |
AX25 () | |
Constructor. More... | |
virtual | ~AX25 () |
Destructor. More... | |
virtual void | config (const Config &src_cfg) |
Configures the node. More... | |
virtual void | process (const Buffer< uint8_t > &buffer, bool allow_overwrite) |
Processes the bit stream. More... | |
Public Member Functions inherited from sdr::Sink< uint8_t > | |
Sink () | |
Constructor. More... | |
virtual | ~Sink () |
Drestructor. More... | |
virtual void | handleBuffer (const RawBuffer &buffer, bool allow_overwrite) |
Re-implemented from SinkBase . More... | |
Public Member Functions inherited from sdr::SinkBase | |
SinkBase () | |
Constructor. More... | |
virtual | ~SinkBase () |
Destructor. More... | |
Public Member Functions inherited from sdr::Source | |
Source () | |
Constructor. More... | |
virtual | ~Source () |
Destructor. More... | |
virtual void | send (const RawBuffer &buffer, bool allow_overwrite=false) |
Sends the given buffer to all connected sinks. More... | |
void | connect (SinkBase *sink, bool direct=false) |
Connect this source to a sink. More... | |
void | disconnect (SinkBase *sink) |
Disconnect a sink again. More... | |
virtual void | setConfig (const Config &config) |
Stores the configuration and propergates it if the configuration has been changed. More... | |
virtual double | sampleRate () const |
Returns the configured sample rate or 0 otherwise. More... | |
virtual Config::Type | type () const |
Returns the configured source type or Config::Type_UNDEFINED otherwise. More... | |
template<class T > | |
void | addEOS (T *instance, void(T::*function)()) |
Adds a callback to the end-of-stream signal of the source. More... | |
Static Public Member Functions | |
static void | unpackCall (const uint8_t *buffer, std::string &call, int &ssid, bool &addrExt) |
Unpacks a AX.25 encoded call (address). More... | |
Protected Attributes | |
uint32_t | _bitstream |
The last bits. More... | |
uint32_t | _bitbuffer |
A buffer of received bits. More... | |
uint32_t | _state |
The current state. More... | |
uint8_t | _rxbuffer [512] |
Message buffer. More... | |
uint8_t * | _ptr |
Insert-pointer to the buffer. More... | |
Buffer< uint8_t > | _buffer |
Output buffer. More... | |
Protected Attributes inherited from sdr::Source | |
Config | _config |
Holds the source configuration, this can be updated by calling setConfig . More... | |
std::map< SinkBase *, bool > | _sinks |
The connected sinks. More... | |
std::list< DelegateInterface * > | _eos |
The connected EOS singal handlers. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from sdr::Source | |
void | signalEOS () |
Signals the EOS. More... | |
void | propagateConfig (const Config &config) |
Propagates the given configuration to all connected sinks. More... | |
Decodes AX25 (PacketRadio) messages from a bit stream.
In conjecture with the (A)FSK demodulator, the AX25 can be used to receive packet radio or APRS messages. AX25 is usually transmitted as FSK in transition mode, means the bits aren't encoded by mark & space tones but rather as a transition from mark to space or in reverse. Hence the FSK node needs to be configured in transition mode.
The node does not process the actual AX.25 packages, it only checks the frame check sequence and forwards the AX.25 datagram to all connected sinks on success. The receiving node is responsible for unpacking and handling the received datagram.
AX25::AX25 | ( | ) |
Constructor.
|
virtual |
Destructor.
|
virtual |
Configures the node.
Implements sdr::SinkBase.
|
virtual |
|
static |
Unpacks a AX.25 encoded call (address).
|
protected |
A buffer of received bits.
|
protected |
The last bits.
|
protected |
Output buffer.
|
protected |
Insert-pointer to the buffer.
|
protected |
Message buffer.
|
protected |
The current state.