spandsp 0.0.6
fsk.c File Reference
#include <stdlib.h>
#include <inttypes.h>
#include <string.h>
#include "floating_fudge.h"
#include <assert.h>
#include "spandsp/telephony.h"
#include "spandsp/complex.h"
#include "spandsp/dds.h"
#include "spandsp/power_meter.h"
#include "spandsp/async.h"
#include "spandsp/fsk.h"
#include "spandsp/private/fsk.h"

Functions

int fsk_tx_restart (fsk_tx_state_t *s, const fsk_spec_t *spec)
fsk_tx_state_tfsk_tx_init (fsk_tx_state_t *s, const fsk_spec_t *spec, get_bit_func_t get_bit, void *user_data)
 Initialise an FSK modem transmit context.
int fsk_tx_release (fsk_tx_state_t *s)
int fsk_tx_free (fsk_tx_state_t *s)
int fsk_tx (fsk_tx_state_t *s, int16_t amp[], int len)
void fsk_tx_power (fsk_tx_state_t *s, float power)
 Adjust an FSK modem transmit context's power output.
void fsk_tx_set_get_bit (fsk_tx_state_t *s, get_bit_func_t get_bit, void *user_data)
void fsk_tx_set_modem_status_handler (fsk_tx_state_t *s, modem_status_func_t handler, void *user_data)
 Change the modem status report function associated with an FSK modem transmit context.
void fsk_rx_signal_cutoff (fsk_rx_state_t *s, float cutoff)
 Adjust an FSK modem receive context's carrier detect power threshold.
float fsk_rx_signal_power (fsk_rx_state_t *s)
void fsk_rx_set_put_bit (fsk_rx_state_t *s, put_bit_func_t put_bit, void *user_data)
void fsk_rx_set_modem_status_handler (fsk_rx_state_t *s, modem_status_func_t handler, void *user_data)
 Change the modem status report function associated with an FSK modem receive context.
int fsk_rx_restart (fsk_rx_state_t *s, const fsk_spec_t *spec, int framing_mode)
fsk_rx_state_tfsk_rx_init (fsk_rx_state_t *s, const fsk_spec_t *spec, int framing_mode, put_bit_func_t put_bit, void *user_data)
 Initialise an FSK modem receive context.
int fsk_rx_release (fsk_rx_state_t *s)
int fsk_rx_free (fsk_rx_state_t *s)
int fsk_rx (fsk_rx_state_t *s, const int16_t *amp, int len)
int fsk_rx_fillin (fsk_rx_state_t *s, int len)

Variables

const fsk_spec_t preset_fsk_specs []

Function Documentation

◆ fsk_rx_init()

fsk_rx_state_t * fsk_rx_init ( fsk_rx_state_t * s,
const fsk_spec_t * spec,
int framing_mode,
put_bit_func_t put_bit,
void * user_data )

Initialise an FSK modem receive context.

Initialise an FSK modem receive context.

Parameters
sThe modem context.
specThe specification of the modem tones and rate.
framing_mode0 for fully asynchronous mode. 1 for synchronous mode. >1 for this many bits per asynchronous character frame.
put_bitThe callback routine used to put the received data.
user_dataAn opaque pointer.
Returns
A pointer to the modem context, or NULL if there was a problem.

References fsk_rx_state_s::put_bit, and fsk_rx_state_s::put_bit_user_data.

Referenced by adsi_rx_init(), modem_connect_tones_rx_init(), and v18_init().

◆ fsk_rx_set_modem_status_handler()

void fsk_rx_set_modem_status_handler ( fsk_rx_state_t * s,
modem_status_func_t handler,
void * user_data )

Change the modem status report function associated with an FSK modem receive context.

Change the modem status report function associated with an FSK modem receive context.

Parameters
sThe modem context.
handlerThe callback routine used to report modem status changes.
user_dataAn opaque pointer.

References fsk_rx_state_s::status_handler, and fsk_rx_state_s::status_user_data.

◆ fsk_rx_signal_cutoff()

void fsk_rx_signal_cutoff ( fsk_rx_state_t * s,
float cutoff )

Adjust an FSK modem receive context's carrier detect power threshold.

Adjust an FSK modem receive context's carrier detect power threshold.

Parameters
sThe modem context.
cutoffThe power level, in dBm0

References power_meter_level_dbm0().

Referenced by modem_connect_tones_rx_init().

◆ fsk_rx_signal_power()

float fsk_rx_signal_power ( fsk_rx_state_t * s)

Get the current received signal power.

Parameters
sThe modem context.
Returns
The signal power, in dBm0.

References power_meter_current_dbm0().

◆ fsk_tx_init()

fsk_tx_state_t * fsk_tx_init ( fsk_tx_state_t * s,
const fsk_spec_t * spec,
get_bit_func_t get_bit,
void * user_data )

Initialise an FSK modem transmit context.

Initialise an FSK modem transmit context.

Parameters
sThe modem context.
specThe specification of the modem tones and rate.
get_bitThe callback routine used to get the data to be transmitted.
user_dataAn opaque pointer.
Returns
A pointer to the modem context, or NULL if there was a problem.

References fsk_tx_state_s::get_bit, and fsk_tx_state_s::get_bit_user_data.

Referenced by v18_init().

◆ fsk_tx_power()

void fsk_tx_power ( fsk_tx_state_t * s,
float power )

Adjust an FSK modem transmit context's power output.

Adjust an FSK modem transmit context's power output.

Parameters
sThe modem context.
powerThe power level, in dBm0

References dds_scaling_dbm0().

◆ fsk_tx_set_modem_status_handler()

void fsk_tx_set_modem_status_handler ( fsk_tx_state_t * s,
modem_status_func_t handler,
void * user_data )

Change the modem status report function associated with an FSK modem transmit context.

Change the modem status report function associated with an FSK modem transmit context.

Parameters
sThe modem context.
handlerThe callback routine used to report modem status changes.
user_dataAn opaque pointer.

References fsk_tx_state_s::status_handler, and fsk_tx_state_s::status_user_data.