comparison gsm-fw/g23m-aci/aci/cmh_emq.c @ 775:eedbf248bac0

gsm-fw/g23m-aci subtree: initial import from LoCosto source
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Sun, 12 Oct 2014 01:45:14 +0000
parents
children 44bac38197dd
comparison
equal deleted inserted replaced
774:40a721fd9854 775:eedbf248bac0
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
142 TRACE_FUNCTION ("sAT_PercentEM ()");
143
144 /*
145 *-------------------------------------------------------------------
146 * check command source
147 *-------------------------------------------------------------------
148 */
149 if(!cmh_IsVldCmdSrc (srcId))
150 {
151 return( AT_FAIL );
152 }
153 emPrm.srcId = srcId;
154
155 if(mode EQ PCO_REP) /*request EM data as trace output*/
156 {
157 em_subclass_pco_bitmap(type); /*function to send EM_PCO_TRACE_REQ to RR (and GMM) */
158 return AT_CMPL;
159 }
160
161 switch(type)
162 {
163 case EM_AT_SC:
164 em_class = EM_CLASS_INFRA_DATA;
165 em_subclass = EM_SUBCLASS_SC;
166 break;
167 #ifdef GPRS
168 case EM_AT_SC_GPRS:
169 em_class = EM_CLASS_INFRA_DATA;
170 em_subclass = EM_SUBCLASS_SC_GPRS;
171 break;
172 #endif /* GPRS */
173 case EM_AT_NC:
174 em_class = EM_CLASS_INFRA_DATA;
175 em_subclass = EM_SUBCLASS_NC;
176 break;
177 case EM_AT_LOC_PAG:
178 em_class = EM_CLASS_INFRA_DATA;
179 em_subclass = EM_SUBCLASS_LOC_PAG;
180 break;
181 case EM_AT_PLMN:
182 em_class = EM_CLASS_INFRA_DATA;
183 em_subclass = EM_SUBCLASS_PLMN;
184 break;
185 case EM_AT_CIPH_HOP_DTX:
186 em_class = EM_CLASS_INFRA_DATA;
187 em_subclass = EM_SUBCLASS_CIPH_HOP_DTX;
188 break;
189 case EM_AT_POWER:
190 em_class = EM_CLASS_MOBILE_DATA;
191 em_subclass = EM_SUBCLASS_POWER;
192 break;
193 case EM_AT_ID:
194 em_class = EM_CLASS_MOBILE_DATA;
195 em_subclass = EM_SUBCLASS_ID;
196 break;
197 case EM_AT_VER:
198 em_class = EM_CLASS_MOBILE_DATA;
199 em_subclass = EM_SUBCLASS_SW_VERSION;
200 break;
201 #ifdef GPRS
202 case EM_AT_GMM:
203 em_class = EM_CLASS_INFRA_DATA;
204 em_subclass = EM_SUBCLASS_GMM;
205 break;
206 case EM_AT_GRLC:
207 em_class = EM_CLASS_INFRA_DATA;
208 em_subclass = EM_SUBCLASS_GRLC;
209 break;
210 #endif /* GPRS */
211 case EM_AT_AMR:
212 em_class = EM_CLASS_INFRA_DATA;
213 em_subclass = EM_SUBCLASS_AMR;
214 break;
215 #ifdef GPRS
216 case EM_AT_PDP:
217 em_class = EM_CLASS_INFRA_DATA;
218 em_subclass = EM_SUBCLASS_PDP;
219 break;
220 #endif
221 default:
222 return AT_FAIL;
223 } /* switch */
224
225 em_Read_Data_Parameter( em_class, em_subclass, em_type, em_at_cbfkt );
226
227 if(em_subclass == EM_SUBCLASS_PDP)
228 return AT_CMPL;
229
230 return AT_EXCT;
231
232 } /* sAT_PercentEM */
233
234 GLOBAL T_ACI_RETURN sAT_PercentEMET( T_ACI_CMD_SRC srcId,
235 UBYTE type)
236 {
237
238 TRACE_FUNCTION ("sAT_PercentEMET ()");
239
240 /*
241 *-------------------------------------------------------------------
242 * check command source
243 *-------------------------------------------------------------------
244 */
245 if(!cmh_IsVldCmdSrc (srcId))
246 {
247 return( AT_FAIL );
248 }
249 emetPrm.srcId = srcId;
250 em_Read_Event_Parameter (type, em_event_at_cbfkt);
251
252 return AT_CMPL;
253 } /* sAT_PercentEMET */
254
255 GLOBAL T_ACI_RETURN sAT_PercentEMETS( T_ACI_CMD_SRC srcId, UBYTE subclass,
256 ULONG bitm_h, ULONG bitm_l )
257 {
258
259 TRACE_FUNCTION ("sAT_PercentEMETS ()");
260
261 /*
262 *-------------------------------------------------------------------
263 * check command source
264 *-------------------------------------------------------------------
265 */
266 if(!cmh_IsVldCmdSrc (srcId))
267 {
268 return( AT_FAIL );
269 }
270 emetsPrm.srcId = srcId;
271
272 em_Set_EventTrace (subclass, bitm_h, bitm_l);
273
274 return AT_CMPL;
275 } /* sAT_PercentEMETS */
276
277
278
279 /*+++++++++++++++++++++++++++++++++++++++++ E O F +++++++++++++++++++++++++++++++++++++++++*/
280
281