comparison src/ui3/mfw/mfw_sima.c @ 420:e8ddbb0837ed

src/ui3: initial import of TCS3/LoCosto BMI & MFW code
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 21 Jan 2018 03:09:00 +0000
parents
children
comparison
equal deleted inserted replaced
419:59143cd42ec7 420:e8ddbb0837ed
1 /*
2 +--------------------------------------------------------------------+
3 | PROJECT: MMI-Framework (8417) $Workfile:: mfw_sima.c $|
4 | $Author:: Es $Revision:: 1 $|
5 | CREATED: 13.10.98 $Modtime:: 2.03.00 15:14 $|
6 | STATE : code |
7 +--------------------------------------------------------------------+
8
9 MODULE : MFW_SIMA
10
11 PURPOSE : This modul contains the functions for SIM management.
12
13 Jan 16, 2006 DR: OMAPS00061460 - Shashi Shekar B.S.
14 Description: SAT Icon support
15 Solution : SAT icon support added.
16
17 */
18
19
20 #define ENTITY_MFW
21
22 #include "mfw_sys.h"
23
24 #if defined (NEW_FRAME)
25
26 #include "typedefs.h"
27 #include "vsi.h"
28 #include "custom.h"
29 #include "gsm.h"
30
31 #else
32
33 #include "STDDEFS.H"
34 #include "custom.h"
35 #include "gsm.h"
36 #include "vsi.h"
37
38 #endif
39
40 #include "prim.h"
41
42 #include "message.h"
43 #include "prim.h"
44 #include "aci_cmh.h"
45 #include "prim.h"
46 #ifndef PCM_2_FFS
47 #include "pcm.h"
48 #endif
49
50
51 #include "psa.h"
52 #include "psa_sim.h"
53
54 #include "mfw_mfw.h"
55 #include "mfw_nm.h"
56 #include "mfw_sim.h"
57 #include "mfw_simi.h"
58 #include "mfw_sima.h"
59 #include "mfw_nmi.h"
60 #include "mfw_phb.h"
61 #include "mfw_cm.h"
62 #include "mfw_cmi.h"
63 // Shashi Shekar B.S., a0876501, Jan 16, 2006, DR: OMAPS00061460
64 #ifdef FF_MMI_SAT_ICON
65 #include "mfw_sat.h"
66 #endif
67
68 #ifndef FF_2TO1_PS
69 #include "p_sim.val"
70 #endif
71
72 #include <string.h>
73
74 #define hCommSIM _ENTITY_PREFIXED(hCommSIM)
75 #if defined (NEW_FRAME)
76 EXTERN T_HANDLE hCommSIM; /* SIM Communication */
77 #else
78 EXTERN T_VSI_CHANDLE hCommSIM; /* SIM Communication */
79 #endif
80
81 EXTERN void aci_create (BOOL (*r_cb)(USHORT opc, void * data),
82 BOOL (*cmd)(char *));
83
84 /* Added to remove warning Aug - 11 */
85 #ifdef NEPTUNE_BOARD
86 EXTERN void sim_signal (MfwEvt event, void *para);
87 #endif /* NEPTUNE_BOARD */
88 /* End - remove warning Aug - 11 */
89
90
91 T_MFW_READ_CALLBACK read_callback_data;
92
93 // Shashi Shekar B.S., a0876501, Jan 16, 2006, DR: OMAPS00061460
94 #ifdef FF_MMI_SAT_ICON
95 EXTERN U8 read_image_instance_file;
96 #endif
97
98 /*
99 +--------------------------------------------------------------------+
100 | PROJECT: MMI-Framework (8417) MODULE: MFW_SIMA |
101 | STATE : code ROUTINE: sima_response_cb |
102 +--------------------------------------------------------------------+
103
104 PURPOSE : Response Callback Handler.
105
106 */
107
108 GLOBAL BOOL sima_response_cb (ULONG opc, void * data)
109 {
110 // TRACE_FUNCTION ("sim_response_cb()");
111
112 switch (opc)
113 {
114 case SIM_MMI_INSERT_IND:
115 /* MMI relevant parameters from the SIM card has received. */
116 rAT_PlusCFUNP ((T_SIM_MMI_INSERT_IND *)data);
117 return FALSE; /* processed also by ACI */
118
119 case SIM_ACTIVATE_CNF:
120 sim_mmi_parameter((T_SIM_ACTIVATE_CNF *)data);
121 return FALSE;
122
123 case SIM_ACTIVATE_IND:
124 sim_mmi_update_parameter((T_SIM_ACTIVATE_IND *)data);
125 return FALSE;
126 }
127
128 return FALSE; /* not processed by extension */
129 }
130
131 /*
132 +--------------------------------------------------------------------+
133 | PROJECT: MMI-Framework (8417) MODULE: MFW_SIMA |
134 | STATE : code ROUTINE: sima_init |
135 +--------------------------------------------------------------------+
136
137 PURPOSE : Install AT-Command Extension.
138
139 */
140
141 void sima_init ()
142 {
143 TRACE_FUNCTION ("sima_init()");
144 }
145
146
147 /*
148 +----------------------------------------------------------------------+
149 | PROJECT: MMI-Framework (8417) MODULE: MFW_SIMA |
150 | STATE : code ROUTINE: sim_read_sim |
151 +----------------------------------------------------------------------+
152
153
154 PURPOSE : Request to read SIM card.
155
156 */
157
158 void sim_read_sim(USHORT data_id, UBYTE len, UBYTE max_length)
159 {
160 SHORT table_id;
161
162 TRACE_FUNCTION ("sim_read_sim()");
163
164 table_id = psaSIM_atbNewEntry();
165
166 if(table_id NEQ NO_ENTRY)
167 {
168 simShrdPrm.atb[table_id].ntryUsdFlg = TRUE;
169 simShrdPrm.atb[table_id].accType = ACT_RD_DAT;
170 // R99 SIM Interface changes . Indicates whether path_info variable has valid values
171 simShrdPrm.atb[table_id].v_path_info = FALSE;
172 simShrdPrm.atb[table_id].reqDataFld = data_id;
173 simShrdPrm.atb[table_id].dataOff = 0;
174 simShrdPrm.atb[table_id].dataLen = len;
175 simShrdPrm.atb[table_id].recMax = max_length;
176 simShrdPrm.atb[table_id].exchData = NULL;
177 simShrdPrm.atb[table_id].rplyCB = sim_read_sim_cb;
178
179 simShrdPrm.aId = table_id;
180
181 if(psaSIM_AccessSIMData( ) < 0)
182 {
183 TRACE_EVENT("FATAL ERROR");
184 }
185 }
186 }
187
188 // Shashi Shekar B.S., a0876501, Jan 16, 2006, DR: OMAPS00061460
189 #ifdef FF_MMI_SAT_ICON
190 /*
191 +----------------------------------------------------------------------+
192 | PROJECT: MMI-Framework (8417) MODULE: MFW_SIMA |
193 | STATE : code ROUTINE: sim_read_sim_icon |
194 +----------------------------------------------------------------------+
195
196
197 PURPOSE : Request to read SIM card EF IMG. This is separated from the
198 above SIM read function as we have to specify the record number
199 also while reading the EF record & we dont want this functionality
200 for Lite variants.
201
202 */
203
204 void sim_read_sim_icon(T_SIM_ACCESS_PARAM *sim_icon_read_param)
205 {
206 SHORT table_id;
207
208 TRACE_FUNCTION ("sim_read_sim_icon()");
209
210 table_id = psaSIM_atbNewEntry();
211
212 if(table_id NEQ NO_ENTRY)
213 {
214 simShrdPrm.atb[table_id].ntryUsdFlg = TRUE;
215 simShrdPrm.atb[table_id].accType = ACT_RD_REC;
216 // R99 SIM Interface changes. Indicates whether path_info variable has valid values
217 simShrdPrm.atb[table_id].v_path_info = FALSE;
218 simShrdPrm.atb[table_id].reqDataFld = sim_icon_read_param -> data_id;
219 simShrdPrm.atb[table_id].dataOff = sim_icon_read_param -> offset;
220 simShrdPrm.atb[table_id].dataLen = sim_icon_read_param -> len;
221 simShrdPrm.atb[table_id].recMax = sim_icon_read_param -> max_length;
222 simShrdPrm.atb[table_id].exchData = NULL;
223 /* Read the Record number provided, only if available */
224 if(sim_icon_read_param -> record_number)
225 simShrdPrm.atb[table_id].recNr = sim_icon_read_param -> record_number;
226 simShrdPrm.atb[table_id].rplyCB = sim_read_sim_cb;
227
228 simShrdPrm.aId = table_id;
229
230 if(psaSIM_AccessSIMData( ) < 0)
231 {
232 TRACE_EVENT("FATAL ERROR");
233 }
234 }
235 }
236 #endif
237
238 /*
239 +---------------------------------------------------------------------+
240 | PROJECT: MMI-Framework (8417) MODULE: MFW_SIMA |
241 | STATE : code ROUTINE: sim_read_sim_cb |
242 +---------------------------------------------------------------------+
243
244
245 PURPOSE : Call back for SIM read.
246
247 */
248
249 void sim_read_sim_cb(SHORT table_id)
250 {
251 TRACE_FUNCTION ("sim_read_sim_cb()");
252
253 simShrdPrm.atb[table_id].ntryUsdFlg = FALSE;
254
255 // Shashi Shekar B.S., a0876501, Jan 16, 2006, DR: OMAPS00061460
256 #ifdef FF_MMI_SAT_ICON
257 /* If we are reading the image data contents,
258 we dont need to enter the switch statement */
259 if (read_image_instance_file)
260 {
261 sim_img_instance_data_cnf(simShrdPrm.atb[table_id].errCode,
262 simShrdPrm.atb[table_id].exchData);
263 return;
264 }
265 #endif
266
267 switch (simShrdPrm.atb[table_id].reqDataFld)
268 {
269 // Shashi Shekar B.S., a0876501, Jan 16, 2006, DR: OMAPS00061460
270 #ifdef FF_MMI_SAT_ICON
271 /* EF-IMG contents */
272 case SIM_IMG:
273 sim_img_cnf(simShrdPrm.atb[table_id].errCode, simShrdPrm.atb[table_id].recNr,
274 (UBYTE *)simShrdPrm.atb[table_id].exchData);
275 break;
276 #endif
277
278 /* Service provide name */
279 case SIM_SPN:
280 nm_spn_cnf(simShrdPrm.atb[table_id].errCode, (T_EF_SPN *)simShrdPrm.atb[table_id].exchData);
281 break;
282
283 /* group identifier level 1 */
284 case SIM_GID1:
285 sim_gid1_cnf(simShrdPrm.atb[table_id].errCode, simShrdPrm.atb[table_id].exchData);
286 break;
287
288 /* group identifier level 2 */
289 case SIM_GID2:
290 sim_gid2_cnf(simShrdPrm.atb[table_id].errCode, simShrdPrm.atb[table_id].exchData);
291 break;
292
293 case SIM_SST:
294 sim_read_sst_cnf(simShrdPrm.atb[table_id].errCode, simShrdPrm.atb[table_id].exchData);
295 break;
296 /*MC CONQ5862, 13/06/02*, if not one of above data fileds, send event to MMI*/
297 default:
298 read_callback_data.error_code = simShrdPrm.atb[table_id].errCode;
299 read_callback_data.read_buffer = simShrdPrm.atb[table_id].exchData;
300 sim_signal(E_SIM_READ_CALLBACK, (void*)&read_callback_data);
301 break;
302 }
303 }
304
305
306 /*
307 +----------------------------------------------------------------------+
308 | PROJECT: MMI-Framework (8417) MODULE: MFW_SIMA |
309 | STATE : code ROUTINE: sim_write_sim |
310 +----------------------------------------------------------------------+
311
312
313 PURPOSE : Request to write SIM card.
314
315 */
316
317 void sim_write_sim(USHORT data_id, UBYTE *data, UBYTE length)
318 {
319 SHORT table_id;
320
321 /* Write preferred PLMN list in SIM card */
322 table_id = psaSIM_atbNewEntry();
323
324 if(table_id NEQ NO_ENTRY)
325 {
326 simShrdPrm.atb[table_id].ntryUsdFlg = TRUE;
327 simShrdPrm.atb[table_id].accType = ACT_WR_DAT;
328 //R99 Sim Interface changes. Indicates whether path_info variable has valid values
329 simShrdPrm.atb[table_id].v_path_info = FALSE;
330 simShrdPrm.atb[table_id].reqDataFld = data_id;
331 simShrdPrm.atb[table_id].dataOff = 0;
332 simShrdPrm.atb[table_id].dataLen = length;
333 simShrdPrm.atb[table_id].exchData = data;
334 simShrdPrm.atb[table_id].rplyCB = sim_write_sim_cb;
335
336 simShrdPrm.aId = table_id;
337
338 if(psaSIM_AccessSIMData( ) < 0)
339 {
340 TRACE_EVENT("FATAL ERROR");
341 }
342 }
343 }
344
345
346 /*
347 +---------------------------------------------------------------------+
348 | PROJECT: MMI-Framework (8417) MODULE: MFW_SIMA |
349 | STATE : code ROUTINE: sim_write_sim_cb |
350 +---------------------------------------------------------------------+
351
352
353 PURPOSE : Call back for SIM write.
354
355 */
356
357 void sim_write_sim_cb(SHORT table_id)
358 {
359 simShrdPrm.atb[table_id].ntryUsdFlg = FALSE;
360
361 #ifdef FF_2TO1_PS
362 if (simShrdPrm.atb[table_id].errCode EQ CAUSE_SIM_NO_ERROR)
363 #else
364 if (simShrdPrm.atb[table_id].errCode EQ SIM_NO_ERROR)
365 #endif
366 {
367 TRACE_EVENT("FATAL ERROR");
368 }
369 }