spandsp  0.0.6
v27ter_tx.c File Reference
#include <stdio.h>
#include <inttypes.h>
#include <stdlib.h>
#include <string.h>
#include "floating_fudge.h"
#include "spandsp/telephony.h"
#include "spandsp/fast_convert.h"
#include "spandsp/logging.h"
#include "spandsp/complex.h"
#include "spandsp/vector_float.h"
#include "spandsp/complex_vector_float.h"
#include "spandsp/vector_int.h"
#include "spandsp/complex_vector_int.h"
#include "spandsp/async.h"
#include "spandsp/dds.h"
#include "spandsp/power_meter.h"
#include "spandsp/v27ter_tx.h"
#include "spandsp/private/logging.h"
#include "spandsp/private/v27ter_tx.h"
#include "v27ter_tx_4800_floating_rrc.h"
#include "v27ter_tx_2400_floating_rrc.h"

Defines

#define CARRIER_NOMINAL_FREQ   1800.0f
#define V27TER_TRAINING_SEG_1   0
#define V27TER_TRAINING_SEG_2   (V27TER_TRAINING_SEG_1 + 320)
#define V27TER_TRAINING_SEG_3   (V27TER_TRAINING_SEG_2 + 32)
#define V27TER_TRAINING_SEG_4   (V27TER_TRAINING_SEG_3 + 50)
#define V27TER_TRAINING_SEG_5   (V27TER_TRAINING_SEG_4 + 1074)
#define V27TER_TRAINING_END   (V27TER_TRAINING_SEG_5 + 8)
#define V27TER_TRAINING_SHUTDOWN_END   (V27TER_TRAINING_END + 32)

Functions

int v27ter_tx (v27ter_tx_state_t *s, int16_t amp[], int len)
void v27ter_tx_power (v27ter_tx_state_t *s, float power)
 Adjust a V.27ter modem transmit context's output power.
void v27ter_tx_set_get_bit (v27ter_tx_state_t *s, get_bit_func_t get_bit, void *user_data)
 Change the get_bit function associated with a V.27ter modem transmit context.
void v27ter_tx_set_modem_status_handler (v27ter_tx_state_t *s, modem_tx_status_func_t handler, void *user_data)
 Change the modem status report function associated with a V.27ter modem transmit context.
logging_state_tv27ter_tx_get_logging_state (v27ter_tx_state_t *s)
 Get the logging context associated with a V.27ter modem transmit context.
int v27ter_tx_restart (v27ter_tx_state_t *s, int bit_rate, int tep)
 Reinitialise an existing V.27ter modem transmit context.
v27ter_tx_state_tv27ter_tx_init (v27ter_tx_state_t *s, int bit_rate, int tep, get_bit_func_t get_bit, void *user_data)
 Initialise a V.27ter modem transmit context.
int v27ter_tx_release (v27ter_tx_state_t *s)
 Release a V.27ter modem transmit context.
int v27ter_tx_free (v27ter_tx_state_t *s)
 Free a V.27ter modem transmit context.

Detailed Description


Define Documentation

#define CARRIER_NOMINAL_FREQ   1800.0f

The nominal frequency of the carrier, in Hertz

Referenced by v27ter_tx_init().

The end of the training, in symbols

#define V27TER_TRAINING_SEG_1   0

The start of training segment 1, in symbols

Referenced by v27ter_tx_restart().

The start of training segment 2, in symbols

Referenced by v27ter_tx_restart().

The start of training segment 3, in symbols

The start of training segment 4, in symbols

The start of training segment 5, in symbols

The end of the shutdown sequence, in symbols


Function Documentation

Free a V.27ter modem transmit context.

Free a V.27ter modem transmit context.

Parameters:
sThe modem context.
Returns:
0 for OK

Get the logging context associated with a V.27ter modem transmit context.

Get the logging context associated with a V.27ter modem transmit context.

Parameters:
sThe modem context.
Returns:
A pointer to the logging context
v27ter_tx_state_t* v27ter_tx_init ( v27ter_tx_state_t s,
int  bit_rate,
int  tep,
get_bit_func_t  get_bit,
void *  user_data 
)

Initialise a V.27ter modem transmit context.

Initialise a V.27ter modem transmit context.

Parameters:
sThe modem context.
bit_rateThe bit rate of the modem. Valid values are 2400 and 4800.
tepTRUE is the optional TEP tone is to be transmitted.
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 CARRIER_NOMINAL_FREQ, dds_phase_ratef(), v27ter_tx_power(), and v27ter_tx_restart().

void v27ter_tx_power ( v27ter_tx_state_t s,
float  power 
)

Adjust a V.27ter modem transmit context's output power.

Adjust a V.27ter modem transmit context's power output.

Parameters:
sThe modem context.
powerThe power level, in dBm0

Referenced by v27ter_tx_init().

Release a V.27ter modem transmit context.

Release a V.27ter modem transmit context.

Parameters:
sThe modem context.
Returns:
0 for OK
int v27ter_tx_restart ( v27ter_tx_state_t s,
int  bit_rate,
int  tep 
)

Reinitialise an existing V.27ter modem transmit context.

Reinitialise an existing V.27ter modem transmit context, so it may be reused.

Parameters:
sThe modem context.
bit_rateThe bit rate of the modem. Valid values are 2400 and 4800.
tepTRUE is the optional TEP tone is to be transmitted.
Returns:
0 for OK, -1 for bad parameter

References V27TER_TRAINING_SEG_1, and V27TER_TRAINING_SEG_2.

Referenced by v27ter_tx_init().

void v27ter_tx_set_get_bit ( v27ter_tx_state_t s,
get_bit_func_t  get_bit,
void *  user_data 
)

Change the get_bit function associated with a V.27ter modem transmit context.

Change the get_bit function associated with a V.27ter modem transmit context.

Parameters:
sThe modem context.
get_bitThe callback routine used to get the data to be transmitted.
user_dataAn opaque pointer.
void v27ter_tx_set_modem_status_handler ( v27ter_tx_state_t s,
modem_tx_status_func_t  handler,
void *  user_data 
)

Change the modem status report function associated with a V.27ter modem transmit context.

Change the modem status report function associated with a V.27ter modem transmit context.

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