AX.25 packet radio modulator (APRS, 1200 baud AFSK). The written data is converted to AX.25 frames, which are sent with HDLC framing (flags, bit stuffing, frame check sequence) and NRZI coding.
More...
|
| | AX25Encoder ()=default |
| | AX25Encoder (Print &out) |
| AX25Config | defaultConfig () |
| | Provides a default configuration: APRS (1200 baud AFSK).
|
| void | setAudioInfo (audio_tools::AudioInfo info) override |
| | Defines the sample rate and number of channels of the generated audio.
|
| audio_tools::AudioInfo | audioInfo () override |
| bool | begin (AX25Config config) |
| | Starts the processing with the indicated configuration.
|
| bool | begin () override |
| void | end () override |
| size_t | write (const uint8_t *data, size_t len) override |
| | Provide the frames as text lines or KISS frames.
|
| bool | writeFrame (const uint8_t *frame, size_t len) |
| | Sends a frame (without FCS).
|
| bool | endTransmission (size_t silence_samples=0) override |
| bool | writeIdle (size_t nsamples) override |
| | Sends flags for the indicated number of samples.
|
| bool | isTransmitting () override |
| | true between the first frame and endTransmission()
|
| float | symbolRate () override |
| | Bits per second.
|
| size_t | frameCount () |
| | Number of sent frames.
|
| AX25Config & | config () |
| | The configuration which was provided in begin().
|
| | operator bool () override |
| void | setOutput (Print &out) override |
| void | setGenerator (audio_tools::SoundGenerator< int16_t > &generator) |
| audio_tools::SoundGenerator< int16_t > & | getGenerator () |
| | Provides the active tone generator.
|
| void | writeSilence (size_t nsamples) |
| | Writes the indicated number of samples of silence.
|
| void | writeTone (float freq, size_t nsamples) |
| | Writes a tone for the indicated number of samples.
|
| void | flush () |
| | Ends the transmission.
|
| const char * | mime () override |
|
| void | writeText (uint8_t ch) |
| void | writeKiss (uint8_t ch) |
| void | addKiss (uint8_t ch) |
| void | startTransmission () |
| void | sendPreamble (int ms) |
| | Flags (IL2P: 0x55) for the indicated time.
|
| bool | writeFX25 (const uint8_t *frame, size_t len) |
| | FX.25: correlation tag and Reed-Solomon code word (NRZI, no stuffing).
|
| bool | writeIL2P (const uint8_t *frame, size_t len) |
| | IL2P: preamble, sync word and the encoded frame (no NRZI).
|
| void | sendBits (uint8_t value) |
| | least significant bit first without bit stuffing (NRZI)
|
| void | sendRawByte (uint8_t value) |
| | most significant bit first without NRZI: 1 = mark
|
| void | sendFlag () |
| | 0x7E without bit stuffing
|
| void | sendByte (uint8_t value) |
| | least significant bit first with bit stuffing
|
| void | sendBit (int bit) |
| | NRZI: a 0 changes the tone, a 1 keeps it.
|
| void | sendTone () |
| | sends the current tone for one bit
|
AX.25 packet radio modulator (APRS, 1200 baud AFSK). The written data is converted to AX.25 frames, which are sent with HDLC framing (flags, bit stuffing, frame check sequence) and NRZI coding.
In AX25Format::TEXT each line (terminated by '
') is a frame in the monitor format SRC>DEST,DIGI1,DIGI2:info. In AX25Format::KISS the data consists of KISS frames. A frame is sent as soon as it is complete: the first frame of a transmission is preceded by tx_delay_ms of flags. Call endTransmission() (or flush()) to send the tail flags.
AX25Config::layer2 selects FX.25 (the HDLC frame is sent as data of a Reed-Solomon code word with a correlation tag) or IL2P (preamble 0x55, sync word, scrambled header and payload with Reed-Solomon parity, without NRZI) instead of standard AX.25.
- Copyright
- GPLv3