FreeCalypso > hg > freecalypso-sw
view gsm-fw/g23m-aci/aci/ati_cmd.h @ 871:a5c8f48003cd
rvinterf: client programs can now selectively stop receiving packets of a
particular RVTMUX type
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Fri, 29 May 2015 06:29:38 +0000 |
parents | eedbf248bac0 |
children |
line wrap: on
line source
/* +----------------------------------------------------------------------------- | 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 */