123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555 |
- /* Copyright (C) 2016 RDA Technologies Limited and/or its affiliates("RDA").
- * All rights reserved.
- *
- * This software is supplied "AS IS" without any warranties.
- * RDA assumes no responsibility or liability for the use of the software,
- * conveys no license or title under any patent, copyright, or mask work
- * right to the product. RDA reserves the right to make changes in the
- * software without notification. RDA also make no representation or
- * warranty that such application will be suitable for the specified use
- * without further testing or modification.
- */
- #ifndef _AT_CFG_H_
- #define _AT_CFG_H_
- #include <stdint.h>
- #include <stdbool.h>
- #include "cfw_config.h"
- #include "atr_config.h"
- #include "ats_config.h"
- #include "osi_compiler.h"
- #include "time.h"
- #define AT_ALARM OSI_MAKE_TAG('A', 'T', 'A', 'L')
- // ///////////////////////////////////////////////////////////////////////
- // Gather definition from other ats module
- // ///////////////////////////////////////////////////////////////////////
- #define AT_GPRS_APN_MAX_LEN 99
- #define AT_GPRS_PDPADDR_MAX_LEN 21
- #define AT_GPRS_PDPTYPE_MAX_LEN 50
- #define AT_GPRS_USR_MAX_LEN 64
- #define AT_GPRS_PAS_MAX_LEN 64
- #define AT_PDPCID_MIN 1
- #define AT_PDPCID_MAX 7
- typedef enum
- {
- cs_gsm,
- cs_hex,
- cs_ucs2,
- cs_gbk, // equals to PCCP 936 char set
- cs_ira,
- cs_utf8,
- cs_COUNT_,
- cs_INVALID_ = 0x8F,
- } at_chset_t;
- typedef enum
- {
- AT_IND_BATTCHG, // [0,5]
- AT_IND_SIGNAL, // [0,5]
- AT_IND_SERVICE, // [0,1]
- AT_IND_SOUNDER, // [0,1]
- AT_IND_MESSAGE, // [0,1]
- AT_IND_CALL, // [0,1]
- AT_IND_ROAM, // [0,1]
- AT_IND_SMSFULL, // [0,1]
- AT_IND_COUNT
- } atIndicator_t;
- typedef struct _AT_Gprs_CidInfo
- {
- uint8_t uCid;
- uint8_t nDLCI;
- uint8_t uStateStr[15];
- uint8_t uState;
- // uint8_t uAutoRspState;
- uint8_t nPdpType;
- uint8_t nDComp;
- uint8_t nHComp;
- uint8_t pApn[AT_GPRS_APN_MAX_LEN];
- uint8_t pPdpAddr[AT_GPRS_PDPADDR_MAX_LEN];
- uint8_t nApnSize;
- uint8_t nAuthProt;
- uint8_t nPdpAddrSize;
- uint8_t uaUsername[AT_GPRS_USR_MAX_LEN];
- uint8_t nUsernameSize;
- uint8_t uaPassword[AT_GPRS_PAS_MAX_LEN];
- uint8_t nPasswordSize;
- uint8_t szOperatorName[6 + 1];
- #if defined(LTE_NBIOT_SUPPORT) || defined(TEST_INTEGRATE_AP_AT)
- uint8_t uPCid; /* */
- uint8_t apnacAer;
- uint8_t apnacUnit;
- uint32_t apnacRate;
- #endif
- } AT_Gprs_CidInfo;
- typedef enum
- {
- GC_RESULTCODE_PRESENTATION_ENABLE = 0,
- GC_RESULTCODE_PRESENTATION_DISABLE
- } GC_RESULTCODE_PRESENTATION;
- typedef enum
- {
- GC_RESULTCODE_FORMAT_LIMITED = 0,
- GC_RESULTCODE_FORMAT_VERBOSE
- } GC_RESULTCODE_FORMAT;
- typedef enum
- {
- GC_COMMANDECHO_MODE_DISABLE = 0,
- GC_COMMANDECHO_MODE_ENABLE
- } GC_COMMANDECHO_MODE;
- typedef struct
- {
- uint16_t ind_ctrl_mask; // indicator control mask
- uint16_t sind_ctrl_mask; // system indicator control mask, for ^SIND command
- at_chset_t te_chset;
- at_chset_t mt_chset;
- } cfg_info_t;
- typedef enum
- {
- PBK_CHARACTER_SET_TRANSPARENT = 0,
- PBK_CHARACTER_SET_HEX
- } PBK_CHARACTER_SET;
- typedef enum
- {
- PBK_LISTENTRY_CALLER_CPBR = 0,
- PBK_LISTENTRY_CALLER_CPBF,
- PBK_LISTENTRY_CALLER_CNUM
- } PBK_LISTENTRY_CALLER;
- typedef struct
- {
- uint8_t nMode;
- uint8_t nMt;
- uint8_t nBm;
- uint8_t nDs;
- uint8_t nBfr;
- } AT_CNMI;
- typedef struct calibNstParaConfig
- {
- uint16_t nMode; //0:TXOFF,1:TXON,2:RXOFF,3:RXON
- uint16_t nBand;
- uint32_t nChannel;
- uint16_t nMcsCellID; //TX:MCS, RX:CELLID
- int16_t nPower; //TX:txpower, RX:CELLPower
- uint16_t nSubcarrierSpacing;
- uint16_t nSubcarrierNumber; //0:Tx/1:Rx
- uint16_t nSubcarrierPosition; //0:on/1:off
- } AT_CALIB_NST;
- extern uint32_t sys_nst_config(AT_CALIB_NST *nst_para);
- extern int32_t sys_nst_getrssi(void);
- extern uint16_t nCalib_StubGetCalibFlag(void);
- enum AT_DTR_DATA_BEHAVIOR
- {
- AT_DTR_DATA_IGNORE,
- AT_DTR_DATA_ESCAPE,
- AT_DTR_DATA_END
- };
- typedef struct
- {
- AT_CNMI sCnmi;
- uint8_t nStorage1;
- uint8_t nStorage2;
- uint8_t nStorage3;
- uint8_t nTotal1;
- uint8_t nTotal2;
- uint8_t nTotal3;
- uint8_t nUsed1;
- uint8_t nUsed2;
- uint8_t nUsed3;
- uint8_t nServType;
- uint8_t nOverflowCtrl;
- uint8_t nOverflowMode;
- } at_sms_info_t;
- #define NW_PREFERRED_OPERATOR_FORMAT_NUMERIC 2
- #define NW_GETPREFERREDOPERATORS_CALLER_READ 0
- #define GSM_SET 0
- #define UCS2_SET 1
- #define INSTANCE 0
- #define NONE_INSTANCE 1
- #define AT_AUDIO_TEST_HANDSET 0
- // 耳机
- #define AT_AUDIO_TEST_EARPIECE 1
- // 听筒
- #define AT_AUDIO_TEST_LOUDSPEAKER 2
- // 免提
- // ///////////////////////////////////////////////////////////////////////////
- // New at global variables
- // ///////////////////////////////////////////////////////////////////////////
- // sms related settings
- typedef struct at_sms_setting
- {
- uint8_t csmpFo;
- uint8_t csdhShow; // show header
- at_sms_info_t smsInfo[CONFIG_NUMBER_OF_SIM]; // CPMS命令相关的存储器信息
- uint8_t smsFormat; // SMS Foramt: 0: PDU 1:text
- } at_sms_setting_t;
- typedef enum
- {
- OPERATOR_CMCC = 0,
- OPERATOR_UNICOM,
- OPERATOR_CTCC
- } OPERATOR_NAME;
- typedef struct at_tcpip_setting
- {
- uint8_t cipSCONT_unSaved; //AT+CIPSCONT Save TCPIP Application Context
- uint8_t cipMux_multiIp; //AT+CIPMUX Start Up Multi-IP Connection
- uint8_t cipHEAD_addIpHead; //AT+CIPHEAD Add an IP Head at the Beginning of a Package Received
- uint8_t cipSHOWTP_dispTP; //AT+CIPSHOWTP Display Transfer Protocol in IP Head When Received Data
- uint8_t cipSRIP_showIPPort; //AT+CIPSRIP Show Remote IP Address and Port When Received Data
- uint8_t cipATS_setTimer; //AT+CIPATS Set Auto Sending Timer
- uint8_t cipATS_time;
- uint8_t cipSPRT_sendPrompt; //AT+CIPSPRT Set Prompt of > When Module Sends Data
- uint8_t cipQSEND_quickSend; //AT+CIPQSEND Select Data Transmitting Mode
- uint8_t cipMODE_transParent; //AT+CIPMODE Select TCPIP Application Mode
- uint8_t cipCCFG_NmRetry; //AT+CIPCCFG Configure Transparent Transfer Mode
- uint8_t cipCCFG_WaitTm;
- uint16_t cipCCFG_SendSz;
- uint8_t cipCCFG_esc;
- uint8_t cipCCFG_Rxmode;
- uint16_t cipCCFG_RxSize;
- uint16_t cipCCFG_Rxtimer;
- uint8_t cipDPDP_detectPDP; //AT+CIPDPDP Set Whether to Check State of GPRS Network Timing
- uint8_t cipDPDP_interval;
- uint8_t cipDPDP_timer;
- uint8_t cipCSGP_setGprs; //AT+CIPCSGP Set CSD or GPRS for Connection Mode
- uint16_t cipRDTIMER_rdsigtimer; //AT+CIPRDTIMER Set Remote Delay Timer
- uint16_t cipRDTIMER_rdmuxtimer;
- uint8_t cipRXGET_manualy; //AT+CIPRXGET Get Data from Network Manually
- #if defined(CONFIG_SOC_8811)
- uint8_t cipApn[98];
- #else
- uint8_t cipApn[99];
- #endif
- uint8_t cipUserName[64];
- uint8_t cipPassWord[64];
- uint8_t qishowla_showlocaddr;
- uint8_t qidnsip_dnsip;
- } at_tcpip_setting_t;
- // ///////////////////////////////////////////////////////////////////////////
- // Macro definition of configuration setttings
- // ///////////////////////////////////////////////////////////////////////////
- // Flag of switching AT current settings
- #define MANUFACTURER_DEFALUT_SETING 0
- #define USER_SETTING_1 1
- // /////////////////////////////////////////////////////////////////////////////////////////
- // Macro to facilitate the use of Current AT settings
- // /////////////////////////////////////////////////////////////////////////////////////////
- // gc related
- #define gATCurrentCSCLK gAtCurrentSetting.csclk
- #define gATCurrenteResultcodePresentation gAtCurrentSetting.resultCodePresent
- #define gATCurrenteResultcodeFormat gAtCurrentSetting.resultCodeFormat
- #define gATCurrentnS3 gAtCurrentSetting.nS3
- #define gATCurrentnS4 gAtCurrentSetting.nS4
- #define gATCurrentnS5 gAtCurrentSetting.nS5
- #define gATCurrentCgreg gAtCurrentSetting.cgreg
- #ifdef LTE_NBIOT_SUPPORT
- #define gATCurrentCereg gAtCurrentSetting.cereg
- #endif
- #define gATCurrentCrc gAtCurrentSetting.crc
- #define gATCurrentRxfc gAtCurrentSetting.rxfc
- #define gATCurrentTxfc gAtCurrentSetting.txfc
- #define gATCurrentDtrData gAtCurrentSetting.dtrData
- #define gATCurrentIcfFormat gAtCurrentSetting.icfFormat
- #define gATCurrentIcfParity gAtCurrentSetting.icfParity
- #define gATCurrentSecUartEnable gAtCurrentSetting.secUartEnable
- #define gAtCurrentSecUartBaud gAtCurrentSetting.secUartBaud
- #define gAtCurrentSecUartIcfFormat gAtCurrentSetting.secUartIcfFormat
- #define gAtCurrentSecUartIcfParity gAtCurrentSetting.secUartIcfParity
- #define gATCurrentuCmer_ind gAtCurrentSetting.cmerInd
- // TODO..
- #define gATCurrentCfgInfoInd_ctrl_mask gAtCurrentSetting.cfgInfo.ind_ctrl_mask
- #define gATCurrentCfgInfoTe_chset gAtCurrentSetting.cfgInfo.te_chset
- #define gATCurrentCfgInfoMt_chset gAtCurrentSetting.cfgInfo.mt_chset
- // cc related
- #define gATCurrentcc_VTD gAtCurrentSetting.cc_VTD
- #define gATCurrentcc_s0 gAtCurrentSetting.cc_s0
- // nw related
- #define gATCurrentOperFormat gAtAutoSaveSetting.operFormat
- #define gATCurrentCOPS_Mode_Temp gAtAutoSaveSetting.copsModeTemp
- #define gATCurrentnPreferredOperFormat gAtAutoSaveSetting.preferredOperFormat
- #define gATCurrentpArrPreferredOperater gAtAutoSaveSetting.preferredOperator
- #define gATCurrentnPreferredOperatorIndex gAtAutoSaveSetting.preferredOperatorIndex
- #define gATCurrentnGetPreferredOperatorsCaller gAtAutoSaveSetting.preferredOperatorCaller
- #define gATCurrentForcedLpCtrlMode gAtAutoSaveSetting.forcedLpCtrlMode
- #ifdef LTE_NBIOT_SUPPORT
- #define gATCurrentCscon gAtCurrentSetting.cscon
- #define gATCurrentNwEdrxPtw gAtCurrentSetting.edrxPtw
- #define gATCurrentNwEdrxValue gAtCurrentSetting.edrxValue
- #endif
- // pbk related
- #define gATCurrentpbkListEntryCaller gAtCurrentSetting.pbkListEntryCaller
- #define gATCurrentpbkCharacterSet gAtCurrentSetting.pbkCharacterSet
- #define gATCurrentnTempStorage gAtCurrentSetting.tempStorage
- // sat related
- #define gATCurrentAlphabet gAtCurrentSetting.alphabet
- // sms related
- #define gATCurrentAtSmsSettingSCSMP_fo gAtCurrentSetting.smsSetting.csmpFo
- #define gATCurrentAtSmsSettingSCSDH_show gAtCurrentSetting.smsSetting.csdhShow
- #define gATCurrentAtSmsSettingSg_SMSFormat gAtCurrentSetting.smsSetting.smsFormat
- #define gATCurrentAtSMSInfo gAtCurrentSetting.smsSetting.smsInfo
- // ss related
- #define gATCurrentucSsCallWaitingPresentResultCode gAtCurrentSetting.callWaitingPresentResultCode
- #define gATCurrentss_ussd gAtCurrentSetting.ussd
- #define gATCurrentucClip gAtCurrentSetting.ucClip
- #define gATCurrentucClir gAtCurrentSetting.ucClir
- #define gATCurrentucColp gAtCurrentSetting.ucColp
- #define gATCurrentucCSSU gAtCurrentSetting.ucCSSU
- #define gATCurrentucCSSI gAtCurrentSetting.ucCSSI
- // special related
- #define gATCurrentu8nMONIPara gAtCurrentSetting.moniPara
- #define gATCurrentu8nMONPPara gAtCurrentSetting.monpPara
- #define gATCurrentnPMIndMark gAtCurrentSetting.pmIndMark
- #define gATCurrentVGR_Volume gAtCurrentSetting.vgrVolume
- #define gATCurrentVGT_Volume gAtCurrentSetting.vgtVolume
- #define gATCurrentCMUT_mute gAtCurrentSetting.cmutMute
- #define gATCurrentnAudioTestMode gAtCurrentSetting.audioTestMode
- // gprs related
- #define gATCurrentu8nURCAuto gAtSetting.gprsAuto
- // added by yangtt at 04-18
- #define gATCurrentu32nBaudRate gAtCurrentSetting.baudRate
- // added by wy at 2017-11-09
- #if defined(AT_MODULE_SUPPORT_OTA)
- #define gATOtaDataconnProfile gAtAutoSaveSetting.g_OTA_dataconnProfile
- #endif
- #define g_staAtGprsCidInfo_e gAtSetting.g_staAtGprsCidInfo
- #define gATCurrentRAIMode gAtCurrentSetting.RAI_mode
- typedef struct
- {
- bool atv;
- bool ate;
- bool atq;
- uint8_t atx; // not used now
- bool crc;
- uint8_t s3;
- uint8_t s4;
- uint8_t s5;
- uint8_t cmee;
- uint8_t andc;
- uint8_t andd;
- } atChannelSetting_t;
- typedef struct
- {
- uint8_t creg;
- uint8_t cgreg;
- uint8_t cereg;
- uint8_t cscon;
- uint8_t cgerep_mode;
- uint8_t cgerep_bfr;
- uint8_t clip;
- uint8_t clir; // NO_SAVE
- uint8_t colp; // NO_SAVE
- uint8_t cssu;
- uint8_t cssi;
- uint8_t ccwa;
- uint8_t cgauto;
- uint8_t cr;
- uint8_t s0;
- uint8_t ecsq;
- uint8_t csdh;
- uint8_t cmgf;
- uint8_t cpms_mem1;
- uint8_t cpms_mem2;
- uint8_t cpms_mem3;
- uint8_t cnmi_mode;
- uint8_t cnmi_mt;
- uint8_t cnmi_bm;
- uint8_t cnmi_ds;
- uint8_t cnmi_bfr;
- uint8_t cind_signal;
- uint8_t cind_service;
- uint8_t cind_sounder;
- uint8_t cind_message;
- uint8_t cind_call;
- uint8_t cind_roam;
- uint8_t cind_smsfull;
- uint8_t alphabet; // sta_cs;
- uint8_t cops_format; // AUTO_SAVE
- uint8_t cops_mode; // AUTO_SAVE
- uint8_t cops_oper[6]; // AUTO_SAVE
- uint8_t cpol_format; // AUTO_SAVE
- uint8_t cpol_index; // AUTO_SAVE
- uint8_t cpol_oper[6]; // AUTO_SAVE
- uint8_t cops_act; // AUTO_SAVE
- uint8_t volte;
- uint8_t flight_mode;
- uint32_t cfgNvFlag;
- } atSimSetting_t;
- typedef struct
- {
- bool userAgnss; // user set a-gnss enable
- bool bHslRetryProcess; //handshake lte in progress
- bool bGnssResume; // lte abort, user set enable gnss automatic recovery
- bool bGnssColdTimer; //cold start timerout 300s
- bool bGnssCfg; //gnss start in progress
- uint8_t userCidCfg; //user set use cid num
- uint8_t simid;
- uint8_t start_mode;
- uint8_t satellite_type;
- uint8_t nsapi;
- uint8_t wifiscan_switch;
- uint8_t coexist_lte_gnss;
- uint16_t gnss_sleep;
- uint16_t lte_sleep;
- uint16_t output_format;
- uint16_t r_mode;
- uint32_t time_interval;
- } atLocSetting_t;
- typedef struct
- {
- uint8_t bEnable;
- uint8_t reportPeriod;
- uint8_t detectPeriod;
- int16_t rssiThresholdLte;
- int16_t rsrpThreshold;
- int16_t rsrqThreshold;
- int16_t rssiThreshold;
- int16_t snrThreshold;
- uint16_t minCh;
- } atJammingDetectSetting_t;
- // &W_SAVE
- typedef struct
- {
- uint8_t profile;
- uint8_t ifc_rx;
- uint8_t ifc_tx;
- uint8_t icf_format;
- uint8_t icf_parity;
- uint32_t ipr;
- uint8_t cmer_mode;
- uint8_t cmer_ind;
- uint8_t csclk;
- uint8_t cscs;
- uint8_t vtd;
- uint8_t ctzu;
- uint8_t ctzr;
- uint8_t csdf_mode;
- uint8_t csdf_auxmode;
- uint8_t cind_battchg;
- int8_t timezone; // AUTO_SAVE
- uint8_t timezone_dst; // AUTO_SAVE
- uint8_t bcchmode; // AUTO_SAVE
- AT_Gprs_CidInfo g_staAtGprsCidInfo[CONFIG_NUMBER_OF_SIM][AT_PDPCID_MAX + 1]; // AUTO_SAVE
- uint8_t gprsAuto;
- uint8_t tempStorage;
- uint8_t drx_mode;
- uint8_t callmode;
- uint8_t smsmode;
- atChannelSetting_t chsetting;
- atSimSetting_t sim[CONFIG_NUMBER_OF_SIM];
- uint8_t self_register;
- uint8_t psm_mode;
- uint8_t mcuNotifySleepMode;
- uint32_t mcuNotifySleepDelayMs;
- uint8_t csta;
- uint8_t csvm;
- uint8_t detectMBS;
- uint8_t virtual_sim_card[CONFIG_NUMBER_OF_SIM];
- uint8_t cireg[CONFIG_NUMBER_OF_SIM];
- uint8_t CgClassType[CONFIG_NUMBER_OF_SIM];
- uint8_t poc_user_sim;
- uint8_t ipinfo; // AUTO_SAVE
- uint8_t concatMsg;
- uint32_t usr_ipr;
- atJammingDetectSetting_t jammingDetectSetting[CONFIG_NUMBER_OF_SIM];
- uint16_t pm2idletime;
- uint8_t nLockedFrequencyBand[CONFIG_NUMBER_OF_SIM];
- atLocSetting_t loc;
- uint8_t usr_icf_format;
- uint8_t usr_icf_parity;
- uint8_t stk_work_mode;
- uint8_t smc_count;
- uint8_t smr_count;
- uint32_t cus_urc_flag;
- uint8_t bUseISIM;
- uint8_t NWClockUpdate;
- uint8_t npsmr_setting;
- uint8_t csclk_bakup; //csclk bakup
- } atSetting_t;
- extern atSetting_t gAtSetting;
- #ifdef CONFIG_QUEC_PROJECT_FEATURE
- extern atSetting_t gAtSettingSave;
- #endif
- /**
- * global variable to be used in core engine
- *
- * These variables are used in core engine. To avoid multiple
- * version of core libraries, the variable rather than macros
- * are used in core library.
- */
- struct atCmdDesc;
- extern const bool gAtEchoCommandOnly;
- extern const bool gAtCmdTplusEnable;
- extern const bool gAtEchoWithoutCRLF;
- extern const struct atCmdDesc gAtTplusCmdDesc;
- extern const bool gAtUrcBuffEnable;
- extern const unsigned gAtUrcBuffSize;
- extern const unsigned gAtUrcBuffCount;
- extern const unsigned gAtCmdlineMax;
- extern const unsigned gAtLfWaitMs;
- extern const unsigned gAtCmuxOutBuffSize;
- extern const unsigned gAtCmuxInBuffSize;
- extern const unsigned gAtCmuxSubMinInBuffSize;
- extern const unsigned gAtCmuxDlcNum;
- extern const unsigned gAtDataBuffSize;
- extern const unsigned gAtPppEndCheckTimeout;
- extern const unsigned gAtCmdWorkerStackSize;
- void atCfgInit(void);
- bool at_CfgLoadTcpipSetting(at_tcpip_setting_t *setting);
- bool at_CfgStoreTcpipSetting(at_tcpip_setting_t *setting);
- bool atCfgSave(uint8_t profile, const atChannelSetting_t *chsetting);
- bool atCfgAutoSave(void);
- bool atCfgGlobalSave(void);
- bool atCfgResetFactory(atChannelSetting_t *chsetting);
- bool atCfgResetProfile(uint8_t profile, atChannelSetting_t *chsetting);
- #endif
|