comparison src/g23m-aci/aci/aci_bat_mm.c @ 1:d393cd9bb723

src/g23m-*: initial import from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 15 Jul 2018 04:40:46 +0000
parents
children
comparison
equal deleted inserted replaced
0:b6a5e36de839 1:d393cd9bb723
1 /*
2 +-----------------------------------------------------------------------------
3 | Project : GSM-F&D (8411)
4 | Modul : ACI_BAT
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 BAT wrapper modul is ...
18 |
19 +-----------------------------------------------------------------------------
20 */
21
22 #include "aci_all.h" /* includes prim.h, which includes p_bat.h */
23 #include "aci_cmh.h" /* prototypes of sAT_,qAT_,tAT_ */
24 #include "aci_bat_cmh.h" /* prototypes of sBAT_,qBAT_,tBAT_ */
25
26 #ifdef FF_ATI_BAT
27 #include "typedefs.h"
28 #include "gdd.h"
29 #include "bat.h"
30 #include "aci_bat.h"
31 #endif /* FF_ATI_BAT */
32
33 /*
34 +--------------------------------------------------------------------+
35 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
36 | STATE : code ROUTINE : sBAT_PlusCOPS |
37 +--------------------------------------------------------------------+
38
39 PURPOSE :
40 */
41 #undef min
42 #define min(a,b) ((a) < (b) ? (a) : (b)) /* from gpf\inc\vcms */
43
44 GLOBAL T_ACI_BAT_RSLT sBAT_PlusCOPS(T_ACI_DTI_PRC_PSI *src_infos_psi,
45 T_BAT_cmd_send *cmd)
46 {
47 T_ACI_BAT_RSLT ret;
48
49 U8 c_oper = cmd->params.ptr_set_plus_cops->c_oper;
50 CHAR op[MAX_ALPHA_OPER_LEN] = {0};
51
52 TRACE_FUNCTION ("sBAT_PlusCOPS()");
53
54 c_oper = min(c_oper, MAX_ALPHA_OPER_LEN);
55
56 if (cmd->params.ptr_set_plus_cops->v_oper EQ TRUE)
57 memcpy(op, cmd->params.ptr_set_plus_cops->oper, c_oper);
58
59 ret =(T_ACI_BAT_RSLT) sAT_PlusCOPS ((T_ACI_CMD_SRC)src_infos_psi->srcId,
60 (T_ACI_COPS_MOD)cmd->params.ptr_set_plus_cops->mode,
61 (T_ACI_COPS_FRMT)cmd->params.ptr_set_plus_cops->format, op);
62 return(ret);
63 }
64
65 /*
66 +--------------------------------------------------------------------+
67 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
68 | STATE : code ROUTINE : qBAT_PlusCOPS |
69 +--------------------------------------------------------------------+
70
71 PURPOSE :
72 */
73 GLOBAL T_ACI_BAT_RSLT qBAT_PlusCOPS(T_ACI_DTI_PRC_PSI *src_infos_psi,
74 T_BAT_cmd_send *cmd)
75 {
76 T_ACI_BAT_RSLT ret;
77
78 CHAR op[MAX_ALPHA_OPER_LEN] = {0};
79
80 T_ACI_COPS_MOD mode = COPS_MOD_NotPresent;
81 T_ACI_COPS_FRMT format = COPS_FRMT_NotPresent;
82 T_BAT_cmd_response resp;
83 T_BAT_res_que_plus_cops cops;
84
85 TRACE_FUNCTION ("qBAT_PlusCOPS()");
86
87 resp.ctrl_response = BAT_RES_QUE_PLUS_COPS;
88 resp.response.ptr_que_plus_cops = &cops;
89
90 ret =(T_ACI_BAT_RSLT) qAT_PlusCOPS((T_ACI_CMD_SRC)src_infos_psi->srcId, &mode, &format, op);
91
92 cops.mode = (T_BAT_plus_cops_mode)mode;
93 cops.format = (T_BAT_plus_cops_format)format;
94 cops.c_oper = strlen(op);
95 cops.v_oper = cops.c_oper ? TRUE : FALSE;
96
97 if (cops.v_oper)
98 {
99 memcpy(cops.oper, op, cops.c_oper);
100 }
101 aci_bat_send(src_infos_psi, &resp);
102 return(ret);
103 }
104
105 /*
106 +--------------------------------------------------------------------+
107 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
108 | STATE : code ROUTINE : tBAT_PlusCOPS |
109 +--------------------------------------------------------------------+
110
111 PURPOSE :
112 */
113 GLOBAL T_ACI_BAT_RSLT tBAT_PlusCOPS(T_ACI_DTI_PRC_PSI *src_infos_psi,
114 T_BAT_cmd_send *cmd)
115 {
116 T_ACI_BAT_RSLT ret;
117 T_ACI_COPS_LST operLst;
118 T_BAT_cmd_response resp;
119 T_BAT_res_tst_plus_cops *pTPC;
120
121 SHORT startIdx = 0, lastIdx = 0;
122 BOOL END_OF_LIST = FALSE;
123
124 TRACE_FUNCTION ("tBAT_PlusCOPS()");
125
126 memset(&resp, 0x00, sizeof(T_BAT_cmd_response));
127 pTPC = resp.response.ptr_tst_plus_cops;
128 resp.ctrl_response = BAT_RES_TST_PERCENT_COPS;
129
130 do
131 {
132 int i;
133
134 startIdx += lastIdx;
135 ret =(T_ACI_BAT_RSLT) tAT_PlusCOPS((T_ACI_CMD_SRC)src_infos_psi->srcId, startIdx, &lastIdx, &operLst[0]);
136 if (ret NEQ ACI_BAT_CMPL)
137 return (ret);
138
139 for (i = 0; i < lastIdx; i++)
140 {
141 if ((operLst[i].status EQ COPS_STAT_NotPresent) AND (*operLst[i].numOper EQ 0))
142 {
143 END_OF_LIST = TRUE;
144 break;
145 }
146 /* Fill BAT resp structs */
147 pTPC->status = (T_BAT_plus_cops_status)operLst[i].status;
148 pTPC->c_short_oper = strlen(operLst[i].shortOper);
149 pTPC->c_long_oper = strlen(operLst[i].longOper);
150 pTPC->c_num_oper = strlen(operLst[i].numOper);
151
152 /* Check if there is long operator name, set valid flag and store it. */
153 if(pTPC->c_long_oper)
154 {
155 pTPC->v_long_oper = TRUE;
156 strncpy((CHAR*)pTPC->long_oper, operLst[i].longOper, pTPC->c_long_oper);
157 }
158
159 /* Check if there is short operator name, set valid flag and store it. */
160 if(pTPC->c_short_oper)
161 {
162 pTPC->v_short_oper = TRUE;
163 strncpy((CHAR*)pTPC->short_oper, operLst[i].shortOper, pTPC->c_short_oper);
164 }
165
166 /* Check if there is num operator name, set valid flag and store it. */
167 if(pTPC->c_num_oper)
168 {
169 pTPC->v_num_oper = TRUE;
170 strncpy((CHAR*)pTPC->num_oper, operLst[i].numOper, pTPC->c_num_oper);
171 }
172
173 aci_bat_send(src_infos_psi, &resp);
174 }
175 return (ACI_BAT_CMPL);
176 } while(!END_OF_LIST);
177 }
178
179 /*
180 +--------------------------------------------------------------------+
181 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
182 | STATE : code ROUTINE : sBAT_PercentCOPS |
183 +--------------------------------------------------------------------+
184
185 PURPOSE :
186 */
187 GLOBAL T_ACI_BAT_RSLT sBAT_PercentCOPS(T_ACI_DTI_PRC_PSI *src_infos_psi,
188 T_BAT_cmd_send *cmd)
189 {
190 T_ACI_BAT_RSLT ret;
191
192 U8 c_oper = cmd->params.ptr_set_percent_cops->c_oper;
193 CHAR op[MAX_ALPHA_OPER_LEN] = {0};
194
195 TRACE_FUNCTION ("sBAT_PercentCOPS()");
196
197 c_oper = min(c_oper, MAX_ALPHA_OPER_LEN);
198
199 if (cmd->params.ptr_set_percent_cops->v_oper EQ TRUE)
200 memcpy(op, cmd->params.ptr_set_percent_cops->oper, c_oper);
201
202 ret =(T_ACI_BAT_RSLT) sAT_PercentCOPS ((T_ACI_CMD_SRC)src_infos_psi->srcId,
203 (T_ACI_COPS_MOD)cmd->params.ptr_set_percent_cops->mode,
204 (T_ACI_COPS_FRMT)cmd->params.ptr_set_percent_cops->format, op);
205 return(ret);
206 }
207
208 /*
209 +--------------------------------------------------------------------+
210 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
211 | STATE : code ROUTINE : tBAT_PercentCOPS |
212 +--------------------------------------------------------------------+
213
214 PURPOSE :
215 */
216 GLOBAL T_ACI_BAT_RSLT tBAT_PercentCOPS(T_ACI_DTI_PRC_PSI *src_infos_psi,
217 T_BAT_cmd_send *cmd)
218 {
219 T_ACI_BAT_RSLT ret;
220 T_ACI_COPS_LST operLst;
221 T_BAT_cmd_response resp;
222 T_BAT_res_tst_percent_cops cops;
223
224 SHORT startIdx = 0, lastIdx = 0;
225 BOOL END_OF_LIST = FALSE;
226
227 TRACE_FUNCTION ("tBAT_PercentCOPS()");
228
229 resp.ctrl_response = BAT_RES_TST_PERCENT_COPS;
230 resp.response.ptr_tst_percent_cops = &cops;
231
232 do
233 {
234 int i;
235
236 startIdx += lastIdx;
237 ret =(T_ACI_BAT_RSLT) tAT_PlusCOPS((T_ACI_CMD_SRC)src_infos_psi->srcId, startIdx, &lastIdx, &operLst[0]);
238 if (ret NEQ ACI_BAT_CMPL)
239 return (ret);
240
241 for (i = 0; i < lastIdx; i++)
242 {
243 if ((operLst[i].status EQ COPS_STAT_NotPresent) AND (*operLst[i].numOper EQ 0))
244 {
245 END_OF_LIST = TRUE;
246 break;
247 }
248 /* Fill BAT resp structs */
249 cops.status = (T_BAT_percent_cops_status)operLst[i].status;
250 cops.c_short_oper = strlen(operLst[i].shortOper);
251 cops.c_long_oper = strlen(operLst[i].longOper);
252 cops.c_num_oper = strlen(operLst[i].numOper);
253
254 /* Check if there is long operator name, set valid flag and store it. */
255 if(cops.c_long_oper)
256 {
257 cops.v_long_oper = TRUE;
258 strncpy((CHAR*)cops.long_oper, operLst[i].longOper, cops.c_long_oper);
259 }
260
261 /* Check if there is short operator name, set valid flag and store it. */
262 if(cops.c_short_oper)
263 {
264 cops.v_short_oper = TRUE;
265 strncpy((CHAR*)cops.short_oper, operLst[i].shortOper, cops.c_short_oper);
266 }
267
268 /* Check if there is num operator name, set valid flag and store it. */
269 if(cops.c_num_oper)
270 {
271 cops.v_num_oper = TRUE;
272 strncpy((CHAR*)cops.num_oper, operLst[i].numOper, cops.c_num_oper);
273 }
274
275 aci_bat_send(src_infos_psi, &resp);
276 }
277 return (ACI_BAT_CMPL);
278 } while(!END_OF_LIST);
279 }
280
281 /*
282 +--------------------------------------------------------------------+
283 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
284 | STATE : code ROUTINE : qBAT_PercentCOPS |
285 +--------------------------------------------------------------------+
286
287 PURPOSE :
288 */
289 GLOBAL T_ACI_BAT_RSLT qBAT_PercentCOPS(T_ACI_DTI_PRC_PSI *src_infos_psi,
290 T_BAT_cmd_send *cmd)
291 {
292 T_ACI_BAT_RSLT ret;
293
294 CHAR op[MAX_ALPHA_OPER_LEN] = {0};
295
296 T_ACI_COPS_MOD mode = COPS_MOD_NotPresent;
297 T_ACI_COPS_FRMT format = COPS_FRMT_NotPresent;
298 T_ACI_COPS_SVST svrStatus = COPS_SVST_NotPresent;
299 T_BAT_cmd_response resp;
300 T_BAT_res_que_percent_cops cops;
301
302 TRACE_FUNCTION ("qBAT_PercentCOPS()");
303
304 resp.ctrl_response = BAT_RES_QUE_PERCENT_COPS;
305 resp.response.ptr_que_percent_cops = &cops;
306
307 ret =(T_ACI_BAT_RSLT) qAT_PercentCOPS((T_ACI_CMD_SRC)src_infos_psi->srcId, &mode, &format, &svrStatus, op);
308
309 cops.mode = (T_BAT_percent_cops_mode)mode;
310 cops.format = (T_BAT_percent_cops_format)format;
311 cops.service = (T_BAT_percent_cops_service)svrStatus;
312 cops.c_oper = strlen(op);
313 cops.v_oper = cops.c_oper ? TRUE : FALSE;
314
315 if (cops.v_oper)
316 {
317 memcpy(cops.oper, op, cops.c_oper);
318 }
319 aci_bat_send(src_infos_psi, &resp);
320 return(ret);
321 }
322
323 /*
324 +--------------------------------------------------------------------+
325 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
326 | STATE : code ROUTINE : qBAT_PercentCREG |
327 +--------------------------------------------------------------------+
328
329 PURPOSE :
330 */
331 GLOBAL T_ACI_BAT_RSLT qBAT_PercentCREG(T_ACI_DTI_PRC_PSI *src_infos_psi,
332 T_BAT_cmd_send *cmd)
333 {
334 T_ACI_BAT_RSLT ret;
335 T_BAT_cmd_response resp;
336 T_BAT_res_que_percent_creg creg;
337
338 TRACE_FUNCTION ("qBAT_PercentCREG()");
339
340 resp.ctrl_response = BAT_RES_QUE_PERCENT_CREG;
341 resp.response.ptr_que_percent_creg = &creg;
342
343 ret =(T_ACI_BAT_RSLT) qAT_PercentCREG((T_ACI_CMD_SRC)src_infos_psi->srcId,
344 (T_ACI_CREG_STAT*)&creg.stat,
345 (USHORT*)&creg.lac,
346 (USHORT*)&creg.ci,
347 (T_ACI_P_CREG_GPRS_IND*)&creg.gprs_ind,
348 (U8*)&creg.rt);
349
350 aci_bat_send(src_infos_psi, &resp);
351 return(ret);
352 }
353
354 #ifdef TI_PS_FF_AT_CMD_WS46
355 /*
356 +--------------------------------------------------------------------+
357 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
358 | STATE : code ROUTINE : sBAT_PlusWS46 |
359 +--------------------------------------------------------------------+
360
361 PURPOSE :
362 */
363 GLOBAL T_ACI_BAT_RSLT sBAT_PlusWS46(T_ACI_DTI_PRC_PSI *src_infos_psi,
364 T_BAT_cmd_send *cmd)
365 {
366 T_ACI_BAT_RSLT ret;
367 T_BAT_plus_ws46_n mode = cmd->params.ptr_set_plus_ws46->n;
368
369 TRACE_FUNCTION ("sBAT_PlusWS46()");
370
371 ret =(T_ACI_BAT_RSLT) sAT_PlusWS46((T_ACI_CMD_SRC)src_infos_psi->srcId, (T_ACI_WS46_MOD)mode);
372 return(ret);
373 }
374
375 /*
376 +--------------------------------------------------------------------+
377 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
378 | STATE : code ROUTINE : qBAT_PlusWS46 |
379 +--------------------------------------------------------------------+
380
381 PURPOSE :
382 */
383 GLOBAL T_ACI_BAT_RSLT qBAT_PlusWS46(T_ACI_DTI_PRC_PSI *src_infos_psi,
384 T_BAT_cmd_send *cmd)
385 {
386 T_ACI_BAT_RSLT ret;
387 T_BAT_cmd_response resp;
388 T_BAT_res_que_plus_ws46 ws46;
389
390 TRACE_FUNCTION ("qBAT_PlusWS46()");
391
392 resp.ctrl_response = BAT_RES_QUE_PLUS_WS46;
393 resp.response.ptr_que_plus_ws46 = &ws46;
394
395 ret = (T_ACI_BAT_RSLT) qAT_PlusWS46((T_ACI_CMD_SRC)src_infos_psi->srcId, (T_ACI_WS46_MOD *)&ws46.n);
396
397 aci_bat_send(src_infos_psi, &resp);
398 return(ret);
399 }
400 #endif /* TI_PS_FF_AT_CMD_WS46 */
401 /*
402 +--------------------------------------------------------------------+
403 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
404 | STATE : code ROUTINE : sBAT_PercentCHPL |
405 +--------------------------------------------------------------------+
406
407 PURPOSE :
408 */
409 GLOBAL T_ACI_BAT_RSLT sBAT_PercentCHPL(T_ACI_DTI_PRC_PSI *src_infos_psi,
410 T_BAT_cmd_send *cmd)
411 {
412 T_ACI_BAT_RSLT ret;
413 T_ACI_OPER_NTRY oper;
414 UBYTE len;
415
416 TRACE_FUNCTION ("sBAT_PercentCHPL()");
417
418 /*
419 * Call the corresponding ACI function. T_ACI_BAT_RSLT is
420 * assumed to be equivalent to T_ACI_RESULT.
421 */
422 ret=(T_ACI_BAT_RSLT)sAT_PercentCHPL((T_ACI_CMD_SRC) src_infos_psi->srcId,&oper);
423
424 /*
425 * If the command completes, we must send a response.
426 */
427 if (ret==ACI_BAT_CMPL)
428 {
429 T_BAT_cmd_response resp;
430 T_BAT_res_set_percent_chpl chpl_data;
431
432 resp.ctrl_response=BAT_RES_SET_PERCENT_CHPL;
433 resp.response.ptr_set_percent_chpl=&chpl_data;
434
435 chpl_data.type=BAT_P_CHPL_TYPE_FROM_IMS;
436
437 switch (cmd->params.ptr_set_percent_chpl->oprfrmt)
438 {
439 case BAT_P_CHPL_OPRFRMT_LONG:
440 len=strlen(oper.longName);
441
442 if (len<=BAT_MAX_CHPL_OPER_LEN)
443 {
444 memcpy(chpl_data.oper,oper.longName,len);
445 chpl_data.c_oper=(U8)len;
446 }
447 else
448 {
449 return(ACI_BAT_FAIL);
450 }
451 break;
452
453 case BAT_P_CHPL_OPRFRMT_SHORT:
454 len=strlen(oper.shrtName);
455
456 if (len<=BAT_MAX_CHPL_OPER_LEN)
457 {
458 memcpy(chpl_data.oper,oper.shrtName,len);
459 chpl_data.c_oper=(U8)len;
460 }
461 else
462 {
463 return(ACI_BAT_FAIL);
464 }
465 break;
466
467 case BAT_P_CHPL_OPRFRMT_NUMERIC:
468 /*
469 * Representation of the numeric format as in the ATI.
470 */
471 if ((oper.mnc & 0x00F)==0xF)
472 sprintf((char *)chpl_data.oper, "%03x,%02x",oper.mcc, oper.mnc >> 4);
473 else
474 sprintf((char *)chpl_data.oper, "%03x,%03x",oper.mcc, oper.mnc);
475
476 chpl_data.c_oper=(U8)strlen((char *)chpl_data.oper);
477 break;
478
479 default:
480 return(ACI_BAT_FAIL);
481 }
482
483 aci_bat_send(src_infos_psi,&resp);
484 }
485
486 return(ret);
487 }
488
489 /*
490 +--------------------------------------------------------------------+
491 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
492 | STATE : code ROUTINE : sBAT_PlusCTZU |
493 +--------------------------------------------------------------------+
494
495 PURPOSE :
496 */
497 GLOBAL T_ACI_BAT_RSLT sBAT_PlusCTZU(T_ACI_DTI_PRC_PSI *src_infos_psi,
498 T_BAT_cmd_send *cmd)
499 {
500 T_ACI_BAT_RSLT ret;
501
502 TRACE_FUNCTION ("sBAT_PlusCTZU()");
503
504 ret =(T_ACI_BAT_RSLT) sAT_PlusCTZU ((T_ACI_CMD_SRC)src_infos_psi->srcId, (T_ACI_CTZU_MODE)cmd->params.ptr_set_plus_ctzu->onoff);
505 return(ret);
506 }
507
508 /*
509 +--------------------------------------------------------------------+
510 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
511 | STATE : code ROUTINE : qBAT_PlusCTZU |
512 +--------------------------------------------------------------------+
513
514 PURPOSE :
515 */
516 GLOBAL T_ACI_BAT_RSLT qBAT_PlusCTZU(T_ACI_DTI_PRC_PSI *src_infos_psi,
517 T_BAT_cmd_send *cmd)
518 {
519 T_ACI_BAT_RSLT ret;
520
521 T_BAT_cmd_response resp;
522 T_BAT_res_que_plus_ctzu ctzu;
523
524 TRACE_FUNCTION ("qBAT_PlusCTZU()");
525
526 resp.ctrl_response = BAT_RES_QUE_PLUS_CTZU;
527 resp.response.ptr_que_plus_ctzu = &ctzu;
528 ret =(T_ACI_BAT_RSLT) qAT_PlusCTZU((T_ACI_CMD_SRC)src_infos_psi->srcId, (T_ACI_CTZU_MODE*)&ctzu.onoff);
529
530 aci_bat_send(src_infos_psi, &resp);
531 return(ret);
532 }
533
534 /*
535 +--------------------------------------------------------------------+
536 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
537 | STATE : code ROUTINE : sBAT_PercentCWUP |
538 +--------------------------------------------------------------------+
539
540 PURPOSE :
541 */
542 GLOBAL T_ACI_BAT_RSLT sBAT_PercentCWUP(T_ACI_DTI_PRC_PSI *src_infos_psi,
543 T_BAT_cmd_send *cmd)
544 {
545 T_ACI_BAT_RSLT ret = ACI_BAT_FAIL;
546
547 TRACE_FUNCTION ("sBAT_PercentCWUP()");
548
549 ret =(T_ACI_BAT_RSLT) sAT_PercentCWUP ((T_ACI_CMD_SRC)src_infos_psi->srcId,(T_ACI_CWUP_TYPE)cmd->params.ptr_set_percent_cwup->type);
550 return(ret);
551 }
552
553 /*
554 +--------------------------------------------------------------------+
555 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
556 | STATE : code ROUTINE : sBAT_PercentCTZV |
557 +--------------------------------------------------------------------+
558
559 PURPOSE : %CTZV command mode (time and date report)
560 */
561 GLOBAL T_ACI_BAT_RSLT sBAT_PercentCTZV (T_ACI_DTI_PRC_PSI *src_infos_psi,
562 T_BAT_cmd_send *cmd)
563 {
564 T_ACI_BAT_RSLT ret;
565
566 TRACE_FUNCTION ("sBAT_PercentCTZV()");
567
568 ret =(T_ACI_BAT_RSLT) sAT_PercentCTZV ((T_ACI_CMD_SRC)src_infos_psi->srcId,
569 (T_ACI_PCTZV_MODE)cmd->params.ptr_set_percent_ctzv->mode);
570 return(ret);
571 }
572
573 /*
574 +--------------------------------------------------------------------+
575 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
576 | STATE : code ROUTINE : sBAT_PercentCNIV |
577 +--------------------------------------------------------------------+
578
579 PURPOSE : %CNIV set command mode (Network name report)
580 */
581 GLOBAL T_ACI_BAT_RSLT sBAT_PercentCNIV (T_ACI_DTI_PRC_PSI *src_infos_psi,
582 T_BAT_cmd_send *cmd)
583 {
584 T_ACI_BAT_RSLT ret;
585
586 TRACE_FUNCTION ("sBAT_PercentCNIV()");
587
588 ret =(T_ACI_BAT_RSLT) sAT_PercentCNIV ((T_ACI_CMD_SRC)src_infos_psi->srcId,
589 (T_ACI_CNIV_MODE)cmd->params.ptr_set_percent_cniv->mode);
590 return(ret);
591 }
592
593 /*
594 +--------------------------------------------------------------------+
595 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
596 | STATE : code ROUTINE : qBAT_PercentCNIV |
597 +--------------------------------------------------------------------+
598
599 PURPOSE : %CNIV query command mode
600 */
601 GLOBAL T_ACI_BAT_RSLT qBAT_PercentCNIV (T_ACI_DTI_PRC_PSI *src_infos_psi,
602 T_BAT_cmd_send *cmd)
603 {
604 T_ACI_BAT_RSLT ret;
605
606 T_BAT_cmd_response resp;
607 T_BAT_res_que_percent_cniv cniv;
608
609 TRACE_FUNCTION ("qBAT_PercentCNIV()");
610
611 resp.ctrl_response = BAT_RES_QUE_PERCENT_CNIV;
612 resp.response.ptr_que_percent_cniv = &cniv;
613
614 ret =(T_ACI_BAT_RSLT) qAT_PercentCNIV ((T_ACI_CMD_SRC)src_infos_psi->srcId,
615 (T_ACI_CNIV_MODE*)&cniv.mode);
616
617 aci_bat_send(src_infos_psi, &resp);
618 return(ret);
619 }
620
621 /*
622 +--------------------------------------------------------------------+
623 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
624 | STATE : code ROUTINE : sBAT_PlusCIND |
625 +--------------------------------------------------------------------+
626
627 PURPOSE :
628 */
629 GLOBAL T_ACI_BAT_RSLT sBAT_PlusCIND(T_ACI_DTI_PRC_PSI *src_infos_psi,
630 T_BAT_cmd_send *cmd)
631 {
632 T_ACI_BAT_RSLT ret;
633
634 TRACE_FUNCTION ("sBAT_PlusCIND()");
635
636 ret =(T_ACI_BAT_RSLT) sAT_PlusCIND((T_ACI_CMD_SRC)src_infos_psi->srcId,
637 (T_ACI_CIND_SIGNAL_TYPE)cmd->params.ptr_set_plus_cind->signal_ctrl,
638 (T_ACI_CIND_SMSFULL_TYPE)cmd->params.ptr_set_plus_cind->smsfull_ctrl);
639 return(ret);
640 }
641
642 /*
643 +--------------------------------------------------------------------+
644 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
645 | STATE : code ROUTINE : qBAT_PlusCIND |
646 +--------------------------------------------------------------------+
647
648 PURPOSE :
649 */
650 GLOBAL T_ACI_BAT_RSLT qBAT_PlusCIND(T_ACI_DTI_PRC_PSI *src_infos_psi,
651 T_BAT_cmd_send *cmd)
652 {
653 T_ACI_BAT_RSLT ret;
654
655 T_BAT_cmd_response resp;
656 T_BAT_res_que_plus_cind cind;
657
658 TRACE_FUNCTION ("qBAT_PlusCIND()");
659
660 resp.ctrl_response = BAT_RES_QUE_PLUS_CIND;
661 resp.response.ptr_que_plus_cind = &cind;
662
663 ret = (T_ACI_BAT_RSLT)qAT_PlusCIND((T_ACI_CMD_SRC)src_infos_psi->srcId,
664 (T_ACI_CIND_SIGNAL_TYPE*)&cind.signal,
665 (T_ACI_CIND_SMSFULL_TYPE*)&cind.smsfull);
666
667 aci_bat_send(src_infos_psi, &resp);
668 return(ret);
669 }
670
671 /*
672 +--------------------------------------------------------------------+
673 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
674 | STATE : code ROUTINE : sBAT_PlusCMER |
675 +--------------------------------------------------------------------+
676
677 PURPOSE :
678 */
679 GLOBAL T_ACI_BAT_RSLT sBAT_PlusCMER(T_ACI_DTI_PRC_PSI *src_infos_psi,
680 T_BAT_cmd_send *cmd)
681 {
682 T_ACI_BAT_RSLT ret;
683
684 T_ACI_CMER_MODE_TYPE sCmerModeSettings = CMER_MODE_INVALID;
685 T_ACI_CMER_IND_TYPE sCmerIndicationSettings = CMER_INDICATOR_INVALID;
686 T_ACI_CMER_BFR_TYPE sCmerBfrSettings = CMER_BFR_INVALID;
687
688 TRACE_FUNCTION ("sBAT_PlusCMER()");
689
690 switch (cmd->params.ptr_set_plus_cmer->ind_option)
691 {
692 case BAT_CMER_IND_OPTION_LOWER:
693 ret =(T_ACI_BAT_RSLT) sAT_PlusCMER((T_ACI_CMD_SRC)src_infos_psi->srcId,
694 sCmerModeSettings,
695 sCmerIndicationSettings,
696 sCmerBfrSettings);
697 break;
698
699 case BAT_CMER_IND_OPTION_GREATER_EQUAL:
700 ret = (T_ACI_BAT_RSLT)sAT_PlusCMER((T_ACI_CMD_SRC)src_infos_psi->srcId,
701 sCmerModeSettings,
702 sCmerIndicationSettings,
703 sCmerBfrSettings);
704 break;
705
706 case BAT_CMER_IND_OPTION_NOT_PRESENT:
707 default:
708 return ACI_BAT_FAIL;
709 }
710 return(ret);
711 }
712
713 /*
714 +--------------------------------------------------------------------+
715 | PROJECT : GSM-F&D (8411) MODULE : ACI_BAT |
716 | STATE : code ROUTINE : qBAT_PlusCMER |
717 +--------------------------------------------------------------------+
718
719 PURPOSE :
720 */
721 GLOBAL T_ACI_BAT_RSLT qBAT_PlusCMER(T_ACI_DTI_PRC_PSI *src_infos_psi,
722 T_BAT_cmd_send *cmd)
723 {
724 T_ACI_BAT_RSLT ret;
725 T_BAT_cmd_response resp;
726 T_BAT_res_que_plus_cmer cmer;
727
728 T_ACI_CMER_MODE_TYPE sCmerModeSettings;
729 T_ACI_CMER_IND_TYPE sCmerIndicationSettings;
730 T_ACI_CMER_BFR_TYPE sCmerBfrSettings;
731
732 TRACE_FUNCTION ("qBAT_PlusCMER()");
733
734 resp.ctrl_response = BAT_RES_QUE_PLUS_CMER;
735 resp.response.ptr_que_plus_cmer = &cmer;
736
737 ret =(T_ACI_BAT_RSLT) qAT_PlusCMER((T_ACI_CMD_SRC)src_infos_psi->srcId,
738 &sCmerModeSettings,
739 &sCmerIndicationSettings,
740 &sCmerBfrSettings);
741
742 switch (cmd->params.ptr_que_plus_cmer->bat_dummy)
743 {
744 default:
745 break;
746 }
747 aci_bat_send(src_infos_psi, &resp);
748 return(ret);
749 }
750