Go to the documentation of this file.
79 #if !defined(_SPANDSP_FSK_H_)
80 #define _SPANDSP_FSK_H_
119 FSK_FRAME_MODE_ASYNC = 0,
120 FSK_FRAME_MODE_SYNC = 1,
121 FSK_FRAME_MODE_5N1_FRAMES = 7,
122 FSK_FRAME_MODE_7N1_FRAMES = 9,
123 FSK_FRAME_MODE_7E1_FRAMES = 10,
124 FSK_FRAME_MODE_7E2_FRAMES = 11
127 SPAN_DECLARE_DATA
extern const fsk_spec_t preset_fsk_specs[];
136 #define FSK_MAX_WINDOW_LEN 128
144 #if defined(__cplusplus)
250 #if defined(__cplusplus)
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.
Definition: fsk.c:314
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.
Definition: fsk.c:231
int16_t dds_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
Generate an integer tone sample, with modulation.
Definition: dds_int.c:378
void(* modem_status_func_t)(void *user_data, int status)
Definition: async.h:114
@ SIG_STATUS_CARRIER_UP
The carrier signal is up. This merely indicates that carrier energy has been seen....
Definition: async.h:58
int signal_present
>0 if a signal above the minimum is present. It may or may not be a V.29 signal.
Definition: private/fsk.h:79
float fsk_rx_signal_power(fsk_rx_state_t *s)
Definition: fsk.c:246
float power_meter_current_dbm0(power_meter_t *s)
Get the current power meter reading, in dBm0.
Definition: power_meter.c:120
int32_t dds_phase_rate(float frequency)
Find the phase rate value to achieve a particular frequency.
Definition: dds_int.c:316
modem_tx_status_func_t status_handler
The callback function used to report modem status changes.
Definition: private/fsk.h:69
get_bit_func_t get_bit
The callback function used to get the next bit to be transmitted.
Definition: private/fsk.h:37
int16_t dds_scaling_dbm0(float level)
Find the scaling factor needed to achieve a specified level in dBm0.
Definition: dds_int.c:328
void(* put_bit_func_t)(void *user_data, int bit)
Definition: async.h:105
int32_t power_meter_update(power_meter_t *s, int16_t amp)
Update a power meter.
Definition: power_meter.c:84
int im
Imaginary part.
Definition: complex.h:82
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.
Definition: fsk.c:259
int baud_rate
Definition: fsk.h:99
SPAN_DECLARE_NONSTD(int) async_tx_get_bit(void *user_data)
Get the next bit of a transmitted serial bit stream.
put_bit_func_t put_bit
The callback function used to put each bit received.
Definition: private/fsk.h:64
void fsk_tx_power(fsk_tx_state_t *s, float power)
Adjust an FSK modem transmit context's power output.
Definition: fsk.c:218
void * get_bit_user_data
A user specified opaque pointer passed to the get_bit function.
Definition: private/fsk.h:39
int min_level
Definition: fsk.h:97
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.
Definition: fsk.c:259
@ SIG_STATUS_SHUTDOWN_COMPLETE
A modem has completed its task, and shut down.
Definition: async.h:77
int(* get_bit_func_t)(void *user_data)
Definition: async.h:108
modem_tx_status_func_t status_handler
The callback function used to report modem status changes.
Definition: private/fsk.h:42
@ SIG_STATUS_CARRIER_DOWN
The carrier signal has dropped.
Definition: async.h:54
void * status_user_data
A user specified opaque pointer passed to the status function.
Definition: private/fsk.h:44
int32_t im
Imaginary part.
Definition: complex.h:104
int32_t re
Real part.
Definition: complex.h:102
int tx_level
Definition: fsk.h:95
float fsk_rx_signal_power(fsk_rx_state_t *s)
Definition: fsk.c:246
int freq_one
Definition: fsk.h:93
SPAN_DECLARE_NONSTD(int) fsk_tx(fsk_tx_state_t *s
Generate a block of FSK modem audio samples.
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.
Definition: fsk.c:231
int16_t last_sample
The value of the last signal sample, using the a simple HPF for signal power estimation.
Definition: private/fsk.h:77
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.
Definition: fsk.c:153
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.
Definition: fsk.c:314
const char * name
Definition: fsk.h:89
int freq_zero
Definition: fsk.h:91
void fsk_rx_signal_cutoff(fsk_rx_state_t *s, float cutoff)
Adjust an FSK modem receive context's carrier detect power threshold.
Definition: fsk.c:238
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.
Definition: fsk.c:153
void * status_user_data
A user specified opaque pointer passed to the status function.
Definition: private/fsk.h:71
int32_t power_meter_level_dbm0(float level)
Get the current power meter reading, in dBm0.
Definition: power_meter.c:91
int framing_mode
Synchronous/asynchronous framing control.
Definition: private/fsk.h:62
void fsk_rx_signal_cutoff(fsk_rx_state_t *s, float cutoff)
Adjust an FSK modem receive context's carrier detect power threshold.
Definition: fsk.c:238
Definition: private/fsk.h:33
void * put_bit_user_data
A user specified opaque pointer passed to the put_bit routine.
Definition: private/fsk.h:66
power_meter_t * power_meter_init(power_meter_t *s, int shift)
Initialise a power meter context.
Definition: power_meter.c:50
void fsk_tx_power(fsk_tx_state_t *s, float power)
Adjust an FSK modem transmit context's power output.
Definition: fsk.c:218
Definition: private/fsk.h:58
int re
Real part.
Definition: complex.h:80
@ SIG_STATUS_END_OF_DATA
The data stream has ended.
Definition: async.h:71
complexi_t dds_complexi(uint32_t *phase_acc, int32_t phase_rate)
Generate a complex integer tone sample.
Definition: dds_int.c:394