FreeCalypso > hg > freecalypso-sw
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gsm-fw/g23m-aci/aci/ati_cmd.h Sun Oct 12 01:45:14 2014 +0000 @@ -0,0 +1,247 @@ +/* ++----------------------------------------------------------------------------- +| Project : +| Modul : J:\g23m-aci\aci\ati_cmd.h ++----------------------------------------------------------------------------- +| Copyright 2002 Texas Instruments Berlin, AG +| All rights reserved. +| +| This file is confidential and a trade secret of Texas +| Instruments Berlin, AG +| The receipt of or possession of this file does not convey +| any rights to reproduce or disclose its contents or to +| manufacture, use, or sell anything it may describe, in +| whole, or in part, without the specific written consent of +| Texas Instruments Berlin, AG. ++----------------------------------------------------------------------------- +| Purpose : ++----------------------------------------------------------------------------- +*/ +#ifndef ATI_CMD_H +#define ATI_CMD_H + +/* copied from uart.h... should always be the same as there */ +#ifdef FF_MULTI_PORT +#define UART_INSTANCES FF_MULTI_PORT +#else /* FF_MULTI_PORT */ +#ifdef FF_TWO_UART_PORTS +#define UART_INSTANCES 2 +#ifdef _SIMULATION_ +# define UART_DATA_CHANNEL 3 +#else +# define UART_DATA_CHANNEL 4 +#endif +#else /* FF_TWO_UART_PORTS */ +#define UART_INSTANCES 1 +#endif /* FF_TWO_UART_PORTS */ +#endif /* FF_MULTI_PORT */ + +/* + * SKA 2002-09-05 + * when compiling for WIN32 allow ToDo message + * e.g.: #pragma message( __TODO__"verbose message for engineering mode" ) + * appears during compiling as + * Z:\g23m\condat\MS\SRC\ACI\ati_cmd.c(2560) : ToDo : verbose message for engineering mode + */ +#ifdef _SIMULATION_ +#define __STR2__(x) #x +#define __STR1__(x) __STR2__(x) +#define __TODO__ __FILE__ "("__STR1__(__LINE__)") : ToDo : " +#else +#define __TODO__ +#endif + + +typedef enum +{ + ATI_SRC_TYPE_UNKNOWN = -1, + ATI_SRC_TYPE_UART, + ATI_SRC_TYPE_BLUETOOTH, + ATI_SRC_TYPE_SAT, + ATI_SRC_TYPE_IRDA, + ATI_SRC_TYPE_LC, + ATI_SRC_TYPE_TST, + ATI_SRC_TYPE_RIV, + ATI_SRC_TYPE_PSI +} T_ATI_SRC_TYPE; + +typedef enum +{ + ATI_FAIL, + ATI_FAIL_NO_OUTPUT, + ATI_BUSY, + ATI_EXCT, + ATI_CMPL, + ATI_CMPL_NO_OUTPUT +} T_ATI_RSLT; + +#define ATI_OUTPUT_BASIC_FORMAT_START 1 /* BIT 3 - 0 */ +#define ATI_OUTPUT_BASIC_TYPE_START 8 /* BIT 7 - 4 */ +#define ATI_OUTPUT_ATTRIB_START 256 /* BIT 11 - 8 */ +#define ATI_OUTPUT_RESPONSE_TYPES 0x1000 /* BIT 12, 13 */ + + +typedef enum +{ + ATI_NO_OUTPUT = 0, + ATI_BEGIN_CRLF_OUTPUT = (1 * ATI_OUTPUT_BASIC_FORMAT_START), + ATI_END_CRLF_OUTPUT = (2 * ATI_OUTPUT_BASIC_FORMAT_START), + + ATI_ECHO_OUTPUT = (1 * ATI_OUTPUT_BASIC_TYPE_START), /* string without CR,LF */ + ATI_NORMAL_OUTPUT = (2 * ATI_OUTPUT_BASIC_TYPE_START), /* string ends with CR,LF */ + ATI_CONFIRM_OUTPUT = (4 * ATI_OUTPUT_BASIC_TYPE_START), /* string starts and ends with CR,LF */ + ATI_INDICATION_OUTPUT = (8 * ATI_OUTPUT_BASIC_TYPE_START), /* string ends with CR,LF */ + + ATI_FORCED_OUTPUT = (1 * ATI_OUTPUT_ATTRIB_START), + ATI_ERROR_OUTPUT = (2 * ATI_OUTPUT_ATTRIB_START), + ATI_CONNECT_OUTPUT = (4 * ATI_OUTPUT_ATTRIB_START), /* buffer indications until back in CMD mode */ + + /* the v25ter defines two types of responses */ + ATI_INFORMATION_TEXT_OUTPUT = (1 * ATI_OUTPUT_RESPONSE_TYPES), + ATI_RESULT_CODE_OUTPUT = (2 * ATI_OUTPUT_RESPONSE_TYPES) +} T_ATI_OUTPUT_TYPE; + + +/* send ATI output immediatly */ +#define ATI_OUTPUT_TYPE_NORMAL 0 +/* buffer ATI output and send when confirm output received */ +#define ATI_OUTPUT_TYPE_LARGE 1 + +typedef enum +{ + ATI_LINE_STATE_UNKNOWN = -1, + ATI_LINE_STATE_DCD, + ATI_LINE_STATE_RNG, + ATI_LINE_STATE_OUTPUT_TYPE, /* indication for output see above */ + ATI_LINE_STATE_START, + ATI_LINE_STATE_END + +} T_ATI_LINE_STATE_TYPE; + + +typedef enum +{ + ATI_UNKN_MODE = -1, + ATI_CMD_MODE, + ATI_DATA_MODE +} T_ATI_IO_MODE; + +typedef enum +{ + CMD_IDLE = 0, + CMD_TYPING, + CMD_RUNNING +} T_ATI_CMD_STATE; + +typedef enum +{ + NO_BUFF = 0, + BUFF_TYPING, + BUFF_RUNNING +} T_ATI_BUFF_UNS_MODE; + +typedef struct +{ + CHAR *output; + T_ATI_OUTPUT_TYPE output_type; +} T_ATI_INDIC_BUFF; + + +typedef enum +{ + CMD_MODE = 0, + TXT_MODE +} T_TEXT_MODE; + +typedef struct +{ + char *key; /* command key */ + T_ATI_RSLT (*fnc) (char *, UBYTE srcId); /* basic command handler */ + char *and_key; /* AND command key */ + T_ATI_RSLT (*and_fnc) ( char *, UBYTE srcId); /* and command handler */ +} ATCommand_bas; + +typedef struct +{ + CHAR *key; /* command key */ + T_ACI_AT_CMD binKey; /* binary presentation of the cmd */ + T_ATI_RSLT (*sfnc) (char *, UBYTE srcId); /* set command handler */ + T_ATI_RSLT (*tfnc) (char *, UBYTE srcId); /* test command handler */ + T_ATI_RSLT (*qfnc) (char *, UBYTE srcId); /* query command handler */ + CHAR *output1; +} ATCommand; + + +typedef void T_ATI_RESULT_CB (UBYTE src_id, + T_ATI_OUTPUT_TYPE output_type, + UBYTE *output, + USHORT output_len); + +typedef void T_ATI_LINE_STATE_CB (UBYTE src_id, + T_ATI_LINE_STATE_TYPE line_state_type, + ULONG line_state_param); + +typedef struct +{ + T_ATI_IO_MODE mode; + UBYTE src_id; + T_ATI_SRC_TYPE src_type; + T_ATI_RESULT_CB *result_cb; + T_ATI_LINE_STATE_CB *line_state_cb; + T_ATI_CMD_STATE cmd_state; + T_ATI_BUFF_UNS_MODE buff_uns_mode; + void *indication_buffer; + T_TEXT_MODE text_mode; + T_ACI_AT_CMD curAtCmd; +} T_ATI_SRC_PARAMS; + +typedef enum +{ + ATI_EXT_PART_UNKNOWN = -1, + ATI_EXT_PART_BEGIN, /* beginning part of a complete line */ + ATI_EXT_PART_LINE, /* a middle part from a complete line */ + ATI_EXT_PART_LAST, /* the last part from a complete line */ + ATI_EXT_CMPL_LINE /* a complete line */ +} T_ATI_EXT_FORMAT; + +EXTERN BOOL search_ati_src_id (UBYTE src_id, void *elem); +EXTERN void init_ati (void); +EXTERN BOOL ati_is_src_type( UBYTE srcId, T_ATI_SRC_TYPE source_type ); +/* + * + * AT-Command interpreter interface functions + * + */ + +EXTERN UBYTE ati_init (T_ATI_SRC_TYPE src_type, + T_ATI_RESULT_CB *result_cb, + T_ATI_LINE_STATE_CB *line_state_cb); + +EXTERN void ati_finit (UBYTE src_id); + +EXTERN T_ATI_RSLT ati_execute (UBYTE src_id, UBYTE *chars, USHORT len); + +EXTERN BOOL ati_execute_config_cmd (UBYTE *chars, USHORT len); + +EXTERN BOOL ati_abort (UBYTE src_id); + +EXTERN T_ATI_RSLT map_aci_2_ati_rslt (T_ACI_RETURN rslt); +EXTERN void trace_run_cmd_line (char *prefix, UBYTE src_id, char *cmd_name, char *cmd_params); + +EXTERN T_ACI_AT_CMD get_command_id (CHAR *command_str); +EXTERN T_ATI_RSLT sEXT_Output (UBYTE src_id, T_ATI_EXT_FORMAT output_format, CHAR *output); +EXTERN T_ATI_RSLT sEXT_Indication (UBYTE src_id, CHAR *indication_string); +EXTERN T_ATI_RSLT sEXT_Error (UBYTE src_id, T_ACI_CME_ERR err); +EXTERN T_ATI_RSLT sEXT_Confirm (UBYTE src_id); +EXTERN T_ATI_RSLT sEXT_Init (CHAR *cmd_list[]); +EXTERN T_ATI_RSLT sEXT_Finit (); + + + +#if defined (SMS_PDU_SUPPORT) +EXTERN T_ATI_RSLT atPlusCMGSPdu ( char * cl, UBYTE srcId); +EXTERN T_ATI_RSLT atPlusCMGWPdu ( char * cl, UBYTE srcId); +EXTERN T_ATI_RSLT atPlusCMGCPdu ( char * cl, UBYTE srcId); +EXTERN T_ATI_RSLT atPlusCNMAPdu ( char * cl, UBYTE srcId); +#endif +#endif /* ATI_CMD_H */