comparison src/aci2/aci/cmh_emq.c @ 3:93999a60b835

src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 26 Sep 2016 00:29:36 +0000
parents
children
comparison
equal deleted inserted replaced
2:c41a534f33c6 3:93999a60b835
1 /*
2 +-----------------------------------------------------------------------------
3 | Project :
4 | Modul :
5 +-----------------------------------------------------------------------------
6 | Copyright 2002 Texas Instruments Berlin, AG
7 | All rights reserved.
8 |
9 | This file is confidential and a trade secret of Texas
10 | Instruments Berlin, AG
11 | The receipt of or possession of this file does not convey
12 | any rights to reproduce or disclose its contents or to
13 | manufacture, use, or sell anything it may describe, in
14 | whole, or in part, without the specific written consent of
15 | Texas Instruments Berlin, AG.
16 +-----------------------------------------------------------------------------
17 | Purpose : This module provides the query functions related to the
18 | SAP for engineering mode.
19 +-----------------------------------------------------------------------------
20 */
21
22 #ifndef ACI_EM_C
23 #define ACI_EM_C
24 #endif
25
26 #include "aci_all.h"
27 /*===== INCLUDES ===================================================*/
28 #include "aci_cmh.h"
29 #include "ati_cmd.h"
30 #include "aci_io.h"
31
32 #include "psa.h"
33 #ifdef FAX_AND_DATA
34 #include "aci_fd.h"
35 #endif
36 #include "cmh.h"
37 #include "aci_em.h"
38 #include "cmh_em.h"
39
40
41 /*==== EXPORT =====================================================*/
42 /*
43 EXTERN UBYTE em_subclass_sc (UBYTE em_type);
44 EXTERN UBYTE em_subclass_sc_gprs (UBYTE em_type);
45 EXTERN UBYTE em_subclass_nc (UBYTE em_type);
46 EXTERN UBYTE em_subclass_loc_pag (UBYTE em_type);
47 EXTERN UBYTE em_subclass_plmn (UBYTE em_type);
48 EXTERN UBYTE em_subclass_ciph_hop_dtx (UBYTE em_type);
49 EXTERN UBYTE em_subclass_power (UBYTE em_type);
50 EXTERN UBYTE em_subclass_id (UBYTE em_type);
51 EXTERN UBYTE em_subclass_version (UBYTE em_type); */
52 EXTERN void cmhEM (T_EM_VAL * val_tmp);
53 EXTERN void cmhEMET (T_DRV_SIGNAL_EM_EVENT * Signal);
54
55 /*==== VARIABLES ==================================================*/
56
57 GLOBAL T_EM_SHRD_PRM emPrm;
58 GLOBAL T_EM_SHRD_PRM emetPrm;
59 GLOBAL T_EM_SHRD_PRM emetsPrm;
60
61 /*==== CONSTANTS ==================================================*/
62
63 /*==== FUNCTIONS ==================================================*/
64
65 LOCAL void em_at_cbfkt(T_DRV_SIGNAL_EM * Signal)
66 {
67 T_EM_VAL val_tmp;
68
69 TRACE_FUNCTION ("em_at_cbfkt()");
70
71 memset(&val_tmp, 0x00, sizeof(T_EM_VAL));
72
73 val_tmp.em_utype = Signal->SignalType;
74 switch (Signal->SignalType)
75 {
76 case EM_SUBCLASS_SC:
77 memcpy(&val_tmp.em_u.em_sc_val, &Signal->UserData.sc, sizeof(T_EM_SC_INFO_CNF));
78 break;
79 case EM_SUBCLASS_SC_GPRS:
80 memcpy(&val_tmp.em_u.em_sc_gprs_val, &Signal->UserData.sc_gprs, sizeof(T_EM_SC_GPRS_INFO_CNF));
81 break;
82 case EM_SUBCLASS_NC:
83 memcpy(&val_tmp.em_u.em_nc_val, &Signal->UserData.nc, sizeof(T_EM_NC_INFO_CNF));
84 break;
85 case EM_SUBCLASS_LOC_PAG:
86 memcpy(&val_tmp.em_u.em_loc_val, &Signal->UserData.log_pag, sizeof(T_EM_LOC_PAG_INFO_CNF));
87 break;
88 case EM_SUBCLASS_PLMN:
89 memcpy(&val_tmp.em_u.em_plmn_val, &Signal->UserData.plmn, sizeof(T_EM_PLMN_INFO_CNF));
90 break;
91 case EM_SUBCLASS_CIPH_HOP_DTX:
92 memcpy(&val_tmp.em_u.em_cip_val, &Signal->UserData.cip, sizeof(T_EM_CIP_HOP_DTX_INFO_CNF));
93 break;
94 case EM_SUBCLASS_POWER:
95 memcpy(&val_tmp.em_u.em_power_val, &Signal->UserData.power, sizeof(T_EM_POWER_INFO_CNF));
96 break;
97 case EM_SUBCLASS_ID:
98 memcpy(&val_tmp.em_u.em_id_val, &Signal->UserData.id, sizeof(T_EM_IDENTITY_INFO_CNF));
99 break;
100 case EM_SUBCLASS_SW_VERSION:
101 memcpy(&val_tmp.em_u.em_ver_val, &Signal->UserData.version, sizeof(T_EM_SW_VER));
102 break;
103 case EM_SUBCLASS_GMM:
104 memcpy(&val_tmp.em_u.em_gmm_val, &Signal->UserData.gmm, sizeof(T_EM_GMM_INFO_CNF));
105 break;
106 case EM_SUBCLASS_GRLC:
107 memcpy(&val_tmp.em_u.em_grlc_val, &Signal->UserData.grlc, sizeof(T_EM_GRLC_INFO_CNF));
108 break;
109 case EM_SUBCLASS_AMR:
110 memcpy(&val_tmp.em_u.em_amr_val, &Signal->UserData.amr, sizeof(T_EM_AMR_INFO_CNF));
111 break;
112 case EM_SUBCLASS_PDP:
113 break;
114 default:
115 break;
116 }
117
118 cmhEM( &val_tmp );
119 }
120
121 LOCAL void em_event_at_cbfkt(T_DRV_SIGNAL_EM_EVENT * Signal)
122 {
123 /*
124 * Copy the data in an internal variable
125 */
126 T_DRV_SIGNAL_EM_EVENT Signal_tmp;
127
128 memcpy(&Signal_tmp, Signal, sizeof(T_DRV_SIGNAL_EM_EVENT));
129
130 cmhEMET (&Signal_tmp);
131 }
132
133
134 GLOBAL T_ACI_RETURN sAT_PercentEM ( T_ACI_CMD_SRC srcId,
135 T_EM_AT_MODE mode,
136 T_EM_AT_TYPE type)
137 {
138 UBYTE em_class = 0;
139 UBYTE em_subclass = 0;
140 UBYTE em_type = mode;
141 UBYTE val;
142
143 TRACE_FUNCTION ("sAT_PercentEM ()");
144
145 /*
146 *-------------------------------------------------------------------
147 * check command source
148 *-------------------------------------------------------------------
149 */
150 if(!cmh_IsVldCmdSrc (srcId))
151 {
152 ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter );
153 return( AT_FAIL );
154 }
155 emPrm.srcId = srcId;
156
157 if(mode EQ PCO_REP) /*request EM data as trace output*/
158 {
159 em_subclass_pco_bitmap(type); /*function to send EM_PCO_TRACE_REQ to RR (and GMM) */
160 return AT_CMPL;
161 }
162
163 switch(type)
164 {
165 case EM_AT_SC:
166 em_class = EM_CLASS_INFRA_DATA;
167 em_subclass = EM_SUBCLASS_SC;
168 break;
169 #ifdef GPRS
170 case EM_AT_SC_GPRS:
171 em_class = EM_CLASS_INFRA_DATA;
172 em_subclass = EM_SUBCLASS_SC_GPRS;
173 break;
174 #endif /* GPRS */
175 case EM_AT_NC:
176 em_class = EM_CLASS_INFRA_DATA;
177 em_subclass = EM_SUBCLASS_NC;
178 break;
179 case EM_AT_LOC_PAG:
180 em_class = EM_CLASS_INFRA_DATA;
181 em_subclass = EM_SUBCLASS_LOC_PAG;
182 break;
183 case EM_AT_PLMN:
184 em_class = EM_CLASS_INFRA_DATA;
185 em_subclass = EM_SUBCLASS_PLMN;
186 break;
187 case EM_AT_CIPH_HOP_DTX:
188 em_class = EM_CLASS_INFRA_DATA;
189 em_subclass = EM_SUBCLASS_CIPH_HOP_DTX;
190 break;
191 case EM_AT_POWER:
192 em_class = EM_CLASS_MOBILE_DATA;
193 em_subclass = EM_SUBCLASS_POWER;
194 break;
195 case EM_AT_ID:
196 em_class = EM_CLASS_MOBILE_DATA;
197 em_subclass = EM_SUBCLASS_ID;
198 break;
199 case EM_AT_VER:
200 em_class = EM_CLASS_MOBILE_DATA;
201 em_subclass = EM_SUBCLASS_SW_VERSION;
202 break;
203 #ifdef GPRS
204 case EM_AT_GMM:
205 em_class = EM_CLASS_INFRA_DATA;
206 em_subclass = EM_SUBCLASS_GMM;
207 break;
208 case EM_AT_GRLC:
209 em_class = EM_CLASS_INFRA_DATA;
210 em_subclass = EM_SUBCLASS_GRLC;
211 break;
212 #endif /* GPRS */
213 case EM_AT_AMR:
214 em_class = EM_CLASS_INFRA_DATA;
215 em_subclass = EM_SUBCLASS_AMR;
216 break;
217 #ifdef GPRS
218 case EM_AT_PDP:
219 em_class = EM_CLASS_INFRA_DATA;
220 em_subclass = EM_SUBCLASS_PDP;
221 break;
222 #endif
223 default:
224 return AT_FAIL;
225 } /* switch */
226
227 val = em_Read_Data_Parameter( em_class, em_subclass, em_type, em_at_cbfkt );
228
229 if(em_subclass == EM_SUBCLASS_PDP)
230 return AT_CMPL;
231
232 return AT_EXCT;
233
234 } /* sAT_PercentEM */
235
236 GLOBAL T_ACI_RETURN sAT_PercentEMET( T_ACI_CMD_SRC srcId,
237 UBYTE type)
238 {
239 UBYTE val;
240
241 TRACE_FUNCTION ("sAT_PercentEMET ()");
242
243 /*
244 *-------------------------------------------------------------------
245 * check command source
246 *-------------------------------------------------------------------
247 */
248 if(!cmh_IsVldCmdSrc (srcId))
249 {
250 ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter );
251 return( AT_FAIL );
252 }
253 emetPrm.srcId = srcId;
254
255 val = em_Read_Event_Parameter (type, em_event_at_cbfkt);
256
257 return AT_CMPL;
258 } /* sAT_PercentEMET */
259
260 GLOBAL T_ACI_RETURN sAT_PercentEMETS( T_ACI_CMD_SRC srcId, UBYTE subclass,
261 ULONG bitm_h, ULONG bitm_l )
262 {
263 UBYTE val;
264
265 TRACE_FUNCTION ("sAT_PercentEMETS ()");
266
267 /*
268 *-------------------------------------------------------------------
269 * check command source
270 *-------------------------------------------------------------------
271 */
272 if(!cmh_IsVldCmdSrc (srcId))
273 {
274 ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter );
275 return( AT_FAIL );
276 }
277 emetsPrm.srcId = srcId;
278
279 val = em_Set_EventTrace (subclass, bitm_h, bitm_l);
280
281 return AT_CMPL;
282 } /* sAT_PercentEMETS */
283
284
285
286 /*+++++++++++++++++++++++++++++++++++++++++ E O F +++++++++++++++++++++++++++++++++++++++++*/
287
288