Typedefs | Enumerations | Functions | Variables

async.h File Reference

Go to the source code of this file.

Typedefs

typedef void(* put_msg_func_t )(void *user_data, const uint8_t *msg, int len)
typedef int(* get_msg_func_t )(void *user_data, uint8_t *msg, int max_len)
typedef void(* put_byte_func_t )(void *user_data, int byte)
typedef int(* get_byte_func_t )(void *user_data)
typedef void(* put_bit_func_t )(void *user_data, int bit)
typedef int(* get_bit_func_t )(void *user_data)
typedef void(* modem_tx_status_func_t )(void *user_data, int status)
typedef void(* modem_rx_status_func_t )(void *user_data, int status)
typedef struct async_tx_state_s async_tx_state_t
typedef struct async_rx_state_s async_rx_state_t

Enumerations

enum  {
  SIG_STATUS_CARRIER_DOWN = -1, SIG_STATUS_CARRIER_UP = -2, SIG_STATUS_TRAINING_IN_PROGRESS = -3, SIG_STATUS_TRAINING_SUCCEEDED = -4,
  SIG_STATUS_TRAINING_FAILED = -5, SIG_STATUS_FRAMING_OK = -6, SIG_STATUS_END_OF_DATA = -7, SIG_STATUS_ABORT = -8,
  SIG_STATUS_BREAK = -9, SIG_STATUS_SHUTDOWN_COMPLETE = -10, SIG_STATUS_OCTET_REPORT = -11, SIG_STATUS_POOR_SIGNAL_QUALITY = -12,
  SIG_STATUS_MODEM_RETRAIN_OCCURRED = -13
}
enum  { ASYNC_PARITY_NONE = 0, ASYNC_PARITY_EVEN, ASYNC_PARITY_ODD }

Functions

const char * signal_status_to_str (int status)
 Convert a signal status to a short text description.
async_tx_state_tasync_tx_init (async_tx_state_t *s, int data_bits, int parity_bits, int stop_bits, int use_v14, get_byte_func_t get_byte, void *user_data)
 Initialise an asynchronous data transmit context.
int async_tx_release (async_tx_state_t *s)
int async_tx_free (async_tx_state_t *s)
 SPAN_DECLARE_NONSTD (int) async_tx_get_bit(void *user_data)
 Get the next bit of a transmitted serial bit stream.
async_rx_state_tasync_rx_init (async_rx_state_t *s, int data_bits, int parity_bits, int stop_bits, int use_v14, put_byte_func_t put_byte, void *user_data)
 Initialise an asynchronous data receiver context.
int async_rx_release (async_rx_state_t *s)
int async_rx_free (async_rx_state_t *s)
 SPAN_DECLARE_NONSTD (void) async_rx_put_bit(void *user_data
 Accept a bit from a received serial bit stream.

Variables

int bit

Detailed Description


Typedef Documentation

Asynchronous data receive descriptor. This defines the state of a single working instance of an asynchronous serial to byte converter, for use in FSK modems.

Asynchronous data transmit descriptor. This defines the state of a single working instance of a byte to asynchronous serial converter, for use in FSK modems.

typedef int(* get_bit_func_t)(void *user_data)

Bit get function for data pumps

typedef int(* get_byte_func_t)(void *user_data)

Byte get function for data pumps

typedef int(* get_msg_func_t)(void *user_data, uint8_t *msg, int max_len)

Message get function for data pumps

typedef void(* modem_rx_status_func_t)(void *user_data, int status)

Completion callback function for rx data pumps

typedef void(* modem_tx_status_func_t)(void *user_data, int status)

Completion callback function for tx data pumps

typedef void(* put_bit_func_t)(void *user_data, int bit)

Bit put function for data pumps

typedef void(* put_byte_func_t)(void *user_data, int byte)

Byte put function for data pumps

typedef void(* put_msg_func_t)(void *user_data, const uint8_t *msg, int len)

Message put function for data pumps


Enumeration Type Documentation

anonymous enum

Special "bit" values for the bitstream put and get functions, and the signal status functions.

Enumerator:
SIG_STATUS_CARRIER_DOWN 

The carrier signal has dropped.

SIG_STATUS_CARRIER_UP 

The carrier signal is up. This merely indicates that carrier energy has been seen. It is not an indication that the carrier is either valid, or of the expected type.

SIG_STATUS_TRAINING_IN_PROGRESS 

The modem is training. This is an early indication that the signal seems to be of the right type. This may be needed in time critical applications, like T.38, to forward an early indication of what is happening on the wire.

SIG_STATUS_TRAINING_SUCCEEDED 

The modem has trained, and is ready for data exchange.

SIG_STATUS_TRAINING_FAILED 

The modem has failed to train.

SIG_STATUS_FRAMING_OK 

Packet framing (e.g. HDLC framing) is OK.

SIG_STATUS_END_OF_DATA 

The data stream has ended.

SIG_STATUS_ABORT 

An abort signal (e.g. an HDLC abort) has been received.

SIG_STATUS_BREAK 

A break signal (e.g. an async break) has been received.

SIG_STATUS_SHUTDOWN_COMPLETE 

A modem has completed its task, and shut down.

SIG_STATUS_OCTET_REPORT 

Regular octet report for things like HDLC to the MTP standards.

SIG_STATUS_POOR_SIGNAL_QUALITY 

Notification that a modem has detected signal quality degradation.

SIG_STATUS_MODEM_RETRAIN_OCCURRED 

Notification that a modem retrain has occurred.

anonymous enum
Enumerator:
ASYNC_PARITY_NONE 

No parity bit should be used

ASYNC_PARITY_EVEN 

An even parity bit will exist, after the data bits

ASYNC_PARITY_ODD 

An odd parity bit will exist, after the data bits


Function Documentation

async_rx_state_t* async_rx_init ( async_rx_state_t s,
int  data_bits,
int  parity_bits,
int  stop_bits,
int  use_v14,
put_byte_func_t  put_byte,
void *  user_data 
)

Initialise an asynchronous data receiver context.

Initialise an asynchronous data receiver context.

Parameters:
s The receiver context.
data_bits The number of data bits.
parity_bits The type of parity.
stop_bits The number of stop bits.
use_v14 TRUE if V.14 rate adaption processing should be used.
put_byte The callback routine used to put the received data.
user_data An opaque pointer.
Returns:
A pointer to the initialised context, or NULL if there was a problem.
async_tx_state_t* async_tx_init ( async_tx_state_t s,
int  data_bits,
int  parity_bits,
int  stop_bits,
int  use_v14,
get_byte_func_t  get_byte,
void *  user_data 
)

Initialise an asynchronous data transmit context.

Initialise an asynchronous data transmit context.

Parameters:
s The transmitter context.
data_bits The number of data bit.
parity_bits The type of parity.
stop_bits The number of stop bits.
use_v14 TRUE if V.14 rate adaption processing should be used.
get_byte The callback routine used to get the data to be transmitted.
user_data An opaque pointer.
Returns:
A pointer to the initialised context, or NULL if there was a problem.

References ASYNC_PARITY_NONE.

Referenced by v18_init().

const char* signal_status_to_str ( int  status  ) 

Convert a signal status to a short text description.

Convert a signal status to a short text description.

Parameters:
status The modem signal status.
Returns:
A pointer to the description.

References SIG_STATUS_ABORT, SIG_STATUS_BREAK, SIG_STATUS_CARRIER_DOWN, SIG_STATUS_CARRIER_UP, SIG_STATUS_END_OF_DATA, SIG_STATUS_FRAMING_OK, SIG_STATUS_MODEM_RETRAIN_OCCURRED, SIG_STATUS_OCTET_REPORT, SIG_STATUS_POOR_SIGNAL_QUALITY, SIG_STATUS_SHUTDOWN_COMPLETE, SIG_STATUS_TRAINING_FAILED, SIG_STATUS_TRAINING_IN_PROGRESS, and SIG_STATUS_TRAINING_SUCCEEDED.

SPAN_DECLARE_NONSTD ( int   ) 

Get the next bit of a transmitted serial bit stream.

Process a block of received V.8 audio samples.

Generate a block of V.22bis modem audio samples.

Process a block of received V.18 audio samples.

Dummy receive fillin callback.

Dummy receive callback.

Process a block of samples through an instance of the modem connect tones detector.

Get the next sequence of bytes for transmission.

Get the next byte for transmission.

Process a block of received FSK modem audio samples.

Get the next bit of a transmitted serial bit stream.

Parameters:
user_data An opaque point which must point to a transmitter context.
Returns:
the next bit, or PUTBIT_END_OF_DATA to indicate the data stream has ended.

Process a block of received FSK modem audio samples.

Parameters:
s The modem context.
amp The audio sample buffer.
len The number of samples in the buffer.
Returns:
The number of samples unprocessed.
Parameters:
s A pointer to an HDLC transmitter context.
Returns:
The next byte for transmission.
Parameters:
s A pointer to an HDLC transmitter context.
buf The buffer for the data.
max_len The number of bytes to get.
Returns:
The number of bytes actually got.
Parameters:
s The context.
amp An array of signal samples.
len The number of samples in the array.
Returns:
The number of unprocessed samples.

A dummy routine to use as a receive callback, when we aren't really trying to process what is received. It just absorbs and ignores the data.

Parameters:
user_data The context.
amp The signal.buffer
len The length of the signal buffer
Returns:
0.

A dummy routine to use as a receive fillin callback, when we aren't really trying to process what is received. It just absorbs and ignores the request.

Parameters:
user_data The context.
len The length of the signal buffer
Returns:
0.

Process a block of received V.18 audio samples.

Parameters:
s The V.18 context.
amp The audio sample buffer.
len The number of samples in the buffer.

Generate a block of V.22bis modem audio samples.

Parameters:
s The modem context.
amp The audio sample buffer.
len The number of samples to be generated.
Returns:
The number of samples actually generated.

Process a block of received V.8 audio samples.

Parameters:
s The V.8 context.
amp The audio sample buffer.
len The number of samples in the buffer.

Get the next bit of a transmitted serial bit stream.

Process a block of received FSK modem audio samples.

Generate a block of FSK modem audio samples.

Parameters:
s The modem context.
amp The audio sample buffer.
len The number of samples to be generated.
Returns:
The number of samples actually generated.

Process a block of received FSK modem audio samples.

Parameters:
s The modem context.
amp The audio sample buffer.
len The number of samples in the buffer.
Returns:
The number of samples unprocessed.

Get the next bit of a transmitted serial bit stream.

Get the next sequence of bytes for transmission.

Get the next byte for transmission.

Parameters:
s A pointer to an HDLC transmitter context.
Returns:
The next bit for transmission.
Parameters:
s A pointer to an HDLC transmitter context.
Returns:
The next byte for transmission.
Parameters:
s A pointer to an HDLC transmitter context.
buf The buffer for the data.
max_len The number of bytes to get.
Returns:
The number of bytes actually got.

Get the next bit of a transmitted serial bit stream.

Process a block of samples through an instance of the modem connect tones detector.

Parameters:
s The context.
amp An array of signal samples.
len The number of samples to generate.
Returns:
The number of samples generated.
Parameters:
s The context.
amp An array of signal samples.
len The number of samples in the array.
Returns:
The number of unprocessed samples.

Get the next bit of a transmitted serial bit stream.

Dummy receive fillin callback.

Dummy receive callback.

Generate a block of silent audio samples.

Parameters:
s The silence generator context.
amp The audio sample buffer.
max_len The number of samples to be generated.
Returns:
The number of samples actually generated. This will be zero when there is nothing to send.

A dummy routine to use as a receive callback, when we aren't really trying to process what is received. It just absorbs and ignores the data.

Parameters:
user_data The context.
amp The signal.buffer
len The length of the signal buffer
Returns:
0.

A dummy routine to use as a receive fillin callback, when we aren't really trying to process what is received. It just absorbs and ignores the request.

Parameters:
user_data The context.
len The length of the signal buffer
Returns:
0.

Get the next bit of a transmitted serial bit stream.

Process a block of received V.17 modem audio samples.

Parameters:
s The modem context.
amp The audio sample buffer.
len The number of samples in the buffer.
Returns:
The number of samples unprocessed.

Get the next bit of a transmitted serial bit stream.

Generate a block of V.17 modem audio samples.

Parameters:
s The modem context.
amp The audio sample buffer.
len The number of samples to be generated.
Returns:
The number of samples actually generated.

Get the next bit of a transmitted serial bit stream.

Process a block of received V.18 audio samples.

Generate a block of V.18 audio samples.

Parameters:
s The V.18 context.
amp The audio sample buffer.
max_len The number of samples to be generated.
Returns:
The number of samples actually generated.

Process a block of received V.18 audio samples.

Parameters:
s The V.18 context.
amp The audio sample buffer.
len The number of samples in the buffer.

Get the next bit of a transmitted serial bit stream.

Generate a block of V.22bis modem audio samples.

Process a block of received V.22bis modem audio samples.

Parameters:
s The modem context.
amp The audio sample buffer.
len The number of samples in the buffer.
Returns:
The number of samples unprocessed.

Generate a block of V.22bis modem audio samples.

Parameters:
s The modem context.
amp The audio sample buffer.
len The number of samples to be generated.
Returns:
The number of samples actually generated.

Get the next bit of a transmitted serial bit stream.

Process a block of received V.27ter modem audio samples.

Parameters:
s The modem context.
amp The audio sample buffer.
len The number of samples in the buffer.
Returns:
The number of samples unprocessed.

Get the next bit of a transmitted serial bit stream.

Generate a block of V.27ter modem audio samples.

Parameters:
s The modem context.
amp The audio sample buffer.
len The number of samples to be generated.
Returns:
The number of samples actually generated.

Get the next bit of a transmitted serial bit stream.

Process a block of received V.29 modem audio samples.

Parameters:
s The modem context.
amp The audio sample buffer.
len The number of samples in the buffer.
Returns:
The number of samples unprocessed.

Get the next bit of a transmitted serial bit stream.

Generate a block of V.29 modem audio samples.

Parameters:
s The modem context.
amp The audio sample buffer.
len The number of samples to be generated.
Returns:
The number of samples actually generated.

Get the next bit of a transmitted serial bit stream.

Process a block of received V.8 audio samples.

Generate a block of V.8 audio samples.

Parameters:
s The V.8 context.
amp The audio sample buffer.
max_len The number of samples to be generated.
Returns:
The number of samples actually generated.

Process a block of received V.8 audio samples.

Parameters:
s The V.8 context.
amp The audio sample buffer.
len The number of samples in the buffer.
SPAN_DECLARE_NONSTD ( void   ) 

Accept a bit from a received serial bit stream.

Process a received HDLC frame.

Put a series of bytes of data to an HDLC receiver.

Put a byte of data to an HDLC receiver.

Accept a bit from a received serial bit stream

Parameters:
user_data An opaque point which must point to a receiver context.
bit The 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
s A pointer to an HDLC receiver context.
new_byte The byte of data.
s A pointer to an HDLC receiver context.
buf The buffer of data.
len The length of the data in the buffer.

Process a received HDLC frame.

Parameters:
user_data The T.30 context.
msg The HDLC message.
len The length of the message, in octets.
ok TRUE if the frame was received without error.