FreeCalypso > hg > freecalypso-sw
comparison gsm-fw/g23m-aci/aci/ati_cmd.h @ 775:eedbf248bac0
gsm-fw/g23m-aci subtree: initial import from LoCosto source
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Sun, 12 Oct 2014 01:45:14 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
774:40a721fd9854 | 775:eedbf248bac0 |
---|---|
1 /* | |
2 +----------------------------------------------------------------------------- | |
3 | Project : | |
4 | Modul : J:\g23m-aci\aci\ati_cmd.h | |
5 +----------------------------------------------------------------------------- | |
6 | Copyright 2002 Texas Instruments Berlin, AG | |
7 | All rights reserved. | |
8 | | |
9 | This file is confidential and a trade secret of Texas | |
10 | Instruments Berlin, AG | |
11 | The receipt of or possession of this file does not convey | |
12 | any rights to reproduce or disclose its contents or to | |
13 | manufacture, use, or sell anything it may describe, in | |
14 | whole, or in part, without the specific written consent of | |
15 | Texas Instruments Berlin, AG. | |
16 +----------------------------------------------------------------------------- | |
17 | Purpose : | |
18 +----------------------------------------------------------------------------- | |
19 */ | |
20 #ifndef ATI_CMD_H | |
21 #define ATI_CMD_H | |
22 | |
23 /* copied from uart.h... should always be the same as there */ | |
24 #ifdef FF_MULTI_PORT | |
25 #define UART_INSTANCES FF_MULTI_PORT | |
26 #else /* FF_MULTI_PORT */ | |
27 #ifdef FF_TWO_UART_PORTS | |
28 #define UART_INSTANCES 2 | |
29 #ifdef _SIMULATION_ | |
30 # define UART_DATA_CHANNEL 3 | |
31 #else | |
32 # define UART_DATA_CHANNEL 4 | |
33 #endif | |
34 #else /* FF_TWO_UART_PORTS */ | |
35 #define UART_INSTANCES 1 | |
36 #endif /* FF_TWO_UART_PORTS */ | |
37 #endif /* FF_MULTI_PORT */ | |
38 | |
39 /* | |
40 * SKA 2002-09-05 | |
41 * when compiling for WIN32 allow ToDo message | |
42 * e.g.: #pragma message( __TODO__"verbose message for engineering mode" ) | |
43 * appears during compiling as | |
44 * Z:\g23m\condat\MS\SRC\ACI\ati_cmd.c(2560) : ToDo : verbose message for engineering mode | |
45 */ | |
46 #ifdef _SIMULATION_ | |
47 #define __STR2__(x) #x | |
48 #define __STR1__(x) __STR2__(x) | |
49 #define __TODO__ __FILE__ "("__STR1__(__LINE__)") : ToDo : " | |
50 #else | |
51 #define __TODO__ | |
52 #endif | |
53 | |
54 | |
55 typedef enum | |
56 { | |
57 ATI_SRC_TYPE_UNKNOWN = -1, | |
58 ATI_SRC_TYPE_UART, | |
59 ATI_SRC_TYPE_BLUETOOTH, | |
60 ATI_SRC_TYPE_SAT, | |
61 ATI_SRC_TYPE_IRDA, | |
62 ATI_SRC_TYPE_LC, | |
63 ATI_SRC_TYPE_TST, | |
64 ATI_SRC_TYPE_RIV, | |
65 ATI_SRC_TYPE_PSI | |
66 } T_ATI_SRC_TYPE; | |
67 | |
68 typedef enum | |
69 { | |
70 ATI_FAIL, | |
71 ATI_FAIL_NO_OUTPUT, | |
72 ATI_BUSY, | |
73 ATI_EXCT, | |
74 ATI_CMPL, | |
75 ATI_CMPL_NO_OUTPUT | |
76 } T_ATI_RSLT; | |
77 | |
78 #define ATI_OUTPUT_BASIC_FORMAT_START 1 /* BIT 3 - 0 */ | |
79 #define ATI_OUTPUT_BASIC_TYPE_START 8 /* BIT 7 - 4 */ | |
80 #define ATI_OUTPUT_ATTRIB_START 256 /* BIT 11 - 8 */ | |
81 #define ATI_OUTPUT_RESPONSE_TYPES 0x1000 /* BIT 12, 13 */ | |
82 | |
83 | |
84 typedef enum | |
85 { | |
86 ATI_NO_OUTPUT = 0, | |
87 ATI_BEGIN_CRLF_OUTPUT = (1 * ATI_OUTPUT_BASIC_FORMAT_START), | |
88 ATI_END_CRLF_OUTPUT = (2 * ATI_OUTPUT_BASIC_FORMAT_START), | |
89 | |
90 ATI_ECHO_OUTPUT = (1 * ATI_OUTPUT_BASIC_TYPE_START), /* string without CR,LF */ | |
91 ATI_NORMAL_OUTPUT = (2 * ATI_OUTPUT_BASIC_TYPE_START), /* string ends with CR,LF */ | |
92 ATI_CONFIRM_OUTPUT = (4 * ATI_OUTPUT_BASIC_TYPE_START), /* string starts and ends with CR,LF */ | |
93 ATI_INDICATION_OUTPUT = (8 * ATI_OUTPUT_BASIC_TYPE_START), /* string ends with CR,LF */ | |
94 | |
95 ATI_FORCED_OUTPUT = (1 * ATI_OUTPUT_ATTRIB_START), | |
96 ATI_ERROR_OUTPUT = (2 * ATI_OUTPUT_ATTRIB_START), | |
97 ATI_CONNECT_OUTPUT = (4 * ATI_OUTPUT_ATTRIB_START), /* buffer indications until back in CMD mode */ | |
98 | |
99 /* the v25ter defines two types of responses */ | |
100 ATI_INFORMATION_TEXT_OUTPUT = (1 * ATI_OUTPUT_RESPONSE_TYPES), | |
101 ATI_RESULT_CODE_OUTPUT = (2 * ATI_OUTPUT_RESPONSE_TYPES) | |
102 } T_ATI_OUTPUT_TYPE; | |
103 | |
104 | |
105 /* send ATI output immediatly */ | |
106 #define ATI_OUTPUT_TYPE_NORMAL 0 | |
107 /* buffer ATI output and send when confirm output received */ | |
108 #define ATI_OUTPUT_TYPE_LARGE 1 | |
109 | |
110 typedef enum | |
111 { | |
112 ATI_LINE_STATE_UNKNOWN = -1, | |
113 ATI_LINE_STATE_DCD, | |
114 ATI_LINE_STATE_RNG, | |
115 ATI_LINE_STATE_OUTPUT_TYPE, /* indication for output see above */ | |
116 ATI_LINE_STATE_START, | |
117 ATI_LINE_STATE_END | |
118 | |
119 } T_ATI_LINE_STATE_TYPE; | |
120 | |
121 | |
122 typedef enum | |
123 { | |
124 ATI_UNKN_MODE = -1, | |
125 ATI_CMD_MODE, | |
126 ATI_DATA_MODE | |
127 } T_ATI_IO_MODE; | |
128 | |
129 typedef enum | |
130 { | |
131 CMD_IDLE = 0, | |
132 CMD_TYPING, | |
133 CMD_RUNNING | |
134 } T_ATI_CMD_STATE; | |
135 | |
136 typedef enum | |
137 { | |
138 NO_BUFF = 0, | |
139 BUFF_TYPING, | |
140 BUFF_RUNNING | |
141 } T_ATI_BUFF_UNS_MODE; | |
142 | |
143 typedef struct | |
144 { | |
145 CHAR *output; | |
146 T_ATI_OUTPUT_TYPE output_type; | |
147 } T_ATI_INDIC_BUFF; | |
148 | |
149 | |
150 typedef enum | |
151 { | |
152 CMD_MODE = 0, | |
153 TXT_MODE | |
154 } T_TEXT_MODE; | |
155 | |
156 typedef struct | |
157 { | |
158 char *key; /* command key */ | |
159 T_ATI_RSLT (*fnc) (char *, UBYTE srcId); /* basic command handler */ | |
160 char *and_key; /* AND command key */ | |
161 T_ATI_RSLT (*and_fnc) ( char *, UBYTE srcId); /* and command handler */ | |
162 } ATCommand_bas; | |
163 | |
164 typedef struct | |
165 { | |
166 CHAR *key; /* command key */ | |
167 T_ACI_AT_CMD binKey; /* binary presentation of the cmd */ | |
168 T_ATI_RSLT (*sfnc) (char *, UBYTE srcId); /* set command handler */ | |
169 T_ATI_RSLT (*tfnc) (char *, UBYTE srcId); /* test command handler */ | |
170 T_ATI_RSLT (*qfnc) (char *, UBYTE srcId); /* query command handler */ | |
171 CHAR *output1; | |
172 } ATCommand; | |
173 | |
174 | |
175 typedef void T_ATI_RESULT_CB (UBYTE src_id, | |
176 T_ATI_OUTPUT_TYPE output_type, | |
177 UBYTE *output, | |
178 USHORT output_len); | |
179 | |
180 typedef void T_ATI_LINE_STATE_CB (UBYTE src_id, | |
181 T_ATI_LINE_STATE_TYPE line_state_type, | |
182 ULONG line_state_param); | |
183 | |
184 typedef struct | |
185 { | |
186 T_ATI_IO_MODE mode; | |
187 UBYTE src_id; | |
188 T_ATI_SRC_TYPE src_type; | |
189 T_ATI_RESULT_CB *result_cb; | |
190 T_ATI_LINE_STATE_CB *line_state_cb; | |
191 T_ATI_CMD_STATE cmd_state; | |
192 T_ATI_BUFF_UNS_MODE buff_uns_mode; | |
193 void *indication_buffer; | |
194 T_TEXT_MODE text_mode; | |
195 T_ACI_AT_CMD curAtCmd; | |
196 } T_ATI_SRC_PARAMS; | |
197 | |
198 typedef enum | |
199 { | |
200 ATI_EXT_PART_UNKNOWN = -1, | |
201 ATI_EXT_PART_BEGIN, /* beginning part of a complete line */ | |
202 ATI_EXT_PART_LINE, /* a middle part from a complete line */ | |
203 ATI_EXT_PART_LAST, /* the last part from a complete line */ | |
204 ATI_EXT_CMPL_LINE /* a complete line */ | |
205 } T_ATI_EXT_FORMAT; | |
206 | |
207 EXTERN BOOL search_ati_src_id (UBYTE src_id, void *elem); | |
208 EXTERN void init_ati (void); | |
209 EXTERN BOOL ati_is_src_type( UBYTE srcId, T_ATI_SRC_TYPE source_type ); | |
210 /* | |
211 * | |
212 * AT-Command interpreter interface functions | |
213 * | |
214 */ | |
215 | |
216 EXTERN UBYTE ati_init (T_ATI_SRC_TYPE src_type, | |
217 T_ATI_RESULT_CB *result_cb, | |
218 T_ATI_LINE_STATE_CB *line_state_cb); | |
219 | |
220 EXTERN void ati_finit (UBYTE src_id); | |
221 | |
222 EXTERN T_ATI_RSLT ati_execute (UBYTE src_id, UBYTE *chars, USHORT len); | |
223 | |
224 EXTERN BOOL ati_execute_config_cmd (UBYTE *chars, USHORT len); | |
225 | |
226 EXTERN BOOL ati_abort (UBYTE src_id); | |
227 | |
228 EXTERN T_ATI_RSLT map_aci_2_ati_rslt (T_ACI_RETURN rslt); | |
229 EXTERN void trace_run_cmd_line (char *prefix, UBYTE src_id, char *cmd_name, char *cmd_params); | |
230 | |
231 EXTERN T_ACI_AT_CMD get_command_id (CHAR *command_str); | |
232 EXTERN T_ATI_RSLT sEXT_Output (UBYTE src_id, T_ATI_EXT_FORMAT output_format, CHAR *output); | |
233 EXTERN T_ATI_RSLT sEXT_Indication (UBYTE src_id, CHAR *indication_string); | |
234 EXTERN T_ATI_RSLT sEXT_Error (UBYTE src_id, T_ACI_CME_ERR err); | |
235 EXTERN T_ATI_RSLT sEXT_Confirm (UBYTE src_id); | |
236 EXTERN T_ATI_RSLT sEXT_Init (CHAR *cmd_list[]); | |
237 EXTERN T_ATI_RSLT sEXT_Finit (); | |
238 | |
239 | |
240 | |
241 #if defined (SMS_PDU_SUPPORT) | |
242 EXTERN T_ATI_RSLT atPlusCMGSPdu ( char * cl, UBYTE srcId); | |
243 EXTERN T_ATI_RSLT atPlusCMGWPdu ( char * cl, UBYTE srcId); | |
244 EXTERN T_ATI_RSLT atPlusCMGCPdu ( char * cl, UBYTE srcId); | |
245 EXTERN T_ATI_RSLT atPlusCNMAPdu ( char * cl, UBYTE srcId); | |
246 #endif | |
247 #endif /* ATI_CMD_H */ |