22 #ifndef M2M_M2MB_ATP_API_H
23 #define M2M_M2MB_ATP_API_H
28 #define ATP_CMD_BUF_SIZE 4096
29 #define M2MB_ATP_MAX_NUM_OF_PARAMETERS 32
30 #if !defined (M2M_INTERNAL_AT_PARSER_PLUS_ATI)
31 #define M2MB_ATP_FIRST_INSTANCE_ID 0
33 #define M2MB_ATP_FIRST_INSTANCE_ID 1
35 #ifdef M2M_AT_VIRTUAL_PORTS
36 #define M2MB_ATP_MAX_PORTCFG_PHYSICAL_PORTS_NUM 3
37 #define M2MB_ATP_MAX_VIRTUAL_PORTS_NUM 2
38 #define M2MB_ATP_MAX_INSTANCE_NUMBER (M2MB_ATP_MAX_PORTCFG_PHYSICAL_PORTS_NUM + M2MB_ATP_MAX_VIRTUAL_PORTS_NUM)
40 #define M2MB_ATP_MAX_INSTANCE_NUMBER 3
43 #define M2MB_ATP_MAX_PARAM_STRING_LEN 16
44 #define M2MB_ATP_MAX_PARAM_VALUE_LEN 128
45 #define M2MB_ATP_MAX_PARAM_FILE_LEN (1+2*M2MB_ATP_MAX_PARAM_VALUE_LEN)
46 #define M2MB_ATP_MAX_PARAM_FILE_PATH_LEN 128
47 #define M2MB_ATP_MAX_OPT_ERR_STR_SIZE 60
50 #define ATP_THREAD_STACK_SIZE (1024 * 32)
51 #define ATP_THREAD_N_MSG 100
52 #define ATP_THREAD_PRIORITY 231
54 #define ATP_EXTATP_THREAD_STACK_SIZE (1024 * 4)
55 #define ATP_EXTATP_THREAD_PRIORITY ATP_THREAD_PRIORITY
58 #define M2MB_ATP_NORML 0x0000 // Command accepted only if sim and pin inserted
59 #define M2MB_ATP_NOPIN 0x0001 // Command accepted even if pin enabled and not inserted yet
60 #define M2MB_ATP_NOSIM 0x0002 // Command accepted if sim not inserted
61 #define M2MB_ATP_SMLCK 0x0004 // Command accepted even if simlock enabled
62 #define M2MB_ATP_NOPAR 0x0200 // Marker for special AT+Cmd=<CR> handling
63 #define M2MB_ATP_CLACH 0x0080 // Hidden command, not listed in +CLAC
73 typedef HANDLE M2MB_ATP_HANDLE;
75 typedef INT16 SY_MESSAGE_ID;
84 M2MB_ATP_CMDTYP_NOPARAMS,
111 M2MB_ATP_CMD_CALLBACK_IND,
112 M2MB_ATP_CMD_DELEGATION_IND
113 } M2MB_ATP_CMD_IND_E;
117 M2MB_ATP_INPUT_MODE_NONE = 0,
118 M2MB_ATP_SMS_INPUT_MODE,
119 M2MB_ATP_EMAIL_INPUT_MODE,
120 M2MB_ATP_M2M_WRITE_INPUT_MODE,
121 M2MB_ATP_ONLINE_INPUT_MODE,
122 M2MB_ATP_SILENT_INPUT_MODE
123 } M2MB_ATP_INPUT_MODE;
127 M2MB_ATP_FRC_SILENT = -1,
130 M2MB_ATP_FRC_CME_ERROR,
131 M2MB_ATP_FRC_CMS_ERROR
136 M2MB_ATP_CME_PHONE_FAILURE = 0,
137 M2MB_ATP_CME_NO_CONNECTION_TO_PHONE = 1,
138 M2MB_ATP_CME_PHONE_LINK_RESERVED = 2,
139 M2MB_ATP_CME_OPERATION_NOT_ALLOWED = 3,
140 M2MB_ATP_CME_OPERATION_NOT_SUPPORTED = 4,
141 M2MB_ATP_CME_PHSIM_PIN_REQUIRED = 5,
142 M2MB_ATP_CME_PHFSIM_PIN_REQUIRED = 6,
143 M2MB_ATP_CME_SIM_NOT_INSERTED = 10,
144 M2MB_ATP_CME_SIM_PIN_REQUIRED = 11,
145 M2MB_ATP_CME_SIM_PUK_REQUIRED = 12,
146 M2MB_ATP_CME_SIM_FAILURE = 13,
147 M2MB_ATP_CME_SIM_BUSY = 14,
148 M2MB_ATP_CME_SIM_WRONG = 15,
149 M2MB_ATP_CME_INCORRECT_PASSWORD = 16,
150 M2MB_ATP_CME_SIM_PIN2_REQUIRED = 17,
151 M2MB_ATP_CME_SIM_PUK2_REQUIRED = 18,
152 M2MB_ATP_CME_MEMORY_FULL = 20,
153 M2MB_ATP_CME_INVALID_INDEX = 21,
154 M2MB_ATP_CME_NOT_FOUND = 22,
155 M2MB_ATP_CME_MEMORY_FAILURE = 23,
156 M2MB_ATP_CME_TEXT_TOO_LONG = 24,
157 M2MB_ATP_CME_INVALID_CHARS_IN_TEXT = 25,
158 M2MB_ATP_CME_DIAL_TOO_LONG = 26,
159 M2MB_ATP_CME_INVALID_CHARS_IN_DIAL = 27,
160 M2MB_ATP_CME_NO_NETWORK_SERVICE = 30,
161 M2MB_ATP_CME_NETWORK_TIMEOUT = 31,
162 M2MB_ATP_CME_NETWORK_NOT_ALLOWED = 32,
163 M2MB_ATP_CME_NCK_REQUIRED = 40,
164 M2MB_ATP_CME_NET_PERS_PUK_REQUIRED = 41,
165 M2MB_ATP_CME_NSCK_REQUIRED = 42,
166 M2MB_ATP_CME_NET_SUBSET_PERS_PUK_REQUIRED = 43,
167 M2MB_ATP_CME_SPCK_REQUIRED = 44,
168 M2MB_ATP_CME_SERV_PROV_PERS_PUK_EQUIRED = 45,
169 M2MB_ATP_CME_CPCK_REQUIRED = 46,
170 M2MB_ATP_CME_CORP_PERS_PUK_REQUIRED = 47,
171 M2MB_ATP_CME_HIDDEN_KEY_REQUIRED = 48,
172 M2MB_ATP_CME_UNKNOWN = 100,
173 M2MB_ATP_CME_ILLEGAL_MS = 103,
174 M2MB_ATP_CME_ILLEGAL_ME = 106,
175 M2MB_ATP_CME_GPRS_SERVICE_NOT_ALLW = 107,
176 M2MB_ATP_CME_PLMN_NOT_ALLW = 111,
177 M2MB_ATP_CME_LOC_AREA_NOT_ALLW = 112,
178 M2MB_ATP_CME_ROAM_NOT_ALW_IN_THIS_AREA = 113,
179 M2MB_ATP_CME_SERV_OPT_NOT_SUPPORTED = 132,
180 M2MB_ATP_CME_REQ_SERV_OPT_NOT_SUBSCRIBED = 133,
181 M2MB_ATP_CME_SERV_OPT_TEMP_OOF = 134,
182 M2MB_ATP_CME_UNSPECIFIED_GPRS_ERROR = 148,
183 M2MB_ATP_CME_PDP_AUTHENT_FAILURE = 149,
184 M2MB_ATP_CME_INVALID_MOBILE_CLASS = 150,
188 DSAT_CME_TEXT_PARAM_INSTEAD_OF_NUM_PARAM = 35,
189 DSAT_CME_NUM_PARAM_OUT_OF_BOUNDS = 36,
190 DSAT_CME_INVALID_PARAM_NUMBER = 277,
192 M2MB_ATP_CME_CONTEXT_NOT_OPENED = 556,
193 M2MB_ATP_CME_CANNOT_SETUP_SOCKET = 557,
194 M2MB_ATP_CME_CANNOT_RESOLVE_DN = 558,
195 M2MB_ATP_CME_TIMEOUT_IN_OPENING_SOCKET = 559,
196 M2MB_ATP_CME_CANNOT_OPEN_SOCKET = 560,
197 M2MB_ATP_CME_REMOTE_DISCONNECTED = 561,
198 M2MB_ATP_CME_CONNECTION_FAILED = 562,
199 M2MB_ATP_CME_TX_ERROR = 563,
200 M2MB_ATP_CME_ALREADY_LISTENING = 564,
201 M2MB_ATP_CME_EASY_SKT_ABORT = 565,
202 M2MB_ATP_CME_EASY_NO_SOCKET = 566,
203 M2MB_ATP_CME_IP_VERSION_TYPE_INCOMPATIBLE = 567,
204 M2MB_ATP_CME_IPV6_NOT_ENABLED = 568,
205 M2MB_ATP_CME_EASY_CONNECTION_ABORT = 569,
207 M2MB_ATP_CME_FTP_ALREADY_CONNECTED = 608,
208 M2MB_ATP_CME_CMDMODE = 613,
209 M2MB_ATP_CME_CMDMODE_NODATAPORT = 614,
210 M2MB_ATP_CME_FTP_NOT_CONNECTED = 615,
211 M2MB_ATP_CME_FTP_DISCONNECTED = 616,
212 M2MB_ATP_CME_FTP_READ_CMD_CLOSED = 617,
213 M2MB_ATP_CME_FTP_READ_CMD_ERROR = 618,
214 M2MB_ATP_CME_FTP_WRITE_CMD_CLOSED = 619,
215 M2MB_ATP_CME_FTP_WRITE_CMD_ERROR = 620,
216 M2MB_ATP_CME_FTP_READ_DATA_CLOSED = 621,
217 M2MB_ATP_CME_FTP_READ_DATA_ERROR = 622,
218 M2MB_ATP_CME_FTP_WRITE_DATA_CLOSED = 623,
219 M2MB_ATP_CME_FTP_WRITE_DATA_ERROR = 624,
220 M2MB_ATP_CME_FTP_HOST_NOT_FOUND = 625,
221 M2MB_ATP_CME_FTP_ACCEPT_FAIL = 626,
222 M2MB_ATP_CME_FTP_LISTEN_FAIL = 627,
223 M2MB_ATP_CME_FTP_BIND_FAIL = 628,
224 M2MB_ATP_CME_FTP_FILE_CREATE_FAIL = 629,
225 M2MB_ATP_CME_FTP_FILE_GET_COMPLETE = 630,
226 M2MB_ATP_CME_FTP_FILE_PUT_COMPLETE = 631,
227 M2MB_ATP_CME_FTP_FILE_NOT_FOUND = 632,
228 M2MB_ATP_CME_FTP_TIME_OUT = 633,
229 M2MB_ATP_CME_FTP_LOGIN_INCORRECT = 634,
230 M2MB_ATP_CME_FTP_CLOSE_ERROR = 635,
231 M2MB_ATP_CME_FTP_SERVER_NOT_READY = 636,
232 M2MB_ATP_CME_FTP_SERVER_SHUTDOWN = 637,
233 M2MB_ATP_CME_FTP_UNEXPECTED_REPLY = 638,
234 M2MB_ATP_CME_FTP_USERID_INVALID = 639,
235 M2MB_ATP_CME_FTP_PASSWD_INVALID = 640,
236 M2MB_ATP_CME_FTP_USER_ALREADY_LOGIN = 641,
237 M2MB_ATP_CME_FTP_OPEN_CHANNEL_TIMEOUT = 642,
238 M2MB_ATP_CME_FTP_COMM_TIMEOUT = 643,
239 M2MB_ATP_CME_FTP_UNKNOWN_ERROR = 644,
241 M2MB_ATP_CME_SSL_SSL_NOT_ACTIVATED = 1000,
242 M2MB_ATP_CME_SSL_SSL_CERT_KEYS_WRONG = 1001,
243 M2MB_ATP_CME_SSL_SSL_GENERIC_ERROR = 1002,
244 M2MB_ATP_CME_SSL_SSL_ALREADY_ACTIVATED = 1003,
245 M2MB_ATP_CME_SSL_SSL_ERR_DURING_HANDSHAKE = 1004,
246 M2MB_ATP_CME_SSL_SSL_SOCKET_ERROR = 1005,
247 M2MB_ATP_CME_SSL_SSL_INVALID_STATE = 1006,
248 M2MB_ATP_CME_SSL_SSL_CAN_NOT_ACTIVATE = 1007,
249 M2MB_ATP_CME_SSL_SSL_NOT_CONNECTED = 1008,
250 M2MB_ATP_CME_SSL_SSL_ALREADY_CONNECTED = 1009,
251 M2MB_ATP_CME_SSL_SSL_ENC_DEC_DATA_ERROR = 1010,
252 M2MB_ATP_CME_SSL_SSL_DISCONNECTED = 1011,
254 M2MB_ATP_CME_MQTT_INIT_FAIL = 1100,
255 M2MB_ATP_CME_MQTT_DEINIT_FAIL = 1101,
256 M2MB_ATP_CME_MQTT_CONF_FAIL = 1102,
257 M2MB_ATP_CME_MQTT_CONNECT_FAIL = 1103,
258 M2MB_ATP_CME_MQTT_DISCONNECT_FAIL = 1104,
259 M2MB_ATP_CME_MQTT_PUBLISH_FAIL = 1105,
260 M2MB_ATP_CME_MQTT_SUBSCRIBE_FAIL = 1106,
261 M2MB_ATP_CME_MQTT_UNSUBSCRIBE_FAIL = 1107,
266 M2MB_ATP_CMS_UNASSIGNED_NUMBER = 1,
267 M2MB_ATP_CMS_OPERATOR_BARRING = 8,
268 M2MB_ATP_CMS_CALL_BARRED = 10,
269 M2MB_ATP_CMS_SMS_TRANSFER_REJECTED = 21,
270 M2MB_ATP_CMS_OUT_OF_SERVICE_DEST = 27,
271 M2MB_ATP_CMS_UNIDENTIFIED_SUBSCRIBER = 28,
272 M2MB_ATP_CMS_FACILITY_REJECTED = 29,
273 M2MB_ATP_CMS_UNKNOWN_SUBSCRIBER = 30,
274 M2MB_ATP_CMS_OUT_OF_ORDER_NETWORK = 38,
275 M2MB_ATP_CMS_TEMP_FAILURE = 41,
276 M2MB_ATP_CMS_CONGESTION = 42,
277 M2MB_ATP_CMS_UNAVAILABLE_RESOURCE = 47,
278 M2MB_ATP_CMS_FACILTY_NOT_SUBSCRIBED = 50,
279 M2MB_ATP_CMS_FACILTY_NOT_IMPLEMENTED = 69,
280 M2MB_ATP_CMS_INVALID_SMS_MSG_REF = 81,
281 M2MB_ATP_CMS_INVALID_SMS = 95,
282 M2MB_ATP_CMS_INVALID_MANDAT_INFO = 96,
283 M2MB_ATP_CMS_MSG_TYPE_NOT_IMPLEMENTED = 97,
284 M2MB_ATP_CMS_MSG_TYPE_NOT_COMPATIBLE = 98,
285 M2MB_ATP_CMS_IE_NOT_IMPLEMENTED = 99,
286 M2MB_ATP_CMS_PROTOCOL_ERROR = 111,
287 M2MB_ATP_CMS_INTERWORKING = 127,
288 M2MB_ATP_CMS_TEL_INTERWORK_NOT_SUPPORTED = 128,
289 M2MB_ATP_CMS_SMTYPE0_NOT_SUPPORTED = 129,
290 M2MB_ATP_CMS_CANNOT_REPLACE_SMS = 130,
291 M2MB_ATP_CMS_UNSPECIFIED_PID_ERROR = 143,
292 M2MB_ATP_CMS_DCS_NOT_SUPPORTED = 144,
293 M2MB_ATP_CMS_UNSPECIFIED_DCS_ERROR = 159,
294 M2MB_ATP_CMS_TPDU_NOT_SUPPORTED = 176,
295 M2MB_ATP_CMS_SC_BUSY = 192,
296 M2MB_ATP_CMS_NO_SC_SUBSCRIPTION = 193,
297 M2MB_ATP_CMS_SC_SYSTEM_FAILURE = 194,
298 M2MB_ATP_CMS_INVALID_SME_ADDRESS = 195,
299 M2MB_ATP_CMS_DESTINATION_SME_BARRED = 196,
300 M2MB_ATP_CMS_SM_REJ_DUPL_SM = 197,
301 M2MB_ATP_CMS_VPF_NOT_SUPPORTED = 198,
302 M2MB_ATP_CMS_VP_NOT_SUPPORTED = 199,
303 M2MB_ATP_CMS_UNSPECIFIED_TPFCS_ERROR = 255,
304 M2MB_ATP_CMS_ME_FAILURE = 300,
305 M2MB_ATP_CMS_SMS_SERV_RESERVED = 301,
306 M2MB_ATP_CMS_OPERATION_NOT_ALLOWED = 302,
307 M2MB_ATP_CMS_OPERATION_NOT_SUPPORTED = 303,
308 M2MB_ATP_CMS_INVALID_PDU_MODE_PARAMETER = 304,
309 M2MB_ATP_CMS_INVALID_TEXT_MODE_PARAMETER = 305,
310 M2MB_ATP_CMS_SIM_NOT_INSERTED = 310,
311 M2MB_ATP_CMS_SIM_PIN_REQUIRED = 311,
312 M2MB_ATP_CMS_PHSIM_PIN_REQUIRED = 312,
313 M2MB_ATP_CMS_SIM_FAILURE = 313,
314 M2MB_ATP_CMS_SIM_BUSY = 314,
315 M2MB_ATP_CMS_SIM_WRONG = 315,
316 M2MB_ATP_CMS_SIM_PUK_REQUIRED = 316,
317 M2MB_ATP_CMS_SIM_PIN2_REQUIRED = 317,
318 M2MB_ATP_CMS_SIM_PUK2_REQUIRED = 318,
319 M2MB_ATP_CMS_MEMORY_FAILURE = 320,
320 M2MB_ATP_CMS_INVALID_INDEX = 321,
321 M2MB_ATP_CMS_MEMORY_FULL = 322,
322 M2MB_ATP_CMS_SMSC_ADDRESS_UNKNOWN = 330,
323 M2MB_ATP_CMS_NO_NETWORK_SERVICE = 331,
324 M2MB_ATP_CMS_NETWORK_TIMEOUT = 332,
325 M2MB_ATP_CMS_NO_CNMA_ACK_EXPECTED = 340,
326 M2MB_ATP_CMS_UNKNOWN = 500,
327 M2MB_ATP_CMS_FDN_NOT_ALLOWED_NUMBER = 512
332 M2MB_ATP_SLNT_NONE = -1,
333 M2MB_ATP_SLNT_COMPLETED = 0,
334 M2MB_ATP_SLNT_NO_CARRIER = 1
339 M2MB_ATP_UNS_BUFFER_IF_BUSY=0,
340 M2MB_ATP_UNS_DISCARD_IF_BUSY,
341 } M2MB_ATP_UNS_MODE_E;
345 M2MB_ATP_HANDLE atpHandle;
346 M2MB_ATP_CMD_IND_E atpEvent;
349 void *atptaskUserdata;
356 M2MB_ATP_CMDTYPE_E type;
366 UINT16 instanceNumber;
386 } M2MB_ATP_DELEGATION_IND_E;
391 UINT16 instanceNumber;
392 M2MB_ATP_DELEGATION_IND_E event;
397 typedef void ( *m2mb_atp_ind_callback )( M2MB_ATP_HANDLE h, M2MB_ATP_IND_E atp_event, UINT16 resp_size,
void *resp_struct,
void *userdata );
398 typedef void ( *m2mb_atp_cmd_ind_callback )( M2MB_ATP_HANDLE h, M2MB_ATP_CMD_IND_E atp_event, UINT16 resp_size,
void *resp_struct,
void *userdata );
401 M2MB_ATP_HANDLE atpHandle;
404 m2mb_atp_cmd_ind_callback atpCallback;
457 M2MB_RESULT_E
m2mb_atp_init( M2MB_ATP_HANDLE *h, m2mb_atp_ind_callback callback,
void *userdata );
565 M2MB_RESULT_E
m2mb_atp_register( M2MB_ATP_HANDLE atpHandle, CHAR *atpCmdString, UINT16 atpFlags, m2mb_atp_cmd_ind_callback atpCallback,
void *atpUserdata );
671 M2MB_RESULT_E
m2mb_atp_msgout( M2MB_ATP_HANDLE atpHandle, UINT16 instanceNum, CHAR *msg );
748 M2MB_RESULT_E
m2mb_atp_release( M2MB_ATP_HANDLE h, UINT16 instanceNum, M2MB_ATP_FRC_E res, INT16 errorCode, CHAR *optionalErrString );
924 INT32
m2mb_atp_rx( M2MB_ATP_HANDLE atpHandle, UINT16 instanceNum,
void *rxBuffer, INT32 rxBufferSize );
1001 INT32
m2mb_atp_tx( M2MB_ATP_HANDLE atpHandle, UINT16 instanceNum,
void *txBuffer, INT32 txBufferSize );
1168 M2MB_RESULT_E
m2mb_atp_at_command_conf( M2MB_ATP_HANDLE h, UINT16 instanceNum, CHAR *atCmdString, UINT8 argc, ... );
1251 M2MB_RESULT_E m2mb_info_check_SIM_and_PIN( BOOLEAN *SIMPresent, BOOLEAN *PINEnabled );
1253 M2MB_RESULT_E m2mb_atp_set_CR_value( UINT8 value);
1254 M2MB_RESULT_E m2mb_atp_set_LF_value( UINT8 value);
1255 M2MB_RESULT_E m2mb_atp_set_BS_value( UINT8 value);
1256 UINT8 m2mb_atp_get_CR_value(
void );
1257 UINT8 m2mb_atp_get_LF_value(
void );
1258 UINT8 m2mb_atp_get_BS_value(
void );
1291 void *data, UINT32 dataLen );