26#if !defined(_SPANDSP_PRIVATE_V22BIS_H_)
27#define _SPANDSP_PRIVATE_V22BIS_H_
30#define V22BIS_EQUALIZER_LEN 7
32#define V22BIS_EQUALIZER_MASK 15
35#define V22BIS_TX_FILTER_STEPS 9
38#define V22BIS_RX_FILTER_STEPS 27
43 V22BIS_RX_TRAINING_STAGE_NORMAL_OPERATION,
44 V22BIS_RX_TRAINING_STAGE_SYMBOL_ACQUISITION,
45 V22BIS_RX_TRAINING_STAGE_LOG_PHASE,
46 V22BIS_RX_TRAINING_STAGE_UNSCRAMBLED_ONES,
47 V22BIS_RX_TRAINING_STAGE_UNSCRAMBLED_ONES_SUSTAINING,
48 V22BIS_RX_TRAINING_STAGE_SCRAMBLED_ONES_AT_1200,
49 V22BIS_RX_TRAINING_STAGE_SCRAMBLED_ONES_AT_1200_SUSTAINING,
50 V22BIS_RX_TRAINING_STAGE_WAIT_FOR_SCRAMBLED_ONES_AT_2400,
51 V22BIS_RX_TRAINING_STAGE_PARKED
57 V22BIS_TX_TRAINING_STAGE_NORMAL_OPERATION = 0,
58 V22BIS_TX_TRAINING_STAGE_INITIAL_TIMED_SILENCE,
59 V22BIS_TX_TRAINING_STAGE_INITIAL_SILENCE,
60 V22BIS_TX_TRAINING_STAGE_U11,
61 V22BIS_TX_TRAINING_STAGE_U0011,
62 V22BIS_TX_TRAINING_STAGE_S11,
63 V22BIS_TX_TRAINING_STAGE_TIMED_S11,
64 V22BIS_TX_TRAINING_STAGE_S1111,
65 V22BIS_TX_TRAINING_STAGE_PARKED
91 int negotiated_bit_rate;
132 int constellation_state;
134#if defined(SPANDSP_USE_FIXED_POINTx)
190 int sixteen_way_decisions;
199#if defined(SPANDSP_USE_FIXED_POINTx)
249#if defined(__cplusplus)
264#if defined(__cplusplus)
void(*) modem_status_func_t(void *user_data, int status)
Definition async.h:114
int(*) get_bit_func_t(void *user_data)
Definition async.h:108
void(*) put_bit_func_t(void *user_data, int bit)
Definition async.h:105
struct logging_state_s logging_state_t
Definition logging.h:75
Definition power_meter.h:49
power_meter_t rx_power
A power meter, to measure the HPF'ed signal power in the channel.
int rrc_filter_step
Current offset into the RRC pulse shaping filter buffer.
int signal_present
>0 if a signal above the minimum is present. It may or may not be a V.22bis signal.
float carrier_track_i
The integral part of the carrier tracking filter.
float training_error
A measure of how much mismatch there is between the real constellation, and the decoded symbol positi...
int scrambler_pattern_count
A counter for the number of consecutive bits of repeating pattern through the scrambler.
int training_count
A count of how far through the current training step we are.
uint32_t carrier_phase
The current phase of the carrier (i.e. the DDS parameter).
float rrc_filter[27]
The root raised cosine (RRC) pulse shaping filter buffer.
int gardner_step
Current step size of Gardner algorithm integration.
float eq_delta
The current delta factor for updating the equalizer coefficients.
int training
0 if receiving user data. A training stage value during training
int total_baud_timing_correction
The total symbol timing correction since the carrier came up. This is only for performance analysis p...
complexf_t eq_buf[15+1]
The equalizer signal buffer.
float agc_scaling
The scaling factor accessed by the AGC algorithm.
qam_report_handler_t qam_report
A callback function which may be enabled to report every symbol's constellation position.
int32_t carrier_off_power
The power meter level at which carrier off is declared.
int eq_put_step
Current write offset into the equalizer buffer.
uint32_t scramble_reg
The register for the data scrambler.
int32_t carrier_on_power
The power meter level at which carrier on is declared.
int gardner_integrate
Integration variable for damping the Gardner algorithm tests.
complexf_t eq_coeff[2 *7+1]
The adaptive equalizer coefficients.
int baud_phase
The current fractional phase of the baud timing.
float carrier_track_p
The proportional part of the carrier tracking filter.
int32_t carrier_phase_rate
The update rate for the phase of the carrier (i.e. the DDS increment).
void * qam_user_data
A user specified opaque pointer passed to the qam_report callback routine.
int eq_step
Current offset into the equalizer buffer.
int32_t carrier_phase_rate
The update rate for the phase of the carrier (i.e. the DDS increment).
uint32_t carrier_phase
The current phase of the carrier (i.e. the DDS parameter).
int shutdown
An indicator to mark that we are tidying up to stop transmission.
float gain
The gain factor needed to achieve the specified output power.
float guard_level
The guard tone level.
uint32_t scramble_reg
The register for the data scrambler.
int training
0 if transmitting user data. A training stage value during training
uint32_t guard_phase
The current phase of the guard tone (i.e. the DDS parameter).
int training_count
A counter used to track progress through sending the training sequence.
int scrambler_pattern_count
A counter for the number of consecutive bits of repeating pattern through the scrambler.
int constellation_state
The code number for the current position in the constellation.
int baud_phase
The current fractional phase of the baud timing.
int32_t guard_phase_rate
The update rate for the phase of the guard tone (i.e. the DDS increment).
int rrc_filter_step
Current offset into the RRC pulse shaping filter buffer.
get_bit_func_t current_get_bit
The get_bit function in use at any instant.
complexf_t rrc_filter[2 *9]
The root raised cosine (RRC) pulse shaping filter buffer.
Definition private/v22bis.h:73
logging_state_t logging
Error and flow logging control.
Definition private/v22bis.h:246
int bit_rate
The maximum permitted bit rate of the modem. Valid values are 1200 and 2400.
Definition private/v22bis.h:75
void * status_user_data
A user specified opaque pointer passed to the status function.
Definition private/v22bis.h:89
void * put_bit_user_data
A user specified opaque pointer passed to the put_bit callback routine.
Definition private/v22bis.h:85
int calling_party
TRUE is this is the calling side modem.
Definition private/v22bis.h:77
put_bit_func_t put_bit
The callback function used to put each bit received.
Definition private/v22bis.h:83
modem_status_func_t status_handler
The callback function used to report modem status changes.
Definition private/v22bis.h:87
void * get_bit_user_data
A user specified opaque pointer passed to the get_bit callback routine.
Definition private/v22bis.h:81
get_bit_func_t get_bit
The callback function used to get the next bit to be transmitted.
Definition private/v22bis.h:79
struct v22bis_state_s v22bis_state_t
Definition v22bis.h:62