FreeCalypso > hg > fc-tourmaline
annotate src/g23m-gsm/alr2/alr_rach.c @ 239:305d3bb691a5
FCHG startup: replace fchg_is_running with fchg_first_vbat
and also report the first Vbat reading in a trace
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Sun, 02 May 2021 05:30:59 +0000 | 
| parents | 3a14ee9a9843 | 
| children | 
| rev | line source | 
|---|---|
| 2 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 /* | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 +----------------------------------------------------------------------------- | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 | Project : GSM-PS | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 | Modul : ALR_RACH | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 +----------------------------------------------------------------------------- | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 | All rights reserved. | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 | | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 | This file is confidential and a trade secret of Texas | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 | Instruments Berlin, AG | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 | The receipt of or possession of this file does not convey | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 | any rights to reproduce or disclose its contents or to | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 | manufacture, use, or sell anything it may describe, in | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 | whole, or in part, without the specific written consent of | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 | Texas Instruments Berlin, AG. | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 +----------------------------------------------------------------------------- | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 | Purpose : This Modul defines the SDL process RACH_Control. | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 +----------------------------------------------------------------------------- | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 #ifndef ALR_RACH_C | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 #define ALR_RACH_C | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 #define ENTITY_PL | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 /*==== INCLUDES ===================================================*/ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 #include <string.h> | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 #include <stdlib.h> | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 #include <ctype.h> | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 #include "typedefs.h" | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 #include "pconst.cdg" | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 #include "mconst.cdg" | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 #include "message.h" | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 #include "ccdapi.h" | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 #include "vsi.h" | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 #include "custom.h" | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 #include "gsm.h" | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 #include "prim.h" | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 #include "cnf_alr.h" | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 #include "mon_alr.h" | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 #include "pei.h" | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 #include "tok.h" | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 #include "pcm.h" | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 #ifdef GPRS | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 #include "alr_gprs.h" | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 #endif | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 #include "alr.h" | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 #include "alr_em.h" | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 /*==== EXPORT =====================================================*/ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 /*==== PRIVAT =====================================================*/ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 /*==== VARIABLES ==================================================*/ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 55 #if defined (WIN32) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 #define TRACING | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 #endif | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 #if defined (TRACING) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 #define ALR_TRACE_RACH(a) ALR_TRACE(a) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 #else | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 #define ALR_TRACE_RACH(a) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 #endif | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 #if defined (TRACING) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 #define ALR_TRACE_RACH_CLASS(x) TRACE_EVENT_P1 ("class %d",x) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 #define ALR_TRACE_RACH_POWER(p) TRACE_EVENT_P1 ("configured power = %d", p) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 #else | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 72 #define ALR_TRACE_RACH_CLASS(x) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 #define ALR_TRACE_RACH_POWER(p) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 #endif | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 /*==== FUNCTIONS ==================================================*/ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 /* | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 +--------------------------------------------------------------------+ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 | PROJECT : GSM-PS (6103) MODULE : ALR_RACH | | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 | STATE : code ROUTINE : rach_init | | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 +--------------------------------------------------------------------+ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 PURPOSE : Initialize RACH Control Process. | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 GLOBAL void rach_init (void) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 alr_data->state[STATE_RA] = RA_NULL; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 92 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 93 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 /* | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 95 +--------------------------------------------------------------------+ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 96 | PROJECT : GSM-PS (6103) MODULE : ALR_RACH | | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 97 | STATE : code ROUTINE : rach_configure_class | | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 98 +--------------------------------------------------------------------+ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 99 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 100 PURPOSE : Process signal rach_configure_class from SDL process | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 Main_Control. | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 103 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 104 GLOBAL void rach_configure_class (UBYTE ms_class, | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 105 UBYTE dcs_class) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 106 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 107 /* | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 108 * +1 because of interface difference between RR and TI | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 109 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 110 alr_data->rach_data.ms_class = (UBYTE)(ms_class + 1); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 111 alr_data->rach_data.dcs_class = (UBYTE)(dcs_class + 1); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 112 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 113 ALR_TRACE_RACH_CLASS (alr_data->rach_data.ms_class); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 114 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 115 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 116 /* | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 117 +--------------------------------------------------------------------+ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 118 | PROJECT : GSM-PS (6103) MODULE : ALR_RACH | | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 119 | STATE : code ROUTINE : rach_configure_power | | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 120 +--------------------------------------------------------------------+ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 121 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 122 PURPOSE : Process signal rach_configure_power from SDL process | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 123 Main_Control. | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 124 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 125 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 126 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 127 GLOBAL void rach_configure_power (UBYTE power) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 128 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 129 ALR_TRACE_RACH_POWER(power); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 130 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 131 alr_data->rach_data.max_tx_pwr_ccch = power; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 132 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 133 /* | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 134 +--------------------------------------------------------------------+ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 135 | PROJECT : GSM-PS (6103) MODULE : ALR_RACH | | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 136 | STATE : code ROUTINE : rach_stop | | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 137 +--------------------------------------------------------------------+ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 138 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 139 PURPOSE : Process signal rach_stop from SDL process | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 140 Main_Control. | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 141 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 142 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 143 GLOBAL void rach_stop (void) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 144 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 145 switch (GET_STATE (STATE_RA)) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 146 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 147 case RA_ACTIVE: | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 148 ma_rach_stop_ra_req (); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 149 /*lint -fallthrough*/ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 150 case RA_LISTEN_TO_CCCH: | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 151 SET_STATE (STATE_RA, RA_NULL); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 152 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 153 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 154 default: | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 155 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 156 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 157 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 158 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 159 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 160 /* | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 161 +--------------------------------------------------------------------+ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 162 | PROJECT : GSM-PS (6103) MODULE : ALR_RACH | | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 163 | STATE : code ROUTINE : rach_random_req | | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 164 +--------------------------------------------------------------------+ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 165 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 166 PURPOSE : Process signal rach_random_req from SDL process | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 167 Main_Control. | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 168 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 169 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 170 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 171 GLOBAL void rach_random_req (T_MPH_RANDOM_ACCESS_REQ *random_req) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 172 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 173 switch (GET_STATE (STATE_RA)) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 174 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 175 case RA_NULL: | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 176 if (random_req->send_mode.no NEQ 0) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 177 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 178 PALLOC (ra_req, MPHC_RA_REQ); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 179 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 180 ALR_EM_START_CONNECTION_ESTABLISHMENT; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 181 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 182 /* | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 183 * Start Random Burst Sending | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 184 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 185 memcpy (alr_data->rach_data.delta, random_req->send_mode.delta, | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 186 sizeof (alr_data->rach_data.delta)); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 187 memcpy (alr_data->rach_data.channel_request, | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 188 random_req->send_mode.rach, | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 189 sizeof (alr_data->rach_data.channel_request)); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 190 alr_data->rach_data.max_bursts = random_req->send_mode.no; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 191 alr_data->rach_data.c_burst = 0; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 192 /* | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 193 * power limitation | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 194 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 195 ra_req->txpwr = cut_power_value (alr_data->rach_data.max_tx_pwr_ccch, NULL); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 196 ra_req->powerclass_gsm = alr_data->rach_data.ms_class; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 197 ra_req->powerclass_dcs = alr_data->rach_data.dcs_class; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 198 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 199 /* | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 200 * Modification: Add 1 to the time of RR !!!! | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 201 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 202 ra_req->rand = (UBYTE)(alr_data->rach_data.delta[alr_data->rach_data.c_burst]+1); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 203 ra_req->channel_request = alr_data->rach_data.channel_request[alr_data->rach_data.c_burst++]; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 204 SET_STATE (STATE_RA, RA_ACTIVE); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 205 ma_rach_ra_req (ra_req); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 206 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 207 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 208 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 209 case RA_ACTIVE: | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 210 if (random_req->send_mode.no EQ 0) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 211 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 212 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 213 ALR_EM_STOP_CONNECTION_ESTABLISHMENT; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 214 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 215 SET_STATE (STATE_RA, RA_LISTEN_TO_CCCH); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 216 ma_rach_stop_ra_req (); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 217 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 218 else | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 219 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 220 /*stop to be safe */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 221 ma_rach_stop_ra_req (); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 222 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 223 PALLOC (ra_req, MPHC_RA_REQ); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 224 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 225 ALR_EM_START_CONNECTION_ESTABLISHMENT; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 226 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 227 /* | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 228 * Start Random Burst Sending | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 229 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 230 memcpy (alr_data->rach_data.delta, random_req->send_mode.delta, | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 231 sizeof (alr_data->rach_data.delta)); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 232 memcpy (alr_data->rach_data.channel_request, | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 233 random_req->send_mode.rach, | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 234 sizeof (alr_data->rach_data.channel_request)); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 235 alr_data->rach_data.max_bursts = random_req->send_mode.no; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 236 alr_data->rach_data.c_burst = 0; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 237 /* | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 238 * power limitation | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 239 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 240 ra_req->txpwr = cut_power_value (alr_data->rach_data.max_tx_pwr_ccch, NULL); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 241 ra_req->powerclass_gsm = alr_data->rach_data.ms_class; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 242 ra_req->powerclass_dcs = alr_data->rach_data.dcs_class; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 243 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 244 /* | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 245 * Modification: Add 1 to the time of RR !!!! | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 246 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 247 ra_req->rand = (UBYTE)(alr_data->rach_data.delta[alr_data->rach_data.c_burst]+1); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 248 ra_req->channel_request = alr_data->rach_data.channel_request[alr_data->rach_data.c_burst++]; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 249 SET_STATE (STATE_RA, RA_ACTIVE); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 250 ma_rach_ra_req (ra_req); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 251 } /*PALLOC*/ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 252 } /* if */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 253 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 254 default: | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 255 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 256 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 257 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 258 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 259 /* | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 260 +--------------------------------------------------------------------+ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 261 | PROJECT : GSM-PS (6103) MODULE : ALR_RACH | | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 262 | STATE : code ROUTINE : rach_ra_cnf | | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 263 +--------------------------------------------------------------------+ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 264 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 265 PURPOSE : Process signal rach_ra_cnf from SDL process | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 266 Main_Control. | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 267 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 268 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 269 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 270 GLOBAL void rach_ra_cnf (T_MPHC_RA_CON *ra_cnf) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 271 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 272 UBYTE c_burst = alr_data->rach_data.c_burst-1; /* confirmed index */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 273 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 274 switch (GET_STATE (STATE_RA)) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 275 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 276 case RA_ACTIVE: | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 277 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 278 PALLOC (random_cnf, MPH_RANDOM_ACCESS_CNF); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 279 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 280 ra_cnf->fn %= 42432L; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 281 #ifdef GPRS | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 282 alr_data->rach_data.t1[c_burst] = | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 283 random_cnf->frame_no.t1= | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 284 (UBYTE)((ra_cnf->fn / 1326) % 32); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 285 alr_data->rach_data.t2[c_burst] = | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 286 random_cnf->frame_no.t2= | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 287 (UBYTE)(ra_cnf->fn % 26); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 288 alr_data->rach_data.t3[c_burst] = | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 289 random_cnf->frame_no.t3= | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 290 (UBYTE)(ra_cnf->fn % 51); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 291 #else | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 292 random_cnf->frame_no.t1= (UBYTE)((ra_cnf->fn / 1326) % 32); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 293 random_cnf->frame_no.t2= (UBYTE)(ra_cnf->fn % 26); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 294 random_cnf->frame_no.t3= (UBYTE)(ra_cnf->fn % 51); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 295 #endif | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 296 ma_rach_random_cnf (random_cnf); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 297 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 298 c_burst++; /* next index */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 299 if (c_burst >= alr_data->rach_data.max_bursts) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 300 {/* last index ? */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 301 SET_STATE (STATE_RA, RA_LISTEN_TO_CCCH); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 302 ma_rach_stop_ra_req (); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 303 #if !defined(TNNN_WITH_TIMER) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 304 ma_fake_rr_report(); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 305 #endif /* !TNNN_WITH_TIMER */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 306 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 307 else | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 308 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 309 PALLOC (ra_req, MPHC_RA_REQ); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 310 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 311 /* | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 312 * power limitation | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 313 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 314 ra_req->txpwr = cut_power_value (alr_data->rach_data.max_tx_pwr_ccch, NULL); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 315 ra_req->powerclass_gsm = alr_data->rach_data.ms_class; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 316 ra_req->powerclass_dcs = alr_data->rach_data.dcs_class; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 317 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 318 /* | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 319 * Modification: Add 1 to the time of RR !!!! | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 320 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 321 ra_req->rand = (UBYTE)(alr_data->rach_data.delta[c_burst]+1); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 322 ra_req->channel_request = alr_data->rach_data.channel_request[c_burst]; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 323 ma_rach_ra_req (ra_req); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 324 alr_data->rach_data.c_burst++; /* the next index */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 325 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 326 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 327 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 328 default: | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 329 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 330 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 331 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 332 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 333 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 334 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 335 /* | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 336 +--------------------------------------------------------------------+ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 337 | PROJECT : GSM-PS (6103) MODULE : ALR_RACH | | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 338 | STATE : code ROUTINE : cut_power_value | | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 339 +--------------------------------------------------------------------+ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 340 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 341 PURPOSE : Cut the nominal maximum output power to the | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 342 associated power class. | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 343 (Reference for the tables with the associated | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 344 power classes, control levels and nominal output power | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 345 is 3GPP TS 05.05, 4.1) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 346 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 347 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 348 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 349 GLOBAL UBYTE cut_power_value (UBYTE power, T_MPH_DEDICATED_REQ *mph_dedicated_req) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 350 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 351 UBYTE new_power = power; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 352 UBYTE sc_band; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 353 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 354 if(mph_dedicated_req == NULL) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 355 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 356 sc_band = alr_data->sc_band; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 357 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 358 else | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 359 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 360 if(mph_dedicated_req->ch_type.h) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 361 sc_band = get_band(mph_dedicated_req->ch_type.ma[0]); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 362 else | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 363 sc_band = get_band(mph_dedicated_req->ch_type.arfcn); | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 364 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 365 | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 366 switch (sc_band) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 367 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 368 case BAND_GSM_900: | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 369 case BAND_E_GSM: | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 370 case BAND_GSM_850: | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 371 switch (alr_data->rach_data.ms_class) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 372 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 373 case POW_CLASS_1: /* doesn´t exist */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 374 case POW_CLASS_2: /* power class 2, 8W, 39 dBm, level 0..2 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 375 /* highest level allowed => no cut necessary */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 376 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 377 case POW_CLASS_3: /* power class 3, 5W, 37 dBm, level 3 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 378 if (new_power < 3) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 379 new_power = 3; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 380 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 381 case POW_CLASS_4: /* power class 4, 2W, 33 dBm, level 5 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 382 if (new_power < 5) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 383 new_power = 5; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 384 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 385 case POW_CLASS_5: /* power class 5, 0.8W, 29 dBm, level 7 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 386 if (new_power < 7) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 387 new_power = 7; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 388 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 389 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 390 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 391 case BAND_DCS_1800: | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 392 switch (alr_data->rach_data.dcs_class) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 393 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 394 case POW_CLASS_1: /* power class 1, 1W, 30 dBm, level 0 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 395 if (new_power > 28) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 396 new_power = 0; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 397 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 398 case POW_CLASS_2: /* power class 2, 0.25W, 24 dBm, level 3 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 399 if (!INRANGE (3, new_power, 28)) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 400 new_power = 3; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 401 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 402 case POW_CLASS_3: /* power class 3, 4W, 36 dBm , level 29 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 403 /* highest level allowed => no cut necessary */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 404 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 405 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 406 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 407 case BAND_PCS_1900: | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 408 switch (alr_data->rach_data.dcs_class) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 409 { | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 410 case POW_CLASS_1: /* power class 1, 1W, 30 dBm, level 0 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 411 if (!INRANGE (0, new_power, 15)) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 412 new_power = 0; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 413 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 414 case POW_CLASS_2: /* power class 2, 0.25W, 24 dBm, level 3 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 415 if (!INRANGE (3, new_power, 15)) | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 416 new_power = 3; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 417 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 418 default: | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 419 case POW_CLASS_3: /* power class 3, 2W, 33 dBm , level 30 */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 420 /* highest level allowed => no cut necessary */ | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 421 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 422 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 423 break; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 424 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 425 return new_power; | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 426 } | 
| 
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 427 #endif | 
