spandsp  3.0.0
async.c File Reference
#include <inttypes.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include "spandsp/stdbool.h"
#include "spandsp/telephony.h"
#include "spandsp/alloc.h"
#include "spandsp/bit_operations.h"
#include "spandsp/async.h"
#include "spandsp/private/async.h"

Functions

const char * signal_status_to_str (int status)
 Convert a signal status to a short text description. More...
 
void async_rx_put_bit (void *user_data, int bit)
 Accept a bit from a received serial bit stream. More...
 
int async_rx_get_parity_errors (async_rx_state_t *s, bool reset)
 
int async_rx_get_framing_errors (async_rx_state_t *s, bool reset)
 
async_rx_state_tasync_rx_init (async_rx_state_t *s, int data_bits, int parity, int stop_bits, bool use_v14, span_put_byte_func_t put_byte, void *user_data)
 Initialise an asynchronous data receiver context. More...
 
int async_rx_release (async_rx_state_t *s)
 
int async_rx_free (async_rx_state_t *s)
 
int async_tx_get_bit (void *user_data)
 Get the next bit of a transmitted serial bit stream. More...
 
void async_tx_presend_bits (async_tx_state_t *s, int bits)
 Set a minimum number of bit times of stop bit state before character transmission commences. More...
 
async_tx_state_tasync_tx_init (async_tx_state_t *s, int data_bits, int parity, int stop_bits, bool use_v14, span_get_byte_func_t get_byte, void *user_data)
 Initialise an asynchronous data transmit context. More...
 
int async_tx_release (async_tx_state_t *s)
 
int async_tx_free (async_tx_state_t *s)
 

Function Documentation

◆ async_rx_init()

async_rx_state_t* async_rx_init ( async_rx_state_t s,
int  data_bits,
int  parity,
int  stop_bits,
bool  use_v14,
span_put_byte_func_t  put_byte,
void *  user_data 
)

Initialise an asynchronous data receiver context.

Initialise an asynchronous data receiver context.

Parameters
sThe receiver context.
data_bitsThe number of data bits.
parityThe type of parity.
stop_bitsThe number of stop bits.
use_v14True if V.14 rate adaption processing should be used.
put_byteThe callback routine used to put the received data.
user_dataAn opaque pointer.
Returns
A pointer to the initialised context, or NULL if there was a problem.

◆ async_rx_put_bit()

void async_rx_put_bit ( void *  user_data,
int  bit 
)

Accept a bit from a received serial bit stream.

Accept a bit from a received serial bit stream

Parameters
user_dataAn opaque point which must point to a receiver context.
bitThe new bit. Some special values are supported for this field.
  • SIG_STATUS_CARRIER_UP
  • SIG_STATUS_CARRIER_DOWN
  • SIG_STATUS_TRAINING_SUCCEEDED
  • SIG_STATUS_TRAINING_FAILED
  • SIG_STATUS_END_OF_DATA

References ASYNC_PARITY_NONE, ASYNC_PARITY_ODD, async_rx_state_s::bitpos, async_rx_state_s::frame_in_progress, async_rx_state_s::framing_errors, async_rx_state_s::parity, async_rx_state_s::put_byte, SIG_STATUS_CARRIER_DOWN, SIG_STATUS_CARRIER_UP, SIG_STATUS_END_OF_DATA, SIG_STATUS_TRAINING_FAILED, SIG_STATUS_TRAINING_IN_PROGRESS, SIG_STATUS_TRAINING_SUCCEEDED, async_rx_state_s::total_data_bits, async_rx_state_s::use_v14, and async_rx_state_s::user_data.

◆ async_tx_get_bit()

int async_tx_get_bit ( void *  user_data)

Get the next bit of a transmitted serial bit stream.

Get the next bit of a transmitted serial bit stream.

Parameters
user_dataAn opaque point which must point to a transmitter context.
Returns
the next bit, or a status value passed through from the routine which gets the data bytes.

References async_tx_state_s::bitpos, async_tx_state_s::data_bits, async_tx_state_s::frame_in_progress, async_tx_state_s::get_byte, async_tx_state_s::parity, async_tx_state_s::presend_bits, SIG_STATUS_LINK_IDLE, and async_tx_state_s::user_data.

◆ async_tx_init()

async_tx_state_t* async_tx_init ( async_tx_state_t s,
int  data_bits,
int  parity,
int  stop_bits,
bool  use_v14,
span_get_byte_func_t  get_byte,
void *  user_data 
)

Initialise an asynchronous data transmit context.

Initialise an asynchronous data transmit context.

Parameters
sThe transmitter context.
data_bitsThe number of data bit.
parityThe type of parity.
stop_bitsThe number of stop bits.
use_v14True if V.14 rate adaption processing should be used.
get_byteThe callback routine used to get the data to be transmitted.
user_dataAn opaque pointer.
Returns
A pointer to the initialised context, or NULL if there was a problem.

◆ async_tx_presend_bits()

void async_tx_presend_bits ( async_tx_state_t s,
int  bits 
)

Set a minimum number of bit times of stop bit state before character transmission commences.

Set a minimum number of bit times of stop bit state before character transmission commences.

Parameters
user_dataAn opaque point which must point to a transmitter context.
thenumber of bits.

◆ signal_status_to_str()

const char* signal_status_to_str ( int  status)