/*---------------------------------------------------------------------- (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_ */