FreeCalypso > hg > ffs-editor
diff src/cs/layer1/gtt_include/ctm/ctm_defines.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_defines.h Fri May 15 01:28:16 2020 +0000 @@ -0,0 +1,95 @@ +/* +******************************************************************************* +* +* 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_defines.h +* Purpose : Global constants for the Cellular Text Telephone Modem +* +******************************************************************************* +*/ +#ifndef ctm_defines_h +#define ctm_defines_h "$Id: $" + +#ifndef MAX +#define MAX(A, B) ((A) > (B) ? (A) : (B)) +#endif + +#define MAX_IDLE_SYMB 5 /* Number of Idle Symbols at End of Burst */ +#define CHC_RATE 4 /* Rate of the Error Protection */ +#define CHC_K 5 /* Constraint length of Error Protection */ +#define SYMB_LEN 40 /* Length of one CTM symbol */ + +/* The following constant determines whether the signal processing takes */ +/* place sample-by-sample or frame-by-frame (160 samples per frame) */ +// #define LENGTH_TONE_VEC 160 /* signal frame size */ +#define LENGTH_TONE_VEC 1 /* signal frame size */ + +/* Number of bits that are processed during each call of the main loop */ +//LN March 13, 2002 +//#define LENGTH_TX_BITS MAX(2, 2*LENGTH_TONE_VEC/SYMB_LEN) +#define LENGTH_TX_BITS 2 +//LN + +#define BITS_PER_SYMB 8 /* bits per symbol */ + +#define NCYCLES_0 2 /* Number of periods for symbol #0 */ +#define NCYCLES_1 3 /* Number of periods for symbol #1 */ +#define NCYCLES_2 4 /* Number of periods for symbol #2 */ +#define NCYCLES_3 5 /* Number of periods for symbol #3 */ + +#define THRESHOLD_RELIABILITY_FOR_SUPPRESSING_OUTPUT 100 +#define THRESHOLD_RELIABILITY_FOR_XCORR 1 +#define THRESHOLD_RELIABILITY_FOR_GOING_OFFLINE 100 +#define MAX_NUM_UNRELIABLE_GROSS_BITS 400 + +#define NUM_BITS_GUARD_INTERVAL 6 /* length of silence after a burst */ + +#define WAIT_SYNC_REL_THRESHOLD_0 20316 /* = 0.62*32768 */ +#define WAIT_SYNC_REL_THRESHOLD_1 17039 /* = 0.52*32768 */ +#define WAIT_SYNC_REL_THRESHOLD_2 23265 /* = 0.71*32768 */ +#define RESYNC_REL_THRESHOLD 26542 /* = 0.81*32768 */ + +#define GUARD_BIT_SYMBOL 0 /* "magic number" indicating that a */ +// /* bit shall be muted */ + +#define intlvB 8 /* Interleaver block length */ +#define intlvD 2 /* Interleaver block distance (interlace) */ + +#define demodSyncLns 1 /* Nr of demodulator sync lines */ +#define deintSyncLns 0 /* Nr of deinterleaver sync lines */ + +#define IDLE_SYMB 0x16 /* UCS code for Idle Symbol */ +#define ENQU_SYMB 0x05 /* UCS code for Enquiry Symbol */ + +#if LENGTH_TONE_VEC==160 +#define ENQUIRY_TIMEOUT 20 /* number of frames for negotiation */ +#else +#define ENQUIRY_TIMEOUT (1320/5) //19*160 +#endif + +#define NUM_ENQUIRY_BURSTS 3 /* number of enquiry attempts */ + +#define NUM_MUTE_ROWS 4 /* duration of muting interval, 4 rows=80ms */ +#define RESYNC_SEQ_LENGTH 32 /* must be a multiple of intlvB */ + +#define NUM_BITS_BETWEEN_RESYNC 352 // 352 = 320+32 +/* 352 is a multiple of CHC_RATE, intlvB, and BITS_PER_SYMB, */ +/* and must be greater than intlvB*((intlvB-1)*intlvD+NUM_MUTE_ROWS */ + +#define SILENCE_PERIOD 32 +#define EARLY_SILENCE_PERIOD SILENCE_PERIOD-2 +#define LATE_SILENCE_PERIOD SILENCE_PERIOD+2 +#define PLAYBACK_VOLUME 0xC000 /* volume for sound card playback */ + +//#define DEBUG_OUTPUT /* comment this out for regular operation mode! */ + +#endif