FreeCalypso > hg > ffs-editor
diff src/cs/layer1/gtt_include/ctm/ctm_receiver.h @ 0:92470e5d0b9e
src: partial import from FC Selenite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 15 May 2020 01:28:16 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cs/layer1/gtt_include/ctm/ctm_receiver.h Fri May 15 01:28:16 2020 +0000 @@ -0,0 +1,158 @@ +/* +******************************************************************************* +* +* COPYRIGHT (C) 2000 BY ERICSSON EUROLAB DEUTSCHLAND GmbH +* 90411 NUERNBERG, GERMANY, Tel Int + 49 911 5217 100 +* +* The program(s) may be used and/or copied only with the +* written permission from Ericsson or in accordance +* with the terms and conditions stipulated in the agreement or +* contract under which the program(s) have been supplied. +* +******************************************************************************* +* +* File : ctm_receiver.h +* Author : EEDN/RV Matthias Doerbecker +* Tested Platforms : Sun Solaris, Windows NT 4.0 +* Description : header file for ctm_receiver.c +* +* Changes since October 13, 2000: +* - added reset function reset_ctm_receiver() +* +* $Log: $ +* +******************************************************************************* +*/ +#ifndef ctm_receiver_h +#define ctm_receiver_h "$Id: $" + +/* +******************************************************************************* +* INCLUDE FILES +******************************************************************************* +*/ + +#include "init_interleaver.h" +//#include "tonedemod.h" +#include "wait_for_sync.h" +#include "conv_poly.h" +#include "viterbi.h" +#include "ctm_typedefs.h" +#include "fifo.h" + +#include <stdlib.h> +#include <stdio.h> + + +/* ******************************************************************/ +/* Type definitions for variables that contain all states of the */ +/* Cellular Text Telephone Modem (CTM) Transmitter and Receiver, */ +/* respectively. */ +/* ******************************************************************/ + +typedef struct { + /* simple variables */ + WORD16 samplingCorrection; + WORD16 numBitsWithLowReliability; + WORD16 cntIdleSymbols; + WORD16 numDeintlBits; + WORD16 cntRXBits; + WORD16 syncCorrect; + WORD16 cntUnreliableGrossBits; + WORD16 intl_delay; + + /* structs (state types) */ + fifo_state_t rx_bits_fifo_state; + fifo_state_t octet_fifo_state; + fifo_state_t net_bits_fifo_state; + //demod_state_t tonedemod_state; + // interleaver_state_t intl_state; + interleaver_state_t deintl_state; + wait_for_sync_state_t wait_state; + viterbi_t viterbi_state; + + /* vectors (not to be allocated) */ +#if (NUM_MUTE_ROWS>0) + WORD16 mutePositions[intlvB*NUM_MUTE_ROWS]; +#else + WORD16 mutePositions[1]; +#endif + + /* vectors (to be allocated in init_ctm_receiver()) */ + WORD16 *waitSyncOut; + WORD16 *deintlOut; + +} rx_state_t; + + + + +/***********************************************************************/ +/* init_ctm_receiver() */ +/* ******************* */ +/* Initialization of the CTM Receiver. */ +/* */ +/* output vaiables: */ +/* rx_state : pointer to a variable of rx_state_t containing the */ +/* initialized states of the receiver */ +/***********************************************************************/ + +void init_ctm_receiver(rx_state_t* rx_state); + +/* + *********************************************************************** + * Shutdown_ctm_receiver() * + * *********************** * + * Shutdown of the CTM Receiver. * + * * + * Input variables: * + * rx_state : pointer to a variable of rx_state_t containing the * + * initialized states of the receiver * + *********************************************************************** +*/ +void Shutdown_ctm_receiver(rx_state_t* rx_state); + +/* + *********************************************************************** + * reset_ctm_receiver() * + * ******************** * + * Reset of the Cellular Text Telephone Modem receiver, state * + * machines and buffer pointers. * + * * + * Input variables: * + * rx_state : pointer to a variable of rx_state_t containing the * + * initialized states of the receiver * + *********************************************************************** +*/ +void reset_ctm_receiver(rx_state_t* rx_state); + + +/***************************************************************************/ +/* ctm_receiver() */ +/* ************** */ +/* Runs the Cellular Text Telephone Modem Receiver for a block of */ +/* (nominally) 160 samples. Due to the internal synchronization, the */ +/* number of processed samples might vary between 156 and 164 samples. */ +/* The input of the samples and the output of the decoded characters */ +/* is handled via fifo buffers, which have to be initialized */ +/* externally before using this function (see fifo.h for details). */ +/* */ +/* input/output variables: */ +/* *ptr_signal_fifo_state fifo state for the input samples */ +/* *ptr_output_char_fifo_state fifo state for the output characters */ +/* *ptr_early_muting_required returns whether the original audio signal */ +/* must not be forwarded. This is to guarantee */ +/* that the preamble or resync sequence is */ +/* detected only by the first CTM device, if */ +/* several CTM devices are cascaded */ +/* subsequently. */ +/* *rx_state pointer to the variable containing the */ +/* receiver states */ +/***************************************************************************/ + +void ctm_receiver(fifo_state_t* ptr_signal_fifo_state, + fifo_state_t* ptr_output_char_fifo_state, + BOOL* ptr_early_muting_required, + rx_state_t* rx_state); + +#endif