1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 | Project : GSM-F&D (8411)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 | Modul : ATI
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 | Copyright 2002 Texas Instruments Berlin, AG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 | All rights reserved.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 | This file is confidential and a trade secret of Texas
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 | Instruments Berlin, AG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 | The receipt of or possession of this file does not convey
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 | any rights to reproduce or disclose its contents or to
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 | manufacture, use, or sell anything it may describe, in
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 | whole, or in part, without the specific written consent of
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 | Texas Instruments Berlin, AG.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 | Purpose : AT Command: CONDAT specific commands.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 #ifndef ATI_CSC_C
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 #define ATI_CSC_C
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 #undef DUMMY_ATI_STRINGS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 #include "aci_all.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 #include "aci_cmh.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 #include "ati_cmd.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 #include "aci_io.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 #include "aci_cmd.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 #include "l4_tim.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 #if defined(FF_WAP) || defined(FF_PPP) || defined(FF_GPF_TCPIP) || defined (FF_SAT_E)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 #include "dti.h" /* functionality of the dti library */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 #include "dti_conn_mng.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 #include "wap_aci.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 #include "psa_ppp_w.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 #endif /* FF_WAP || FF_PPP || FF_GPF_TCPIP || FF_SAT_E */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 #include "aci_mem.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 #include "ati_cmd.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 #include "aci_lst.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 #include "aci_prs.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 #include "psa_mmi.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 #include "ati_int.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 /* only needed for testing AT%DAR=5 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 #include "aci.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 #ifdef FF_ATI_BAT
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 #include "typedefs.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 #include "gdd.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 #include "bat.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 #include "ati_bat.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 #endif /* FF_ATI_BAT */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 EXTERN UBYTE std;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 char *name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 T_ACI_CUSCFG_FAC fac;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 } cuscfg_fac;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 const cuscfg_fac cus_fac[] =
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 {"CCMOSM", CUSCFG_FAC_MO_SM_Control},
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 {"CCMOC", CUSCFG_FAC_MO_Call_Control},
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 {"CCMOSS", CUSCFG_FAC_MO_SS_Control},
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 {"CCMOUSSD", CUSCFG_FAC_MO_USSD_Control},
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 {"2BDIAL", CUSCFG_FAC_2_Digit_Call},
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 {"EUSSDR", CUSCFG_FAC_Ext_USSD_Res},
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 {"ETMOBEONSR", CUSCFG_FAC_T_MOBILE_Eons},
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 {"USSDASMOC", CUSCFG_FAC_USSD_As_MO_Call},
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 {0, CUSCFG_FAC_Not_Present}
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 };
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 #define MAX_FAC_STR_LENGTH 20
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 #define MAX_VALUE_LENGTH MAX_FAC_STR_LENGTH
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 | PROJECT : GSM-PS MODULE : CMH_MMIS |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 | STATE : code ROUTINE : atPercentCPRIM |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 PURPOSE : This is the functional counterpart to the %CPRIM AT command
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 which is used to send a system primitive (CONFIG PRIMITIVE)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 to a entity or frame.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 GLOBAL T_ATI_RSLT atPercentCPRIM (char *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 char receiver_name[10];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 char config_str[80];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 T_HANDLE receiver_handle;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 TRACE_FUNCTION ("atPercentCPRIM()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 *receiver_name = '\0';
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 *config_str = '\0';
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 cl = parse(cl, "ss", (LONG)sizeof (receiver_name), receiver_name,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 (LONG)sizeof (config_str), config_str);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 if(!cl)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 TRACE_EVENT ("atPercentCPRIM(): parse error");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 receiver_handle = vsi_c_open (VSI_CALLER receiver_name);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 if (receiver_handle < VSI_OK)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 TRACE_EVENT_P1 ("atPercentCPRIM(): wrong entity [%s]", receiver_name);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 psaMMI_ConfigPrim (receiver_handle, config_str);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 vsi_c_close (VSI_CALLER receiver_handle);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 return (ATI_CMPL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 | STATE : code ROUTINE : atPercentBAND |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 PURPOSE : %BAND multiband configuration command
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 GLOBAL T_ATI_RSLT setatPercentBAND (CHAR *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 T_ACI_BAND_MODE bandMode;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 USHORT ushort_bandType = 0xFFFF; /* ushort because of parser **##!!## */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 T_ACI_RETURN ret = AT_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 T_ATI_SRC_PARAMS *src_params = find_element (ati_src_list, srcId, search_ati_src_id);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 src_params->curAtCmd = AT_CMD_BAND;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 cl = parse(cl,"dr",&bandMode,&ushort_bandType);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 if (cl EQ NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 /* prechecking: only place where consistence can be checked (whether
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 bandType parameter is present or not) */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 if( bandMode EQ BAND_MODE_Manual AND
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 ( (ushort_bandType & 0xFF00) NEQ 0x0000) )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 TRACE_EVENT("Error: AT%%BAND manual mode but no bands chosen");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 else if( bandMode EQ BAND_MODE_Auto AND
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 ushort_bandType NEQ 0xFFFF )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 TRACE_EVENT("Error: AT%%BAND auto mode but band type has been given: inconsistent");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 TRACE_EVENT_P1("ushort_bandType: %04X", ushort_bandType);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 TRACE_EVENT_P1("bandMode: %d", bandMode);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 #ifdef FF_ATI_BAT
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 T_BAT_cmd_send cmd;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 T_BAT_cmd_set_percent_band my_bat_set_percent_band;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 TRACE_FUNCTION("setatPercentBAND() calls bat_send() <=== as APPLICATION");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 memset(&my_bat_set_percent_band, 0, sizeof(my_bat_set_percent_band));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 cmd.ctrl_params = BAT_CMD_SET_PERCENT_BAND;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 cmd.params.ptr_set_percent_band = &my_bat_set_percent_band;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 my_bat_set_percent_band.mode = bandMode;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 my_bat_set_percent_band.band = ushort_bandType;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 bat_send(ati_bat_get_client(srcId), &cmd);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 return ATI_EXCT; /* executing, because response is passed by callback function */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 #else /* OLD FUNCTION BODY */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 TRACE_FUNCTION("setatPercentBAND()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 ret = sAT_PercentBAND((T_ACI_CMD_SRC)srcId, bandMode, (UBYTE)ushort_bandType);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 switch (ret)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 case (AT_CMPL):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 case (AT_EXCT):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 default:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 cmdCmeError(CME_ERR_Unknown);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 return (map_aci_2_ati_rslt(ret));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 #endif /* no FF_ATI_BAT*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 /* at the moment 5 levels of bands are supported */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 /* BITS: | 5 | 4 | 3 | 2 | 1 |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 | GSM850 | E_GSM | GSM1900 | GSM1800 | GSM900 | */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 #define HIGHEST_BAND_SUPPORTED (0x1F)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 GLOBAL T_ATI_RSLT tesatPercentBAND (CHAR *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 T_ACI_BAND_MODE MaxBandMode;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 UBYTE bands_bitfield;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 T_ACI_RETURN ret = AT_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 UBYTE c_set_bit = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 USHORT pos = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 UBYTE i, tested_filter_byte, highest_set_bit_only=0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 TRACE_FUNCTION("tesatPercentBAND()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 ret = tAT_PercentBAND( (T_ACI_CMD_SRC)srcId,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240 &MaxBandMode,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 &bands_bitfield);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 if( ret NEQ AT_CMPL )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 cmdCmeError(CME_ERR_Unknown);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246 return (ATI_CMPL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249 /* initialization of the string */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250 pos += sprintf(g_sa, "%s: (0-%d)", "%BAND", MaxBandMode);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251 pos += sprintf( g_sa+pos, ",(" );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
252
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 if(bands_bitfield EQ 0x00)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255 /* no particular settings from manufacturer */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256 pos += sprintf( g_sa+pos, "1-%d)", HIGHEST_BAND_SUPPORTED );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260 /* search holes between highest bit and lowest bit */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
261 for( i=0; i<8 ; i++ )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
262 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
263 tested_filter_byte = 0x01 << i;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
264
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265 if( (bands_bitfield & tested_filter_byte) )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
266 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
267 highest_set_bit_only = tested_filter_byte;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
268 c_set_bit++;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
269 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
270 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
271
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
272 if(c_set_bit) /* alignment at the end */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
273 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
274 c_set_bit--;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
275 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
276
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
277 if( highest_set_bit_only EQ (0x01 << c_set_bit) )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
278 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
279 /* there is no hole in the supported values, form 1 to max_value */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
280 pos += sprintf( g_sa+pos, "1-%d)", bands_bitfield );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
281 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
282 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
283 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
284 for(i=1 ; i<=bands_bitfield; i++) /* bands_bitfield is obviously the highest possible value */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
285 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
286 if( (i & bands_bitfield) EQ i )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
287 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
288 pos += sprintf( g_sa+pos, "%d,", i);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
289 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
290 if(pos>MAX_CMD_LEN-5) /* -5 to have some buffer */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
291 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
292 TRACE_EVENT("output buffer is too short !!!");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
293 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
294 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
295 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
296 pos--; /* erase last comma */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
297 sprintf( g_sa+pos, ")");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
298 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
299 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
300
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
301 io_sendMessage(srcId, g_sa, ATI_NORMAL_OUTPUT);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
302
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
303 return (ATI_CMPL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
304 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
305
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
306 GLOBAL T_ATI_RSLT queatPercentBAND (CHAR *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
307 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
308 T_ACI_BAND_MODE bandMode;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
309 UBYTE bandType;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
310 T_ACI_RETURN ret = AT_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
311
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
312 TRACE_FUNCTION("queatPercentBAND()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
313
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
314 ret = qAT_PercentBAND((T_ACI_CMD_SRC)srcId, &bandMode, &bandType);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
315
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
316 if (ret NEQ AT_CMPL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
317 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
318 cmdCmeError(CME_ERR_Unknown);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
319 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
320 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
321
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
322 if( bandType EQ 0x00
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
323 OR bandMode EQ BAND_MODE_Auto )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
324 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
325 sprintf(g_sa, "%s: %d", "%BAND", bandMode);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
326 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
327 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
328 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
329 sprintf(g_sa, "%s: %d,%d", "%BAND", bandMode, bandType);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
330 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
331
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
332 io_sendMessage(srcId, g_sa, ATI_NORMAL_OUTPUT);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
333
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
334 return (ATI_CMPL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
335 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
336
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
337 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
338 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
339 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
340 | STATE : code ROUTINE : atPercentNRG |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
341 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
342
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
343 PURPOSE : %NRG extendet registration command
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
344 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
345
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
346 GLOBAL T_ATI_RSLT setatPercentNRG (char *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
347 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
348 char op[MAX_ALPHA_OPER_LEN]={""};
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
349 T_ACI_RETURN ret = AT_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
350 T_ATI_SRC_PARAMS *src_params = find_element (ati_src_list, srcId, search_ati_src_id);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
351 T_ACI_NRG_RGMD regMode = NRG_RGMD_NotPresent;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
352 T_ACI_NRG_SVMD srvMode = NRG_SVMD_NotPresent;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
353 T_ACI_NRG_FRMT oprFrmt = NRG_FRMT_NotPresent;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
354
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
355 TRACE_FUNCTION("setatPercentNRG()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
356
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
357 /* split parameter string in int,int,int,str */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
358 cl = parse(cl,"ddds",®Mode,&srvMode,&oprFrmt,(LONG)20,op);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
359 if (!cl)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
360 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
361 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
362 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
363 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
364
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
365 ret = sAT_PercentNRG((T_ACI_CMD_SRC)srcId,regMode,srvMode,oprFrmt,op);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
366
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
367 switch (ret)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
368 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
369 case (AT_CMPL): /*operation completed*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
370 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
371 case (AT_EXCT):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
372 src_params->curAtCmd = AT_CMD_NRG;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
373 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
374 default:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
375 cmdCmeError(CME_ERR_Unknown); /*Command failed*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
376 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
377 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
378 return (map_aci_2_ati_rslt(ret));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
379 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
380
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
381
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
382 GLOBAL T_ATI_RSLT queatPercentNRG (char *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
383 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
384 char op[MAX_ALPHA_OPER_LEN];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
385 T_ACI_RETURN ret = AT_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
386 T_ACI_NRG_RGMD regMode= NRG_RGMD_NotPresent;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
387 T_ACI_NRG_SVMD srvMode= NRG_SVMD_NotPresent;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
388 T_ACI_NRG_SVMD srvStat= NRG_SVMD_NotPresent;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
389 T_ACI_NRG_FRMT oprFrmt= NRG_FRMT_NotPresent;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
390
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
391 TRACE_FUNCTION("queatPercentNRG()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
392
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
393 ret = qAT_PercentNRG((T_ACI_CMD_SRC)srcId,®Mode,&srvMode,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
394 &oprFrmt,&srvStat,op);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
395 if (ret EQ AT_CMPL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
396 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
397 if( *op )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
398 sprintf(g_sa,"%s: %d,%d,%d,%d,\"%s\"", "%NRG", regMode,srvMode,oprFrmt,srvStat,op);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
399 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
400 sprintf(g_sa,"%s: %d,%d,,%d", "%NRG", regMode,srvMode,srvStat);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
401
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
402 io_sendMessage(srcId, g_sa, ATI_NORMAL_OUTPUT);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
403 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
404 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
405 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
406 cmdCmeError(CME_ERR_Unknown); /*command failed*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
407 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
408 return (map_aci_2_ati_rslt(ret));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
409 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
410
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
411
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
412 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
413 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
414 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
415 | STATE : code ROUTINE : atPercentCAOC |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
416 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
417
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
418 PURPOSE : %CAOC / %CACM command (Advice of Charge)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
419 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
420 LOCAL T_ATI_RSLT QueryCCM_ACM(CHAR *cl,T_ACI_AT_CMD cmd, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
421 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
422 char currency [MAX_CUR_LEN] = {0x00};
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
423 char cvtdCurrency [2*MAX_CUR_LEN] = {0x00};
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
424 USHORT lenCvtdCurrency = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
425 USHORT pos = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
426 char ppu [MAX_PPU_LENGTH] = {0x00};
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
427 T_ACI_RETURN ret = AT_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
428
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
429 switch(cmd)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
430 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
431 case(AT_CMD_CAOC ):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
432 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
433 * AT%CAOC queries the actual ccm value using PUCT
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
434 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
435 ret = qAT_PercentCAOC((T_ACI_CMD_SRC)srcId, currency, ppu);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
436 pos = sprintf(g_sa,"%s: ","%CAOC");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
437 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
438 case(AT_CMD_CACM):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
439 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
440 * AT%CACM requests the ACM using PUCT.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
441 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
442 ret = qAT_PercentCACM((T_ACI_CMD_SRC)srcId,currency,ppu);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
443 pos = sprintf(g_sa,"%s: ","%CACM");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
444 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
445 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
446
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
447 if( ret NEQ AT_CMPL )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
448 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
449 cmdCmeError(CME_ERR_Unknown);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
450 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
451 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
452
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
453 srcId_cb = srcId;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
454 utl_chsetFromGsm((UBYTE*)currency,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
455 (USHORT)strlen(currency),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
456 (UBYTE*)cvtdCurrency,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
457 sizeof(cvtdCurrency),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
458 &lenCvtdCurrency,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
459 GSM_ALPHA_Def);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
460 pos+=sprints(g_sa+pos,cvtdCurrency,lenCvtdCurrency);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
461 pos+=sprintf(g_sa+pos,",\"%s\"",ppu);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
462 io_sendMessage(srcId, g_sa, ATI_NORMAL_OUTPUT);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
463 return (map_aci_2_ati_rslt(ret));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
464 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
465
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
466
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
467 GLOBAL T_ATI_RSLT atPercentCAOC (char* cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
468 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
469 TRACE_FUNCTION("atPercentCAOC()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
470
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
471 return(QueryCCM_ACM(cl,AT_CMD_CAOC,srcId));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
472 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
473
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
474 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
475 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
476 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
477 | STATE : code ROUTINE : atPercentCACM |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
478 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
479
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
480 PURPOSE : %CACM command (Advice of Charge, Accumulated Call Meter)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
481 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
482 GLOBAL T_ATI_RSLT atPercentCACM (char* cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
483 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
484 TRACE_FUNCTION("atPercentCACM()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
485
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
486 return(QueryCCM_ACM(cl,AT_CMD_CACM,srcId));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
487 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
488
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
489 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
490 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
491 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
492 | STATE : code ROUTINE : atPercentCTV |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
493 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
494
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
495 PURPOSE : %CTV command (Current Call Timer Values)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
496 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
497 GLOBAL T_ATI_RSLT atPercentCTV (char* cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
498 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
499 LONG ctv;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
500 T_ACI_RETURN ret = AT_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
501
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
502 TRACE_FUNCTION("atPercentCTV()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
503
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
504 switch (*cl)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
505 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
506 case('\0'):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
507 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
508 * AT%CTV queries the call timer value
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
509 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
510 ret = qAT_PercentCTV((T_ACI_CMD_SRC)srcId, &ctv);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
511 if( ret NEQ AT_CMPL )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
512 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
513 cmdCmeError(CME_ERR_Unknown);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
514 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
515 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
516 resp_disp(srcId, cl,"l",&ctv);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
517 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
518
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
519 default:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
520 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
521 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
522 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
523 return (map_aci_2_ati_rslt(ret));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
524 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
525
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
526
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
527 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
528 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
529 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
530 | STATE : code ROUTINE : atPercentCPI |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
531 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
532
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
533 PURPOSE : %CPI command (Call proceeding indication)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
534 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
535
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
536 GLOBAL T_ATI_RSLT setatPercentCPI(char *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
537 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
538 SHORT mode = ACI_NumParmNotPresent;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
539
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
540 TRACE_FUNCTION("setatPercentCPI()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
541
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
542 cl = parse(cl,"r",&mode);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
543 if(!cl OR mode > 4 OR mode < 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
544 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
545 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
546 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
547 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
548
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
549 ati_user_output_cfg[srcId].CPI_stat=(UBYTE)mode;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
550 return (ATI_CMPL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
551 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
552
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
553 GLOBAL T_ATI_RSLT queatPercentCPI(char *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
554 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
555 int value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
556
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
557 TRACE_FUNCTION("queatPercentCPI()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
558
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
559 value = (int)ati_user_output_cfg[srcId].CPI_stat;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
560 resp_disp(srcId, cl,"e",&value);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
561 return (ATI_CMPL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
562 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
563
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
564 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
565 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
566 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
567 | STATE : code ROUTINE : atPercentVER |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
568 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
569
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
570 PURPOSE : %VER displays version of entities
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
571 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
572
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
573 extern const char firmware_version_str[];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
574
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
575 GLOBAL T_ATI_RSLT atPercentVER (char* cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
576 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
577 char *me="%VER: ";
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
578
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
579 TRACE_FUNCTION("atPercentVER()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
580
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
581 sprintf(g_sa, "%s%s", me, firmware_version_str);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
582 io_sendMessage(srcId, g_sa, ATI_NORMAL_OUTPUT);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
583
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
584 return (ATI_CMPL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
585 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
586
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
587 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
588 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
589 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
590 | STATE : code ROUTINE : atPercentCNAP |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
591 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
592
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
593 PURPOSE : %CNAP command (Calling NAme Presentation)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
594 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
595
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
596 GLOBAL T_ATI_RSLT setatPercentCNAP(char *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
597 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
598 T_ATI_CNAP_MODE cnap_mode;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
599
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
600 TRACE_FUNCTION("setatPercentCNAP()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
601
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
602 cnap_mode =(T_ATI_CNAP_MODE)(*cl - '0');
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
603
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
604 switch(cnap_mode)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
605 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
606 case(CNAP_DISABLED):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
607 case(CNAP_ENABLED):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
608 ati_user_output_cfg[srcId].cnap_mode = cnap_mode;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
609 cl++;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
610 return (ATI_CMPL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
611
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
612 default:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
613 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
614 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
615 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
616 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
617
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
618 GLOBAL T_ATI_RSLT queatPercentCNAP(char *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
619 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
620 T_ACI_RETURN ret = AT_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
621
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
622 TRACE_FUNCTION("queatPercentCNAP()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
623
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
624 ret = qAT_PercentCNAP((T_ACI_CMD_SRC)srcId);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
625 if( ret NEQ AT_EXCT )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
626 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
627 cmdCmeError(CME_ERR_Unknown);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
628 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
629 return (map_aci_2_ati_rslt(ret));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
630 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
631
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
632
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
633 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
634 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
635 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
636 | STATE : code ROUTINE : atPercentALS |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
637 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
638
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
639 PURPOSE : %ALS command (select the aternate line)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
640 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
641
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
642
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
643 GLOBAL T_ATI_RSLT setatPercentALS ( char *cl, UBYTE srcId )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
644 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
645 T_ACI_RETURN ACI_return = AT_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
646 T_ACI_ALS_MOD ALSmode;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
647
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
648 TRACE_FUNCTION( "setatPercentALS()" );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
649
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
650 switch( *cl )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
651 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
652 case '0':
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
653 ALSmode = ALS_MOD_SPEECH;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
654 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
655
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
656 case '1':
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
657 ALSmode = ALS_MOD_AUX_SPEECH;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
658 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
659
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
660 default:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
661 cmdCmeError(CME_ERR_OpNotSupp);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
662 return (map_aci_2_ati_rslt(ACI_return));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
663 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
664
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
665 #ifdef FF_ATI_BAT
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
666 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
667 T_BAT_cmd_send cmd;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
668 T_BAT_cmd_set_percent_als my_bat_set_percent_als;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
669
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
670 TRACE_FUNCTION("setatPercentALS() calls bat_send() <=== as APPLICATION");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
671
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
672 memset(&my_bat_set_percent_als, 0, sizeof(my_bat_set_percent_als));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
673 cmd.ctrl_params = BAT_CMD_SET_PERCENT_ALS;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
674 cmd.params.ptr_set_percent_als = &my_bat_set_percent_als;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
675
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
676 my_bat_set_percent_als.mode = ALSmode;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
677
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
678 bat_send(ati_bat_get_client(srcId), &cmd);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
679
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
680 return ATI_EXCT; /* executing, because response is passed by callback function */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
681 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
682 #else /* OLD FUNCTION BODY */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
683
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
684 ACI_return = sAT_PercentALS( (T_ACI_CMD_SRC)srcId, ALSmode );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
685
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
686 if( ACI_return EQ AT_FAIL )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
687 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
688 cmdCmeError(CME_ERR_Unknown);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
689 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
690 return (map_aci_2_ati_rslt(ACI_return));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
691
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
692 #endif /* no FF_ATI_BAT*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
693 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
694
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
695
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
696 GLOBAL T_ATI_RSLT tesatPercentALS ( char *cl, UBYTE srcId )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
697 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
698 char *me = "%ALS";
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
699 T_ACI_RETURN ACI_return = AT_FAIL ;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
700 T_ACI_ALS_MOD ALSmode;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
701
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
702 TRACE_FUNCTION( "tesatPercentALS()" );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
703
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
704 ACI_return = tAT_PercentALS((T_ACI_CMD_SRC)srcId, &ALSmode );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
705
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
706 if ( ACI_return EQ AT_FAIL )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
707 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
708 cmdCmeError(CME_ERR_Unknown);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
709 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
710 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
711 else if ( ACI_return EQ AT_CMPL )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
712 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
713 if (ALSmode EQ ALS_MOD_NOTPRESENT)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
714 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
715 cmdCmeError(CME_ERR_OpNotSupp);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
716 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
717 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
718 if (ALSmode EQ ALS_MOD_SPEECH)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
719 sprintf(g_sa,"%s: (0)", me);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
720 if (ALSmode EQ ALS_MOD_AUX_SPEECH)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
721 sprintf(g_sa,"%s: (1)", me);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
722 if (ALSmode EQ (ALS_MOD_SPEECH | ALS_MOD_AUX_SPEECH))
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
723 sprintf(g_sa,"%s: (0,1)", me);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
724 io_sendMessage(srcId, g_sa, ATI_NORMAL_OUTPUT);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
725 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
726 return (map_aci_2_ati_rslt(ACI_return));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
727 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
728
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
729
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
730 GLOBAL T_ATI_RSLT queatPercentALS ( char *cl, UBYTE srcId )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
731 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
732 T_ACI_RETURN ACI_return = AT_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
733 T_ACI_ALS_MOD ALSmode;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
734 UBYTE ati_ALSmode;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
735
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
736 TRACE_FUNCTION( "queatPercentALS()" );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
737
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
738 ACI_return = qAT_PercentALS( (T_ACI_CMD_SRC)srcId, &ALSmode );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
739 if( ACI_return NEQ AT_CMPL )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
740 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
741 cmdCmeError(CME_ERR_Unknown);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
742 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
743 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
744
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
745 switch( ALSmode )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
746 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
747 case(ALS_MOD_SPEECH):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
748 ati_ALSmode = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
749 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
750
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
751 case(ALS_MOD_AUX_SPEECH):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
752 ati_ALSmode = 1;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
753 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
754
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
755 case(ALS_MOD_NOTPRESENT):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
756 default:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
757 cmdCmeError(CME_ERR_OpNotSupp);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
758 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
759 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
760
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
761 resp_disp(srcId, cl,"b",&ati_ALSmode);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
762 return (map_aci_2_ati_rslt(ACI_return));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
763 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
764
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
765 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
766 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
767 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
768 | STATE : code ROUTINE : atPercentCOLR |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
769 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
770
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
771 PURPOSE : %COLR command
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
772 no parameter.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
773 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
774
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
775 GLOBAL T_ATI_RSLT atPercentCOLR(CHAR *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
776 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
777 T_ACI_RETURN ret = AT_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
778
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
779 TRACE_FUNCTION("atPercentCOLR()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
780
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
781 if( *cl NEQ '\0'
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
782 AND *cl NEQ ';')
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
783 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
784 cmdCmeError( CME_ERR_OpNotAllow );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
785 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
786 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
787
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
788 ret = qAT_PercentCOLR( (T_ACI_CMD_SRC)srcId );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
789
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
790 if( ret NEQ AT_EXCT )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
791 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
792 cmdCmeError( CME_ERR_Unknown );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
793 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
794 return (map_aci_2_ati_rslt(ret));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
795 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
796
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
797 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
798 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
799 | PROJECT : GSM MODULE : ATI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
800 | STATE : code ROUTINE : atPercentCUNS |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
801 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
802
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
803 PURPOSE : %CUNS command
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
804 parameters: buffering_mode.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
805 0: unsolicited messages may occur any time.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
806 1: unsolicited messages can't happen while typing a command.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
807 2: unsolicited messages can't happen between starting typing a command
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
808 and its final result.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
809 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
810
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
811 GLOBAL T_ATI_RSLT setatPercentCUNS(char *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
812 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
813 SHORT buffering_mode = -1;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
814 T_ATI_SRC_PARAMS *src_params;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
815
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
816 cl = parse(cl,"d",&buffering_mode);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
817
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
818 src_params = find_element (ati_src_list, srcId, search_ati_src_id);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
819
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
820 if( cl EQ NULL
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
821 OR src_params EQ NULL
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
822 OR buffering_mode < 0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
823 OR buffering_mode > 2)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
824 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
825 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
826 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
827 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
828
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
829 src_params->buff_uns_mode = (T_ATI_BUFF_UNS_MODE)buffering_mode;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
830 return (ATI_CMPL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
831 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
832
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
833 GLOBAL T_ATI_RSLT queatPercentCUNS(char *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
834 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
835 UBYTE buffering_mode = ((UBYTE)-1); /* adjust is UBYTE type so typecasting -1 with UBYTE */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
836 T_ATI_SRC_PARAMS *src_params;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
837
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
838 src_params = find_element (ati_src_list, srcId, search_ati_src_id);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
839 if(src_params EQ NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
840 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
841 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
842 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
843 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
844
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
845 buffering_mode = (UBYTE)src_params->buff_uns_mode;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
846 resp_disp(srcId, cl, "b", &buffering_mode);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
847 return (ATI_CMPL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
848 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
849
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
850
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
851 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
852 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
853 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
854 | STATE : code ROUTINE : atPercentPPP |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
855 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
856
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
857 PURPOSE : %PPP command
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
858 parameters: protocol, login name, password.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
859 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
860 #ifdef DTI
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
861 #if defined(FF_WAP) || defined(FF_PPP) || defined(FF_GPF_TCPIP) || defined(FF_SAT_E)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
862 GLOBAL T_ATI_RSLT atPercentPPP (CHAR *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
863 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
864 T_ACI_PPP_PROT protocol;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
865 T_ACI_RETURN ret = AT_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
866 CHAR buffer_login[sizeof(pppShrdPrm.ppp_login)];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
867 CHAR buffer_pwd[sizeof(pppShrdPrm.ppp_password)];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
868 T_ACI_PPP_CON con_type = USE_NO_PPP_FOR_AAA;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
869
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
870 cl=parse(cl,"dssd",&protocol, sizeof(buffer_login),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
871 &buffer_login,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
872 sizeof(buffer_pwd),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
873 &buffer_pwd,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
874 &con_type);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
875 if(!cl)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
876 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
877 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
878 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
879 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
880
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
881 #ifdef FF_ATI_BAT
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
882 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
883 T_BAT_cmd_send cmd;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
884 T_BAT_cmd_set_percent_ppp my_bat_set_percent_ppp;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
885
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
886 TRACE_FUNCTION("atPercentPPP() calls bat_send() <=== as APPLICATION");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
887
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
888 memset(&my_bat_set_percent_ppp,0,sizeof(T_BAT_cmd_set_percent_ppp));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
889 cmd.ctrl_params = BAT_CMD_SET_PERCENT_PPP;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
890 cmd.params.ptr_set_percent_ppp = &my_bat_set_percent_ppp;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
891
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
892 my_bat_set_percent_ppp.authprot = (T_BAT_percent_ppp_authprot)protocol;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
893 if(my_bat_set_percent_ppp.c_user = strlen(buffer_login))
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
894 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
895 my_bat_set_percent_ppp.v_user = TRUE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
896 memcpy(my_bat_set_percent_ppp.user,buffer_login,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
897 my_bat_set_percent_ppp.c_user<=BAT_MAX_PPP_USER_LEN ?
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
898 my_bat_set_percent_ppp.c_user : BAT_MAX_PPP_USER_LEN);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
899 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
900 if(my_bat_set_percent_ppp.c_password = strlen(buffer_pwd))
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
901 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
902 my_bat_set_percent_ppp.v_password = TRUE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
903 memcpy(my_bat_set_percent_ppp.password,buffer_pwd,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
904 my_bat_set_percent_ppp.c_password<=BAT_MAX_PPP_PASSW_LEN ?
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
905 my_bat_set_percent_ppp.c_password : BAT_MAX_PPP_PASSW_LEN);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
906 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
907 my_bat_set_percent_ppp.conn_type = (T_BAT_percent_ppp_conn_type)con_type;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
908
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
909 bat_send(ati_bat_get_client(srcId), &cmd);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
910 return ATI_EXCT; /* executing, because response is passed by callback function */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
911 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
912
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
913 #else /* no FF_ATI_BAT */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
914
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
915 TRACE_FUNCTION("atPercentPPP()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
916
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
917 ret = sAT_PercentPPP((T_ACI_CMD_SRC)srcId,protocol,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
918 buffer_login,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
919 buffer_pwd,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
920 con_type);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
921 if (ret EQ AT_FAIL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
922 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
923 cmdCmeError(CME_ERR_Unknown);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
924 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
925 return (map_aci_2_ati_rslt(ret));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
926 #endif /* FF_ATI_BAT */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
927 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
928
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
929
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
930 /** Query PPP-negotiated parameters after connection setup.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
931 *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
932 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
933 GLOBAL T_ATI_RSLT queatPercentPPP (CHAR *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
934 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
935 ULONG ipaddr = 0 ; /* Own IP address. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
936 ULONG dns1 = 0, dns2 = 0 ; /* Domain Name Server addresses. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
937
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
938 qAT_PercentPPP(srcId, &ipaddr, &dns1, &dns2) ;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
939
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
940 /* WARNING: this is for little endian only! */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
941 #define IPADDR_BYTE(b, a) (((a) >> ((b) * 8)) & 0xff)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
942
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
943 sprintf(g_sa, "%%PPP: %u.%u.%u.%u,%u.%u.%u.%u,%u.%u.%u.%u",
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
944 IPADDR_BYTE(3, ipaddr),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
945 IPADDR_BYTE(2, ipaddr),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
946 IPADDR_BYTE(1, ipaddr),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
947 IPADDR_BYTE(0, ipaddr),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
948 IPADDR_BYTE(3, dns1),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
949 IPADDR_BYTE(2, dns1),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
950 IPADDR_BYTE(1, dns1),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
951 IPADDR_BYTE(0, dns1),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
952 IPADDR_BYTE(3, dns2),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
953 IPADDR_BYTE(2, dns2),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
954 IPADDR_BYTE(1, dns2),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
955 IPADDR_BYTE(0, dns2)) ;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
956 io_sendMessage (srcId, g_sa, ATI_NORMAL_OUTPUT);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
957 return ATI_CMPL ;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
958 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
959
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
960 #endif /* (FF_WAP) || (FF_PPP) || (FF_GPF_TCPIP) || (FF_SAT_E) */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
961 #endif /* DTI */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
962
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
963
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
964 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
965 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
966 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
967 | STATE : code ROUTINE : atPercentWAP |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
968 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
969
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
970 PURPOSE : %WAP command
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
971 no parameters.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
972 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
973
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
974 #ifdef FF_WAP
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
975 GLOBAL T_ATI_RSLT atPercentWAP (CHAR *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
976 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
977 SHORT setwap_falg;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
978
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
979 TRACE_FUNCTION("atPercentWAP()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
980
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
981 switch(*cl)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
982 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
983 case('0'):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
984 case('1'):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
985 setwap_falg = ( (*cl - '0')? 1 : 0 );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
986 cl++;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
987 sAT_PercentWAP(srcId,setwap_falg);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
988 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
989
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
990 default:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
991 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
992 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
993 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
994
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
995 return (ATI_CMPL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
996 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
997 #endif /* FF_WAP */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
998
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
999
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1000 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1001 +------------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1002 | Function : SH - setatPercentMMITEST
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1003 +------------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1004 | Description : Test AT cmd for MMI
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1005 | This command has been introduced in order to use the AT command interface for some MMI
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1006 | specific testing. It shoudnt be compiled without MMI.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1007 |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1008 |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1009 | Parameters : char *cl
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1010 | UBYTE srcId
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1011 |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1012 | Return : ATI_CMPL
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1013 +------------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1014 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1015
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1016
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1017 #if defined MFW AND defined TI_PS_FF_AT_P_CMD_MMITEST
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1018
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1019
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1020 GLOBAL T_ATI_RSLT setatPercentMMITEST (char *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1021 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1022 T_ACI_RETURN ret;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1023
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1024 TRACE_FUNCTION("setatPercentMMITEST()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1025
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1026 if (*cl NEQ '=')
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1027 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1028 cmdCmeError (CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1029 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1030 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1031
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1032 cl++;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1033
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1034 ret = sAT_PercentMMITEST((T_ACI_CMD_SRC)srcId, cl);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1035
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1036 switch(ret)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1037 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1038 case AT_CMPL:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1039 return (ATI_CMPL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1040
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1041 case AT_FAIL:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1042 cmdCmeError(CME_ERR_Unknown);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1043 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1044
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1045 default:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1046 cmdCmeError(CME_ERR_Unknown);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1047 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1048 } /* switch */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1049 } /* setatPercentEM */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1050 #endif /* MFW */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1051
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1052 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1053 +-------------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1054 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1055 | STATE : code ROUTINE : setatPercentSMBS |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1056 +-------------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1057
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1058 PURPOSE : %SMBS command (Enable presenting of both Text and PDU formats to SMBS)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1059
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1060 !!!!!!!!!! ONLY FOR TEST PURPOSES !!!!!!!!!!!!!!!!!!!!!!!!!!
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1061 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1062
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1063 #if defined FF_MMI_RIV
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1064 GLOBAL T_ATI_RSLT setatPercentSMBS (CHAR *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1065 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1066 T_ACI_RETURN ret = AT_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1067 T_ACI_PERC_SMBS_MOD mode = PERC_SMBS_MOD_NotPresent;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1068
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1069 TRACE_FUNCTION("setatPercentSMBS()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1070
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1071 cl=parse(cl, "d", &mode);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1072 if (cl EQ NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1073 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1074 /* parse problems */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1075 cmdCmsError(CMS_ERR_OpNotAllowed);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1076 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1077 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1078
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1079 switch (mode)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1080 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1081 case(PERC_SMBS_MOD_DISABLE):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1082 case(PERC_SMBS_MOD_ENABLE):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1083 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1084
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1085 default:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1086 cmdCmsError(CMS_ERR_OpNotAllowed);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1087 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1088 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1089
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1090 /* Parameter is allowed then set */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1091 ret = sAT_PercentSMBS (srcId, mode);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1092 if (ret EQ AT_FAIL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1093 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1094 cmdCmsError(CMS_ERR_UnSpecErr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1095 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1096 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1097 return (map_aci_2_ati_rslt(ret));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1098 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1099
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1100 /* !!!!!!!!!! ONLY FOR TEST PURPOSES !!!!!!!!!!!!!!!!!!!!!!!!!! */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1101 GLOBAL T_ATI_RSLT queatPercentSMBS (CHAR *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1102 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1103 T_ACI_RETURN ret = AT_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1104 T_ACI_PERC_SMBS_MOD mode = PERC_SMBS_MOD_NotPresent;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1105
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1106 TRACE_FUNCTION("queatPercentSMBS()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1107
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1108 ret = qAT_PercentSMBS(srcId, &mode);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1109 if (ret EQ AT_CMPL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1110 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1111 sprintf(g_sa,"%s%d", "%SMBS: ", mode);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1112 io_sendMessage(srcId, g_sa, ATI_NORMAL_OUTPUT);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1113 return (ATI_CMPL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1114 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1115 cmdCmsError(CMS_ERR_NotPresent); // use aciErrDesc
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1116 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1117 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1118 #endif /* FF_MMI_RIV */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1119
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1120
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1121
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1122
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1123 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1124 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1125 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1126 | STATE : code ROUTINE : atPercentDAR |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1127 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1128
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1129 PURPOSE : %DAR command
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1130 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1131
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1132
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1133 /* the following is from os.h derived for the AT%DAR command */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1134 #define FIRST_ENTRY 0xff
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1135 #define NEXT_ENTRY 0xfe
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1136 #define OS_OK 0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1137
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1138 GLOBAL T_ATI_RSLT setatPercentDAR (CHAR *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1139 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1140 TRACE_FUNCTION("atPercentDAR()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1141
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1142 switch(*cl)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1143 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1144 case('\0'):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1145 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1146 default:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1147 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1148 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1149
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1150 /* this is only for internal testing of the %DAR command to force a crash of the stack */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1151 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1152 case('1'):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1153 // do an endless loop within ACI
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1154 while (TRUE)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1155 ;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1156 break; // never reached
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1157
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1158 case('2'):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1159 // consume all memory within ACI
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1160 while (TRUE)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1161 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1162 char *a;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1163 ACI_MALLOC(a, 10);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1164 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1165 break; // never reached
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1166
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1167 case('3'):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1168 // jump to 0x00000000;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1169 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1170 void (*a)(void)=0x00000000;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1171 (*a)();
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1172 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1173 break; // never reached
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1174
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1175 case('4'):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1176 // overwrite all memory
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1177 memset(0x00000000, 0, 0xffffffff);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1178 break; // never reached
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1179
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1180 case('5'):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1181 // send many messages to ACI
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1182 while (TRUE)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1183 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1184 PALLOC(mncc_alert_ind, MNCC_ALERT_IND);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1185 mncc_alert_ind->ti = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1186 PSENDX(ACI, mncc_alert_ind);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1187 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1188 break; // never reached
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1189
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1190 case('6'):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1191 // generate many traces
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1192 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1193 int i;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1194 char buf[]="54 68 65 20 71 75 69 63-6B 20 62 72 6F 77 6E 20 The quick brown";
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1195 for (i=0; TRUE; i++)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1196 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1197 TRACE_EVENT_P2 ("%08X %s", i, buf)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1198 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1199 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1200 break; // never reached
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1201 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1202
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1203 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1204 return (ATI_CMPL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1205 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1206
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1207
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1208
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1209 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1210 GLOBAL T_ATI_RSLT queatPercentDAR (CHAR *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1211 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1212 TRACE_FUNCTION("queatPercentDAR()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1213 sprintf(g_sa, "Dummy");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1214 io_sendMessage(srcId, g_sa, ATI_NORMAL_OUTPUT);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1215 return (ATI_CMPL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1216 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1217 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1218
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1219 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1220 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1221 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1222 | STATE : code ROUTINE : setatPercentCSTAT |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1223 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1224
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1225 PURPOSE : %CSTAT command (Enable/Disable unsolicited status reports
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1226 from SIM processes)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1227 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1228
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1229 GLOBAL T_ATI_RSLT setatPercentCSTAT (char* cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1230 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1231 SHORT mode = ACI_NumParmNotPresent;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1232
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1233 TRACE_FUNCTION("setatPercentCSTAT()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1234
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1235 cl = parse(cl,"r",&mode);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1236 if(!cl OR mode > 1 OR mode < 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1237 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1238 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1239 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1240 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1241
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1242 ati_user_output_cfg[srcId].CSTAT_stat=(UBYTE)mode;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1243 return (ATI_CMPL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1244 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1245
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1246 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1247 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1248 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1249 | STATE : code ROUTINE : queatPercentCSTAT |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1250 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1251
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1252 PURPOSE : %CSTAT command (query unsolicited status reports
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1253 from SIM processes)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1254 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1255
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1256 GLOBAL T_ATI_RSLT queatPercentCSTAT (char* cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1257 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1258
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1259 int value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1260
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1261 TRACE_FUNCTION("queatPercentCSTAT()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1262
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1263 value = (int)ati_user_output_cfg[srcId].CSTAT_stat;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1264 resp_disp(srcId, cl,"e",&value);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1265 return (ATI_CMPL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1266
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1267 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1268
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1269 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1270 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1271 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1272 | STATE : code ROUTINE : tesatPercentNRG |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1273 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1274
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1275 PURPOSE : AT%NRG=? command
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1276 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1277 GLOBAL T_ATI_RSLT tesatPercentNRG (char *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1278 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1279 T_ACI_RETURN ret = AT_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1280 CHAR *cmd_key = "%NRG:";
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1281 CHAR testcmd_output[25];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1282 T_ACI_NRG NRG_options;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1283
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1284 TRACE_FUNCTION("tesatPercentNRG()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1285
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1286 ret = tAT_PercentNRG((T_ACI_CMD_SRC)srcId, &NRG_options);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1287
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1288 if(ret EQ AT_CMPL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1289 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1290 if(NRG_options.reg_mode)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1291 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1292 strcpy(testcmd_output, "(");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1293 if(NRG_options.reg_mode & NRG_REG_Auto)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1294 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1295 strcat(testcmd_output, "0");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1296 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1297 if(NRG_options.reg_mode & NRG_REG_Manual)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1298 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1299 strcat(testcmd_output, ",1");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1300 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1301 if(NRG_options.reg_mode & NRG_REG_Both)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1302 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1303 strcat(testcmd_output, ",4");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1304 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1305 strcat(testcmd_output, ")");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1306 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1307
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1308 if(NRG_options.srv_mode)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1309 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1310 if(NRG_options.srv_mode EQ (NRG_SRV_Full | NRG_SRV_Limited | NRG_SRV_NoSrv | NRG_SRV_SetRegModeOnly))
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1311 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1312 strcat(testcmd_output, ",(0-3)");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1313 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1314 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1315 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1316 strcat(testcmd_output, ",(");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1317 if(NRG_options.srv_mode & NRG_SRV_Full)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1318 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1319 strcat(testcmd_output, "0");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1320 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1321 if(NRG_options.srv_mode & NRG_SRV_Limited)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1322 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1323 strcat(testcmd_output, ",1");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1324 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1325 if(NRG_options.srv_mode & NRG_SRV_NoSrv)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1326 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1327 strcat(testcmd_output, ",2");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1328 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1329 if(NRG_options.srv_mode & NRG_SRV_SetRegModeOnly)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1330 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1331 strcat(testcmd_output, ",3");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1332 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1333 strcat(testcmd_output, ")");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1334 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1335
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1336 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1337
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1338 if(NRG_options.opr_frmt)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1339 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1340 if(NRG_options.opr_frmt EQ (NRG_OPR_Long | NRG_OPR_Short | NRG_OPR_Numeric))
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1341 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1342 strcat(testcmd_output, ",(0-2)");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1343 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1344 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1345 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1346 strcat(testcmd_output, ",(");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1347 if(NRG_options.opr_frmt & NRG_OPR_Long)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1348 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1349 strcat(testcmd_output, "0");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1350 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1351 if(NRG_options.opr_frmt & NRG_OPR_Short)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1352 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1353 strcat(testcmd_output, ",1");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1354 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1355 if(NRG_options.opr_frmt & NRG_OPR_Numeric)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1356 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1357 strcat(testcmd_output, ",2");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1358 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1359 strcat(testcmd_output, ")");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1360 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1361
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1362 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1363 sprintf(g_sa,"%s %s",cmd_key, testcmd_output);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1364 io_sendMessage (srcId, g_sa, ATI_NORMAL_OUTPUT);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1365 return(ATI_CMPL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1366 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1367 return(map_aci_2_ati_rslt(ret));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1368 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1369
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1370 #ifdef TI_PS_FF_AT_P_CMD_CUSCFG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1371 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1372 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1373 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1374 | STATE : code ROUTINE : setatPercentCSTAT |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1375 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1376
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1377 PURPOSE : %CUSCFG command (Enable/Disable customized handling of facilities specified)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1378 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1379
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1380 GLOBAL T_ATI_RSLT setatPercentCUSCFG (char* cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1381 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1382 #ifdef _SIMULATION_
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1383 T_ACI_RETURN ret = AT_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1384 T_ACI_CUSCFG_FAC fac_num = CUSCFG_FAC_Not_Present;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1385 T_ACI_CUSCFG_MOD mode;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1386 T_ACI_CUSCFG_STAT status;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1387 char fac_str[MAX_FAC_STR_LENGTH] = {0};
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1388 char value[MAX_VALUE_LENGTH] = {0};
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1389 USHORT i;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1390 SHORT pos;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1391 #endif /* _SIMULATION_ */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1392
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1393 T_ATI_SRC_PARAMS *src_params = find_element (ati_src_list, srcId, search_ati_src_id);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1394
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1395 TRACE_FUNCTION("setatPercentCUSCFG()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1396
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1397 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1398 * The command being added for a customer should be blocked from other users
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1399 * shall be used only for Windows simulation
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1400 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1401 #ifdef _SIMULATION_
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1402
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1403 cl = parse(cl,"sds",(LONG)MAX_FAC_STR_LENGTH,fac_str, &mode, (LONG)MAX_VALUE_LENGTH, value);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1404
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1405 if(!cl OR *fac_str EQ 0 OR mode < 0 OR mode >2)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1406 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1407 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1408 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1409 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1410
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1411 strcpy(fac_str, strupper(fac_str));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1412 for (i=0;cus_fac[i].name NEQ NULL; i++)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1413 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1414 if (strcmp(cus_fac[i].name,fac_str) EQ 0 )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1415 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1416 fac_num=cus_fac[i].fac; /*translates facility string in facility number */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1417 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1418 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1419 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1420
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1421 if(fac_num EQ CUSCFG_FAC_Not_Present)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1422 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1423 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1424 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1425 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1426
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1427 if(mode EQ CUSCFG_MOD_Query)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1428 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1429 ret = qAT_PercentCUSCFG(srcId, fac_num, &status);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1430 if(ret EQ AT_CMPL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1431 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1432 pos = sprintf(g_sa,"%s: %d", "%CUSCFG", status);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1433
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1434 ci_remTrailCom(g_sa, pos);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1435 io_sendMessage(srcId, g_sa, ATI_NORMAL_OUTPUT);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1436 return (ATI_CMPL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1437 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1438
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1439 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1440 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1441 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1442 ret = sAT_PercentCUSCFG(srcId, fac_num, mode, value);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1443 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1444
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1445 if(ret NEQ AT_CMPL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1446 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1447 cmdCmeError(CME_ERR_Unknown);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1448 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1449
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1450 return (map_aci_2_ati_rslt(ret));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1451
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1452 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1453 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1454 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1455 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1456
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1457 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1458 #endif /* TI_PS_FF_AT_P_CMD_CUSCFG */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1459
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1460 #ifdef TI_PS_FF_AT_P_CMD_STDR
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1461 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1462 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1463 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1464 | STATE : code ROUTINE : setatPercentSTDR |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1465 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1466
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1467 PURPOSE : %STDR Read variable <std>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1468 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1469
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1470 GLOBAL T_ATI_RSLT setatPercentSTDR (CHAR *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1471 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1472 T_ACI_RETURN ret = AT_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1473 UBYTE rvstd;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1474
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1475 TRACE_FUNCTION("setatPercentSTDR()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1476
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1477 switch (*cl)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1478 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1479 case('\0'):
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1480 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1481 * AT%STDR queries the value of <std> variable
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1482 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1483 ret = qAT_PercentSTDR ((T_ACI_CMD_SRC)srcId, &rvstd);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1484 if( ret NEQ AT_CMPL )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1485 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1486 cmdCmeError(CME_ERR_Unknown);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1487 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1488 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1489 resp_disp(srcId, cl,"b",&rvstd);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1490 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1491
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1492 default:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1493 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1494 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1495 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1496 return (map_aci_2_ati_rslt(ret));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1497 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1498 #endif /* TI_PS_FF_AT_P_CMD_STDR */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1499
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1500 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1501 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1502 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1503 | STATE : code ROUTINE : setatPercentCMGMDU |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1504 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1505
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1506 PURPOSE : %CMGMDU Reset the TP-Reply path
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1507 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1508
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1509 GLOBAL T_ATI_RSLT setatPercentCMGMDU (CHAR *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1510 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1511 T_ACI_RETURN ret = AT_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1512 SHORT idx=-1;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1513 T_ATI_SRC_PARAMS *src_params = find_element (ati_src_list, srcId, search_ati_src_id);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1514
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1515 TRACE_FUNCTION("setatPercentCMGMDU()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1516
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1517 cl = parse(cl,"r",&idx);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1518 if ( !cl OR idx > 255 OR idx < 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1519 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1520 cmdCmsError(CMS_ERR_OpNotAllowed);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1521 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1522 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1523 #ifdef _CONC_TESTING_
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1524 ret = sAT_PercentCMGMDU (srcId, (UBYTE)idx);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1525 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1526 ret = sAT_PercentCMGMDU_Gl((T_ACI_CMD_SRC)srcId, (UBYTE)idx, NULL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1527 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1528
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1529 if (ret EQ AT_EXCT)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1530 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1531 src_params->curAtCmd = AT_CMD_P_CMGMDU;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1532 return (ATI_EXCT);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1533 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1534 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1535 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1536 cmdCmsError(CMS_ERR_NotPresent);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1537 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1538 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1539 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1540
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1541 #ifdef TI_PS_FF_AT_P_CMD_CTREG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1542 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1543 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1544 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1545 | STATE : code ROUTINE : setatPercentCTREG |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1546 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1547
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1548 PURPOSE : %CTREG Sets or Reads the any one of the two tables
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1549 present in the Common shared location.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1550 present in the RR enity. Usage of %CTREG command is limited
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1551 and cannot be used during loc update. The best time to update
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1552 is before +CFUN=1.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1553 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1554
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1555 GLOBAL T_ATI_RSLT setatPercentCTREG (CHAR *cl, UBYTE srcId)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1556 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1557 UBYTE table[MAX_CTREG_TAB_LEN*2 + 1];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1558 USHORT tab_len = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1559 UBYTE i = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1560 T_ACI_RETURN ret = AT_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1561 T_TREG treg;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1562 T_ATI_SRC_PARAMS *src_params = find_element (ati_src_list, srcId, search_ati_src_id);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1563
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1564 /* initialize the local varibles */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1565 memset(table,NOT_PRESENT_8BIT,sizeof(table));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1566
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1567 TRACE_FUNCTION("setatPercentCTREG()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1568
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1569 cl = parse(cl,"dds",&treg.mode,&treg.tab_id,sizeof(table),table);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1570
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1571 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1572 * no mode & tab_id values are allowed other than 1-2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1573 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1574 if( !cl OR (treg.mode < TREG_READ_MODE OR treg.mode > TREG_WRITE_MODE)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1575 OR (treg.tab_id < NOSERVICE_MODE_TIME OR treg.tab_id > LIMSERVICE_MODE_TIME))
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1576 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1577 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1578 return (ATI_FAIL);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1579 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1580
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1581 if(treg.mode EQ TREG_READ_MODE)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1582 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1583 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1584 * If User gives Table values in read mode then Error is send to the terminal.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1585 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1586 if(*table NEQ NOT_PRESENT_8BIT)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1587 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1588 cmdCmeError (CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1589 return ATI_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1590 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1591
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1592 ret = qAT_PercentCTREG ((T_ACI_CMD_SRC)srcId,&treg);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1593
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1594 i=sprintf(g_sa,"%s: %d, %d, \"","%CTREG",treg.mode, treg.tab_id);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1595 utl_binToHex(treg.tab_val,MAX_CTREG_TAB_LEN,g_sa+i);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1596 sprintf(g_sa+strlen(g_sa),"\"");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1597
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1598 if(ret EQ AT_CMPL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1599 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1600 io_sendMessageEx(srcId, g_sa, ATI_NORMAL_OUTPUT);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1601 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1602 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1603 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1604 cmdCmeError (CME_ERR_Unknown);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1605 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1606 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1607 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1608 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1609 tab_len = utl_HexStrToBin((UBYTE*)table, (MAX_CTREG_TAB_LEN*2),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1610 treg.tab_val, MAX_CTREG_TAB_LEN);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1611
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1612 if(tab_len NEQ MAX_CTREG_TAB_LEN)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1613 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1614 cmdCmeError(CME_ERR_OpNotAllow);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1615 return ATI_FAIL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1616 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1617
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1618 ret = sAT_PercentCTREG((T_ACI_CMD_SRC)srcId,&treg);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1619
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1620 if (ret NEQ AT_CMPL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1621 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1622 cmdCmeError (CME_ERR_Unknown);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1623 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1624 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1625 return (map_aci_2_ati_rslt(ret));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1626 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1627 #endif /* TI_PS_FF_AT_P_CMD_CTREG */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1628
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1629 #endif /* ATI_CSC_C */
|