Files
banban/ql-kernel/threadx/common/include/mat.h
T

1052 lines
20 KiB
C

/*----------------------------------------------------------------------
(C) Copyright [2006-2008] Marvell International Ltd.
All Rights Reserved
------------------------------------------------------------------------*/
/* */
/* */
/* This file and the software in it is furnished under */
/* license and may only be used or copied in accordance with the terms */
/* of the license. The information in this file is furnished for */
/* informational use only, is subject to change without notice, and */
/* should not be construed as a commitment by Marvell Corporation. */
/* Marvell Corporation assumes no responsibility or liability for any */
/* errors or inaccuracies that may appear in this document or any */
/* software that may be provided in association with this document. */
/* Except as permitted by such license, no part of this document may */
/* be reproduced, stored in a retrieval system, or transmitted in any */
/* form or by any means without the express written consent of Marvell */
/* Corporation. */
/* */
/* Title: MAT module */
/* */
/* Filename: mat.h */
/* */
/* Author: bchang */
/* */
/* Project, Target, subsystem: Tavor, Arbel & Boerne RTOS, HAL */
/* */
/* Remarks: - */
/* */
/* Created: 10/12/2013 */
/* */
/* Modified: */
/************************************************************************/
/************************************************************************/
#if !(defined __MAT_H__)
#define __MAT_H__
#include "global_types.h"
#include "quec_cust_feature.h"
/*---- parameter command type ----
the type definition is generally following AT CMD string define
AT commands are listed here.
*/
//ICAT EXPORTED ENUM
typedef enum
{
MAT_E,
MAT_I,
MAT_L,
MAT_M,
MAT_O,
MAT_P,
MAT_Q,
MAT_T,
MAT_V,
MAT_X,
MAT_Z,
MAT_ampC,
MAT_ampD,
MAT_ampF,
MAT_ampS,
MAT_ampZ,
MAT_ampM,
MAT_ampV,
MAT_CGMI,
MAT_CGMM,
MAT_CGMR,
MAT_CGSN,
MAT_CSCS,
MAT_CIMI,
MAT_ASTO,
MAT_GMI,
MAT_GMM,
MAT_GMR,
MAT_GSN,
MAT_GOI,
MAT_GCAP,
MAT_GCI,
MAT_IPR,
MAT_ICF,
MAT_IFC,
MAT_IDSR,
MAT_EXAMPLE,
MAT_RawAT,
MAT_A,
MAT_D,
MAT_H,
MAT_CSTA,
MAT_CMOD,
MAT_CVMOD,
MAT_CHUP,
MAT_CBST,
MAT_CVHU,
MAT_CRLP,
MAT_CEER,
MAT_CMUT,
MAT_ECHUPVT,
MAT_CREG,
MAT_CIND,
MAT_COPS,
MAT_CPOL,
MAT_CLCK,
MAT_CPWD,
MAT_CLIP,
MAT_CLIR,
MAT_COLP,
MAT_COLR,
MAT_CNAP,
MAT_CCFC,
MAT_CCWA,
MAT_CHLD,
MAT_CAOC,
MAT_VTS,
MAT_VTD,
MAT_CSSN,
MAT_CLCC,
MAT_FCLASS,
MAT_starCISCC,
MAT_dollarVTS,
MAT_starDIALE,
#ifdef VOLTE_ENABLE
MAT_CIREP,
MAT_CAVIMS,
MAT_CASIMS,
MAT_starCIIND,
MAT_starIMSSRV,
MAT_POCCMD,
#endif
MAT_CUSD,
MAT_PEER,
MAT_CSQ,
MAT_starREJCUSE,
MAT_CMUX,
#ifdef AT_FOR_GW20180208SN
MAT_NETDMSG,
MAT_CSQEX,
#endif
MAT_CPAS,
MAT_CFUN,
MAT_starCFUN,
MAT_CPIN,
MAT_CPIN2,
MAT_EPIN,
MAT_CPINR,
MAT_starSIMDETEC,
MAT_CPOFF,
MAT_CTZR,
MAT_CTZU,
MAT_starCTZR,
MAT_CPBS,
MAT_CPBR,
MAT_CPBW,
MAT_CPBF,
MAT_CSIM,
MAT_CRSM,
MAT_CGLA,
MAT_CRLA,
MAT_CCHO,
MAT_CCHC,
MAT_MSTK,
MAT_starEUICC,
MAT_CACM,
MAT_CAMM,
MAT_CCWE,
MAT_ADMINDATA,
MAT_CGREG,
MAT_starREGOPT,
MAT_CGATT,
MAT_CGACT,
MAT_CGDATA,
MAT_CGDCONT,
MAT_CGDSCONT,
MAT_CGQMIN,
MAT_CGQREQ,
MAT_CGEQREQ,
MAT_CGEQMIN,
MAT_GETIP,
MAT_starTGSINK,
MAT_CGSEND,
MAT_starICSSINK,
MAT_starAUTHReq,
#ifdef CRANE_MCU_DONGLE
MAT_starCHAPAUTH,
#endif
MAT_CMGF,
MAT_starCMGF,
MAT_CMSS,
MAT_CMGS,
MAT_CMGR,
MAT_CMGW,
MAT_CSCA,
MAT_CSCB,
MAT_CNMI,
MAT_CGSMS,
MAT_CMMS,
MAT_CMGD,
MAT_CMGL,
MAT_CSMS,
MAT_CPMS,
MAT_CNMA,
MAT_CSMP,
MAT_CSDH,
MAT_CSAS,
MAT_CRES,
MAT_CPNER,
MAT_CGCI,
MAT_CGOI,
MAT_VDUMP,
MAT_VPDUS,
MAT_VHDL,
MAT_VECHO,
MAT_ATDB,
MAT_starCCIREG,
MAT_CPUC,
MAT_CRC,
MAT_CMEE,
MAT_CDIP,
MAT_CPLS,
MAT_CGCMOD,
MAT_CNUM,
MAT_DS,
MAT_CGTFT,
MAT_starBAND,
MAT_starBANDIND,
MAT_starCLCK,
MAT_starMEPCG,
MAT_starENVSIM,
MAT_starCNMA,
MAT_starRSTMEMFULL,
MAT_starPOWERIND,
MAT_starFASTDORM,
MAT_starCellLock,
MAT_EEMOPT,
MAT_EEMGINFO,
MAT_ERGA,
MAT_ERTCA,
MAT_LPNWUL,
MAT_LPLOCVR,
MAT_starSYSSLEEP,
MAT_starCam_I2C,
MAT_starISP_REG,
MAT_starCam_rawdump,
MAT_starFILETEST,
MAT_starMRD_CDF,
MAT_starMRD_IMEI,
MAT_starMRD_MEP,
MAT_starMRD_CalInfo,
MAT_starMRD_MEPPLMN,
MAT_starMRD_SN,
MAT_starMRD_ITEM,
MAT_starMRD_ADC,
MAT_starMRD_RTPADC,
//#ifdef AT_PRODUCTION_CMNDS
MAT_starGSMTR,
//#endif
MAT_OFF,
MAT_starCGSN,
MAT_starMODEMTYPE,
MAT_starHTCCTO,
MAT_CMEMFULL,
MAT_starEHSDPA,
#ifdef CI_NEW_FEATURE1
MAT_TPCN,
MAT_FWDB,
#endif
MAT_starFDY,
MAT_xorSYSINFO,
MAT_starCPBC,
MAT_starFDNBYPASS,
MAT_starCSCB,
MAT_starCBMCS,
MAT_starNASCHK,
MAT_CGEQOS,
MAT_CEREG,
MAT_CGCONTRDP,
MAT_CGSCONTRDP,
MAT_CGTFTRDP,
MAT_CGEQOSRDP,
MAT_CGEREP,
MAT_CEMODE,
MAT_CGPADDR,
MAT_xorCACAP,
MAT_CGCLASS,
MAT_CESQ,
MAT_BGLTEPLMN,
MAT_STARCGDFAUTH,
MAT_dollarMYMINISYS,
MAT_dollarMYFOTA,
MAT_VZWRSRP,
MAT_VZWRSRQ,
MAT_starCGDFLT,
#ifdef LWIP_IPNETBUF_SUPPORT
MAT_STARNETACT,
MAT_STARNETREF,
MAT_STARNETDNS,
MAT_STARNETIF,
MAT_STARNETIFCM,
MAT_STARMPSAPN,
#endif
MAT_starMODEMRESET,
#ifdef AT_LABTOOL_CMNDS
MAT_MVWFTST,
MAT_MVWFIDRW,
MAT_MVBTTEST,
MAT_MVBTIDRW,
MAT_MVFMTST,
#endif
MAT_starVZWTESTAPP,
MAT_VZWAPNE,
MAT_COPN,
MAT_starGATR,
MAT_starGRIP,
MAT_playMP3,
MAT_starCGMR,
MAT_starCOMCFG,
MAT_starRFTEMP,
MAT_startRFTEMPEX,
#ifdef CRANE_SOC_TEMPERATURE_SENSOR
MAT_starSOCTEMP,
#endif
MAT_TEMPTEST,
MAT_BANSELCT,
MAT_SYSSLEEP,
MAT_PSSDC,
MAT_starCGATT,
MAT_CGPIAF,
MAT_CIREG,
MAT_starUSBT,
MAT_starLTECOEX,
MAT_LTEPOWER,
MAT_LTETR,
MAT_starCSQ,
MAT_MAXPOWER,
MAT_SIMDETEC,
MAT_APPPIN,
MAT_CPLMNS,
MAT_starMOBILEDATA,
MAT_MCCMNCCC,
MAT_WS46,
MAT_starCELL,
MAT_CISRVCC,
MAT_CEVDP,
MAT_CEUS,
/* add for BT SAP */
MAT_BTSCNCT,
MAT_BTSDISSCNCT,
MAT_BTSTAPDU,
MAT_BTSTATR,
MAT_BTSCTRL,
MAT_BTSCRSTAT,
MAT_BTSTP,
MAT_starWBAMR,
MAT_CNMPSD,
MAT_starREGMODE,
MAT_starIMLCONFIG,
MAT_CCLK,
MAT_starURSLCT,
MAT_starCBRAT,
MAT_starSECCAP,
MAT_starLTEBAND,
MAT_starPSTHRESHOLD,
MAT_CACL,
MAT_LPECID,
MAT_LPOTDOAABORT,
MAT_LPOTDOAREQ,
MAT_L1DEBUG,
MAT_CSC,
MAT_OPERCFG,
MAT_starPSDC,
MAT_CEN,
MAT_CNEM,
MAT_CMMIVT,
MAT_CPSMS,
MAT_CEDRXS,
MAT_CEDRXRDP,
MAT_CCIOTOPT,
MAT_CRCES,
MAT_CSCON,
MAT_CIPCA,
MAT_CABTSR,
MAT_CABTRDP,
MAT_CGAPNRC,
MAT_MPBK,
MAT_CSODCP,
MAT_CRTDCP,
#ifdef LWIP_IPNETBUF_SUPPORT
MAT_LOG,
MAT_starDIALMODE,
MAT_starAPNMODE,
MAT_starAGDCONT,
MAT_starAGACT,
MAT_starLWIPCTRL,
MAT_starNTP,
MAT_starCGDCONT,
MAT_starMTU,
MAT_plusSWITCHSIM,
MAT_plusDUALSIM,
MAT_plusBINDSIM,
#endif
MAT_plusCWRITESIM,
//#ifdef BT_TEST_SUPPORT 20201214@xiaokeweng force enable as BT/WIFI could be enable/disable in SDK build
MAT_BTTEST,
//#endif
MAT_GPSINIT,
MAT_GPSSLEEP,
MAT_GPSPF,
MAT_AGNSSGET,
MAT_AGNSSSET,
MAT_GPSST,
MAT_GPSSET,
MAT_startECCLIST,
MAT_TRUSTNUM,
MAT_CHKTRUSTNUM,
MAT_starISIMAID,
MAT_CSSAC,
MAT_MEDCR,
#ifdef CRANE_MCU_DONGLE
MAT_STARREADVER,
MAT_RESET,
MAT_RSTSET,
#ifndef NO_EXTEND_MY_Q_AT
MAT_DNS,
MAT_dollarMYPOWEROFF,
MAT_dollarMYSOCKETLED,
MAT_dollarMYGMR,
MAT_dollarMYCCID,
MAT_dollarMYNETURC,
MAT_dollarMYTYPE,
MAT_dollarMYNETCON,
MAT_dollarMYNETACT,
MAT_dollarMYIPFILTER,
MAT_dollarMYNETSRV,
MAT_dollarMYNETOPEN,
MAT_dollarMYNETREAD,
MAT_dollarMYNETWRITE,
MAT_dollarMYNETCLOSE,
MAT_dollarMYNETACK,
MAT_dollarMYNETACCEPT,
MAT_dollarMYNETCREATE,
MAT_dollarMYFTPOPEN,
MAT_dollarMYFTPCLOSE,
MAT_dollarMYFTPSIZE,
MAT_dollarMYFTPGET,
MAT_dollarMYFTPPUT,
MAT_dollarMYBCCH,
MAT_dollarMYBAND,
MAT_dollarMYTIMEUPDATE,
MAT_dollarMYLACID,
MAT_dollarMYGPSPOS,
MAT_dollarMYGETKEY,
MAT_dollarMYSETINFO,
MAT_dollarMYSYSINFO,
MAT_dollarMYSYSINFOURC,
MAT_dollarMYDOWNLOAD,
MAT_QICSGP,
MAT_QIACT,
MAT_QIDEACT,
MAT_QIOPEN,
MAT_QICLOSE,
MAT_QISTATE,
MAT_QISEND,
MAT_QIRD,
MAT_QISENDEX,
MAT_QISWTMD,
MAT_QIGETERROR,
MAT_QISDE,
MAT_QICFG,
MAT_QFTPCFG,
MAT_QFTPOPEN,
MAT_QFTPCLOSE,
MAT_QFTPCWD,
MAT_QFTPPWD,
MAT_QFTPPUT,
MAT_QFTPGET,
MAT_QFTPSIZE,
MAT_QFTPDEL,
MAT_QFTPMKDIR,
MAT_QFTPRMDIR,
MAT_QFTPMDTM,
MAT_QFTPRENAME,
MAT_QFTPLIST,
MAT_QFTPNLST,
MAT_QFTPMLSD,
MAT_QFTPLEN,
MAT_QFTPSTAT,
MAT_TCPKEEPALIVE,
#ifdef ATNET_SSL
MAT_QSSLCFG,
MAT_QSSLOPEN,
MAT_QSSLSEND,
MAT_QSSLRECV,
MAT_QSSLCLOSE,
MAT_QSSLSTATE,
#endif
#endif
#endif
#ifdef NEUL_COMMAND
MAT_NSOCR,
MAT_NSOST,
MAT_NSORF,
MAT_NSOCL,
MAT_NCDP,
MAT_NMGS,
MAT_NMGR,
MAT_NNMI,
MAT_NSMI,
MAT_NQMGR,
MAT_NQMGS,
MAT_NRB,
MAT_NUESTATS,
MAT_NEARFCN,
MAT_NPING,
MAT_NBAND,
MAT_NLOGLEVEL,
MAT_NCONFIG,
MAT_NTSETID,
#endif
MAT_xorHVER,
MAT_CDU,
MAT_starPROD,
MAT_NVMFLUSH,
MAT_starSLT,
MAT_starPMICREG,
MAT_starREGRW,
MAT_ZDON,
MAT_starASRCOPS,
MAT_starICCID,
MAT_CEN1,
MAT_CEN2,
MAT_starSULOGCFG,
#ifdef ENABLE_WIFI_SCAN
MAT_starWIFICTRL,
#endif
MAT_starSIMPOLL,
MAT_cellinfo,
MAT_starEPIN,
MAT_starVER,
//#ifdef WIFI_FUNCTION_SUPPOR 20201214@xiaokeweng force enable as BT/WIFI could be enable/disable in SDK build
MAT_WIFI_CMD,
//#endif
MAT_Audio_CMD,
MAT_starMRDBACKUP,
MAT_starMRDWIFIMAC,
MAT_starMRDBTID,
MAT_starAUDNVM,
MAT_starSPN,
MAT_CMRSS,
MAT_CMGSS,
MAT_CMSMS,
MAT_CMGMS,
MAT_PACSP,
MAT_ENVCFG,
MAT_CUAD,
#if (!defined(LTEONLY_THIN) && !defined(LTEGSM_THIN))
#ifndef NO_AUDIO
MAT_CECALL,
MAT_ECALLDATA,
MAT_ECALLVOICE,
MAT_ECALLCFG,
MAT_ECALLONLY,
MAT_ECALLREG,
MAT_ECALLONLYSIM,
MAT_ECALLSYNC,
MAT_ECALLSENDMSD,
#endif
#endif
MAT_STARGETIP,
MAT_COMFEATURE,
MAT_RPM,
MAT_CFGRPMSWITCH,
MAT_CFGRPMPARA,
MAT_CFGRPMCOUNTER,
MAT_CFGRPMCLR,
MAT_RESENDPARA,
MAT_COMMTR,
MAT_FDNCHECK,
MAT_CR,
MAT_UNKNOWN,
MAT_CMD_UNKNOWN = MAT_UNKNOWN,
/* response type for MAT */
MAT_RSP_UNKNOWN = 1000,
MAT_RSP_OK,
MAT_RSP_ERROR,
MAT_RSP_CME_ERROR,
MAT_RSP_CMS_ERROR,
MAT_RSP_BUSY,
/* indication type for MAT */
MAT_IND_CONNECT,
MAT_IND_NO_CARRIER,
MAT_IND_RING,
MAT_IND_NO_ANSWER,
MAT_IND_NO_DIALTONE,
/* CC Indication */
MAT_IND_CRING,
MAT_IND_CCCM,
MAT_IND_CSSU,
MAT_IND_CSSI,
MAT_IND_CR,
MAT_IND_CEI,
/* DEV Indication */
MAT_IND_SYSCONFIG,
MAT_IND_EEMGINFOBASIC,
MAT_IND_EEMGINFOSVC,
MAT_IND_EEMGINFOPS,
MAT_IND_EEMGINFONC,
MAT_IND_EEMGINBFTM,
MAT_IND_EEMUMTSSVC,
MAT_IND_EEMUMTSINTRA,
MAT_IND_EEMUMTSINTER,
MAT_IND_EEMUMTSINTERRAT,
MAT_IND_EEMLTESVC,
MAT_IND_EEMLTEINTRA,
MAT_IND_EEMLTEINTER,
MAT_IND_EEMLTEINTERRAT,
MAT_IND_SNETIND,
MAT_IND_LPNWDL,
MAT_IND_LPSTATE,
MAT_IND_LPMEAST,
MAT_IND_LPRESET,
MAT_IND_DIP,
MAT_IND_LPOTDOAMEAS,
/* MM Indication */
MAT_IND_CACAP,
MAT_IND_MODE,
MAT_IND_COPN,
MAT_IND_NITZ,
MAT_IND_MSRI,
MAT_IND_HOME_ZONE,
/* MSG Indication */
MAT_IND_MMSG,
MAT_IND_CMTI,
MAT_IND_CBM,
MAT_IND_CDS,
MAT_IND_CMT,
/* PB Indication */
MAT_IND_SCPBR,
MAT_IND_MPBK,
/* PS Indication */
MAT_IND_CGEQNEG,
MAT_IND_CGEV,
/* SIM Indication */
MAT_IND_COTA,
MAT_IND_REFRESH,
MAT_IND_SIM_RESET,
MAT_IND_CARDMODE,
MAT_IND_SPN,
/* SS Indication */
MAT_IND_LPLOC,
MAT_IND_SSRC,
/* DAT Indication */
MAT_IND_PSSDC,
/* the change of sim/usim availability status report */
MAT_IND_BTSSTAT,
MAT_IND_DSAC,
MAT_IND_ADMINDATA,
MAT_IND_CIMI,
MAT_IND_PSLOAD,
MAT_IND_RBLOOP,
MAT_IND_CELL,
MAT_IND_CIREPI,
MAT_IND_CIREPH,
MAT_IND_DATASTATUS,
MAT_IND_CEDRXP,
MAT_IND_CCIOTOPTI,
MAT_IND_CABTSRI,
MAT_IND_CIREGU,
MAT_IND_AMRCODEC,
MAT_IND_CNEC_ESM,
MAT_IND_ATREADY,
MAT_IND_PLMNLIST,
MAT_IND_WIFICELLINFO,
//移远自定义的AT命令
#ifdef QUECTEL_PROJECT_CUST
MAT_Q_I,
MAT_QHEAPS,
MAT_QDOWNLOAD,
MAT_Q_QDUMPCFG,
MAT_Q_CVERSION,
MAT_Q_CSUB,
MAT_Q_QCFG,
MAT_Q_QPOWD,
//APP应用协议相关AT
MAT_Q_QICSGP,
MAT_Q_QIACT,
MAT_Q_QIDEACT,
MAT_Q_QGDCNT,
MAT_Q_QPING,
//NETWORK modem相关AT
#ifdef QUECTEL_CELL
MAT_Q_CELL,
MAT_Q_QENG,
#endif
#ifdef QUEC_AT_EGMR_SUPPORT
MAT_Q_EGMR,
#endif
#ifdef QUEC_AT_QGMR_SUPPORT
MAT_Q_QGMR,
#endif
#ifdef QUEC_WSETMAC_SUPPORT
MAT_Q_QWSETMAC,
#endif
#ifdef QUEC_ADC_SUPPORT
MAT_Q_QADC,
#endif
#ifdef QUEC_SLEEP_ENABLE
MAT_Q_QSCLK,
#endif
#ifdef QUEC_NETWORK_CARD_ENABLE
MAT_Q_QNETDEVCTL,
#endif
#ifdef QUECTEL_AT_RFTEST_SUPPORT
MAT_Q_QRFTESTMODE,
MAT_Q_QRFTEST,
MAT_Q_QRXFTM,
#endif
#ifdef QUEC_USB_QWIFISCAN_SUPPORT
MAT_Q_CWLAP,
#endif
#ifdef QUEC_BLACK_CELL_SUPPORT
MAT_Q_BLACKCELL,
MAT_Q_BLACKCELLCFG,
MAT_Q_BLACKCELLEX,
MAT_Q_BLACKCELLCFGEX,
MAT_Q_BLACKCELLWEIGHT,
MAT_Q_BLACKLWIPCFG,
MAT_Q_BLACKEXTAND,
#endif
#if defined(QUEC_CAMMERA_DECODE_AUTHORIZATION)||defined(QUEC_AUDIO_DENOISE)
MAT_Q_QLICENSE,
MAT_Q_QLICENSEINFO,
#endif
#ifdef QUEC_ADD_FALSH_TEST_SUPPORT
MAT_Q_FLASH_TEST,
#endif
MAT_Q_QFLASH,
#ifdef QUEC_AT_QDEBUGCFG_SUPPORT
MAT_Q_QDBGCFG,
#endif
#ifdef QUEC_ASR_ATCMD_PAGING_UPDATE_SUPPORT
MAT_Q_QPAGUPDATE,
#endif
#endif
#ifdef SINGLE_SIM
MAT_plusSINGLESIM,
MAT_SIMSLOT,
#endif
#ifdef QUEC_AT_ICCID_SUPPORT
MAT_Q_QCCID,
#endif
#if defined(QUEC_DUAL_SINGLE_PS_SUPPORT)
MAT_Q_QDSIM,
#endif
#ifdef QUEC_BT_PRODUCIBILITY
MAT_Q_EBTADDR,
#endif
#ifdef QUECTEL_NETWORK_SUPPORT
MAT_Q_QNWINFO,
#endif
NUM_OF_MAT_CMD
} MATCmdType, MATRspType;
/*---- parameter service ID ----
*/
//ICAT EXPORTED ENUM
typedef enum
{
MAT_SVC_0,
MAT_SVC_1,
MAT_SVC_2,
MAT_SVC_3,
MAT_SVC_4,
MAT_SVC_5,
MAT_SVC_6,
MAT_SVC_7,
MAT_SVC_8,
MAT_SVC_9,
MAT_SVC_10,
MAT_SVC_11,
MAT_SVC_12,
MAT_SVC_13,
MAT_SVC_14,
MAT_SVC_15,
MAT_SVC_16,
MAT_SVC_17,
MAT_SVC_18,
MAT_SVC_19,
MAT_SVC_20,
MAT_SVC_21,
MAT_SVC_22,
MAT_SVC_23,
MAT_SVC_24,
MAT_SVC_25,
MAT_SVC_26,
MAT_SVC_27,
MAT_SVC_28,
MAT_SVC_29,
MAT_SVC_30,
MAT_SVC_31,
MAT_SVC_32,
MAT_SVC_33,
MAT_SVC_34,
MAT_SVC_35,
MAT_SVC_36,
MAT_SVC_37,
MAT_SVC_38,
MAT_SVC_39,
MAT_SVC_40,
MAT_SVC_41,
MAT_SVC_42,
MAT_SVC_43,
MAT_SVC_44,
MAT_SVC_45,
MAT_SVC_46,
MAT_SVC_47,
MAT_SVC_48,
MAT_SVC_49,
MAT_SVC_50,
MAT_SVC_51,
MAT_SVC_52,
MAT_SVC_53,
MAT_SVC_54,
MAT_SVC_55,
MAT_SVC_56,
MAT_SVC_57,
MAT_SVC_58,
MAT_SVC_59,
MAT_SVC_60,
MAT_SVC_61,
MAT_SVC_62,
MAT_SVC_63,
NUM_OF_MAT_SVC
}MATSvcId;
//ICAT EXPORTED ENUM
typedef enum
{
MAT_SIM_0,
MAT_SIM_1,
NUM_OF_MAT_SIM
}MATSimId;
/*---- data type of MAT parameters ----
*/
//ICAT EXPORTED ENUM
typedef enum {
MAT_DATA_TYPE_DECIMAL,
MAT_DATA_TYPE_STRING,
MAT_DATA_TYPE_SET,
MAT_DATA_TYPE_RANGE,
} MATDataType;
//ICAT EXPORTED STRUCT
struct MATParameterRange
{
int min;
int max;
};
/*---- data type of MAT parameters ----
*/
//ICAT EXPORTED STRUCT
struct MATParameterItem_T;
//ICAT EXPORTED STRUCT
typedef union MATDataValue_U {
unsigned int decimal;
char *string_p;
struct MATParameterItem_T *set_p;
struct MATParameterRange range;
} MATDataValue;
/* parameters definition
type -- data type for value
is_default -- if the AT parameter is omitted, we should pass a defaut value
value -- value for each parameter
*/
//ICAT EXPORTED STRUCT
typedef struct MATParameter_T
{
MATDataType type;
BOOL is_default;
MATDataValue value;
}MATParameter;
/*
* macro helper for setting parameter
*/
#define MAT_INT_VALUE(param, v) \
do \
{ \
(param).type = MAT_DATA_TYPE_DECIMAL; \
(param).is_default = FALSE; \
(param).value.decimal = (v); \
} while (0)
#define MAT_STR_VALUE(param, v) \
do \
{ \
(param).type = MAT_DATA_TYPE_STRING; \
(param).is_default = FALSE; \
(param).value.string_p = (v); \
} while (0)
#define MAT_RANGE_VALUE(param, min, max) \
do \
{ \
(param).type = MAT_DATA_TYPE_RANGE; \
(param).is_default = FALSE; \
(param).value.range.min = (min); \
(param).value.range.max = (max); \
} while (0)
#define MAT_DEFAULT_VALUE(param) \
do \
{ \
(param).type = MAT_DATA_TYPE_DECIMAL; \
(param).is_default = TRUE; \
(param).value.decimal = 0; \
} while (0)
#define MAT_SET_VALUE(param, v) \
do \
{ \
(param).type = MAT_DATA_TYPE_SET; \
(param).is_default = FALSE; \
(param).value.set_p = (v); \
} while (0)
//ICAT EXPORTED ENUM
typedef enum
{
MAT_RC_NULL,
MAT_RC_OK, // OK will be sent
MAT_RC_ERROR, // ERROR will be sent
MAT_RC_CME_ERROR, // CME ERROR will be sent
MAT_RC_CMS_ERROR, // CMS ERROR will be sent
MAT_RC_RESERVED
}MATResultCode;
//ICAT EXPORTED STRUCT
typedef struct MATParameterItem_T
{
UINT16 max_para_number;
UINT16 num_Retparameters;
MATParameter* RetPara;
}MATParameterItem, MATParameterSet;
//ICAT EXPORTED ENUM
typedef enum
{
MAT_RET_CONFIRM,
MAT_RET_INDICATION
}MATRetType;
//ICAT EXPORTED ENUM
typedef enum
{
MAT_PAR_RESULT_CODE_OK,
MAT_PAR_RESULT_CODE_ERROR
}MATParseResultCode;
//ICAT EXPORTED ENUM
typedef enum
{
MAT_RET_SUCCESS,
MAT_RET_TOO_MANY_PARAMETERS,
MAT_RET_CURRENT_CH_HAS_CMD_PROCESSING,
MAT_RET_PARA_TYPE_UNSUPPORT,
MAT_RET_NULL_CLINET_TAG_POINTER,
MAT_RET_NUM_PARA_ERROR,
MAT_RET_PARA_TYPE_ERROR,
MAT_RET_HANDLER_FAILURE,
MAT_RET_FIND_FREE_CHANNEL_ERROR
}MATRecvRetType;
/* MMI<--MAT return parameters definition
cmd_type -- the command or indication type.
resultCode -- general result code: OK, ERROR, CME/CMS ERROR
numItems -- the number of items in the returned parameters
RetParaItems -- the detail value of each returned parameters
*/
//ICAT EXPORTED STRUCT
typedef struct MATReturnPara_T
{
MATResultCode resultCode;
UINT16 numItems;
MATParameterItem* RetParaItems;
MATRspType cmd_type;
} MATReturnPara;
typedef struct _ShmApiMsg
{
int svcId;
int procId;
int msglen;
}ShmApiMsg;
#define SHM_HEADER_SIZE sizeof(ShmApiMsg)
/*
* This function gets a byte steam from a string.
*
* @str the hex string, for example 010203ffeeef
* @length the length of output byte stream
*
* @return the byte stream.
* @note the byte stream must be free when not used.
*/
UINT8* MATGetDataFromStr(const char* str, int *length);
UINT8* MATGetStrFromData(const char* Bytestreamdata, int data_length);
#endif /* _MAT_H_ */