更新硬件SDK

This commit is contained in:
kerwincui
2023-03-04 03:44:56 +08:00
parent dcdf6e1b7c
commit e39d3d2f03
1900 changed files with 663153 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_adc.h
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_ADC_H__
#define __ATEC_ADC_H__
#include "at_util.h"
#define EC_ADC_STR_LEN_MAX 32
#define EC_ADC_STR_BUF_SIZE (EC_ADC_STR_LEN_MAX + 1)
#define EC_ADC_STR_DEFAULT NULL
CmsRetId ecADC(const AtCmdInputContext *pAtCmdReq);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,64 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_ctwing.h
*
* Description: Process ctwing access test related AT commands
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_CTWING_H__
#define __ATEC_CTWING_H__
#include "at_util.h"
#define CTW_PARAM_0_SOFT_STR_LEN 32
#define CTW_PARAM_0_SOFT_STR_DEF NULL
#define CTW_PARAM_1_MODULE_STR_LEN 32
#define CTW_PARAM_1_MODULE_STR_DEF NULL
#define CTW_PARAM_2_CHIPTYPE_STR_LEN 32
#define CTW_PARAM_2_CHIPTYPE_STR_DEF NULL
#define CTW_PARAM_0_CLIENTID_STR_LEN 64
#define CTW_PARAM_0_CLIENTID_STR_DEF NULL
#define CTW_PARAM_1_USERNAME_STR_LEN 64
#define CTW_PARAM_1_USERNAME_STR_DEF NULL
#define CTW_PARAM_2_PWD_STR_LEN 72
#define CTW_PARAM_2_PWD_STR_DEF NULL
#define CTW_PARAM_0_TOPIC_STR_LEN 128
#define CTW_PARAM_0_TOPIC_STR_DEF NULL
#define CTW_PARAM_1_PAYLOAD_STR_LEN 1024
#define CTW_PARAM_1_PAYLOAD_STR_DEF NULL
CmsRetId ctwPARAM(const AtCmdInputContext *pAtCmdReq);
CmsRetId ctwHTTPCFG(const AtCmdInputContext *pAtCmdReq);
CmsRetId ctwHTTPREGPARAM(const AtCmdInputContext *pAtCmdReq);
CmsRetId ctwHTTPREG(const AtCmdInputContext *pAtCmdReq);
CmsRetId ctwHTTPDEREG(const AtCmdInputContext *pAtCmdReq);
CmsRetId ctwHTTPSEND(const AtCmdInputContext *pAtCmdReq);
CmsRetId ctwTCPCFG(const AtCmdInputContext *pAtCmdReq);
CmsRetId ctwTCPREGPARAM(const AtCmdInputContext *pAtCmdReq);
CmsRetId ctwTCPREG(const AtCmdInputContext *pAtCmdReq);
CmsRetId ctwTCPDEREG(const AtCmdInputContext *pAtCmdReq);
CmsRetId ctwTCPSEND(const AtCmdInputContext *pAtCmdReq);
CmsRetId ctwMQTTCFG(const AtCmdInputContext *pAtCmdReq);
CmsRetId ctwMQTTREGPARAM(const AtCmdInputContext *pAtCmdReq);
CmsRetId ctwMQTTREG(const AtCmdInputContext *pAtCmdReq);
CmsRetId ctwMQTTDEREG(const AtCmdInputContext *pAtCmdReq);
CmsRetId ctwMQTTSEND(const AtCmdInputContext *pAtCmdReq);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,43 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_cust_cmd_table.h
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_CUSTOMER_CMD_TABLE_H
#define _ATEC_CUSTOMER_CMD_TABLE_H
#include "at_util.h"
/******************************************************************************
*****************************************************************************
* MARCO
*****************************************************************************
******************************************************************************/
/******************************************************************************
*****************************************************************************
* ENUM
*****************************************************************************
******************************************************************************/
AtCmdPreDefInfoC* atcGetATCustCommandsSeqPointer(void);
uint32_t atcGetATCustCommandsSeqNumb(void);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,58 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename:
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_CUST_DEV_H_
#define _ATEC_CUST_DEV_H_
#include <stdint.h>
#include "at_def.h"
#include DEBUG_LOG_HEADER_FILE
#include "debug_trace.h"
#define CC_CGSN_VALUE_MIN 0
#define CC_CGSN_VALUE_MAX 3
#define CC_CGSN_VALUE_DEF 1
/* ATI */
#define CC_ATI_0_VAL_MIN 0
#define CC_ATI_0_VAL_MAX 255
#define CC_ATI_0_VAL_DEFAULT 0
/* AT&W/AT&W0 */
#define CC_AND_W_0_VAL_MIN 0
#define CC_AND_W_0_VAL_MAX 0
#define CC_AND_W_0_VAL_DEFAULT 0
/* AT&F/AT&F0 */
#define CC_AND_F_0_VAL_MIN 0
#define CC_AND_F_0_VAL_MAX 0
#define CC_AND_F_0_VAL_DEFAULT 0
CmsRetId ccCGMI(const AtCmdInputContext *pAtCmdReq);
CmsRetId ccCGMM(const AtCmdInputContext *pAtCmdReq);
CmsRetId ccGMM(const AtCmdInputContext *pAtCmdReq);
CmsRetId ccCGMR(const AtCmdInputContext *pAtCmdReq);
CmsRetId ccCGSN(const AtCmdInputContext *pAtCmdReq);
CmsRetId ccATI(const AtCmdInputContext *pAtCmdReq);
CmsRetId ccATANDW(const AtCmdInputContext *pAtCmdReq);
CmsRetId ccATANDF(const AtCmdInputContext *pAtCmdReq);
CmsRetId ccATANDV(const AtCmdInputContext *pAtCmdReq);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,62 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_dm.h
*
* Description: Device manager
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_DM_H__
#define __ATEC_DM_H__
#include "at_util.h"
#define AUTOREGCFG_STR_LEN 128
#define DMCONFIG_CET_RESP_STR_LEN 64
/* AT+AUTOREGCFG */
#define AUTOREGCFG_0_STR_LEN 32
#define AUTOREGCFG_0_STR_DEF NULL
#define AUTOREGCFG_1_STR_LEN 66
#define AUTOREGCFG_1_STR_DEF NULL
#define AUTOREGCFG_2_MIN 0
#define AUTOREGCFG_2_MAX 0x7fffffff
#define AUTOREGCFG_2_DEF 0
#define AUTOREGCFG_2_LIFETIME_MIN 1
#define AUTOREGCFG_2_LIFETIME_MAX 0xffff
#define AUTOREGCFG_2_LIFETIME_DEF 0
#define AUTOREGCFG_2_TEST_MIN 0
#define AUTOREGCFG_2_TEST_MAX 1
#define AUTOREGCFG_2_TEST_DEF 0
#define AUTOREGCFG_2_APPKEY_STR_LEN 11
#define AUTOREGCFG_2_APPKEY_STR_DEF NULL
#define AUTOREGCFG_2_SECRET_STR_LEN 33
#define AUTOREGCFG_2_SECRET_STR_DEF NULL
/* AT+DMCONFIG */
#define DMCONFIG_0_MIN 0
#define DMCONFIG_0_MAX 1
#define DMCONFIG_0_DEF 0
#define DMCONFIG_1_MIN 0
#define DMCONFIG_1_MAX 0xFFFF//large than 24x60 minutes
#define DMCONFIG_1_DEF 0
#define DMCONFIG_2_STR_LEN 12
#define DMCONFIG_2_STR_DEF NULL
#define DMCONFIG_3_STR_LEN 33
#define DMCONFIG_3_STR_DEF NULL
#define DMCONFIG_4_MIN 0
#define DMCONFIG_4_MAX 1
#define DMCONFIG_4_DEF 0
CmsRetId dmAUTOREGCFG(const AtCmdInputContext *pAtCmdReq);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,65 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_example.h
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_EXAMPLE_H__
#define __ATEC_EXAMPLE_H__
#include "at_util.h"
#define EC_TESTDEMO_VALUE_MIN 0
#define EC_TESTDEMO_VALUE_MAX 1
#define EC_TESTDEMO_VALUE_DEF 0
#define EC_TESTA_VALUE_MIN 0
#define EC_TESTA_VALUE_MAX 8
#define EC_TESTA_VALUE_DEF 0
#define EC_TESTA_STR_LEN_MAX 32
#define EC_TESTA_STR_BUF_SIZE (EC_TESTA_STR_LEN_MAX + 1)
#define EC_TESTA_STR_DEFAULT NULL
#define EC_TESTB_VALUE_MIN 0
#define EC_TESTB_VALUE_MAX 8
#define EC_TESTB_VALUE_DEF 0
#define EC_TESTB_STR_LEN_MAX 32
#define EC_TESTB_STR_BUF_SIZE (EC_TESTB_STR_LEN_MAX + 1)
#define EC_TESTB_STR_DEFAULT NULL
#define EC_TESTC_VALUE_MIN 0
#define EC_TESTC_VALUE_MAX 8
#define EC_TESTC_VALUE_DEF 0
#define EC_TESTC_STR_LEN_MAX 32
#define EC_TESTC_STR_BUF_SIZE (EC_TESTC_STR_LEN_MAX + 1)
#define EC_TESTC_STR_DEFAULT NULL
CmsRetId ecTESTDEMO(const AtCmdInputContext *pAtCmdReq);
CmsRetId ecTESTA(const AtCmdInputContext *pAtCmdReq);
CmsRetId ecTESTB(const AtCmdInputContext *pAtCmdReq);
CmsRetId ecTESTC(const AtCmdInputContext *pAtCmdReq);
CmsRetId ecTESTBcnf(UINT16 primId, UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId ecTESTCcnf(UINT16 primId, UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId ecTESTCind(UINT16 primId, UINT16 reqHandle, UINT16 rc, void *paras);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,152 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_adc.h
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_FILE_H__
#define __ATEC_FILE_H__
#include "at_util.h"
#define EC_FILE_NAME_OFFSET 12
#define EC_FILE_NAME_HEAD_OFFSET 5
#define EC_FILE_NAME_HEAD "EcFs_00_f_" /*00 is handle, f is flag*/
#define EC_FINFO_PRINT_BUF_LEN (128)
#define EC_FOPEN_0_NAME_STR_LEN 63
#define EC_FOPEN_0_NAME_STR_DEF NULL
#define EC_FOPEN_1_MODE_MIN 0
#define EC_FOPEN_1_MODE_MAX 2
#define EC_FOPEN_1_MODE_DEF 0
#define EC_FREAD_0_HANDLE_LEN_MIN 1
#define EC_FREAD_0_HANDLE_LEN_MAX 33
#define EC_FREAD_0_HANDLE_LEN_DEF 0
#define EC_FREAD_1_LEN_MIN 0
#define EC_FREAD_1_LEN_MAX 6000
#define EC_FREAD_1_LEN_DEF 0
#define EC_FWRITE_0_HANDLE_LEN_MIN 1
#define EC_FWRITE_0_HANDLE_LEN_MAX 33
#define EC_FWRITE_0_HANDLE_LEN_DEF 0
#define EC_FWRITE_1_LEN_MIN 0
#define EC_FWRITE_1_LEN_MAX (10*1024)
#define EC_FWRITE_1_LEN_DEF (1000)
#define EC_FWRITE_2_TIMEOUT_MIN 0
#define EC_FWRITE_2_TIMEOUT_MAX 100
#define EC_FWRITE_2_TIMEOUT_DEF 5
#define EC_FSEEK_0_HANDLE_LEN_MIN 1
#define EC_FSEEK_0_HANDLE_LEN_MAX 33
#define EC_FSEEK_0_HANDLE_LEN_DEF 0
#define EC_FSEEK_1_LEN_MIN 0
#define EC_FSEEK_1_LEN_MAX 0x7fffffff
#define EC_FSEEK_1_LEN_DEF 0
#define EC_FSEEK_2_POSITION_MIN 0
#define EC_FSEEK_2_POSITION_MAX 2
#define EC_FSEEK_2_POSITION_DEF 0
#define EC_FPOSITION_0_HANDLE_LEN_MIN 1
#define EC_FPOSITION_0_HANDLE_LEN_MAX 33
#define EC_FPOSITION_0_HANDLE_LEN_DEF 0
#define EC_FTUCAT_0_HANDLE_LEN_MIN 1
#define EC_FTUCAT_0_HANDLE_LEN_MAX 33
#define EC_FTUCAT_0_HANDLE_LEN_DEF 0
#define EC_FCLOSE_0_HANDLE_LEN_MIN 1
#define EC_FCLOSE_0_HANDLE_LEN_MAX 33
#define EC_FCLOSE_0_HANDLE_LEN_DEF 0
#define EC_FERASE_0_HANDLE_LEN_MIN 1
#define EC_FERASE_0_HANDLE_LEN_MAX 33
#define EC_FERASE_0_HANDLE_LEN_DEF 0
#define EC_FERASE_0_NAME_STR_LEN 81
#define EC_FERASE_0_NAME_STR_DEF NULL
#define EC_FDELETE_0_HANDLE_LEN_MIN 1
#define EC_FDELETE_0_HANDLE_LEN_MAX 33
#define EC_FDELETE_0_HANDLE_LEN_DEF 0
#define EC_FDELETE_0_NAME_STR_LEN 81
#define EC_FDELETE_0_NAME_STR_DEF NULL
#define EC_FRENAME_0_NAME_STR_LEN 81
#define EC_FRENAME_0_NAME_STR_DEF NULL
#define EC_FRENAME_1_NAME_STR_LEN 81
#define EC_FRENAME_1_NAME_STR_DEF NULL
#define EC_FDEL_0_NAME_STR_LEN 81
#define EC_FDEL_0_NAME_STR_DEF NULL
#define EC_FLDS_0_NAME_STR_LEN 81
#define EC_FDEL_0_NAME_STR_DEF NULL
#define EC_FLST_0_NAME_STR_LEN 81
#define EC_FLST_0_NAME_STR_DEF NULL
#define EC_FUPL_0_NAME_STR_LEN 81
#define EC_FUPL_0_NAME_STR_DEF NULL
#define EC_FUPL_1_SIZE_MIN 0
#define EC_FUPL_1_SIZE_MAX 0xffff
#define EC_FUPL_1_SIZE_DEF 0
#define EC_FUPL_2_TIMEOUT_MIN 0
#define EC_FUPL_2_TIMEOUT_MAX 2
#define EC_FUPL_2_TIMEOUT_DEF 0
#define EC_FUPL_3_ACK_MIN 0
#define EC_FUPL_3_ACK_MAX 0xffff
#define EC_FUPL_3_ACK_DEF 0
#define EC_FDWL_0_NAME_STR_LEN 81
#define EC_FDWL_0_NAME_STR_DEF NULL
typedef struct
{
uint32_t reqhandle;
uint32_t cmdType;
char *fileName;
char *filePattern;
char *fileHandle;
uint32_t mode;
uint32_t length;
uint32_t timeout;
uint32_t offset;
uint32_t position;
}fileWriteTempInfo;
CmsRetId fileOPEN(const AtCmdInputContext *pAtCmdReq);
CmsRetId fileREAD(const AtCmdInputContext *pAtCmdReq);
CmsRetId fileWRITE(const AtCmdInputContext *pAtCmdReq);
CmsRetId fileWriteInputData(UINT8 chanId, UINT8 *pData, INT16 dataLength);
CmsRetId fileWriteCancel(void);
CmsRetId fileSEEK(const AtCmdInputContext *pAtCmdReq);
CmsRetId filePOSITION(const AtCmdInputContext *pAtCmdReq);
CmsRetId fileTUCAT(const AtCmdInputContext *pAtCmdReq);
CmsRetId fileCLOSE(const AtCmdInputContext *pAtCmdReq);
CmsRetId fileRENAME(const AtCmdInputContext *pAtCmdReq);
CmsRetId fileERASE(const AtCmdInputContext *pAtCmdReq);
CmsRetId fileDELETE(const AtCmdInputContext *pAtCmdReq);
CmsRetId fileMOV(const AtCmdInputContext *pAtCmdReq);
CmsRetId fileMsLDS(const AtCmdInputContext *pAtCmdReq);
CmsRetId fileMsLST(const AtCmdInputContext *pAtCmdReq);
CmsRetId fileMsDEL(const AtCmdInputContext *pAtCmdReq);
CmsRetId fileMsUPL(const AtCmdInputContext *pAtCmdReq);
CmsRetId fileMsDWL(const AtCmdInputContext *pAtCmdReq);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,28 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_fwupd.h
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_FWUPD_H__
#define __ATEC_FWUPD_H__
#include "at_util.h"
CmsRetId ecNFWUPD(const AtCmdInputContext *pAtCmdReq);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,112 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_http.h
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_HTTP_H
#define _ATEC_HTTP_H
#include "at_util.h"
#define HTTP_MAX_RSP_LEN 256
/* AT+HTTPCFG */
#define HTTPCFG_CONTEXTID_MIN 1
#define HTTPCFG_CONTEXTID_MAX 15
#define HTTPCFG_CONTEXTID_DEF 1
#define HTTPCFG_REQUESTHEAD_MIN 0
#define HTTPCFG_REQUESTHEAD_MAX 1
#define HTTPCFG_REQUESTHEAD_DEF 0
#define HTTPCFG_RESPONSEHEAD_MIN 0
#define HTTPCFG_RESPONSEHEAD_MAX 1
#define HTTPCFG_RESPONSEHEAD_DEF 0
#define HTTPCFG_SSLCTXID_MIN 0
#define HTTPCFG_SSLCTXID_MAX 5
#define HTTPCFG_SSLCTXID_DEF 1
#define HTTPCFG_CONTENTTYPE_MIN 0
#define HTTPCFG_CONTENTTYPE_MAX 3
#define HTTPCFG_CONTENTTYPE_DEF 0
#define HTTPCFG_AUTOOUT_MIN 0
#define HTTPCFG_AUTOOUT_MAX 1
#define HTTPCFG_AUTOOUT_DEF 0
#define HTTPCFG_CLOSEIND_MIN 0
#define HTTPCFG_CLOSEIND_MAX 1
#define HTTPCFG_CLOSEIND_DEF 0
/* AT+HTTPURL */
#define HTTPURL_LEN_MIN 1
#define HTTPURL_LEN_MAX 2048
#define HTTPURL_TIMEOUT_MIN 1
#define HTTPURL_TIMEOUT_MAX 65535
#define HTTPURL_TIMEOUT_DEF 60
/* AT+HTTPGET */
#define HTTPGET_RSPTIME_MIN 1
#define HTTPGET_RSPTIME_MAX 65535
#define HTTPGET_RSPTIME_DEF 60
#define HTTPGET_DATALEN_MIN 1
#define HTTPGET_DATALEN_MAX 2048
#define HTTPGET_INPUT_MIN 1
#define HTTPGET_INPUT_MAX 65535
#define HTTPGET_INPUT_DEF 60
/* AT+HTTPGETEX */
#define HTTPGETEX_RSPTIME_MIN 1
#define HTTPGETEX_RSPTIME_MAX 65535
#define HTTPGETEX_RSPTIME_DEF 60
#define HTTPGETEX_STARTPOS_MIN 0
#define HTTPGETEX_STARTPOS_MAX 0x7FFFFFFF
#define HTTPGETEX_STARTPOS_DEF 0
#define HTTPGETEX_READLEN_MIN 1
#define HTTPGETEX_READLEN_MAX 0x7FFFFFFF
#define HTTPGETEX_READLEN_DEF -1
/* AT+HTTPPOST */
#define HTTPPOST_DATALEN_MIN 1
#define HTTPPOST_DATALEN_MAX 4096
#define HTTPPOST_INPUTTIME_MIN 1
#define HTTPPOST_INPUTTIME_MAX 65534
#define HTTPPOST_INPUTTIME_DEF 60
#define HTTPPOST_RSPTIME_MIN 1
#define HTTPPOST_RSPTIME_MAX 65535
#define HTTPPOST_RSPTIME_DEF 60
/* AT+HTTPREAD */
#define HTTPREAD_WAIT_MIN 1
#define HTTPREAD_WAIT_MAX 65535
#define HTTPREAD_WAIT_DEF 60
/* AT+HTTFOTADL */
#define HTTPFOTADL_URC_MIN 0
#define HTTPFOTADL_URC_MAX 100
#define HTTPFOTADL_URC_DEF 100
#define HTTPFILENAME_MAX_LEN 63
enum HTTP_CHANNEL_STATUS
{
HTTP_URL_INPUT,
HTTP_REQCONTENT_INPUT
};
void httpTimerExpired(void);
CmsRetId httpInputData(uint8_t chanId, uint8_t *pData, uint16_t dataLength);
CmsRetId httpCFG(const AtCmdInputContext *pAtCmdReq);
CmsRetId httpURL(const AtCmdInputContext *pAtCmdReq);
CmsRetId httpGET(const AtCmdInputContext *pAtCmdReq);
CmsRetId httpGETEX(const AtCmdInputContext *pAtCmdReq);
CmsRetId httpPOST(const AtCmdInputContext *pAtCmdReq);
CmsRetId httpPOSTFILE(const AtCmdInputContext *pAtCmdReq);
CmsRetId httpSTOP(const AtCmdInputContext *pAtCmdReq);
CmsRetId httpREAD(const AtCmdInputContext *pAtCmdReq);
CmsRetId httpFOTADL(const AtCmdInputContext *pAtCmdReq);
CmsRetId httpREADFILE(const AtCmdInputContext *pAtCmdReq);
#endif

View File

@@ -0,0 +1,253 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_mqtt.h
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_MQTT_H
#define _ATEC_MQTT_H
#include "at_util.h"
#define MQTT_ID_MIN 0
#define MQTT_ID_MAX 3
#define MQTT_ID_DEF 0xff
#define MQTT_TCP_ID_MIN 0
#define MQTT_TCP_ID_MAX 0
#define MQTT_TCP_ID_DEF 0
/* AT+ECMTCFG */
#define MQTTCFG_CFG_MAX_LEN 17
#define MQTTCFG_CFG_STR_DEF NULL
#define MQTTCFG_TCP_ID_MIN MQTT_TCP_ID_MIN
#define MQTTCFG_TCP_ID_MAX MQTT_TCP_ID_MAX
#define MQTTCFG_TCP_ID_DEF MQTT_TCP_ID_DEF
#define MQTTCFG_2_ECHO_MIN 0
#define MQTTCFG_2_ECHO_MAX 1
#define MQTTCFG_2_ECHO_DEF 0
#define MQTTCFG_2_TXFORMAT_MIN 0
#define MQTTCFG_2_TXFORMAT_MAX 1
#define MQTTCFG_2_TXFORMAT_DEF 0
#define MQTTCFG_3_RXFORMAT_MIN 0
#define MQTTCFG_3_RXFORMAT_MAX 1
#define MQTTCFG_3_RXFORMAT_DEF 0
#define MQTTCFG_2_KEEPALIVE_MIN 0
#define MQTTCFG_2_KEEPALIVE_MAX 3600
#define MQTTCFG_2_KEEPALIVE_DEF 120
#define MQTTCFG_2_SESSION_MIN 0
#define MQTTCFG_2_SESSION_MAX 1
#define MQTTCFG_2_SESSION_DEF 0
#define MQTTCFG_2_PKT_MIN 1
#define MQTTCFG_2_PKT_MAX 60
#define MQTTCFG_2_PKT_DEF 10
#define MQTTCFG_3_RETRY_MIN 1
#define MQTTCFG_3_RETRY_MAX 10
#define MQTTCFG_3_RETRY_DEF 3
#define MQTTCFG_4_NOTICE_MIN 0
#define MQTTCFG_4_NOTICE_MAX 1
#define MQTTCFG_4_NOTICE_DEF 0
#define MQTTCFG_2_WILLFLAG_MIN 0
#define MQTTCFG_2_WILLFLAG_MAX 1
#define MQTTCFG_2_WILLFLAG_DEF 0
#define MQTTCFG_3_WILLQOS_MIN 0
#define MQTTCFG_3_WILLQOS_MAX 2
#define MQTTCFG_3_WILLQOS_DEF 0
#define MQTTCFG_4_WILLQRETAIN_MIN 0
#define MQTTCFG_4_WILLQRETAIN_MAX 1
#define MQTTCFG_4_WILLQRETAIN_DEF 0
#define MQTTCFG_5_WILLTOPIC_MAX_LEN 256
#define MQTTCFG_5_WILLTOPIC_STR_DEF NULL
#define MQTTCFG_6_WILLMSG_MAX_LEN 256
#define MQTTCFG_6_WILLMSG_STR_DEF NULL
#define MQTTCFG_2_VERSION_MIN 3
#define MQTTCFG_2_VERSION_MAX 4
#define MQTTCFG_2_VERSION_DEF 4
#define MQTTCFG_2_PRODKEY_MAX_LEN 33
#define MQTTCFG_2_PRODKEY_STR_DEF NULL
#define MQTTCFG_3_DEVICENAME_MAX_LEN 33
#define MQTTCFG_3_DEVICENAME_STR_DEF NULL
#define MQTTCFG_4_DEVICESECRET_MAX_LEN 65
#define MQTTCFG_4_DEVICESECRET_STR_DEF NULL
#define MQTTCFG_5_PRODNAME_MAX_LEN 65
#define MQTTCFG_5_PRODNAME_STR_DEF NULL
#define MQTTCFG_6_PRODSECRET_MAX_LEN 65
#define MQTTCFG_6_PRODSECRET_STR_DEF NULL
#define MQTTCFG_7_AUTHTYPE_MAX_LEN 33
#define MQTTCFG_7_AUTHTYPE_STR_DEF NULL
#define MQTTCFG_8_SIGNMETHOD_MAX_LEN 33
#define MQTTCFG_8_SIGNMETHOD_STR_DEF NULL
#define MQTTCFG_9_AUTHMODE_MAX_LEN 33
#define MQTTCFG_9_AUTHMODE_STR_DEF NULL
#define MQTTCFG_10_SECUREMODE_MAX_LEN 9
#define MQTTCFG_10_SECUREMODE_STR_DEF NULL
#define MQTTCFG_11_INSTANCEID_MAX_LEN 33
#define MQTTCFG_11_INSTANCEID_STR_DEF NULL
#define MQTTCFG_12_DYNREGUSED_MIN 0
#define MQTTCFG_12_DYNREGUSED_MAX 8
#define MQTTCFG_12_DYNREGUSED_DEF 0
#define MQTTCFG_1_SSL_MAX_LEN 9
#define MQTTCFG_1_SSL_STR_DEF NULL
#define MQTTCFG_2_PSK_MAX_LEN 129
#define MQTTCFG_2_PSK_STR_DEF NULL
#define MQTTCFG_3_PSKID_MAX_LEN 256
#define MQTTCFG_3_PSKID_STR_DEF NULL
#define MQTTCFG_2_ECC_MAX_LEN 4001
#define MQTTCFG_2_ECC_STR_DEF NULL
#define MQTTCFG_2_CA_MAX_LEN 4001
#define MQTTCFG_2_CA_STR_DEF NULL
#define MQTTCFG_3_NAME_MAX_LEN 65
#define MQTTCFG_3_NAME_STR_DEF NULL
#define MQTTCFG_2_CLOUD_MIN 0
#define MQTTCFG_2_CLOUD_MAX 255
#define MQTTCFG_2_CLOUD_DEF 0
#define MQTTCFG_3_PAYLOADTYPE_MIN 0
#define MQTTCFG_3_PAYLOADTYPE_MAX 255
#define MQTTCFG_3_PAYLOADTYPE_DEF 1
/* AT+ECMTOPEN */
#define MQTTOPEN_TCP_ID_MIN MQTT_TCP_ID_MIN
#define MQTTOPEN_TCP_ID_MAX MQTT_TCP_ID_MAX
#define MQTTOPEN_TCP_ID_DEF MQTT_TCP_ID_DEF
#define MQTTOPEN_1_HOST_MAX_LEN 128
#define MQTTOPEN_1_HOST_STR_DEF NULL
#define MQTTOPEN_2_PORT_MIN 1
#define MQTTOPEN_2_PORT_MAX 65535
#define MQTTOPEN_2_PORT_DEF 1883
/* AT+ECMTCLOSE */
#define MQTTCLOSE_TCP_ID_MIN MQTT_TCP_ID_MIN
#define MQTTCLOSE_TCP_ID_MAX MQTT_TCP_ID_MAX
#define MQTTCLOSE_TCP_ID_DEF MQTT_TCP_ID_DEF
/* AT+ECMTCONN*/
#define MQTTCONN_TCP_ID_MIN MQTT_TCP_ID_MIN
#define MQTTCONN_TCP_ID_MAX MQTT_TCP_ID_MAX
#define MQTTCONN_TCP_ID_DEF MQTT_TCP_ID_DEF
#define MQTTCONN_1_CLIENTID_MAX_LEN 49//256
#define MQTTCONN_1_CLIENTID_STR_DEF NULL
#define MQTTCONN_2_USERNAME_MAX_LEN 49//256
#define MQTTCONN_2_USERNAME_STR_DEF NULL
#define MQTTCONN_3_PWD_MAX_LEN 129//256
#define MQTTCONN_3_PWD_STR_DEF NULL
/* AT+ECMTDISC */
#define MQTTDISC_TCP_ID_MIN MQTT_TCP_ID_MIN
#define MQTTDISC_TCP_ID_MAX MQTT_TCP_ID_MAX
#define MQTTDISC_TCP_ID_DEF MQTT_TCP_ID_DEF
/* AT+ECMTSUB */
#define MQTTSUB_TCP_ID_MIN MQTT_TCP_ID_MIN
#define MQTTSUB_TCP_ID_MAX MQTT_TCP_ID_MAX
#define MQTTSUB_TCP_ID_DEF MQTT_TCP_ID_DEF
#define MQTTSUB_1_MSGID_MIN 1
#define MQTTSUB_1_MSGID_MAX 65535
#define MQTTSUB_1_MSGID_DEF 10
#define MQTTSUB_2_TOPIC_MAX_LEN 256
#define MQTTSUB_2_TOPIC_STR_DEF NULL
#define MQTTSUB_3_QOS_MIN 0
#define MQTTSUB_3_QOS_MAX 2
#define MQTTSUB_3_QOS_DEF 0
/* AT+ECMTUNSUB */
#define MQTTUNSUB_TCP_ID_MIN MQTT_TCP_ID_MIN
#define MQTTUNSUB_TCP_ID_MAX MQTT_TCP_ID_MAX
#define MQTTUNSUB_TCP_ID_DEF MQTT_TCP_ID_DEF
#define MQTTUNSUB_1_MSGID_MIN 1
#define MQTTUNSUB_1_MSGID_MAX 65535
#define MQTTUNSUB_1_MSGID_DEF 10
#define MQTTUNSUB_2_TOPIC_MAX_LEN 256
#define MQTTUNSUB_2_TOPIC_STR_DEF NULL
/* AT+ECMTPUB */
#define MQTTPUB_TCP_ID_MIN MQTT_TCP_ID_MIN
#define MQTTPUB_TCP_ID_MAX MQTT_TCP_ID_MAX
#define MQTTPUB_TCP_ID_DEF MQTT_TCP_ID_DEF
#define MQTTPUB_1_MSGID_MIN 0
#define MQTTPUB_1_MSGID_MAX 65535
#define MQTTPUB_1_MSGID_DEF 10
#define MQTTPUB_2_QOS_MIN 0
#define MQTTPUB_2_QOS_MAX 2
#define MQTTPUB_2_QOS_DEF 1
#define MQTTPUB_3_RETRAINED_MIN 0
#define MQTTPUB_3_RETRAINED_MAX 40
#define MQTTPUB_3_RETRAINED_DEF 0
#define MQTTPUB_4_TOPIC_MAX_LEN 256
#define MQTTPUB_4_TOPIC_STR_DEF NULL
#define MQTTPUB_5_MSG_MAX_LEN 1027
#define MQTTPUB_5_MSG_STR_DEF NULL
#define MQTTPUB_6_CLOUD_MIN 0
#define MQTTPUB_6_CLOUD_MAX 128
#define MQTTPUB_6_CLOUD_DEF 0xff
#define MQTTPUB_7_RETRAINED_MIN 0
#define MQTTPUB_7_RETRAINED_MAX 1
#define MQTTPUB_7_RETRAINED_DEF 0xff
#define MQTTPUB_6_RAI_MIN 0
#define MQTTPUB_6_RAI_MAX 128
#define MQTTPUB_6_RAI_DEF 0
#define MQTT_DATA_FORMAT_TXT 0
#define MQTT_DATA_FORMAT_HEX 1
#define MQTT_TLS_CA_SUB_SEQ_LEN 64
typedef struct
{
UINT32 reqHandle;
int tcpId;
int msgId;
int qos;
int retained;
int rai;
char *mqttTopic;
}mqtt_pub_data;
CmsRetId mqttCFG(const AtCmdInputContext *AtCmdReqParaPtr);
CmsRetId mqttOPEN(const AtCmdInputContext *AtCmdReqParaPtr);
CmsRetId mqttCLOSE(const AtCmdInputContext *AtCmdReqParaPtr);
CmsRetId mqttCONN(const AtCmdInputContext *AtCmdReqParaPtr);
CmsRetId mqttDISC(const AtCmdInputContext *AtCmdReqParaPtr);
CmsRetId mqttSUB(const AtCmdInputContext *AtCmdReqParaPtr);
CmsRetId mqttUNS(const AtCmdInputContext *AtCmdReqParaPtr);
CmsRetId mqttPUB(const AtCmdInputContext *AtCmdReqParaPtr);
CmsRetId mqttPUBInputData(UINT8 chanId, UINT8 *pData, INT16 dataLength);
CmsRetId mqttPUBCancel(void);
CmsRetId mqttOPENind(UINT16 primId, UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId mqttCLOSEind(UINT16 primId, UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId mqttCONNind(UINT16 primId, UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId mqttDISCind(UINT16 primId, UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId mqttSUBind(UINT16 primId, UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId mqttUNSind(UINT16 primId, UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId mqttPUBind(UINT16 primId, UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId mqttSTATind(UINT16 primId, UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId mqttRECVind(UINT16 primId, UINT16 reqHandle, UINT16 rc, void *paras);
#endif

View File

@@ -0,0 +1,283 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_plat_dev.h
*
* Description: Device debug related AT CMD
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_DEBUG_H__
#define __ATEC_DEBUG_H__
#include "at_util.h"
#define EC_CMD_BUF_LEN 640
#define EC_PRINT_BUF_LEN 128
#define EC_DUMP_DATA_LEN 32
#define EC_DUMP_DATA_BLOCK 8192
#define ATC_ECRFTEST_STR_MAX_LEN 5000
/* AT+ECUNITTEST */
#define ATC_ECUNITTEST_0_VAL_MIN 0
#define ATC_ECUNITTEST_0_VAL_MAX 16
#define ATC_ECUNITTEST_0_VAL_DEFAULT 0 /* full functionality */
/*AT+ECRST*/
#define ATC_ECRST_MAX_DELAY_MS 2000
/* AT+ECSYSTEST */
#define ATC_SYSTEST_0_VAL_MIN 0
#define ATC_SYSTEST_0_VAL_MAX 512
#define ATC_SYSTEST_0_VAL_DEFAULT 0 /* full functionality */
#define ATC_SYSTEST_0_STR_DEFAULT NULL
#define ATC_SYSTEST_0_STR_MAX_LEN 256 /* */
/* AT+ECPMUCFG */
#define ATC_ECPMUCFG_0_VAL_MIN 0
#define ATC_ECPMUCFG_0_VAL_MAX 1
#define ATC_ECPMUCFG_0_VAL_DEFAULT 0 /* full functionality */
#define ATC_ECPMUCFG_1_VAL_MIN 0
#define ATC_ECPMUCFG_1_VAL_MAX 5
#define ATC_ECPMUCFG_1_VAL_DEFAULT 0 /* full functionality */
/* AT+ECPCFG */
#define ATC_ECPCFG_MAX_PARM_STR_LEN 32
#define ATC_ECPCFG_MAX_PARM_STR_DEFAULT NULL
#define ATC_ECPCFG_VAL_MIN 0
#define ATC_ECPCFG_VAL_MAX 0xffff
#define ATC_ECPCFG_VAL_DEFAULT 0 /* full functionality */
#define ATC_ECPCFG_WDT_VAL_MIN 0
#define ATC_ECPCFG_WDT_VAL_MAX 1
#define ATC_ECPCFG_WDT_VAL_DEFAULT 0 /* full functionality */
#define ATC_ECPCFG_UART_DUMP_PORT_VAL_MIN 0
#define ATC_ECPCFG_UART_DUMP_PORT_VAL_MAX 255
#define ATC_ECPCFG_UART_DUMP_PORT_VAL_DEFAULT 1 /* full functionality */
#define ATC_ECPCFG_UNI_CTRL_VAL_MIN 0
#define ATC_ECPCFG_UNI_CTRL_VAL_MAX 2
#define ATC_ECPCFG_UNI_CTRL_VAL_DEFAULT 2 /* full functionality */
#define ATC_ECPCFG_UNI_LEVEL_VAL_MIN 0
#define ATC_ECPCFG_UNI_LEVEL_VAL_MAX 5
#define ATC_ECPCFG_UNI_LEVEL_VAL_DEFAULT 0 /* full functionality */
#define ATC_ECPCFG_LOG_BAUDRATE_VAL_MIN 921600
#define ATC_ECPCFG_LOG_BAUDRATE_VAL_MAX 6000001
#define ATC_ECPCFG_LOG_BAUDRATE_VAL_DEFAULT 6000000 /* full functionality */
#define ATC_ECPCFG_SLEEP_VAL_MIN 0
#define ATC_ECPCFG_SLEEP_VAL_MAX 0xffff
#define ATC_ECPCFG_SLEEP_VAL_DEFAULT 0 /* full functionality */
#define ATC_ECPCFG_FAULT_VAL_MIN EXCEP_OPTION_DUMP_FLASH_EPAT_LOOP
#define ATC_ECPCFG_FAULT_VAL_MAX (EXCEP_OPTION_MAX)
#define ATC_ECPCFG_FAULT_VAL_DEFAULT EXCEP_OPTION_DUMP_FLASH_EPAT_LOOP /* full functionality */
#define ATC_ECPCFG_LOG_PORT_SEL_MIN 0
#define ATC_ECPCFG_LOG_PORT_SEL_MAX 2
#define ATC_ECPCFG_LOG_PORT_SEL_DEFAULT 0
#define ATC_ECPCFG_USB_CTRL_VAL_MIN 0
#define ATC_ECPCFG_USB_CTRL_VAL_MAX 2
#define ATC_ECPCFG_USB_CTRL_VAL_DEFAULT 0
#define ATC_ECPCFG_USB_SW_TRACEFLAG_VAL_MIN 0
#define ATC_ECPCFG_USB_SW_TRACEFLAG_VAL_MAX 0x0fffffff
#define ATC_ECPCFG_USB_SW_TRACEFLAG_VAL_DEFAULT 0
#define ATC_ECPCFG_USB_SLPMASK_VAL_MIN 0
#define ATC_ECPCFG_USB_SLPMASK_VAL_MAX 1
#define ATC_ECPCFG_USB_SLPMASK_VAL_DEFAULT 0
#define ATC_ECPCFG_USB_SLPTHD_VAL_MIN 0
#define ATC_ECPCFG_USB_SLPTHD_VAL_MAX 0xFFFF
#define ATC_ECPCFG_USB_SLPTHD_VAL_DEFAULT 0
#define ATC_ECPCFG_PWRKEY_MODE_VAL_MIN 0
#define ATC_ECPCFG_PWRKEY_MODE_VAL_MAX 2
#define ATC_ECPCFG_PWRKEY_MODE_VAL_DEFAULT 0
#define ATC_ECPCFG_USBNET_VAL_MIN 0
#define ATC_ECPCFG_USBNET_VAL_MAX 1
#define ATC_ECPCFG_USBNET_VAL_DEFAULT 0
#define ATC_ECPCFG_PMUINCDRX_VAL_MIN 0
#define ATC_ECPCFG_PMUINCDRX_VAL_MAX 1
#define ATC_ECPCFG_PMUINCDRX_VAL_DEFAULT 0
#define ATC_ECPCFG_FOTA_URC_PORT_TYPE_USB PLAT_CFG_FOTA_URC_PORT_USB
#define ATC_ECPCFG_FOTA_URC_PORT_TYPE_UART PLAT_CFG_FOTA_URC_PORT_UART
#define ATC_ECPCFG_FOTA_URC_USB_PORT_IDX_MIN PLAT_CFG_FOTA_URC_USB_PORT_IDX_MIN
#define ATC_ECPCFG_FOTA_URC_USB_PORT_IDX_MAX PLAT_CFG_FOTA_URC_USB_PORT_IDX_MAX
#define ATC_ECPCFG_FOTA_URC_UART_PORT_IDX_MIN PLAT_CFG_FOTA_URC_UART_PORT_IDX_MIN
#define ATC_ECPCFG_FOTA_URC_UART_PORT_IDX_MAX PLAT_CFG_FOTA_URC_UART_PORT_IDX_MAX
#define ATC_ECPCFG_FOTA_URC_PORT_SEL_MIN ((ATC_ECPCFG_FOTA_URC_PORT_TYPE_USB << 4) | ATC_ECPCFG_FOTA_URC_USB_PORT_IDX_MIN)
#define ATC_ECPCFG_FOTA_URC_PORT_SEL_MAX ((ATC_ECPCFG_FOTA_URC_PORT_TYPE_UART << 4) | ATC_ECPCFG_FOTA_URC_UART_PORT_IDX_MAX)
#define ATC_ECPCFG_FOTA_URC_PORT_SEL_DEFAULT ((ATC_ECPCFG_FOTA_URC_PORT_TYPE_USB << 4) | 0)
/* AT+ECUSBSYS */
#define ATC_ECUSBSYS_MAX_PARM_STR_LEN 32
#define ATC_ECUSBSYS_MAX_PARM_STR_DEFAULT NULL
#define ATC_ECUSBSYS_VAL_MIN 0
#define ATC_ECUSBSYS_VAL_MAX 0xffff
#define ATC_ECUSBSYS_VAL_DEFAULT 0 /* full functionality */
#define ATC_ECUSBSYS_VBUS_MODE_EN_VAL_MIN 0
#define ATC_ECUSBSYS_VBUS_MODE_EN_VAL_MAX 1
#define ATC_ECUSBSYS_VBUS_MODE_EN_VAL_DEFAULT 0
#define ATC_ECUSBSYS_VBUS_WKUP_PAD_VAL_MIN 0
#define ATC_ECUSBSYS_VBUS_WKUP_PAD_VAL_MAX 5
#define ATC_ECUSBSYS_VBUS_WKUP_PAD_VAL_DEFAULT 1
#define ATC_TASKINFO_LEN 64
/* AT+IPR */
#define ATC_IPR_MAX_PARM_STR_LEN 32
#define ATC_IPR_MAX_PARM_STR_DEFAULT NULL
/* AT+ECLEDMODE */
#define ATC_ECLED_MODE_VAL_MIN 0
#define ATC_ECLED_MODE_VAL_MAX 1
#define ATC_ECLED_MODE_VAL_DEFAULT 0
/* AT+ECFLASHMONITORINFO */
#define ATC_ECFLASHMONITORINFO_VAL_MIN 0
#define ATC_ECFLASHMONITORINFO_VAL_MAX 3
#define ATC_ECFLASHMONITORINFO_VAL_DEFAULT 1
/* AT+ECPURC */
#define ATC_ECPURC_0_MAX_PARM_STR_LEN 16
#define ATC_ECPURC_0_MAX_PARM_STR_DEFAULT NULL
#define ATC_ECPURC_1_VAL_MIN 0
#define ATC_ECPURC_1_VAL_MAX 1
#define ATC_ECPURC_1_VAL_DEFAULT 0
/* AT+ECPALARM */
#define ATC_ECPALARM_0_MAX_PARM_STR_LEN 8
#define ATC_ECPALARM_0_MAX_PARM_STR_DEFAULT NULL
#define ATC_ECPALARM_1_VAL_MIN 0
#define ATC_ECPALARM_1_VAL_MAX 1
#define ATC_ECPALARM_1_VAL_DEFAULT 0
#define ATC_ECPALARM_VOLT_VAL_MIN 0
#define ATC_ECPALARM_VOLT_VAL_MAX 25
#define ATC_ECPALARM_VOLT_VAL_DEFAULT 0
#define ATC_ECPALARM_THERM_VAL_MIN 0
#define ATC_ECPALARM_THERM_VAL_MAX 3
#define ATC_ECPALARM_THERM_VAL_DEFAULT 3
#define ATC_ECPALARM_HYSTER_VAL_MIN 0
#define ATC_ECPALARM_HYSTER_VAL_MAX 3
#define ATC_ECPALARM_HYSTER_VAL_DEFAULT 3
/* AT+ICF */
#define ATC_ICF_FORMAT_VAL_MIN 1
#define ATC_ICF_FORMAT_VAL_MAX 6
#define ATC_ICF_FORMAT_VAL_DEFAULT 3
#define ATC_ICF_PARITY_VAL_MIN 0
#define ATC_ICF_PARITY_VAL_MAX 1
#define ATC_ICF_PARITY_VAL_DEFAULT 0
/* AT+IFC */
#define ATC_IFC_RTS_VAL_MIN 0
#define ATC_IFC_RTS_VAL_MAX 2
#define ATC_IFC_RTS_VAL_DEFAULT 0
#define ATC_IFC_CTS_VAL_MIN 0
#define ATC_IFC_CTS_VAL_MAX 2
#define ATC_IFC_CTS_VAL_DEFAULT 0
/* AT+ECSCLK */
#define ATC_EC_SCLK_VAL_MIN 0
#define ATC_EC_SCLK_VAL_MAX 1
#define ATC_EC_SCLK_VAL_DEFAULT 0
/* AT+ECMEM32 */
#define ATC_ECMEM32_OPMODE_VAL_READ 0
#define ATC_ECMEM32_OPMODE_VAL_WRITE 1
#define ATC_ECMEM32_OPMODE_VAL_DEFAULT 0
#define ATC_ECMEM32_ADDR_VAL_MIN 0x80000000
#define ATC_ECMEM32_ADDR_VAL_MAX 0x7fffffff
#define ATC_ECMEM32_ADDR_VAL_DEFAULT 0
#define ATC_ECMEM32_VAL_MIN 0x80000000
#define ATC_ECMEM32_VAL_MAX 0x7fffffff
#define ATC_ECMEM32_VAL_DEFAULT 0
/* AT+ECPOWD */
#define ATC_ECPOWD_VAL_MIN 0
#define ATC_ECPOWD_VAL_MAX 1
#define ATC_ECPOWD_VAL_DEFAULT 1
/* AT+ECBTOFFSETDBG */
#define ATC_ECBTOFFSETDBG_VAL_MIN 0x80000000
#define ATC_ECBTOFFSETDBG_VAL_MAX 0x7fffffff
#define ATC_ECBTOFFSETDBG_VAL_DEFAULT 0
#define PRINTF_BUF_LEN 512
#define ECFSINFO_PRINT_BUF_LEN (256)
/* AT+RLCHK */
#define ATC_RLCHK_MAX_PARM_STR_LEN 32
#define ATC_RLCHK_MAX_PARM_STR_DEFAULT NULL
//CmsRetId pdevHELP(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevRST(const AtCmdInputContext *pAtCmdReq);
//CmsRetId pdevPOWERON(const AtCmdInputContext *pAtCmdReq);
//CmsRetId pdevPOWEROFF(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECTASKINFO(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECTASKHISTINFO(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECSHOWMEM(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECHEAPINFO(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECDLFCMEM(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECFSINFO(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECFSFORMAT(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECFMONITORINFO(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevSYSTEST(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECSYSTEST(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECLOGDBVER(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECPCFG(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECUSBSYS(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECPMUCFG(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECVOTECHK(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevIPR(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevNetLight(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevPMUSTATUS(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECPURC(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECPALARM(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevICF(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevIFC(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECMEM32(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECSCLK(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECDUMPCHK(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECPOWD(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevBTOFFSETDBG(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevRLCHK(const AtCmdInputContext *pAtCmdReq);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,155 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_plat_test.h
*
* Description: plat verification related AT CMD
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_PLAT_TEST_H__
#define __ATEC_PLAT_TEST_H__
#include "at_util.h"
#define PRINTF_BUF_LEN 512
#define ATC_MALLOC_MAGIN_32 32
#define ATC_MALLOC_MAGIN_64 64
/* AT+ECPERTEST */
#define ATC_ECPERTEST_MODULE_MAX_PARM_STR_LEN 16
#define ATC_ECPERTEST_MODULE_MAX_PARM_STR_DEFAULT NULL
#define ATC_ECPERTEST_CASENUM_VAL_MIN 0
#define ATC_ECPERTEST_CASENUM_VAL_MAX 256
#define ATC_ECPERTEST_CASENUM_VAL_DEFAULT 0
#define ATC_ECPERTEST_INSNUM_VAL_MIN 0
#define ATC_ECPERTEST_INSNUM_VAL_MAX 256
#define ATC_ECPERTEST_INSNUM_VAL_DEFAULT 0
#define ATC_ECPERTEST_LOOPCNT_VAL_MIN 0
#define ATC_ECPERTEST_LOOPCNT_VAL_MAX 0x7fffffff
#define ATC_ECPERTEST_LOOPCNT_VAL_DEFAULT 0
#define ATC_ECPERTEST_WAKEUPNUM_VAL_MIN 0
#define ATC_ECPERTEST_WAKEUPNUM_VAL_MAX 5
#define ATC_ECPERTEST_WAKEUPNUM_VAL_DEFAULT 0
#define ATC_ECPERTEST_WAKEUPEN_VAL_MIN 0
#define ATC_ECPERTEST_WAKEUPEN_VAL_MAX 1
#define ATC_ECPERTEST_WAKEUPEN_VAL_DEFAULT 0
#define ATC_ECPERTEST_WAKEUPEDGE_VAL_MIN 0
#define ATC_ECPERTEST_WAKEUPEDGE_VAL_MAX 1
#define ATC_ECPERTEST_WAKEUPEDGE_VAL_DEFAULT 0
#define ATC_ECPERTEST_SLEEPMODE_VAL_MIN 0
#define ATC_ECPERTEST_SLEEPMODE_VAL_MAX 9
#define ATC_ECPERTEST_SLEEPMODE_VAL_DEFAULT 0
#define ATC_ECPERTEST_AONIOPWRCTRL_VAL_MIN 0
#define ATC_ECPERTEST_AONIOPWRCTRL_VAL_MAX 1
#define ATC_ECPERTEST_AONIOPWRCTRL_VAL_DEFAULT 0
#define ATC_ECPERTEST_AONIONUM_VAL_MIN 0
#define ATC_ECPERTEST_AONIONUM_VAL_MAX 8
#define ATC_ECPERTEST_AONIONUM_VAL_DEFAULT 0
#define ATC_ECPERTEST_AONIOLEVEL_VAL_MIN 0
#define ATC_ECPERTEST_AONIOLEVEL_VAL_MAX 1
#define ATC_ECPERTEST_AONIOLEVEL_VAL_DEFAULT 0
#define ATC_ECPERTEST_AONIOLATCH_VAL_MIN 0
#define ATC_ECPERTEST_AONIOLATCH_VAL_MAX 1
#define ATC_ECPERTEST_AONIOLATCH_VAL_DEFAULT 0
#define ATC_ECPERTEST_AONIOLDOCASENUM_VAL_MIN 0
#define ATC_ECPERTEST_AONIOLDOCASENUM_VAL_MAX 2
#define ATC_ECPERTEST_AONIOLDOCASENUM_VAL_DEFAULT 0
#define ATC_ECPERTEST_MCUMODECASENUM_VAL_MIN 0
#define ATC_ECPERTEST_MCUMODECASENUM_VAL_MAX 1
#define ATC_ECPERTEST_MCUMODECASENUM_VAL_DEFAULT 0
/* AT+ECI2COPEN */
#define ATC_I2C_INSTANCE_VAL_MIN 0
#define ATC_I2C_INSTANCE_VAL_MAX 1
#define ATC_I2C_INSTANCE_VAL_DEFAULT 0
#define ATC_I2C_SPEED_VAL_MIN 100
#define ATC_I2C_SPEED_VAL_MAX 1000
#define ATC_I2C_SPEED_VAL_DEFAULT 100
#define ATC_I2C_SLAVEADDRESS_VAL_MIN 0x1
#define ATC_I2C_SLAVEADDRESS_VAL_MAX 0x3ff
#define ATC_I2C_SLAVEADDRESS_VAL_DEFAULT 0x55
#define ATC_I2C_DATALEN_VAL_MIN 1
#define ATC_I2C_DATALEN_VAL_MAX 511
#define ATC_I2C_DATALEN_VAL_DEFAULT 1
/* AT+ECSPIOPEN */
#define ATC_SPI_INSTANCE_VAL_MIN 0
#define ATC_SPI_INSTANCE_VAL_MAX 1
#define ATC_SPI_INSTANCE_VAL_DEFAULT 0
#define ATC_SPI_SPEED_VAL_MIN 1
#define ATC_SPI_SPEED_VAL_MAX 10000000 // 10M
#define ATC_SPI_SPEED_VAL_DEFAULT 100000
#define ATC_SPI_CPOL_VAL_MIN 0
#define ATC_SPI_CPOL_VAL_MAX 1
#define ATC_SPI_CPOL_VAL_DEFAULT 0
#define ATC_SPI_CPHA_VAL_MIN 0
#define ATC_SPI_CPHA_VAL_MAX 1
#define ATC_SPI_CPHA_VAL_DEFAULT 0
#define ATC_SPI_DATALEN_VAL_MIN 1
#define ATC_SPI_DATALEN_VAL_MAX 1024
#define ATC_SPI_DATALEN_VAL_DEFAULT 1
#define ATC_ECONEWREAD_ADDR_STR_LEN 10
#define ATC_ECONEWREAD_ADDR_STR_DEFAULT NULL
#define ATC_ECREGWRITE_ADDR_STR_LEN 10
#define ATC_ECREGWRITE_ADDR_STR_DEFAULT NULL
#define ATC_ECREGWRITE_VAL_STR_LEN 10
#define ATC_ECREGWRITE_VAL_STR_DEFAULT NULL
CmsRetId pdevECPERTEST(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECI2COPEN(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECI2CREAD(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECI2CWRITE(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECI2CCLOSE(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECONEWOPEN(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECONEWREAD(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECONEWWRITE(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECSPIOPEN(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECSPIREAD(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECSPIWRITE(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECSPITRANSFER(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECSPICLOSE(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECREGREAD(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECREGWRITE(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdevECSWMODE(const AtCmdInputContext *pAtCmdReq);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,88 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_product.h
*
* Description: production related command
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_PRODUCT_H__
#define __ATEC_PRODUCT_H__
#include "at_util.h"
/* AT+ECSLEEP */
#define ECSLEEP_HANDLE_CREATED 0x1
#define ECSLEEP_HANDLE_NOT_CREATED 0x0
#define ECSLEEP_HIB2 0x0
#define ECSLEEP_HIB1 0x1
#define ECSLEEP_SLP2 0x2
#define ECSLEEP_SLP1 0x3
#define ECSLEEP_OFF 0x4
#define CC_ECSLEEP_VALUE_MIN 0
#define CC_ECSLEEP_VALUE_MAX 4
#define CC_ECSLEEP_VALUE_DEF 0
/* AT+ECSAVEFAC */
#define SAVEFAC_0_STR_LEN 16
#define SAVEFAC_0_STR_BUF_LEN (SAVEFAC_0_STR_LEN +1)
#define SAVEFAC_0_STR_DEF NULL
/* AT+ECIPR */
#define ATC_ECIPR_MAX_PARM_STR_LEN 32
#define ATC_ECIPR_MAX_PARM_STR_DEFAULT NULL
/* AT+ECNPICFG */
#define ATC_ECNPICFG_MAX_PARM_STR_LEN 32
#define ATC_ECNPICFG_MAX_PARM_STR_DEFAULT NULL
#define ATC_ECNPICFG_RFCALI_VAL_MIN 0
#define ATC_ECNPICFG_RFCALI_VAL_MAX 1
#define ATC_ECNPICFG_RFCALI_VAL_DEFAULT 0 /* full functionality */
#define ATC_ECNPICFG_RFNST_VAL_MIN 0
#define ATC_ECNPICFG_RFNST_VAL_MAX 1
#define ATC_ECNPICFG_RFNST_VAL_DEFAULT 0 /* full functionality */
/* AT+ECPRODMODE */
#define ATC_ECPRODMODE_MAX_PARM_STR_LEN 32
/* AT+ECATE */
#define ATC_ECATE_0_VAL_MIN 0
#define ATC_ECATE_0_VAL_MAX 1
#define ATC_ECATE_0_VAL_DEFAULT 0
/* AT+ECVERSION */
#define ATC_ECVERSION_0_VAL_MIN 0
#define ATC_ECVERSION_0_VAL_MAX 0xffffffff
#define ATC_ECVERSION_0_VAL_DEFAULT 0
/* AT+ECGMDATA */
#define ATC_ECGMDATA_MAX_PARM_STR_LEN 2048
#define ATC_ECGMDATA_MAX_PARM_STR_DEFAULT NULL
CmsRetId pdECRFTEST(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdECSLEEP(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdECSAVEFAC(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdECIPR(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdNPICFG(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdECRFSTAT(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdECPRODMODE(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdECATE(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdECGMDATA(const AtCmdInputContext *pAtCmdReq);
CmsRetId pdECVERSION(const AtCmdInputContext *pAtCmdReq);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,87 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_http.h
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_SSL_H
#define _ATEC_SSL_H
#include "at_util.h"
#include "at_ssl_task.h"
#define SSL_MAX_RSP_LEN 512
/* AT+SSLCFG */
#define SSLCFG_CONTEXTID_MIN 0
#define SSLCFG_CONTEXTID_MAX 5
#define SSLCFG_CONTEXTID_DEF 0
#define SSLCFG_VERSION_MIN 0
#define SSLCFG_VERSION_MAX 4
#define SSLCFG_VERSION_DEF 4
#define SSLCFG_CIPHSUIT_MAX_SIZE 7
#define SSLCFG_CIPHSUIT_DEF 0xFFFF
#define SSLCFG_DTLS_MIN 0
#define SSLCFG_DTLS_MAX 1
#define SSLCFG_DTLS_DEF 0
#define SSLCFG_SECLEVEL_MIN 0
#define SSLCFG_SECLEVEL_MAX 2
#define SSLCFG_SECLEVEL_DEF 0
#define SSLCFG_NEGOTIME_MIN 10
#define SSLCFG_NEGOTIME_MAX 300
#define SSLCFG_NEGOTIME_DEF 300
#define SSLCFG_DTLSVER_MIN 0
#define SSLCFG_DTLSVER_MAX 1
#define SSLCFG_DTLSVER_DEF 0
#define SSLCFG_CACHE_MIN 0
#define SSLCFG_CACHE_MAX 1
#define SSLCFG_CACHE_DEF 1
#define SSLCFG_SNI_MIN 0
#define SSLCFG_SNI_MAX 1
#define SSLCFG_SNI_DEF 0
#define SSLCFG_IGNORE_MIN 0
#define SSLCFG_IGNORE_MAX 1
#define SSLCFG_IGNORE_DEF 1
/* AT+SSLOPEN */
#define SSLOPEN_PDPCXTID_MIN 1
#define SSLOPEN_PDPCXTID_MAX 15
#define SSLOPEN_PDPCXTID_DEF 0
#define SSLOPEN_SSLCXTID_MIN 0
#define SSLOPEN_SSLCXTID_MAX 5
#define SSLOPEN_SSLCXTID_DEF 0
#define SSLOPEN_CLIENTID_MIN 0
#define SSLOPEN_CLIENTID_MAX MAX_SSL_CLIENT_INSTANCE-1
#define SSLOPEN_CLIENTID_DEF 0
#define SSLOPEN_URL_MAX_LEN SSL_URL_MAX_LEN
#define SSLOPEN_PORT_MIN 0
#define SSLOPEN_PORT_MAX 0xFFFF
#define SSLOPEN_PORT_DEF 0
#define SSLOPEN_ACCESS_MIN 0
#define SSLOPEN_ACCESS_MAX 1
#define SSLOPEN_ACCESS_DEF 0
/* AT+SSLSEND */
#define SSLOPEN_SENDLEN_MIN 1
#define SSLOPEN_SENDLEN_MAX 1460
#define SSLOPEN_SENDLEN_DEF 1
CmsRetId sslInputSendData(uint8_t chanId, uint8_t *pData, uint16_t dataLength);
void sslSendCancel(void);
CmsRetId sslCFG(const AtCmdInputContext *pAtCmdReq);
CmsRetId sslOPEN(const AtCmdInputContext *pAtCmdReq);
CmsRetId sslSEND(const AtCmdInputContext *pAtCmdReq);
CmsRetId sslCLOSE(const AtCmdInputContext *pAtCmdReq);
CmsRetId sslSTATE(const AtCmdInputContext *pAtCmdReq);
#endif

View File

@@ -0,0 +1,514 @@
/******************************************************************************
* (C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
*******************************************************************************
* Filename: atec_tcpip.h
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_TCPIP_H
#define _ATEC_TCPIP_H
#include "at_util.h"
/* AT+SKTCREATE */
#define SKTCREATE_0_MIN 1
#define SKTCREATE_0_MAX 2
#define SKTCREATE_0_DEF 1
#define SKTCREATE_1_MIN 1
#define SKTCREATE_1_MAX 3
#define SKTCREATE_1_DEF 1
#define SKTCREATE_2_MIN 0
#define SKTCREATE_2_MAX 0xff
#define SKTCREATE_2_DEF 0
/* AT+SKTSEND */
#define SKTSEND_0_MIN AT_SOC_FD_MIN
#define SKTSEND_0_MAX AT_SOC_FD_MAX
#define SKTSEND_0_DEF AT_SOC_FD_DEF
#define SKTSEND_1_MIN 1
#define SKTSEND_1_MAX SUPPORT_MAX_SOCKET_RAW_DATA_LENGTH
#define SKTSEND_1_DEF 1
#define SKTSEND_2_STR_MAX_LEN 6
#define SKTSEND_2_STR_DEF NULL
#define SKTSEND_3_MIN 0
#define SKTSEND_3_MAX 2
#define SKTSEND_3_DEF 0
#define SKTSEND_4_MIN 0
#define SKTSEND_4_MAX 1
#define SKTSEND_4_DEF 0
#define SKTSENDT_0_MIN AT_SOC_FD_MIN
#define SKTSENDT_0_MAX AT_SOC_FD_MAX
#define SKTSENDT_0_DEF AT_SOC_FD_DEF
#define SKTSENDT_1_MIN 1
#define SKTSENDT_1_MAX SUPPORT_MAX_SOCKET_RAW_DATA_LENGTH
#define SKTSENDT_1_DEF -1
#define SKTSENDT_2_MIN 0
#define SKTSENDT_2_MAX 2
#define SKTSENDT_2_DEF 0
#define SKTSENDT_3_MIN 0
#define SKTSENDT_3_MAX 1
#define SKTSENDT_3_DEF 0
/* AT+SKTCONNECT */
#define SKTCONNECT_0_SEQ_MIN AT_SOC_FD_MIN
#define SKTCONNECT_0_SEQ_MAX AT_SOC_FD_MAX//max socket fd
#define SKTCONNECT_0_SEQ_DEF AT_SOC_FD_DEF
#define SKTCONNECT_1_ADDR_STR_MAX_LEN AT_SOC_IP_ADDR_STRING_LENGTH_MAX
#define SKTCONNECT_1_ADDR_STR_DEF NULL
#define SKTCONNECT_2_PORT_MIN AT_SOC_PORT_MIN
#define SKTCONNECT_2_PORT_MAX AT_SOC_PORT_MAX
#define SKTCONNECT_2_PORT_DEF 0
/* AT+SKTBIND */
#define SKTBIND_0_SEQ_MIN AT_SOC_FD_MIN
#define SKTBIND_0_SEQ_MAX AT_SOC_FD_MAX//max socket fd
#define SKTBIND_0_SEQ_DEF AT_SOC_FD_DEF
#define SKTBIND_1_ADDR_STR_MAX_LEN AT_SOC_IP_ADDR_STRING_LENGTH_MAX
#define SKTBIND_1_ADDR_STR_DEF NULL
#define SKTBIND_2_PORT_MIN 0
#define SKTBIND_2_PORT_MAX AT_SOC_PORT_MAX
#define SKTBIND_2_PORT_DEF 0
/* AT+SKTSTATUS */
#define SKTSTATUS_0_SEQ_MIN AT_SOC_FD_MIN
#define SKTSTATUS_0_SEQ_MAX AT_SOC_FD_MAX//max socket fd
#define SKTSTATUS_0_SEQ_DEF 0
/* AT+SKTDELETE */
#define SKTDELETE_0_SEQ_MIN AT_SOC_FD_MIN
#define SKTDELETE_0_SEQ_MAX AT_SOC_FD_MAX//max socket fd
#define SKTDELETE_0_SEQ_DEF AT_SOC_FD_DEF
#define MAX_URL_IPADDR_LEN 255
/*AT+ECSNTP*/
#define SNTP_0_STR_MAX_LEN MAX_URL_IPADDR_LEN
#define SNTP_0_STR_DEF NULL
#define SNTP_DEC_1_MIN 0
#define SNTP_DEC_1_MAX AT_SOC_PORT_MAX
#define SNTP_DEC_1_DEF 0
#define SNTP_DEC_2_MIN 0
#define SNTP_DEC_2_MAX 1
#define SNTP_DEC_2_DEF 0
/* AT+ECPING */
#define PING_DEC_0_MIN 0
#define PING_DEC_0_MAX 0
#define PING_DEC_0_DEF 0
#define PING_0_STR_MAX_LEN MAX_URL_IPADDR_LEN
#define PING_0_STR_DEF NULL
#define PING_1_COUNT_MIN 1
#define PING_1_COUNT_MAX 255
#define PING_1_COUNT_DEF 4
#define PING_2_PAYLOAD_MIN 1
#define PING_2_PAYLOAD_MAX 1500
#define PING_2_PAYLOAD_DEF 32
#define PING_3_TIMEOUT_MIN 1
#define PING_3_TIMEOUT_MAX 10*60*1000
#define PING_3_TIMEOUT_DEF 20000
#define PING_4_RAI_FLAG_MIN 0
#define PING_4_RAI_FLAG_MAX 1
#define PING_4_RAI_FLAG_DEF 0
/* AT+CMDNS */
#define CMDNS_0_STR_MAX_LEN MAX_URL_IPADDR_LEN
#define CMDNS_0_STR_DEF NULL
/* AT+ECIPERF */
#define ECIPERF_0_ACT_MIN 0
#define ECIPERF_0_ACT_MAX 5
#define ECIPERF_0_ACT_DEF 0
#define ECIPERF_1_PROTO_MIN 0 //UDP
#define ECIPERF_1_PROTO_MAX 1 //TCP
#define ECIPERF_1_PROTO_DEF 0 //UDP
#define ECIPERF_2_PORT_MIN AT_SOC_PORT_MIN
#define ECIPERF_2_PORT_MAX AT_SOC_PORT_MAX
#define ECIPERF_2_PORT_DEF 5001
#define ECIPERF_3_STR_MAX_LEN 64
#define ECIPERF_3_STR_DEF NULL
#define ECIPERF_4_TPT_MIN 1
#define ECIPERF_4_TPT_MAX 12000000 //12M bps
#define ECIPERF_4_TPT_DEF 20000 //20kbps
#define ECIPERF_5_PAYLOAD_MIN 36
#define ECIPERF_5_PAYLOAD_MAX 1472
#define ECIPERF_5_PAYLOAD_DEF 940
#define ECIPERF_6_PKG_NUM_MIN 1
#define ECIPERF_6_PKG_NUM_MAX 65000
#define ECIPERF_6_PKG_NUM_DEF 0
#define ECIPERF_7_DURATION_MIN 1
#define ECIPERF_7_DURATION_MAX 65000
#define ECIPERF_7_DURATION_DEF 65000
#define ECIPERF_8_RPT_INTERVAL_MIN 1
#define ECIPERF_8_RPT_INTERVAL_MAX 65000
#define ECIPERF_8_RPT_INTERVAL_DEF 10
/* AT+ECDNSCFG */
#define ECDNSCFG_DNS_NUM 4
#define ECDNSCFG_DNS_STR_MAX_LEN 64
#define ECDNSCFG_DNS_STR_DEF PNULL
#define ATEC_ECDNSCFG_GET_CNF_STR_LEN 256
#define ATEC_ECDNSCFG_GET_CNF_TMP_STR_LEN 50
/* AT+ECNETCFG */
#define ECNETCFG_0_MAX_PARM_STR_LEN 32
#define ECNETCFG_0_MAX_PARM_STR_DEFAULT NULL
#define ECNETCFG_1_PPP_AUTH_SELECT_MIN 0
#define ECNETCFG_1_PPP_AUTH_SELECT_MAX 1
#define ECNETCFG_1_PPP_AUTH_SELECT_DEF 0
#define ECNETCFG_1_NAT_MIN 0
#define ECNETCFG_1_NAT_MAX 1
#define ECNETCFG_1_NAT_DEF 0
#define ECNETCFG_2_HOST_ADDR_STR_MAX_LEN 64
#define ECNETCFG_2_HOST_ADDR_STR_DEFAULT NULL
/* AT+ECNETDEVCTL */
#define ECNETDEVCTL_0_OP_MIN 0
#define ECNETDEVCTL_0_OP_MAX 3
#define ECNETDEVCTL_0_OP_DEF 0
#define ECNETDEVCTL_1_CID_MIN 1
#define ECNETDEVCTL_1_CID_MAX 15
#define ECNETDEVCTL_1_CID_DEF 1
#define ECNETDEVCTL_2_URCEN_MIN 0
#define ECNETDEVCTL_2_URCEN_MAX 1
#define ECNETDEVCTL_2_URCEN_DEF 0
/* AT+ECSOCR*/
#define ECSOCR_0_TYPE_STR_MAX_LEN 6
#define ECSOCR_0_TYPE_STR_DEF NULL
#define ECSOCR_1_PROTOCOL_MIN 6
#define ECSOCR_1_PROTOCOL_MAX 17
#define ECSOCR_1_PROTOCOL_DEF 17
#define ECSOCR_2_LISTEN_PORT_MIN 0
#define ECSOCR_2_LISTEN_PORT_MAX AT_SOC_PORT_MAX
#define ECSOCR_2_LISTEN_PORT_DEF 0
#define ECSOCR_3_RECEIVE_CONTROL_MIN 0
#define ECSOCR_3_RECEIVE_CONTROL_MAX 1
#define ECSOCR_3_RECEIVE_CONTROL_DEF 1
#define ECSOCR_4_AF_TYPE_STR_MAX_LEN 8
#define ECSOCR_4_AF_TYPE_STR_DEF NULL
#define ECSOCR_5_IP_ADDR_STR_MAX_LEN AT_SOC_IP_ADDR_STRING_LENGTH_MAX
#define ECSOCR_5_IP_ADDR_STR_DEF NULL
/*AT+ECSOST*/
#define ECSOST_0_SOCKET_ID_MIN AT_SOC_FD_MIN
#define ECSOST_0_SOCKET_ID_MAX AT_SOC_FD_MAX
#define ECSOST_0_SOCKET_ID_DEF AT_SOC_FD_DEF
#define ECSOST_1_IP_ADDR_STR_MAX_LEN AT_SOC_IP_ADDR_STRING_LENGTH_MAX
#define ECSOST_1_IP_ADDR_STR_DEF NULL
#define ECSOST_2_REMOTE_PORT_MIN AT_SOC_PORT_MIN
#define ECSOST_2_REMOTE_PORT_MAX AT_SOC_PORT_MAX
#define ECSOST_2_REMOTE_PORT_DEF 0
#define ECSOST_3_LENGTH_MIN AT_SOC_UL_LENGTH_MIN
#define ECSOST_3_LENGTH_MAX AT_SOC_UL_LENGTH_MAX
#define ECSOST_3_LENGTH_DEF 0
#define ECSOST_4_DATA_MAX_LEN AT_SOC_UL_LENGTH_MAX
#define ECSOST_4_DATA_DEF NULL
#define ECSOST_5_SEQUENCE_MIN AT_SOC_UL_DATA_SEQUENCE_MIN
#define ECSOST_5_SEQUENCE_MAX AT_SOC_UL_DATA_SEQUENCE_MAX
#define ECSOST_5_SEQUENCE_DEF 0
#define ECSOST_6_SEGMENT_ID_MIN AT_SOC_UL_SEGMENT_ID_MIN
#define ECSOST_6_SEGMENT_ID_MAX AT_SOC_UL_SEGMENT_ID_MAX
#define ECSOST_6_SEGMENT_ID_DEF 0
#define ECSOST_7_SEGMENT_NUM_MIN AT_SOC_UL_SEGMENT_NUM_MIN
#define ECSOST_7_SEGMENT_NUM_MAX AT_SOC_UL_SEGMENT_NUM_MAX
#define ECSOST_7_SEGMENT_NUM_DEF 0
#define ECSOSTT_0_SOCKET_ID_MIN AT_SOC_FD_MIN
#define ECSOSTT_0_SOCKET_ID_MAX AT_SOC_FD_MAX
#define ECSOSTT_0_SOCKET_ID_DEF AT_SOC_FD_DEF
#define ECSOSTT_1_IP_ADDR_STR_MAX_LEN AT_SOC_IP_ADDR_STRING_LENGTH_MAX
#define ECSOSTT_1_IP_ADDR_STR_DEF NULL
#define ECSOSTT_2_REMOTE_PORT_MIN AT_SOC_PORT_MIN
#define ECSOSTT_2_REMOTE_PORT_MAX AT_SOC_PORT_MAX
#define ECSOSTT_2_REMOTE_PORT_DEF 0
#define ECSOSTT_3_LENGTH_MIN AT_SOC_UL_LENGTH_MIN
#define ECSOSTT_3_LENGTH_MAX AT_SOC_UL_LENGTH_MAX
#define ECSOSTT_3_LENGTH_DEF -1
#define ECSOSTT_4_SEQUENCE_MIN AT_SOC_UL_DATA_SEQUENCE_MIN
#define ECSOSTT_4_SEQUENCE_MAX AT_SOC_UL_DATA_SEQUENCE_MAX
#define ECSOSTT_4_SEQUENCE_DEF 0
/*AT+ECSOSTF*/
#define ECSOSTF_0_SOCKET_ID_MIN AT_SOC_FD_MIN
#define ECSOSTF_0_SOCKET_ID_MAX AT_SOC_FD_MAX
#define ECSOSTF_0_SOCKET_ID_DEF AT_SOC_FD_DEF
#define ECSOSTF_1_IP_ADDR_STR_MAX_LEN AT_SOC_IP_ADDR_STRING_LENGTH_MAX
#define ECSOSTF_1_IP_ADDR_STR_DEF NULL
#define ECSOSTF_2_REMOTE_PORT_MIN AT_SOC_PORT_MIN
#define ECSOSTF_2_REMOTE_PORT_MAX AT_SOC_PORT_MAX
#define ECSOSTF_2_REMOTE_PORT_DEF 0
#define ECSOSTF_3_FLAG_STR_MAX_LEN 5
#define ECSOSTF_3_FLAG_STR_DEF NULL
#define ECSOSTF_4_LENGTH_MIN AT_SOC_UL_LENGTH_MIN
#define ECSOSTF_4_LENGTH_MAX AT_SOC_UL_LENGTH_MAX
#define ECSOSTF_4_LENGTH_DEF 0
#define ECSOSTF_5_DATA_MAX_LEN AT_SOC_UL_LENGTH_MAX
#define ECSOSTF_5_DATA_DEF NULL
#define ECSOSTF_6_SEQUENCE_MIN AT_SOC_UL_DATA_SEQUENCE_MIN
#define ECSOSTF_6_SEQUENCE_MAX AT_SOC_UL_DATA_SEQUENCE_MAX
#define ECSOSTF_6_SEQUENCE_DEF 0
#define ECSOSTF_7_SEGMENT_ID_MIN AT_SOC_UL_SEGMENT_ID_MIN
#define ECSOSTF_7_SEGMENT_ID_MAX AT_SOC_UL_SEGMENT_ID_MAX
#define ECSOSTF_7_SEGMENT_ID_DEF 0
#define ECSOSTF_8_SEGMENT_NUM_MIN AT_SOC_UL_SEGMENT_NUM_MIN
#define ECSOSTF_8_SEGMENT_NUM_MAX AT_SOC_UL_SEGMENT_NUM_MAX
#define ECSOSTF_8_SEGMENT_NUM_DEF 0
#define ECSOSTFT_0_SOCKET_ID_MIN AT_SOC_FD_MIN
#define ECSOSTFT_0_SOCKET_ID_MAX AT_SOC_FD_MAX
#define ECSOSTFT_0_SOCKET_ID_DEF AT_SOC_FD_DEF
#define ECSOSTFT_1_IP_ADDR_STR_MAX_LEN AT_SOC_IP_ADDR_STRING_LENGTH_MAX
#define ECSOSTFT_1_IP_ADDR_STR_DEF NULL
#define ECSOSTFT_2_REMOTE_PORT_MIN AT_SOC_PORT_MIN
#define ECSOSTFT_2_REMOTE_PORT_MAX AT_SOC_PORT_MAX
#define ECSOSTFT_2_REMOTE_PORT_DEF 0
#define ECSOSTFT_3_FLAG_STR_MAX_LEN 5
#define ECSOSTFT_3_FLAG_STR_DEF NULL
#define ECSOSTFT_4_LENGTH_MIN AT_SOC_UL_LENGTH_MIN
#define ECSOSTFT_4_LENGTH_MAX AT_SOC_UL_LENGTH_MAX
#define ECSOSTFT_4_LENGTH_DEF -1
#define ECSOSTFT_5_SEQUENCE_MIN AT_SOC_UL_DATA_SEQUENCE_MIN
#define ECSOSTFT_5_SEQUENCE_MAX AT_SOC_UL_DATA_SEQUENCE_MAX
#define ECSOSTFT_5_SEQUENCE_DEF 0
/*AT+ECQSOS*/
#define ECQSOS_0_SOCKET1_ID_MIN AT_SOC_FD_MIN
#define ECQSOS_0_SOCKET1_ID_MAX AT_SOC_FD_MAX
#define ECQSOS_0_SOCKET1_ID_DEF AT_SOC_FD_DEF
#define ECQSOS_1_SOCKET2_ID_MIN AT_SOC_FD_MIN
#define ECQSOS_1_SOCKET2_ID_MAX AT_SOC_FD_MAX
#define ECQSOS_1_SOCKET2_ID_DEF AT_SOC_FD_DEF
#define ECQSOS_2_SOCKET3_ID_MIN AT_SOC_FD_MIN
#define ECQSOS_2_SOCKET3_ID_MAX AT_SOC_FD_MAX
#define ECQSOS_2_SOCKET3_ID_DEF AT_SOC_FD_DEF
#define ECQSOS_3_SOCKET4_ID_MIN AT_SOC_FD_MIN
#define ECQSOS_3_SOCKET4_ID_MAX AT_SOC_FD_MAX
#define ECQSOS_3_SOCKET4_ID_DEF AT_SOC_FD_DEF
#define ECQSOS_4_SOCKET5_ID_MIN AT_SOC_FD_MIN
#define ECQSOS_4_SOCKET5_ID_MAX AT_SOC_FD_MAX
#define ECQSOS_4_SOCKET5_ID_DEF AT_SOC_FD_DEF
/*AT+ECSORF*/
#define ECSORF_0_SOCKET_ID_MIN AT_SOC_FD_MIN
#define ECSORF_0_SOCKET_ID_MAX AT_SOC_FD_MAX
#define ECSORF_0_SOCKET_ID_DEF AT_SOC_FD_DEF
#define ECSORF_1_LENGTH_ID_MIN AT_SOC_DL_LENGTH_MIN
#define ECSORF_1_LENGTH_ID_MAX AT_SOC_DL_LENGTH_MAX
#define ECSORF_1_LENGTH_ID_DEF 0
/*AT+ECSOCO*/
#define ECSOCO_0_SOCKET_ID_MIN AT_SOC_FD_MIN
#define ECSOCO_0_SOCKET_ID_MAX AT_SOC_FD_MAX
#define ECSOCO_0_SOCKET_ID_DEF AT_SOC_FD_DEF
#define ECSOCO_1_IP_ADDR_STR_MAX_LEN AT_SOC_IP_ADDR_STRING_LENGTH_MAX
#define ECSOCO_1_IP_ADDR_STR_DEF NULL
#define ECSOCO_2_REMOTE_PORT_MIN AT_SOC_PORT_MIN
#define ECSOCO_2_REMOTE_PORT_MAX AT_SOC_PORT_MAX
#define ECSOCO_2_REMOTE_PORT_DEF 0
/*AT+ECSOSD*/
#define ECSOSD_0_SOCKET_ID_MIN AT_SOC_FD_MIN
#define ECSOSD_0_SOCKET_ID_MAX AT_SOC_FD_MAX
#define ECSOSD_0_SOCKET_ID_DEF AT_SOC_FD_DEF
#define ECSOSD_1_LENGTH_MIN AT_SOC_UL_LENGTH_MIN
#define ECSOSD_1_LENGTH_MAX AT_SOC_UL_LENGTH_MAX
#define ECSOSD_1_LENGTH_DEF 0
#define ECSOSD_2_DATA_MAX_LEN AT_SOC_UL_LENGTH_MAX
#define ECSOSD_2_DATA_DEF NULL
#define ECSOSD_3_FLAG_STR_MAX_LEN 5
#define ECSOSD_3_FLAG_STR_DEF NULL
#define ECSOSD_3_FLAG_DEF 0
#define ECSOSD_4_SEQUENCE_MIN AT_SOC_UL_DATA_SEQUENCE_MIN
#define ECSOSD_4_SEQUENCE_MAX AT_SOC_UL_DATA_SEQUENCE_MAX
#define ECSOSD_4_SEQUENCE_DEF 0
#define ECSOSDT_0_SOCKET_ID_MIN AT_SOC_FD_MIN
#define ECSOSDT_0_SOCKET_ID_MAX AT_SOC_FD_MAX
#define ECSOSDT_0_SOCKET_ID_DEF AT_SOC_FD_DEF
#define ECSOSDT_1_LENGTH_MIN AT_SOC_UL_LENGTH_MIN
#define ECSOSDT_1_LENGTH_MAX AT_SOC_UL_LENGTH_MAX
#define ECSOSDT_1_LENGTH_DEF -1
#define ECSOSDT_2_FLAG_STR_MAX_LEN 5
#define ECSOSDT_2_FLAG_STR_DEF NULL
#define ECSOSDT_2_FLAG_DEF 0
#define ECSOSDT_3_SEQUENCE_MIN AT_SOC_UL_DATA_SEQUENCE_MIN
#define ECSOSDT_3_SEQUENCE_MAX AT_SOC_UL_DATA_SEQUENCE_MAX
#define ECSOSDT_3_SEQUENCE_DEF 0
/*AT+ECSOCL*/
#define ECSOCL_0_SOCKET_ID_MIN AT_SOC_FD_MIN
#define ECSOCL_0_SOCKET_ID_MAX AT_SOC_FD_MAX
#define ECSOCL_0_SOCKET_ID_DEF AT_SOC_FD_DEF
/*AT+ECSONMI*/
#define ECSONMI_0_MODE_MIN AT_SOC_NOTIFY_MODE_MIN
#define ECSONMI_0_MODE_MAX AT_SOC_NOTIFY_MODE_MAX
#define ECSONMI_0_MODE_DEF AT_SOC_NOTIFY_MODE_IGNORE
#define ECSONMI_1_DL_BUFFER_MAX AT_SOC_PUBLIC_DL_BUFFER_MAX
#define ECSONMI_1_DL_BUFFER_MIN AT_SOC_PUBLIC_DL_BUFFER_MIN
#define ECSONMI_1_DL_BUFFER_DEF AT_SOC_PUBLIC_DL_BUFFER_IGNORE
#define ECSONMI_2_DL_PKG_NUM_MAX AT_SOC_PUBLIC_DL_PKG_NUM_MAX
#define ECSONMI_2_DL_PKG_NUM_MIN AT_SOC_PUBLIC_DL_PKG_NUM_MIN
#define ECSONMI_2_DL_PKG_NUM_DEF AT_SOC_PUBLIC_DL_PKG_NUM_IGNORE
/*AT+ECSONMIE*/
#define ECSONMIE_0_SOCKET_ID_MIN AT_SOC_FD_MIN
#define ECSONMIE_0_SOCKET_ID_MAX AT_SOC_FD_MAX
#define ECSONMIE_0_SOCKET_ID_DEF AT_SOC_FD_DEF
#define ECSONMIE_1_MODE_MIN AT_SOC_NOTIFY_MODE_MIN
#define ECSONMIE_1_MODE_MAX AT_SOC_NOTIFY_MODE_PRIVATE_DISABLE
#define ECSONMIE_1_MODE_DEF AT_SOC_NOTIFY_MODE_IGNORE
#define ECSONMIE_2_DL_BUFFER_MAX AT_SOC_PRIVATE_DL_BUFFER_MAX
#define ECSONMIE_2_DL_BUFFER_MIN AT_SOC_PRIVATE_DL_BUFFER_MIN
#define ECSONMIE_2_DL_BUFFER_DEF AT_SOC_PRIVATE_DL_BUFFER_IGNORE
#define ECSONMIE_3_DL_PKG_NUM_MAX AT_SOC_PRIVATE_DL_PKG_NUM_MAX
#define ECSONMIE_3_DL_PKG_NUM_MIN AT_SOC_PRIVATE_DL_PKG_NUM_MIN
#define ECSONMIE_3_DL_PKG_NUM_DEF AT_SOC_PRIVATE_DL_PKG_NUM_IGNORE
#define ECSOSTATUS_0_SOCKET_ID_MIN AT_SOC_FD_MIN
#define ECSOSTATUS_0_SOCKET_ID_MAX AT_SOC_FD_MAX
#define ECSOSTATUS_0_SOCKET_ID_DEF AT_SOC_FD_DEF
#define ECSRVSOCRTCP_0_LISTEN_PORT_MIN 10000 // tcpip port manager limited
#define ECSRVSOCRTCP_0_LISTEN_PORT_MAX 10015
#define ECSRVSOCRTCP_0_LISTEN_PORT_DEF 10000
#define ECSRVSOCRTCP_1_AF_TYPE_STR_MAX_LEN 8
#define ECSRVSOCRTCP_1_AF_TYPE_STR_DEF NULL
#define ECSRVSOCRTCP_2_IP_ADDR_STR_MAX_LEN AT_SOC_IP_ADDR_STRING_LENGTH_MAX
#define ECSRVSOCRTCP_2_IP_ADDR_STR_DEF NULL
#define ECSRVSOCLLISTEN_0_SERVER_FD_MIN AT_SOC_FD_MIN
#define ECSRVSOCLLISTEN_0_SERVER_FD_MAX AT_SOC_FD_MAX
#define ECSRVSOCLLISTEN_0_SERVER_FD_DEF AT_SOC_FD_DEF
#define ECSRVSOCLCLIENT_0_SERVER_FD_MIN AT_SOC_FD_MIN
#define ECSRVSOCLCLIENT_0_SERVER_FD_MAX AT_SOC_FD_MAX
#define ECSRVSOCLCLIENT_0_SERVER_FD_DEF AT_SOC_FD_DEF
#define ECSRVSOCLCLIENT_1_CLIENT_FD_MIN AT_SOC_FD_MIN
#define ECSRVSOCLCLIENT_1_CLIENT_FD_MAX AT_SOC_FD_MAX
#define ECSRVSOCLCLIENT_1_CLIENT_FD_DEF AT_SOC_FD_ALL
#define ECCRVSOTCPSENDCLT_0_MIN AT_SOC_FD_MIN
#define ECCRVSOTCPSENDCLT_0_MAX AT_SOC_FD_MAX
#define ECCRVSOTCPSENDCLT_0_DEF AT_SOC_FD_DEF
#define ECCRVSOTCPSENDCLT_1_MIN 1
#define ECCRVSOTCPSENDCLT_1_MAX SUPPORT_MAX_SOCKET_RAW_DATA_LENGTH
#define ECCRVSOTCPSENDCLT_1_DEF 1
#define ECCRVSOTCPSENDCLT_2_STR_MAX_LEN 6
#define ECCRVSOTCPSENDCLT_2_STR_DEF NULL
#define ECCRVSOTCPSENDCLT_3_MIN 0
#define ECCRVSOTCPSENDCLT_3_MAX 2
#define ECCRVSOTCPSENDCLT_3_DEF 0
#define ECCRVSOTCPSENDCLT_4_MIN 0
#define ECCRVSOTCPSENDCLT_4_MAX 1
#define ECCRVSOTCPSENDCLT_4_DEF 0
#define ECSRVSOTCPLISTENSTATUS_0_SERVER_FD_MIN AT_SOC_FD_MIN
#define ECSRVSOTCPLISTENSTATUS_0_SERVER_FD_MAX AT_SOC_FD_MAX
#define ECSRVSOTCPLISTENSTATUS_0_SERVER_FD_DEF AT_SOC_FD_DEF
#define ECCRVSOTCPSENDCLTT_0_MIN AT_SOC_FD_MIN
#define ECCRVSOTCPSENDCLTT_0_MAX AT_SOC_FD_MAX
#define ECCRVSOTCPSENDCLTT_0_DEF AT_SOC_FD_DEF
#define ECCRVSOTCPSENDCLTT_1_MIN 1
#define ECCRVSOTCPSENDCLTT_1_MAX SUPPORT_MAX_SOCKET_RAW_DATA_LENGTH
#define ECCRVSOTCPSENDCLTT_1_DEF -1
#define ECCRVSOTCPSENDCLTT_2_MIN 0
#define ECCRVSOTCPSENDCLTT_2_MAX 2
#define ECCRVSOTCPSENDCLTT_2_DEF 0
#define ECCRVSOTCPSENDCLTT_3_MIN 0
#define ECCRVSOTCPSENDCLTT_3_MAX 1
#define ECCRVSOTCPSENDCLTT_3_DEF 0
#define ECSOCR_NAME "+ECSOCR"
#define ECSOST_NAME "+ECSOST"
#define ECSOSTT_NAME "+ECSOSTT"
#define ECSOSTF_NAME "+ECSOSTF"
#define ECSOSTFT_NAME "+ECSOSTFT"
#define ECQSOS_NAME "+ECQSOS"
#define ECSORF_NAME "+ECSORF"
#define ECSOCO_NAME "+ECSOCO"
#define ECSOSD_NAME "+ECSOSD"
#define ECSOSDT_NAME "+ECSOSDT"
#define ECSOCL_NAME "+ECSOCL"
#define ECSONMI_NAME "+ECSONMI"
#define ECSONMIE_NAME "+ECSONMIE"
#define ECSOSTATUS_NAME "+ECSOSTATUS"
#define ECSOCLI_NAME "+ECSOCLI"
#define ECSOSTR_NAME "+ECSOSTR"
#define ECQSOSR_NAME "+ECQSOSR"
//#else
#if 0
#define ECSOCR_NAME "+NSOCR"
#define ECSOST_NAME "+NSOST"
#define ECSOSTT_NAME "+NSOSTT"
#define ECSOSTF_NAME "+NSOSTF"
#define ECSOSTFT_NAME "+NSOSTFT"
#define ECQSOS_NAME "+NQSOS"
#define ECSORF_NAME "+NSORF"
#define ECSOCO_NAME "+NSOCO"
#define ECSOSD_NAME "+NSOSD"
#define ECSOSDT_NAME "+NSOSDT"
#define ECSOCL_NAME "+NSOCL"
#define ECSONMI_NAME "+NSONMI"
#define ECSONMIE_NAME "+NSONMIE"
#define ECSOSTATUS_NAME "+NSOSTATUS"
#define ECSOCLI_NAME "+NSOCLI"
#define ECSOSTR_NAME "+NSOSTR"
#define ECQSOSR_NAME "+NQSOSR"
#endif
CmsRetId nmSNTP(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmPING(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECDNS(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECIPERF(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmSKTCREATE(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmSKTSEND(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmSKTSENDT(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmSKTSTATUS(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmSKTCONNECT(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmSKTBIND(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmSKTDELETE(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECSOCR(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECSOST(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECSOSTT(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECSOSTF(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECSOSTFT(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECQSOS(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECSORF(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECSOCO(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECSOSD(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECSOSDT(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECSOCL(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECSONMI(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECSONMIE(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECSOSTATUS(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECDNSCFG(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECSRVSOCRTCP(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECSRVSOCLLISTEN(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECSRVSOCLCLIENT(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECSRVSOTCPSENDCLT(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECSRVSOTCPLISTENSTATUS(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECSRVSOTCPSENDCLTT(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmSocketInputData(UINT8 chanId, UINT8 *pInput, UINT16 length);
void nmSocketFreeSendInfo(void);
CmsRetId nmECNETCFG(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmECNETDEVCTL(const AtCmdInputContext *pAtCmdReq);
#endif

View File

@@ -0,0 +1,27 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename:
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_ADC_CNF_IND_H__
#define __ATEC_ADC_CNF_IND_H__
#include "at_util.h"
CmsRetId ecAdcCnf(UINT16 reqHandle, UINT16 rc, void *paras);
void atApplAdcProcCmsCnf(CmsApplCnf *pCmsCnf);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,37 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_dm.h
*
* Description: Device manager
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_ALARM_H__
#define __ATEC_ALARM_H__
#include "at_util.h"
typedef enum applAlarmPrimId_Enum
{
APPL_ALARM_PRIM_ID_BASE = 0,
APPL_ALARM_VOLT_IND,
APPL_ALARM_THERM_IND,
APPL_ALARM_PRIM_ID_END = 0xFF
}applAlarmPrimId;
void atApplAlarmProcCmsInd(CmsApplInd *pCmsInd);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,26 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_ctwing_cnf_ind.h
*
* Description: Process ctwing related AT commands
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_CTWING_CNF_IND_H_
#define _ATEC_CTWING_CNF_IND_H_
#include "at_util.h"
void atApplCtwProcCmsCnf(CmsApplCnf *pCmsCnf);
void atApplCtwProcCmsInd(CmsApplInd *pCmsInd);
#endif

View File

@@ -0,0 +1,30 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename:
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_DM_CNF_IND_H__
#define __ATEC_DM_CNF_IND_H__
#include "at_util.h"
CmsRetId dmCtccRecvInd(UINT16 reqhandle, void *paras);
CmsRetId dmCuccRecvInd(UINT16 reqhandle, void *paras);
CmsRetId dmCmccRecvInd(UINT16 reqhandle, void *paras);
void atApplDmProcCmsInd(CmsApplInd *pCmsInd);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,34 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename:
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_EXAMPLE_CNF_IND_H__
#define __ATEC_EXAMPLE_CNF_IND_H__
#include "at_util.h"
CmsRetId ecTestbCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId ecTestcCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId ecTestcInd(UINT16 indHandle, void *paras);
void atApplExampleProcCmsCnf(CmsApplCnf *pCmsCnf);
void atApplExampleProcCmsInd(CmsApplInd *pCmsInd);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,42 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename:
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_FILE_CNF_IND_H__
#define __ATEC_FILE_CNF_IND_H__
#include "at_util.h"
CmsRetId fileOpenCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId fileReadCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId fileWriteCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId fileSeekCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId filePositionCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId fileTucatCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId fileCloseCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId fileRenameCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId fileEraseCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId fileDeleteCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId fileMsLdsCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId fileMsLstCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId fileMsDelCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId fileMsUplCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId fileMsDwlCnf(UINT16 reqHandle, UINT16 rc, void *paras);
void atApplFileProcCmsCnf(CmsApplCnf *pCmsCnf);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,26 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename:atec_fwupd_cnf_ind.h
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_FWUPD_CNF_IND_H__
#define __ATEC_FWUPD_CNF_IND_H__
#include "at_util.h"
void atApplFwupdProcCmsCnf(CmsApplCnf *pCmsCnf);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,30 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_http_cnf_ind.h
*
* Description: Process http(s) client related AT commands
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_HTTP_CNF_IND_H_
#define _ATEC_HTTP_CNF_IND_H_
#include "at_util.h"
//CmsRetId httpSendCnf(uint16_t reqHandle, uint16_t rc, void *paras);
//CmsRetId httpReadCnf(uint16_t reqHandle, uint16_t rc, void *paras);
//CmsRetId httpCloseCnf(uint16_t reqHandle, uint16_t rc, void *paras);
void atApplHttpProcCmsCnf(CmsApplCnf *pCmsCnf);
void atApplHttpProcCmsInd(CmsApplInd *pCmsInd);
#endif

View File

@@ -0,0 +1,37 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_mqtt_cnf_ind.h
*
* Description: Process MQTT related AT commands
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_MQTT_CNF_IND_H
#define _ATEC_MQTT_CNF_IND_H
#include "at_util.h"
#include "atec_mqtt.h"
CmsRetId mqttOpenInd(UINT16 indHandle, void *paras);
CmsRetId mqttCloseInd(UINT16 indHandle, void *paras);
CmsRetId mqttConnInd(UINT16 indHandle, void *paras);
CmsRetId mqttDiscInd(UINT16 indHandle, void *paras);
CmsRetId mqttSubInd(UINT16 indHandle, void *paras);
CmsRetId mqttUnSubInd(UINT16 indHandle, void *paras);
CmsRetId mqttPubInd(UINT16 indHandle, void *paras);
CmsRetId mqttStatInd(UINT16 indHandle, void *paras);
CmsRetId mqttRecvInd(UINT16 indHandle, void *paras);
void atApplMqttProcCmsCnf(CmsApplCnf *pCmsCnf);
void atApplMqttProcCmsInd(CmsApplInd *pCmsInd);
#endif

View File

@@ -0,0 +1,31 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_ssl_cnf_ind.h
*
* Description: Process ssl client related AT commands
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_SSL_CNF_IND_H_
#define _ATEC_SSL_CNF_IND_H_
#include "at_util.h"
CmsRetId sslOpenCnf(uint16_t reqHandle, uint16_t rc, void *paras);
CmsRetId httpReadCnf(uint16_t reqHandle, uint16_t rc, void *paras);
CmsRetId httpCloseCnf(uint16_t reqHandle, uint16_t rc, void *paras);
void atApplSslProcCmsCnf(CmsApplCnf *pCmsCnf);
void atApplSslProcCmsInd(CmsApplInd *pCmsInd);
#endif

View File

@@ -0,0 +1,36 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_tcpip_cnf_ind.h
*
* Description: Process TCP/IP service related AT commands
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_TCPIP_CNF_IND_API_H
#define _ATEC_TCPIP_CNF_IND_API_H
#include "at_util.h"
void atTcpIpProcNmApplCnf(CmsApplCnf *pApplCnf);
void atTcpIpProcNmApplInd(CmsApplInd *pApplInd);
void atTcpIpProcSktApplCnf(CmsApplCnf *pApplCnf);
void atTcpIpProcSktApplInd(CmsApplInd *pApplInd);
void atTcpIpProcSocApplCnf(CmsApplCnf *pApplCnf);
void atTcpIpProcSocApplInd(CmsApplInd *pApplInd);
void atTcpIpProcSrvSocApplCnf(CmsApplCnf *pApplCnf);
void atTcpIpProcSrvSocApplInd(CmsApplInd *pApplInd);
#endif

View File

@@ -0,0 +1,5 @@
at_cust_dev.c includes AT commands which may modifed by customer e.g. CGMR(set customer own version info)
at_product.c includes AT commands for prodcution
at_plat_dev.c in1udes AT commands defined by AirM2M for debug and misc purpose

View File

@@ -0,0 +1,41 @@
#ifndef _AT_ADC_TASK_
#define _AT_ADC_TASK_
#include "FreeRTOS.h"
#include "queue.h"
#define AT_ADC_TASK_STACK_SIZE (512)
#define AT_ADC_MSG_TIMEOUT (1000)
#define AT_ADC_GET_RESULT_TIMOUT (2000)
#define AT_ADC_MSG_MAX_NUM (2)
#define AT_ADC_REQ_BITMAP_TEMP (0x1)
#define AT_ADC_REQ_BITMAP_VBAT (0x2)
typedef enum applAdcPrimId_Enum
{
APPL_ADC_PRIM_ID_BASE = 0,
APPL_ADC_REQ,
APPL_ADC_CNF,
APPL_ADC_PRIM_ID_END = 0xFF
}applAdcPrimId;
typedef struct
{
uint32_t reqhandle;
uint32_t request;
}adcReqMsg;
typedef struct
{
uint32_t ack;
uint32_t data[2];
}adcCnfMsg;
int32_t adcSendMsg(uint32_t atHandle, QueueHandle_t msgHandle, uint32_t req);
int32_t atAdcTaskInit(void);
#endif

View File

@@ -0,0 +1,254 @@
/******************************************************************************
* (C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
*******************************************************************************
* Filename: at_api.h
*
* Description: AT CMD entity/task (in CMS task) api
*
* History:
*
* Notes: All other tasks if need to use AT CMD functions, should ONLY include this header file
*
******************************************************************************/
#ifndef __AT_API_H__
#define __AT_API_H__
#include "cms_api.h"
#include "at_def.h"
/******************************************************************************
*****************************************************************************
* EXTERNAL COMMON MARCO
*****************************************************************************
******************************************************************************/
#define AT_CHAN_NAME_SIZE 8
#define AT_UART_PRINT_MAX 256
#define UARTAT_CHAN_NAME "UARTAT"
#define UARTAT_CHAN_NAME_LEN 6
#define USBAT_CHAN_NAME "USBAT"
#define USBAT_CHAN_NAME_LEN 5
#define USBPPP_CHAN_NAME "USBPP"
#define USBPPP_CHAN_NAME_LEN 5
/*
* DEFAULT AT CHANNEL NAME, if registered, assign the fixed chanID: AT_CHAN_DEFAULT
* USB AT is set to default channel
*/
#define AT_DEFAULT_CHAN_NAME USBAT_CHAN_NAME
#define AT_DEFAULT_CHAN_NAME_LEN USBAT_CHAN_NAME_LEN
/*
* AT CMD MAC string size
*/
#define AT_CMD_STR_MAX_LEN 3072
/*
* Return the succ sent length.
* 1> if all sent to CCIO Tx task, return: strLen
* 2> if failed, return < 0
*/
typedef INT32 (*AtRespFunctionP)(UINT8 chanId, const CHAR *pStr, UINT32 strLen, void *pArg);
typedef INT32 (*AtUrcFunctionP)(UINT8 chanId, const CHAR *pStr, UINT32 strLen);
/*
* AT resp and URC interface, the resp/urc string is carried in "DlPduBlock", and "DlPduBlock" should be freed in caller.
* Return the succ sent length.
* 1> if all sent to CCIO Tx task, return: DlPduBlock->length
* 2> if failed, return < 0
*/
typedef INT32 (*AtRespPduFunctionP)(UINT8 chanId, DlPduBlock *pPdu, void *pArg);
typedef INT32 (*AtUrcPduFunctionP)(UINT8 chanId, DlPduBlock *pPdu);
/******************************************************************************
*****************************************************************************
* EXTERNAL COMMON STRUCT
*****************************************************************************
******************************************************************************/
/*
* SigId: SIG_AT_CMD_STR_REQ
*/
typedef struct AtCmdStrReq_Tag
{
UINT8 atChanId; //AT channel ID
UINT8 rsvd0;
#if 0 //if AT STRING need to pass a copy in the signal, not suggest
UINT16 atStrLen;
UINT8 atStr[];
#else
UINT16 atStrLen;
CHAR *pAtStr; //memory allocated in heap by OsaAllocateMemory()
#endif
}AtCmdStrReq;
/*
* SigId: SIG_AT_CMD_DATA_MODE_HS_CNF */
typedef struct AtCmdDataModeHSCnf_Tag
{
UINT8 atChanId; //AT channel ID
UINT8 rsvd[3];
}AtCmdDataModeHSCnf;
/*
*/
typedef struct AtChanRegInfo_tag
{
CHAR chanName[AT_CHAN_NAME_SIZE];
AtRespFunctionP atRespFunc;
void *pRespArg; //passed in atRespFunc(chanId, str, pRespArg), or atRespPduFunc(chanId, pdu, pRespArg);
AtUrcFunctionP atUrcFunc;
/*
* AT RESP/URC PDU mode, the resp/urc string is carried in "DlPduBlock", and "DlPduBlock" should be freed in caller
* 1> "atRespFunc" & "atUrcFunc" is must, and "atRespPduFunc"/"atUrcPduFunc" is optional
* 2> "atRespPduFunc"/"atUrcPduFunc" is more efficient, expecially for longer RESP/URC string
* 3> "DlPduBlock" should be freed in caller via API: OsaFreeDlPduBlockList()
*/
AtRespPduFunctionP atRespPduFunc;
AtUrcPduFunctionP atUrcPduFunc;
}AtChanRegInfo; //28 bytes
/*
* SIGID: SIG_AT_CMD_CONTINUE_REQ
*/
typedef struct AtCmdContinueReq_tag
{
UINT8 atChanId; //AT channel ID
UINT8 rsvd0;
UINT16 rsvd1;
}AtCmdContinueReq;
/*
*/
typedef struct AtRilAtCmdReqData_Tag
{
CHAR *pCmdLine; /* memory alloacted in heap by: OsaAllocateMemory() */
UINT16 cmdLen;
UINT16 rsvd;
AtRespFunctionP respCallback;
void *respData;
}AtRilAtCmdReqData; //16 bytes
/******************************************************************************
*****************************************************************************
* EXTERNAL API
*****************************************************************************
******************************************************************************/
/*
* register a AT channel;
* 1> if succ, return the "channId" (>=0);
* 2> else, return "CmsRetId" (< 0)
*/
INT32 atRegisterAtChannel(AtChanRegInfo *pAtRegInfo);
/*
* deregister AT channel by AT channel ID
*/
void atDeRegisterAtChannel(UINT8 atChanId);
/*
* send the AT command to AT CMD task: CMS_TASK_ID
*/
void atSendAtcmdStrSig(UINT8 atChanId, const UINT8 *pCmdStr, UINT32 len);
/*
* send the DATA MODE Handshake cnf to AT CMD task: CMS_TASK_ID
*/
void atSendAtcmdDataModeHSCnfSig(UINT8 atChanId);
/*
* at UART print callback
*/
void atUartPrintCallback(UINT16 paramSize, void *pParam);
/*
* print LOG to AT UART port
*/
#define atUartPrint(fmt, ...) \
do { \
CHAR *PSTRUARTPRINT = (CHAR *)OsaAllocMemory(AT_UART_PRINT_MAX); \
if (PSTRUARTPRINT == PNULL) \
{ \
OsaDebugBegin(FALSE, AT_UART_PRINT_MAX, 0, 0); \
OsaDebugEnd(); \
} \
else \
{ \
snprintf(PSTRUARTPRINT, AT_UART_PRINT_MAX, fmt, ##__VA_ARGS__); \
\
cmsNonBlockApiCall(atUartPrintCallback, sizeof(void *), &PSTRUARTPRINT); \
} \
}while(FALSE)
/*
* AT RIL API
*/
CmsRetId atRilAtCmdReq(const CHAR *pAtCmdLine, UINT32 cmdLen, AtRespFunctionP respCallback, void *respData, UINT32 timeOutMs);
/*
* register AT RIL URC callback
*/
CmsRetId atRilRegisterUrcCallback(AtUrcFunctionP urcCallback);
/*
* unregister AT RIL URC callback
*/
CmsRetId atRilDeRegisterUrcCallback(void);
/*
* get dtr (Data Terminal Ready) config: AT&D value
* Comment: called by CCIO
*/
UINT8 atGetDtrCfg(UINT8 atChanId);
/*
* get dcd (Data Carrier Detect) config: AT&C value
* Comment: called by CCIO
*/
UINT8 atGetDcdCfg(UINT8 atChanId);
/*
* get DCD (Data Carrier Detect) state: TRUE - DCD on (low level), FALSE - DCD off (High level)
* Comment: called by CCIO
*/
BOOL atGetDcdState(UINT8 atChanId);
/*
* whether there is an RI type is enablee : TRUE - At least one of the RI Type is not "off", FALSE - All RI Type is "off".
* Comment: called by CCIO
*/
BOOL atIsRITypeEnable(UINT8 atChanId);
/*
* Indicate the RING IND operation is done
* Comment: called by CCIO
*/
void atRingIndDone(UINT8 atChanId);
/*
* notify AT the DTR (Data Terminal Ready) event: on-to-off transition
* Comment: called by CCIO
*/
void atDtrEventInd(UINT8 atChanId);
#endif

View File

@@ -0,0 +1,92 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: at_http_task.h
*
* Description: Process http(s) client related AT commands
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _AT_CTWING_TASK_H_
#define _AT_CTWING_TASK_H_
#include "at_util.h"
#include "ctw_tcp.h"
/*
* APPL SGID: APPL_CTW, related PRIM ID
*/
enum applCtwPrimId_Enum
{
APPL_CTW_PRIM_ID_BASE = 0,
APPL_CTW_HTTP_REG_CNF,
APPL_CTW_HTTP_SEND_CNF,
APPL_CTW_TCP_REG_CNF,
APPL_CTW_TCP_SEND_CNF,
APPL_CTW_TCP_DEREG_CNF,
APPL_CTW_TCP_DL_IND,
APPL_CTW_MQTT_REG_CNF,
APPL_CTW_MQTT_SEND_CNF,
APPL_CTW_MQTT_DL_IND,
APPL_CTW_MQTT_FOTA_IND,
APPL_CTW_PRIM_ID_END = 0xFF
};
enum CTW_CMD_TYPE
{
CTW_HTTP_REG_COMMAND,
CTW_HTTP_SEND_COMMAND,
CTW_TCP_REG_COMMAND,
CTW_TCP_SEND_COMMAND,
CTW_MQTT_REG_COMMAND,
CTW_MQTT_SEND_COMMAND,
CTW_MQTT_DEREG_COMMAND,
};
typedef struct
{
uint16_t athandle;
uint8_t cmd_type;
uint8_t Qos;
char* topic;
char* data;
uint16_t datalen;
uint16_t ackMode;
uint16_t msgId;
uint32_t port;
uint32_t fotaFlag;
} ctwCmdMsg_t;
typedef struct
{
uint8_t ret;
} ctwCnfCmdMsg_t;
typedef struct
{
void *str;
} ctwIndMsg_t;
CmsRetId ctwHttpRegReq(uint16_t athandle);
CmsRetId ctwHttpSendReq(uint16_t athandle, char* topic, char* data);
CmsRetId ctwTcpRegReq(uint16_t athandle);
CmsRetId ctwTcpSendReq(uint16_t athandle, char* data, uint16_t len);
uint8_t ctwTcpRegStatus(void);
void ctwTcpSetRegStatus(uint8_t status);
bool ctwTcpGetRecvTaskOut(void);
CmsRetId ctwMqttRegReq(uint16_t athandle);
CmsRetId ctwMqttSendReq(uint16_t athandle, uint8_t Qos, char* topic, char* data, uint16_t len);
CmsRetId ctwMqttDeregReq(uint16_t athandle);
CmsRetId ctwMqttFotaReq(uint16_t athandle, char* uri, uint32_t port);
#endif

View File

@@ -0,0 +1,160 @@
/******************************************************************************
* (C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
*******************************************************************************
* Filename: at_def.h
*
* Description: AT common defination
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __AT_DEF_H__
#define __AT_DEF_H__
#include "cms_def.h"
/******************************************************************************
*****************************************************************************
* MARCO
*****************************************************************************
******************************************************************************/
/******************************************************************************
* SRC HANDLER
* 15 12 11 8 7 5 4 0
* +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
* | R | channel ID | SUB AT ID | TID |
* +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
* Note:
* 1> Channel ID:
* Channel ID 0, is reserved for internal.
* Channel ID 1, used for AT CMD from UART (default).
* 2> SUB AT ID
* If several AT CMD correlated with same CMI REQ ID, this "AT ID" is used to distinguish
* which AT CMD when CMI CNF comes; so MAX 8 AT CMD could use one same CMI REQ ID
* 3> TID: AT Asynchronous Timer index
* Used to index AT CMD guard timer
******************************************************************************/
#define AT_SET_SRC_HANDLER(TID, atId, chanId) CMS_SET_SRC_HANDLER(TID, atId, chanId)
#define AT_GET_HANDLER_TID(srcHandler) CMS_GET_HANDLER_TID(srcHandler)
#define AT_GET_HANDLER_SUB_ATID(srcHandler) CMS_GET_HANDLER_SUB_ATID(srcHandler)
#define AT_GET_HANDLER_CHAN_ID(srcHandler) CMS_GET_HANDLER_CHAN_ID(srcHandler)
#define AT_GET_UINT16_HANDLER(srcHandler) CMS_GET_UINT16_HANDLER(srcHandler)
#define AT_MAX_ASYN_GUARD_TIMER_TID 31
/*
* 1> CMS task OSA timer ID defination:
*
* 16 bits timerID
* 15 12 0
* +-------+---------------------+
* | modId | timerId in modId |
* +-------+---------------------+
* MSB 4 bits: use to distinguish which sub-module in CMS task, so MAX 16 sub-modes
*
* 2> AT timer sub-module ID: CMS_TIMER_AT_SUB_MOD_ID
*
* 3> AT sub timer ID defination:
* 15 12 8 7 4 0
* +-------+------+-----+-------+
* | 0 | CID | R(0)| TID |
* +-------+------+-----+-------+
* CID: AT channel ID, 4 bits
* R: reserved, 3 bits
* TID: AT Asynchronous Timer index, 5 bits
*
* 4> AT URC delay timer:
* 15 12 8 7 5 4 0
* +-------+------+-----+-------+
* | 0 | CID | 001 | 00000 |
* +-------+------+-----+-------+
*/
#define AT_SET_ASYN_TIMER_ID(chanId, tid) (UINT16)((((CMS_TIMER_AT_SUB_MOD_ID)<<12)&0xF000) | (((chanId)<<8)&0x0F00) | ((tid)&0x1F))
#define AT_GET_ASYN_TIMER_CHAN_ID(timerId) (((timerId)>>8)&0x0F)
#define AT_GET_ASYN_TIMER_TID(timerId) ((timerId)&0x1F)
#define AT_SET_URC_DELAY_TIMER_ID(chanId) (UINT16)((((CMS_TIMER_AT_SUB_MOD_ID)<<12)&0xF000) | (((chanId)<<8)&0x0F00) | 0x20)
#define AT_IS_URC_DELAY_TIMER(timerId) (((timerId)&0xF0FF) == 0x0020)
#define AT_GET_URC_DELAY_TIMER_CHAN_ID(timerId) (((timerId)>>8)&0x0F)
/******************************************************************************
* CMI REQ/CNF/IND ID:
* 15 11 0
* +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
* | SG ID | PRIM ID |
* +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
*
* CMI: CIOT Modem Interface
******************************************************************************/
#define AT_GET_CMI_SG_ID(reqId) CMS_GET_CMI_SG_ID(reqId)
#define AT_GET_CMI_PRIM_ID(reqId) CMS_GET_CMI_PRIM_ID(reqId)
#define AT_SET_CMI_REQ_CNF_ID(sgId, primId) CMS_SET_CMI_REQ_CNF_ID(sgId, primId)
/*
*/
#define ATEC_IND_RESP_1024_STR_LEN 1024 //must using heap for this size
#define ATEC_IND_RESP_512_STR_LEN 512 //must using heap for this size
#define ATEC_IND_RESP_256_STR_LEN 256
#define ATEC_IND_RESP_128_STR_LEN 128
#define ATEC_IND_RESP_64_STR_LEN 64
#define ATEC_IND_RESP_48_STR_LEN 48
#define ATEC_IND_RESP_32_STR_LEN 32
#define AT_DEC_NUM_STR_MAX_LEN 11 //0xFFFFFFFF="4294967295", len("4294967295") = 10 + 1
#define AT_HEX_NUM_STR_MAX_LEN 9 //FFFFFFFF, 8 + 1
#define AT_BIN_NUM_STR_MAX_LEN 33 //len("11111111")*4 + 1
/*
* CTRL-Z/ESC ASCI value
*/
#define AT_ASCI_CTRL_Z 0x1A
#define AT_ASCI_ESC 0x1B
/*
* AT CMD buffer size
*/
#define AT_CMD_BUF_MAX_LEN (1024 * 3)
/*
* Number of array
*/
#define AT_NUM_OF_ARRAY(array) (sizeof(array)/sizeof((array)[0]))
/*
* typedef struct AtCmdPreDefInfo_Tag
* {
* const CHAR *pName; //AT name
*
* UINT16 timeOutS; //time out value in seconds
* UINT8 cmdType; //AtCmdSyntaxType, basic/extended action command/extended parameter command
* UINT8 paramMaxNum; //max parameters number
*
* const AtValueAttr *pParamList;
*
* const AtCallbackFunctionP atProcFunc;
* }AtCmdPreDefInfo; //16 bytes
*/
#define AT_CMD_PRE_DEFINE(name, atProcFunc, paramAttrList, cmdType, timeOutS) \
{name, (timeOutS), cmdType, (paramAttrList == PNULL ? 0 : (sizeof(paramAttrList)/sizeof(AtValueAttr))), paramAttrList, atProcFunc}
#if 0
/* number of seconds between 1900 and 1970 (MSB=1)*/
#define TIME_SEC_1900_1970 (2208988800UL)
/* number of seconds between 1970 and Feb 7, 2036 (6:28:16 UTC) (MSB=0) */
#define TIME_SEC_1970_2036 (2085978496UL)
#endif
#endif

View File

@@ -0,0 +1,73 @@
/******************************************************************************
* (C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
*******************************************************************************
* Filename: at_entity.h
*
* Description: Entracne of AT CMD
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __AT_ENTITY_H__
#define __AT_ENTITY_H__
#include "osasys.h"
#include "atc_decoder.h"
/******************************************************************************
*****************************************************************************
* MARCO
*****************************************************************************
******************************************************************************/
/******************************************************************************
*****************************************************************************
* ENUM
*****************************************************************************
******************************************************************************/
/*
* AT APP to process the "SIG_CMS_APPL_CNF" signal
*/
typedef void (*AtProcApplCnfFunc)(CmsApplCnf *pApplCnf);
typedef struct AtApplCnfFuncTable_Tag
{
UINT32 appId;
AtProcApplCnfFunc applCnfFunc;
}AtApplCnfFuncTable;
/*
* AT APP to process the "SIG_CMS_APPL_IND" signal
*/
typedef void (*AtProcApplIndFunc)(CmsApplInd *pApplInd);
typedef struct AtApplIndFuncTable_Tag
{
UINT32 appId;
AtProcApplIndFunc applIndFunc;
}AtApplIndFuncTable;
/******************************************************************************
*****************************************************************************
* API
*****************************************************************************
******************************************************************************/
/*
* process signal
*/
void atProcSignal(const SignalBuf *pSig);
/*
* AT module init
*/
void atInit(void);
#endif

View File

@@ -0,0 +1,102 @@
#ifndef _EXAMPLE_TASK_
#define _EXAMPLE_TASK_
#include "FreeRTOS.h"
#include "queue.h"
#define EG_AT_DEMO_TASK_STACK_SIZE 512
#define EG_MSG_TIMEOUT 1000
#define EG_MSG_MAX_NUMB 10
typedef enum AT_EC_RET_TAG
{
EC_RET_SUCC = 0,
EC_RET_FAIL = 1,
EC_RET_END,
}AT_EC_RET_TYPE;
typedef enum AT_EC_REQ_TYPE_TAG
{
// customer cmd param type
AT_EC_REQ_TESTA = 1,
AT_EC_REQ_TESTB,
AT_EC_REQ_TESTC,
}AT_EG_REQ_TYPE;
typedef enum AT_EC_CNF_TYPE_TAG
{
// customer cmd param type
AT_EC_CNF_TESTA = 1,
AT_EC_CNF_TESTB,
AT_EC_CNF_TESTC,
}AT_EC_CNF_TYPE;
typedef enum AT_EC_IND_TYPE_TAG
{
// customer cmd param type
AT_EC_IND_TESTA = 1,
AT_EC_IND_TESTB,
AT_EC_IND_TESTC,
}AT_EC_IND_TYPE;
typedef enum applExamplePrimId_Enum
{
APPL_EXAMPLE_PRIM_ID_BASE = 0,
APPL_EXAMPLE_ECTESTB_REQ,
APPL_EXAMPLE_ECTESTB_CNF,
APPL_EXAMPLE_ECTESTB_IND,
APPL_EXAMPLE_ECTESTC_REQ,
APPL_EXAMPLE_ECTESTC_CNF,
APPL_EXAMPLE_ECTESTC_IND,
APPL_EXAMPLE_PRIM_ID_END = 0xFF
}applExamplePrimId;
typedef struct
{
char data_type;
unsigned int data_value;
char * data_ptr;
int data_len;
}EC_SEND_DATA_STRUCT;
typedef struct
{
int cmd_type;
unsigned int reqhandle;
EC_SEND_DATA_STRUCT send_data;
}EC_SEND_Q_MSG;
typedef struct
{
int cmd_type;
unsigned int data;
}EC_CNF_MSG;
typedef struct
{
int cmd_type;
unsigned int data;
}EC_IND_MSG;
int ecFuncTestA(int input);
int ecFuncTestB(int input);
int ecFuncTestC(int input);
int ecTestaApi(UINT32 atHandle, QueueHandle_t msgHandle, INT32 cmdType, UINT32 data, CHAR *dataPtr);
int ecTestbApi(UINT32 atHandle, QueueHandle_t msgHandle, INT32 cmdType, UINT32 data, CHAR *dataPtr);
int ecTestcApi(UINT32 atHandle, QueueHandle_t msgHandle, INT32 cmdType, UINT32 data, CHAR *dataPtr);
INT32 ecHandleEGErrCode(UINT32 atHandle, UINT16 errCode);
void ecExecuteRetAck(UINT16 atHandle, UINT16 ackType, AT_EC_RET_TYPE retCode, UINT8 sgId, UINT16 primId, UINT16 primSize, void *primBody);
void ecSendMsg(UINT32 atHandle, QueueHandle_t msgHandle, INT32 cmdType, UINT32 data, CHAR *dataPtr);
void ecFreeMsg(const EC_SEND_Q_MSG *ccMsg);
int custAtDemoTaskInit(void);
#endif

View File

@@ -0,0 +1,151 @@
#ifndef _AT_FILE_TASK_
#define _AT_FILE_TASK_
#include "FreeRTOS.h"
#include "queue.h"
#define FILE_SEMPHR_MAX_NUMB 4
#define FILE_TASK_STACK_SIZE 1600
#define FILE_INFO_MAX_NUMB 16
#define FILE_MSG_TIMEOUT 2000
#define FILE_TASK_CREATE 1
#define FILE_TASK_DELETE 2
#define FILE_READ_MAX_COUNT 4
#define FILE_READ_DEFAULT_LEN 0xffff
enum FILE_RET
{
FILE_OK = 200,
FILE_ERR,
FILE_CTRL_Z_OK,
FILE_MAX_ERR,
};
enum FILE_MODE
{
FILE_MODE_0 = 0,
FILE_MODE_1,
FILE_MODE_2,
};
enum FILE_STATUS
{
FILE_STATUS_RESERVE,
FILE_STATUS_OPEN,
FILE_STATUS_READ,
FILE_STATUS_WRITE,
FILE_STATUS_SEEK,
FILE_STATUS_POSITION,
FILE_STATUS_TUCAT,
FILE_STATUS_CLOSE,
FILE_STATUS_RENAME,
FILE_STATUS_DELETE,
FILE_STATUS_ERASE,
FILE_STATUS_DELETE_ALL,
FILE_STATUS_MSLDS, /*memory space LDS*/
FILE_STATUS_MSLST, /*memory space LST*/
FILE_STATUS_MSDEL, /*memory space DEL*/
FILE_STATUS_MSUPL, /*memory space UPL*/
FILE_STATUS_MSDWL, /*memory space DWL*/
FILE_STATUS_MOV,
};
enum FILE_MSG_CMD
{
FILE_MSG_RESERVE,
FILE_MSG_OPEN,
FILE_MSG_READ,
FILE_MSG_WRITE,
FILE_MSG_SEEK,
FILE_MSG_POSITION,
FILE_MSG_TUCAT,
FILE_MSG_CLOSE,
FILE_MSG_RENAME,
FILE_MSG_DELETE,
FILE_MSG_ERASE,
FILE_MSG_DELETE_ALL,
FILE_MSG_MSLDS, /*memory space LDS*/
FILE_MSG_MSLST, /*memory space LST*/
FILE_MSG_MSDEL, /*memory space DEL*/
FILE_MSG_MSUPL, /*memory space UPL*/
FILE_MSG_MSDWL, /*memory space DWL*/
FILE_MSG_MOV,
};
typedef struct
{
char *fileName;
char *fileSysHandle;
int32_t flags;
uint32_t fileHandler;
uint32_t fileMode;
uint32_t fileLen;
uint32_t fileStatus;
}fileInfo;
typedef struct
{
uint32_t reqhandle;
uint32_t cmdType;
int32_t flags;
char *fileName;
char *filePattern;
char *fileSysHandle;
char *fileBuff;
char *fileNameNew;
uint32_t fileHandler;
uint32_t mode;
uint32_t length;
uint32_t totalLength;
uint32_t timeout;
uint32_t offset;
uint32_t position;
uint32_t fileStatus;
}fileInfoPara;
typedef struct
{
uint32_t reqhandle;
uint32_t cmdType;
char *fileName;
char *filePattern;
char *fileNameNew;
fileInfo *fileInfoPtr;
uint32_t fileHandle;
uint32_t mode;
uint32_t length;
uint32_t totalLength;
uint32_t timeout;
uint32_t offset;
uint32_t position;
char *reqBuff;
}fileReqMsg;
typedef struct
{
uint32_t reqhandle;
char *fileName;
char *filePattern;
uint32_t fileHandle;
uint32_t result;
uint32_t ack;
char *retBuff;
INT32 retLen;
INT32 retTotalLen;
}fileCnfMsg;
fileInfo *fileFindExistFileByName(fileInfoPara fileInfo);
fileInfo *fileFindExistFileByHandler(fileInfoPara fileInfo);
int fileClientInterface(fileInfoPara fileReq);
fileInfo *fileGetExistFile(uint32_t index);
#endif

View File

@@ -0,0 +1,113 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: at_fwupd_task.h
*
* Description:FW upgrade over serial port via AT command
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __AT_FWUPD_TASK_H__
#define __AT_FWUPD_TASK_H__
#include "at_util.h"
#define FWUPD_MQUE_MSG_MAXNUM 2
#define FWUPD_MQUE_SEND_TIMEOUT 500
#define FWUPD_TASK_STACK_SIZE 2048
#define FWUPD_RESP_BUF_MAXLEN 128
#define FWUPD_FW_VER_MAXLEN 32
#define FWUPD_FW_NAME_MAXLEN 32
#define FWUPD_FW_PSN_MINNUM 0
#define FWUPD_FW_PSN_MAXNUM 65535
#define FWUPD_DATA_BYTES_MAXNUM 256
#define FWUPD_DATA_HEXSTR_MAXLEN FWUPD_HEXSTR_LEN(FWUPD_DATA_BYTES_MAXNUM)
#define FWUPD_HEXBYTE_NUM(strlen) ((strlen) >> 1)
#define FWUPD_HEXSTR_LEN(nbytes) ((nbytes) << 1)
#define FWUPD_HEXCHAR_TO_INTEGER(hex) ((hex >= '0' && hex <= '9') ? (hex - '0') : \
((hex >= 'A' && hex <= 'F') ? (hex - 'A' + 10) : \
((hex >= 'a' && hex <= 'f') ? (hex - 'a' + 10) : 0)))
#define FWUPD_REQMSG_INIT(msg) \
do{\
msg.atHandle = 0;\
msg.cmdCode = FWUPD_CMD_CODE_MAXNUM;\
msg.pkgSn = FWUPD_FW_PSN_MINNUM;\
msg.strLen = 0;\
msg.crc8 = 0;\
memset(&msg.hexStr, '\0', (FWUPD_DATA_HEXSTR_MAXLEN + 1));\
}while(0)
#define FWUPD_CNFMSG_INIT(msg) \
do{\
msg.errCode = FWUPD_EC_UNDEF_ERROR;\
msg.strLen = 0;\
memset(&msg.respStr, '\0', FWUPD_RESP_BUF_MAXLEN);\
}while(0)
typedef enum
{
FWUPD_CMD_CODE_BEGIN = 0,
FWUPD_CMD_CLEAR_FLASH = FWUPD_CMD_CODE_BEGIN,
FWUPD_CMD_DOWNLOAD_FW,
FWUPD_CMD_VERIFY_FW,
FWUPD_CMD_QUERY_FWNAME,
FWUPD_CMD_QUERY_FWVER,
FWUPD_CMD_UPGRADE_FW,
FWUPD_CMD_DOWNLOAD_OVER,
FWUPD_CMD_DFU_STATUS,
FWUPD_CMD_CODE_END = FWUPD_CMD_DFU_STATUS,
FWUPD_CMD_CODE_MAXNUM
}FwupdCmdCode_e;
typedef enum
{
APPL_FWUPD_PRIM_ID_BASE = 0,
APPL_FWUPD_REQ,
APPL_FWUPD_CNF,
APPL_FWUPD_PRIM_ID_END = 0xFF
}ApplFwupdPrimId;
typedef struct
{
uint32_t atHandle;
uint16_t cmdCode;
uint16_t pkgSn;
uint16_t strLen;
uint8_t hexStr[FWUPD_DATA_HEXSTR_MAXLEN + 1];
uint8_t crc8;
}FwupdReqMsg_t;
typedef struct
{
uint8_t errCode;
uint8_t rsvd;
uint16_t strLen;
uint8_t respStr[FWUPD_RESP_BUF_MAXLEN];
}FwupdCnfMsg_t;
int32_t FWUPD_initTask(void);
int32_t FWUPD_deinitTask(void);
int32_t FWUPD_sendMsg(FwupdReqMsg_t *msg);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,165 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: at_http_task.h
*
* Description: Process http(s) client related AT commands
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _AT_HTTP_TASK_H_
#define _AT_HTTP_TASK_H_
#include "at_util.h"
#include "httpclient.h"
#define HTTP_RSP_HEAD_BUFFER_SIZE 800
#define HTTP_RSP_CONTENT_BUFFER_SIZE 1501
/*
* APPL SGID: APPL_HTTP, related PRIM ID
*/
enum applHttpPrimId_Enum
{
APPL_HTTP_PRIM_ID_BASE = 0,
APPL_HTTP_SEND_CNF,
APPL_HTTP_READ_CNF,
APPL_HTTP_STOP_CNF,
APPL_HTTP_FOTADL_CNF,
APPL_HTTP_URC_IND,
APPL_HTTP_READ_IND,
APPL_HTTP_PRIM_ID_END = 0xFF
};
typedef enum {
HTTPSTAT_CLOSE = 0,
HTTPSTAT_CONNECT,
HTTPSTAT_REQHANDL,
}HTTPAtStatus_e;
enum HTTP_CMD_TYPE
{
HTTP_SEND_COMMAND,
HTTP_STOP_COMMAND,
HTTP_CLOSE_TCP_COMMAND,
};
typedef enum AT_HTTP_ERROR
{
HTTPAT_OK = 0, //success
HTTPAT_PARAM_ERROR = 1, //parameter error
HTTPAT_INPUT_TIMEOUT = 2, //input timeout
HTTPAT_NO_URL = 3, //not set url
HTTPAT_OPERATION_NOT_SUPPORT = 4, //operation not support
HTTPAT_NO_REQ = 5, //no request
HTTPAT_REQ_PROCESSING = 6, //request processing
HTTPAT_FILENAME_TOO_LONG = 7, //filename too long
HTTPAT_NO_SUCH_FILE = 8, //no file or read nothing
HTTPAT_MEMORY_NOT_ENOUGH = 9, //memory not enough
HTTPAT_CONFIG_SSL_ERROR = 10, //ssl config error
HTTPAT_URL_PARSE_ERROR = 11, //url parse error
HTTPAT_DNS_FAILED = 12, //dns resolution failed
HTTPAT_PRTCL_ERROR = 13, //decode http data failed
HTTPAT_SOCKET_ERROR = 14, //create socket failed
HTTPAT_BIND_FAILED = 15, //bind socket failed
HTTPAT_CONNECT_TIMEOUT = 16, //connect timeout
HTTPAT_CONNECT_ERROR = 17, //connect error
HTTPAT_CONNECT_CLOSE = 18, //connect close by remote host
HTTPAT_TLS_ERROR = 19, //meet tls error
HTTPAT_REQ_TIMEOUT = 20, //http request timeout
HTTPAT_INTERNAL = 21, //internal error
HTTPAT_URL_ERROR = 22, //url error
HTTPAT_NOT_SUPPORT_TLS = 23, //tls is not supported
HTTPAT_RECV_COMP = 100, //receive complete
}AtHttpError_e;
typedef enum
{
HTTPFOTA_BEGIN = 0, //FOTA begin http download
HTTPFOTA_DL_PROC = 1, //FOTA download progress
HTTPFOTA_ERR = 2, //FOTA http error
HTTPFOTA_DOWNLOADEND = 3, //FOTA http download end
HTTPFOTA_PACKAGE_MISMATCH = 4 //FOTA http package mismatch
}HTTPFotaUrc_e;
typedef enum
{
HTTP_EN_SLEEP,
HTTP_DIS_SLEEP
}HTTPSleep_e;
typedef struct{
uint8_t contextID;
uint8_t requestHead;
uint8_t responseHead;
uint8_t sslctxID;
uint8_t contentType;
uint8_t bRestore;
//uint8_t autoOutrsp;
//uint8_t closedInd;
}httpAtCfgParam_t;
typedef struct {
HTTPAtStatus_e status;
bool hasRequest;
uint8_t method;
char* url;
HttpClientContext* clientContext;
HttpClientData* clientData;
uint32_t reqhandle;
bool isRange;
uint32_t startPos;
int32_t endPos;
bool isFota;
uint8_t dlUrcRag;
bool cache2flash;
bool postfile;
char* postfilename;
bool readfile;
char* respfilename;
void* fp;
} httpAtContext_t;
typedef struct
{
uint8_t cmd_type;
} httpCmdMsg_t;
typedef struct
{
uint8_t ret;
} httpCnfCmdMsg_t;
typedef struct
{
void *pHttpInd;
} httpIndMsg_t;
void httpSleepVote(HTTPSleep_e sleep);
bool httpClrCustNewContext(uint16_t datalen);
void httpClearAtContext(httpAtContext_t* atContext);
bool httpCreateClientContext(httpAtContext_t* atContext);
CmsRetId httpStopReq(void);
CmsRetId httpSendReq(void);
CmsRetId httpReadReq(void);
void httpSaveUrltoNvm(void);
void httpSaveConfigtoNvm(void);
AtHttpError_e httpCheckRestore(void);
void httpEngineInit(void);
#endif

View File

@@ -0,0 +1,376 @@
/*
* atec_mqtt_task.h
*
* Created on:
* Author:
*/
#ifndef _MQTT_TASK_H
#define _MQTT_TASK_H
#include "MQTTClient.h"
#ifdef FEATURE_MQTT_TLS_ENABLE
#include "mqtttls.h"
#endif
#define MQTT_SEND_Q_LENGTH 7
#define MQTT_SEND_TIMEOUT 2000
#define MQTT_RECV_TIMEOUT 5000
#define MQTT_TASK_CREATE 1
#define MQTT_TASK_DELETE 2
#define MQTT_SEMPHR_NOT_CREATE 1
#define MQTT_SEMPHR_HAVE_CREATE 2
#define MQTT_SEMPHR_MAX_NUMB 6
#define MQTT_RECV_LOOP_TIMEOUT 2000
#define EC_TOPIC_LENGTH 128
#define EC_BUFF_LENGTH 128
#define MQTT_CONTEXT_NUMB_MAX 1
#define MQTT_ID_DEFAULT 0xff
#define MQTT_CLOUD_DEFAULT 0xff
#define MQTT_TCP_ID_DEFAULT 0xff
#define MQTT_CMD_TIMEOUT_DEFAULT 10000
#define MQTT_CMD_TIMEOUT_TX_DEFAULT 2
#define MQTT_CMD_TIMEOUT_RX_DEFAULT 20
#define MQTT_KEEPALIVE_DEFAULT 120
#define MQTT_TX_BUF_DEFAULT (4+128+1024) /*header+topic+payload*/
#define MQTT_RX_BUF_DEFAULT (4+128+1024) /*header+topic+payload*/
#define MQTT_PORT_DEFAULT 1883
#define MQTT_MSG_TIMEOUT 1000
#define MQTT_ERR_ABRT (-13)
#define MQTT_ERR_RST (-14)
#define MQTT_ERR_CLSD (-15)
#define MQTT_ERR_BADE (9)
#define MQTT_TAG_LEN 8
#define KEEPALIVE_RETRY_MAX 3
#define MQTT_RECONN_MAX 3
#define ALI_DYNAMIC_REGISTER_IS_NOT_USED 0
#define ALI_DYNAMIC_REGISTER_IS_USED 1
enum MQTT_PUB_TYPE
{
MQTT_PUB_CTRLZ = 0,
MQTT_PUB_AT = 1,
};
enum MQTT_INT_RET
{
MQTTSUCCESS = 0,
MQTTKEEPALIVE = 1
};
enum MQTT_RET
{
MQTT_OK = 200,
MQTT_ERR,
MQTT_NETWORK_ERR,
MQTT_CONTEXT_ERR,
MQTT_PARAM_ERR,
MQTT_SOCKET_ERR,
MQTT_SOCKET_TIME_ERR,
MQTT_MQTT_CONN_ERR,
MQTT_TASK_ERR,
MQTT_RECONNECT,
MQTT_CLIENT_ERR,
MQTT_ALI_ENCRYP_ERR,
MQTT_BUSY_ERR,
MQTT_CONTINUE,
MQTT_MAX_ERR,
};
enum MQTT_CONTEXT
{
MQTT_CONTEXT_NOT_USED,
MQTT_CONTEXT_USED,
MQTT_CONTEXT_IS_CREATING,
MQTT_CONTEXT_OPENED,
MQTT_CONTEXT_CONFIGED,
};
enum MQTT_CONNECT
{
MQTT_CONN_DEFAULT,
MQTT_CONN_NOT_OPEN,
MQTT_CONN_IS_OPENING,
MQTT_CONN_OPENED,
MQTT_CONN_OPEN_FAIL,
MQTT_CONN_IS_CONNECTING,
MQTT_CONN_CONNECTED,
MQTT_CONN_CONNECT_FAIL,
MQTT_CONN_IS_CLOSING,
MQTT_CONN_CLOSED,
MQTT_CONN_CLOSED_FAIL,
MQTT_CONN_IS_DISCONNECTING,
MQTT_CONN_DISCONNECTED,
MQTT_CONN_DISCONNECTED_FAIL,
MQTT_CONN_RECONNECTING,
MQTT_CONN_RECONNECTING_FAIL,
};
enum MQTT_MSG_CMD
{
MSG_RESERVE,
MQTT_MSG_OPEN,
MQTT_MSG_CONNECT,
MQTT_MSG_CLOSE,
MQTT_MSG_DISCONNECT,
MQTT_MSG_CREATE_CLINET,
MQTT_MSG_KEEPALIVE,
MQTT_MSG_RECONNECT,
MQTT_MSG_DELETE_CLINET,
MQTT_MSG_PUBLISH,
MQTT_MSG_PUBLISH_REC,
MQTT_MSG_PUBLISH_REL,
MQTT_MSG_PUBLISH_ACK,
MQTT_MSG_PUBLISH_COMP,
MQTT_MSG_SUB,
MQTT_MSG_UNSUB,
MQTT_MSG_CONNECT_DOWN,
MQTT_MSG_ALI_DYN_CONNECT,
};
enum MQTT_CMD
{
ONENET_CMD,
ALI_CMD,
};
enum MQTT_DATA_TYPE
{
MQTT_DATA_JSON = 0,
MQTT_DATA_STR = 1,
MQTT_DATA_HEX = 2,
ONENET_DATA_TYPE1 = 1,
ONENET_DATA_TYPE2 = 2,
ONENET_DATA_TYPE3 = 3,
ONENET_DATA_TYPE4 = 4,
ONENET_DATA_TYPE5 = 5,
ONENET_DATA_TYPE6 = 6,
ONENET_DATA_TYPE7 = 7,
ONENET_DATA_TYPE8 = 8, //customer define data type
ONENET_DATA_TYPE9 = 9, //customer define data type
MQTT_DATA_DEFAULT = 0xFF,
};
enum MQTT_CLOUD_TYPE
{
CLOUD_TYPE_ONENET = 1,
CLOUD_TYPE_ALI,
CLOUD_TYPE_ECLIPSE, /*not use client id, user name, passwd*/
CLOUD_TYPE_NORMAL, /*need client id, user name, passwd*/
CLOUD_TYPE_MAX
};
enum MQTT_CONFIG_TYPE
{
MQTT_CONFIG_BASE = 0,
MQTT_CONFIG_ECHOMODE,
MQTT_CONFIG_DATAFORMAT,
MQTT_CONFIG_KEEPALIVE,
MQTT_CONFIG_SEESION,
MQTT_CONFIG_KEEPALIVE_CMD_TIMEOUT,
MQTT_CONFIG_KEEPALIVE_CONN_TIMEOUT,
MQTT_CONFIG_TIMEOUT,
MQTT_CONFIG_CMD_TIMEOUT,
MQTT_CONFIG_CONN_TIMEOUT,
MQTT_CONFIG_WILL,
MQTT_CONFIG_VERSION,
MQTT_CONFIG_ALIAUTH,
MQTT_CONFIG_OPEN,
MQTT_CONFIG_CLOUD,
MQTT_CONFIG_SSL,
MQTT_CONFIG_MAX
};
enum MQTT_SSL_TYPE
{
MQTT_SSL_NONE = 0,
MQTT_SSL_HAVE = 1,
MQTT_SSL_PSK = 2,
MQTT_SSL_ECC,
MQTT_SSL_CA,
};
typedef struct
{
int decParam1;
int decParam2;
int decParam3;
char *strParam1;
char *strParam2;
char *strParam3;
char *strParam4;
char *strParam5;
char *strParam6;
char *strParam7;
char *strParam8;
char *strParam9;
char *strParam10;
}mqtt_cfg_data;
typedef struct
{
int cmd_type;
unsigned int reqhandle;
void * context_ptr;
void * client_ptr;
int tcp_id;
int msg_id;
int pub_mode;
int server_ack_mode;
char *sub_topic;
char *unsub_topic;
char *topic;
int qos;
int rai;
MQTTMessage message;
}mqtt_send_msg;
typedef struct
{
int mqtt_id;
char *mqtt_topic;
int mqtt_topic_len;
char *mqtt_payload;
int mqtt_payload_len;
int tcp_id;
int msg_id;
int ret;
int conn_ret_code;
int sub_ret_value;
int pub_ret_value;
}mqtt_message;
typedef struct
{
char *product_name;
char *product_key;
char *product_secret;
char *device_name;
char *device_secret;
char *device_token;
char *auth_type; /*register, regnwl*/
char *sign_method; /*hmac_sha1, hmac_sha256, hmac_md5*/
char *auth_mode; /*tls-psk, tls-ca*/
char *secure_mode; /*-2, 2*/
char *instance_id; /* */
char *client_id; /*for regnwl */
int dynamic_register_used;
}ali_auth;
typedef struct
{
int is_used;
int is_connected;
int is_mqtts;
int cloud_type;
int tcp_id;
int mqtt_id;
UINT32 reqHandle;
char *mqtt_uri;
unsigned int port;
char *mqtt_send_buf;
int mqtt_send_buf_len;
char *mqtt_read_buf;
int mqtt_read_buf_len;
int reconnect_count;
int (*reconnect) (void *c);
MQTTPacket_connectData mqtt_connect_data;
Network* mqtt_network;
MQTTClient *mqtt_client;
messageHandler mqtt_msg_handler;
#ifdef FEATURE_MQTT_TLS_ENABLE
mqttsClientContext* mqtts_client;
#endif
int echomode;
int send_data_format;
int recv_data_format;
int keepalive;
int session;
int timeout;
int version;
int pkt_timeout;
int retry_time;
int timeout_notice;
ali_auth aliAuth;
char *sub_topic;
char *unsub_topic;
int qos;
int retained;
int payloadType;
int ssl_type;
char *ecc_key;
char *ca_key;
char *host_name;
}mqtt_context;
typedef struct
{
unsigned char cleansession;
unsigned char willFlag;
MQTTPacket_willOptions will;
}mqtt_option;
typedef struct
{
int dec_param1; /**/
int dec_param2; /**/
int dec_param3; /**/
int dec_param4; /**/
char *str_param1; /**/
char *str_param2; /**/
char *str_param3; /**/
char *str_param4; /**/
}MQTT_CNF_STRUCT;
void check_tcpip_ready(void);
int mqttReconnect(void *v);
void MQTT_messageArrived(MessageData* data);
mqtt_context *mqttFindContext(int tcpId);
int mqtt_client_config(int cnfType, int tcpId, mqtt_cfg_data *cfgData);
int mqtt_client_open(UINT32 reqHandle, int tcpId, char *mqttUri, int mqttPort);
int mqtt_client_close(UINT32 reqHandle, int tcpId);
int mqtt_client_connect(UINT32 reqHandle, int tcpId, char *clientId, char *userName, char *passWord);
int mqtt_client_disconnect(UINT32 reqHandle, int tcpId);
int mqtt_client_sub(UINT32 reqHandle, int tcpId, int msgId, char *mqttSubTopic, int qos);
int mqtt_client_unsub(UINT32 reqHandle, int tcpId, int msgId, char *mqttSubTopic);
int mqtt_client_pub(UINT32 reqHandle, int tcpId, int msgId, int qos, int retained, int pubMode, char *mqttPubTopic, int msgLen, char *message, int cloudType, int msgType, int rai);
int mqtt_recv_task_Init(void);
int mqttCycle(mqtt_context* context, Timer* timer);
void mqttCloseSession(MQTTClient* c);
#endif

View File

@@ -0,0 +1,202 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: at_ssl_task.h
*
* Description: Process tls client related AT commands
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _AT_SSL_TASK_H
#define _AT_SSL_TASK_H
#ifdef __USER_CODE__
#else
#include "at_util.h"
#include "atc_decoder.h"
#include "mbedtls/net.h"
#include "mbedtls/ssl.h"
#include "mbedtls/certs.h"
#include "mbedtls/entropy.h"
#include "mbedtls/ctr_drbg.h"
#define MAX_SSL_CLIENT_INSTANCE 12
typedef enum
{
SSL3_0 = 0,
TLS1_0,
TLS1_1,
TLS1_2,
SSL_VERSION_ALL,
}sslVersion_e;
typedef enum AT_SSL_ERROR
{
SSLAT_OK = 0, //success
SSLAT_PARAM_ERROR = 1, //parameter error
SSLAT_CONFIG_SSL_ERROR = 2, //ssl config error
SSLAT_MBEDTLS_ERROR = 3, //mbedtls error
SSLAT_CONN_ERROR = 4, //connect error
SSLAT_HAS_CONNENT = 5, //already has a connect
SSLAT_NO_CONNENT = 6, //has no open connect
SSLAT_INTERNAL = 7, //internal error, for example can't restore from deep sleep
SSLAT_MEM_NOT_ENOUGH = 8 //memory not enough
}AtSslError_e;
enum SSL_CMD_TYPE
{
SSL_OPEN_COMMAND,
SSL_OPEN_DONE_COMMAND,
SSL_SEND_COMMAND,
SSL_CLOSE_TCP_COMMAND,
SSL_CLOSE_COMMAND,
SSL_STATE_COMMAND,
SSL_DISCON_COMMAND,
SSL_SEND_PT_DATA
};
/*
* APPL SGID: APPL_SSL, related PRIM ID
*/
enum applSslPrimId_Enum
{
APPL_SSL_PRIM_ID_BASE = 0,
APPL_SSL_OPEN_CNF,
APPL_SSL_SEND_CNF,
APPL_SSL_CLOSE_CNF,
APPL_SSL_STATE_CNF,
APPL_SSL_URC_IND,
APPL_SSL_OUTPUT_IND,
APPL_SSL_PASSOUT_IND,
APPL_SSL_PRIM_ID_END = 0xFF
};
typedef enum {
SSLSTAT_INIT = 0,
SSLSTAT_CONNECT,
SSLSTAT_DISCONN,
SSLSTAT_CLOSE
}SSLAtStatus_e;
typedef enum
{
SSL_EN_SLEEP,
SSL_DIS_SLEEP
}SSLSleep_e;
typedef struct
{
uint8_t cmd_type;
uint32_t reqHandle;
uint8_t clientId;
uint8_t channelId;
void* ptr;
} sslCmdMsg_t;
typedef struct
{
void *pInd;
} sslIndMsg_t;
typedef struct
{
uint8_t ret;
uint8_t accessMode;
uint8_t chanId;
char rspbuf[60];
} sslCnfCmdMsg_t;
typedef struct sslContextTag
{
mbedtls_ssl_context sslContext;
mbedtls_net_context netContext;
mbedtls_ssl_config sslConfig;
mbedtls_entropy_context entropyContext;
mbedtls_ctr_drbg_context ctrDrbgContext;
mbedtls_x509_crt_profile crtProfile;
mbedtls_x509_crt caCert;
mbedtls_x509_crt clientCert;
mbedtls_pk_context pkContext;
}sslContext;
typedef struct _sslPTUlDataNode
{
struct _sslPTUlDataNode *next;
uint16_t dataLen; /*the send raw datalength*/
uint8_t* pData;
}sslPTUlDataNode;
typedef struct _ssl_list_t
{
struct _ssl_list_t * next;
} ssl_list_t;
typedef struct sslPTUlPendingList_Tag
{
ssl_list_t *head;
ssl_list_t *tail;
uint8_t nodeCount;
uint8_t maxNodeNum;
osMutexId_t mut;
}sslPTUlPendingList;
typedef struct sslClientContextTag
{
bool isUsed;
uint8_t pdpId;
uint8_t clientId;
uint8_t sslCxtId;
uint32_t reqhandle;
uint16_t pid;
int socket;
char* serverAddr;
uint16_t serverPort;
uint8_t status;
int timeout_s;
int timeout_r;
uint8_t* sendData;
uint16_t sendDataLen;
sslContext * ssl;
char *caCert;
char *clientCert;
char *clientPk;
int32_t caCertLen;
int32_t clientCertLen;
int32_t clientPkLen;
uint8_t seclevel;//0:no verify; 1:verify server; 2:both verify
int32_t ciphersuite[2];//just like 0x0035 TLS_RSA_WITH_AES_256_CBC_SHA,ciphersuite[1] must NULL
uint8_t cache;//0:no session resumption; 1:session resumption
uint8_t sni;//0:no sni; 1:has sni
uint8_t accessMode;//0:direct mode; 1:passthrough
uint8_t ignore;//0:not ignore; 1:ignore
uint8_t channelState;
}sslClientContext;
void sslSaveCxtList(void);
void sslEngineInit(void);
CmsRetId sslClientOpen(uint32_t reqHandle, uint8_t clientId, uint8_t channelId);
CmsRetId sslClientSend(uint8_t clientId);
CmsRetId sslClientClose(uint32_t reqHandle, uint8_t clientId);
CmsRetId sslClientState(uint32_t reqHandle, uint8_t clientId);
void sslDisableSleep(void);
AtSslError_e sslCheckRestore(void);
void sslNewClientContext(sslClientContext* context, uint8_t pdpId, uint8_t clientId, uint8_t sslCxtId, char* pServer, uint16_t port, uint8_t accessMode);
CmsRetId sslPSTHAndOnlineCmdCallback(UINT8 chanId, UINT8 curChanState, AtDataAndOnlineCmdSEvt eventId, void *pArg);
bool sslQueryClientIdIsActivated(UINT8 clientId);
#endif
#endif

View File

@@ -0,0 +1,199 @@
/******************************************************************************
* (C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
*******************************************************************************
* Filename: at_util.h
*
* Description: AT utility
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __AT_UTIL_H__
#define __AT_UTIL_H__
#include "cms_util.h"
#include "cms_comm.h"
#include "at_def.h"
#include "atc_reply.h"
#include "atc_decoder.h"
#define ALI_SHA1_KEY_IOPAD_SIZE (64)
#define ALI_SHA1_DIGEST_SIZE (20)
#define ALI_SHA256_KEY_IOPAD_SIZE (64)
#define ALI_SHA256_DIGEST_SIZE (32)
#define ALI_MD5_KEY_IOPAD_SIZE (64)
#define ALI_MD5_DIGEST_SIZE (16)
#define ALI_HMAC_USED (1)
#define ALI_HMAC_NOT_USED (0)
typedef enum
{
AT_PARA_OK = 0,
AT_PARA_ERR,
AT_PARA_DEFAULT,
AT_PARA_MAX,
}_AtParaRet;
typedef INT32 AtParaRet;
/******************************************************************************
*****************************************************************************
* STRUCT
*****************************************************************************
******************************************************************************/
/******************************************************************************
* CmiCnfFuncMapList
* "CamCmiCnf" handler table
******************************************************************************/
typedef CmsRetId (*CmiCnfHandler)(UINT16 reqHandle, UINT16 rc, void *paras);
typedef struct CmiCnfFuncMapList_Tag
{
UINT16 primId;
CmiCnfHandler cmiCnfHdr;
}CmiCnfFuncMapList;
/******************************************************************************
* CmiIndFuncMapList
* "CamCmiInd" handler table
******************************************************************************/
typedef void (*CmiIndHandler)(void *paras);
typedef struct CmiIndFuncMapList_Tag
{
UINT16 primId;
CmiIndHandler cmiIndHdr;
}CmiIndFuncMapList;
/******************************************************************************
* ApplCnfFuncMapList
* "applCmsCnf" handler table
******************************************************************************/
typedef CmsRetId (*ApplCnfHandler)(UINT16 reqHandle, UINT16 rc, void *paras);
typedef struct CmsCnfFuncMapList_Tag
{
UINT16 primId;
ApplCnfHandler applCnfHdr;
}ApplCnfFuncMapList;
/******************************************************************************
* ApplIndFuncMapList
* "applCmsInd" handler table
******************************************************************************/
typedef CmsRetId (*ApplIndHandler)(UINT16 indHandle, void *paras);
typedef struct CmsIndFuncMapList_Tag
{
UINT16 primId;
ApplIndHandler applIndHdr;
}ApplIndFuncMapList;
/******************************************************************************
*****************************************************************************
* FUNCTION/API
*****************************************************************************
******************************************************************************/
void atByteToBitString(UINT8 *outString, UINT8 n, UINT8 strlen);
BOOL atDataToHexString(UINT8* outString, UINT8* rawData, INT32 rawDataLen);
void atDataToDecString(UINT8 *outString, UINT8 outStringLen, INT64 rawData);
AtParaRet atGetNumValue(AtParamValueCP pAtParaList,
UINT32 index,
INT32 *pOutValue,
INT32 minValue,
INT32 maxValue,
INT32 defaultValue);
AtParaRet atGetStrValue(AtParamValueCP pAtParaList,
UINT32 index,
UINT8 *pOutStr,
UINT16 maxOutBufLen,
UINT16 *pOutStrLen,
const CHAR *pDefaultStr);
BOOL atBeEmptyStrParam(AtParamValueCP pAtParaList, UINT32 index);
AtParaRet atGetJsonStrValue(AtParamValueCP pAtParaList,
UINT32 index,
UINT8 *pOutStr,
UINT16 maxOutBufLen,
UINT16 *pOutStrLen,
const CHAR *pDefaultStr);
AtParaRet atGetMixValue(AtParamValueCP pAtParaList,
UINT32 index,
UINT32 *extValType,
UINT8 *pOutStr,
UINT16 maxOutBufLen,
UINT16 *pOutStrLen,
const CHAR *pDefaultStr,
INT32 *pOutValue,
INT32 minValue,
INT32 maxValue,
INT32 defaultValue);
AtParaRet atGetLastMixStrValue(AtParamValueCP pAtParaList,
UINT32 index,
UINT8 *pOutStr,
UINT16 maxOutBufLen,
UINT16 *pOutStrLen,
const CHAR *pDefaultStr);
AtParaRet atGetStrLength(AtParamValueCP pAtParaList,
UINT32 index,
UINT16 *pOutStrLen);
BOOL atBeNumericString(const UINT8 *password);
AtParaRet atCheckParaDefaultFlag(const AtCmdInputContext *pAtCmdReqParaPtr, UINT32 index);
BOOL atCheckBitFormat(const UINT8 *input);
/*
* safe strncat
*/
BOOL atStrnCat(CHAR *pDest, UINT32 destBufSize, CHAR *pNew, UINT32 catLen);
void atSha256(const unsigned char *input, int ilen, unsigned char *output);
void atAliHmacSha1(const unsigned char *input, int ilen, unsigned char *output,const unsigned char *key, int keylen);
void atAliHmacSha256(const unsigned char *input, int ilen, unsigned char *output,const unsigned char *key, int keylen);
void atAliHmacMd5(const unsigned char *input, int ilen, unsigned char *output,const unsigned char *key, int keylen);
BOOL atCheckApnName(UINT8 *apn,UINT16 len);
/*
*
*/
BOOL atPduInit(AtOutPdu *pAtPdu, UINT16 outSize);
/*
*
*/
BOOL atPduInitTryHeap(AtOutPdu *pAtPdu, UINT16 outSize);
/*
*/
void atPduPrintf(AtOutPdu *pAtPdu, const CHAR *fmt, ...);
/*
*
*/
void atPduMemcat(AtOutPdu *pAtPdu, const UINT8 *pData, UINT16 dataLen);
AtParaRet atGetDynamicHexStrValue(AtParamValueCP pAtParaList,
UINT32 index,
UINT8 **pOutStr,
UINT16 *OutLen);
#endif

View File

@@ -0,0 +1,27 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename:
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_CONTROLLER_H
#define _ATEC_CONTROLLER_H
#include "at_util.h"
AtCmdPreDefInfoC* atcGetATCommandsSeqPointer(void);
UINT32 atcGetATCommandsSeqNumb(void);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,416 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename:
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC__DEV_H
#define _ATEC__DEV_H
#include "at_util.h"
/* AT+CFUN */
#define ATC_CFUN_0_FUN_VAL_MIN 0
#define ATC_CFUN_0_FUN_VAL_MAX 4
#define ATC_CFUN_0_FUN_VAL_DEFAULT 1
#define ATC_CFUN_1_RST_VAL_MIN 0
#define ATC_CFUN_1_RST_VAL_MAX 1
#define ATC_CFUN_1_RST_VAL_DEFAULT 0
/* AT+ECBAND */
#define ATC_ECBAND_0_NW_MODE_VAL_DEFAULT 2
#define ATC_ECBAND_1_BAND_VAL_MIN 0
#define ATC_ECBAND_1_BAND_VAL_MAX 85
#define ATC_ECBAND_1_BAND_VAL_DEFAULT 0
/* AT+ECFREQ */
#define ATC_ECFREQ_0_NW_MODE_VAL_MIN 0
#define ATC_ECFREQ_0_NW_MODE_VAL_MAX 3
#define ATC_ECFREQ_0_NW_MODE_VAL_DEFAULT 0
#define ATC_ECFREQ_1_EARFCN_VAL_MIN 0
#define ATC_ECFREQ_1_EARFCN_VAL_MAX 0x7FFFFFFF
#define ATC_ECFREQ_1_EARFCN_VAL_DEFAULT 0
#define ATC_ECFREQ_2_PHYCELL_VAL_MIN 0
#define ATC_ECFREQ_2_PHYCELL_VAL_MAX 503
#define ATC_ECFREQ_2_PHYCELL_VAL_DEFAULT 0
/* AT+ECCGSN */
#define ATC_CGSN_0_MAX_PARM_STR_LEN 16
#define ATC_CGSN_0_MAX_PARM_STR_DEFAULT NULL
#define ATC_CGSN_1_MAX_PARM_STR_LEN 32
#define ATC_CGSN_1_MAX_PARM_STR_DEFAULT NULL
/* AT+ECCGSNLOCK */
#define ATC_ECCGSNLOCK_0_IMEI_STR_LEN 16
#define ATC_ECCGSNLOCK_0_IMEI_STR_DEFAULT "imeiLock"
#define ATC_ECCGSNLOCK_0_SN_STR_LEN 16
#define ATC_ECCGSNLOCK_0_SN_STR_DEFAULT "snLock"
/* AT+CIOTPOWER */
#define ATC_CIOTPOWER_0_VAL_MIN 0
#define ATC_CIOTPOWER_0_VAL_MAX 2
#define ATC_CIOTPOWER_0_VAL_DEFAULT 0
/* AT+ECCFG */
#define ATC_ECCFG_0_MAX_PARM_STR_LEN 32
#define ATC_ECCFG_0_MAX_PARM_STR_DEFAULT NULL
#define ATC_ECCFG_1_GCFTEST_VAL_MIN 0
#define ATC_ECCFG_1_GCFTEST_VAL_MAX 1
#define ATC_ECCFG_1_GCFTEST_VAL_DEFAULT (-1)
#define ATC_ECCFG_1_AUTOAPN_VAL_MIN 0
#define ATC_ECCFG_1_AUTOAPN_VAL_MAX 1
#define ATC_ECCFG_1_AUTOAPN_VAL_DEFAULT (-1)
#define ATC_ECCFG_1_SUPPORTSMS_VAL_MIN 0
#define ATC_ECCFG_1_SUPPORTSMS_VAL_MAX 1
#define ATC_ECCFG_1_SUPPORTSMS_VAL_DEFAULT (-1)
#define ATC_ECCFG_1_TAUFORSMS_VAL_MIN 0
#define ATC_ECCFG_1_TAUFORSMS_VAL_MAX 1
#define ATC_ECCFG_1_TAUFORSMS_VAL_DEFAULT (-1)
#define ATC_ECCFG_1_T3324_VAL_MIN 0
#define ATC_ECCFG_1_T3324_VAL_MAX 0xFFFFFF
#define ATC_ECCFG_1_T3324_VAL_DEFAULT 0xFFFFFF
#define ATC_ECCFG_1_BAR_VAL_MIN 1
#define ATC_ECCFG_1_BAR_VAL_MAX 600
#define ATC_ECCFG_1_BAR_VAL_DEFAULT 120
#define ATC_ECCFG_1_SIMTEST_VAL_MIN 0
#define ATC_ECCFG_1_SIMTEST_VAL_MAX 1
#define ATC_ECCFG_1_SIMTEST_VAL_DEFAULT (-1)
#define ATC_ECCFG_1_USIMSIMULATOR_VAL_MIN 0
#define ATC_ECCFG_1_USIMSIMULATOR_VAL_MAX 1
#define ATC_ECCFG_1_USIMSIMULATOR_VAL_DEFAULT (-1)
#define ATC_ECCFG_1_SUPPORTUPRAI_VAL_MIN 0
#define ATC_ECCFG_1_SUPPORTUPRAI_VAL_MAX 1
#define ATC_ECCFG_1_SUPPORTUPRAI_VAL_DEFAULT (-1)
#define ATC_ECCFG_1_DIT_VAL_MIN 0
#define ATC_ECCFG_1_DIT_VAL_MAX 0xff
#define ATC_ECCFG_1_DIT_VAL_DEFAULT (-1)
#define ATC_ECCFG_1_RMD_VAL_MIN 0
#define ATC_ECCFG_1_RMD_VAL_MAX 17
#define ATC_ECCFG_1_RMD_VAL_DEFAULT (-1)
#define ATC_ECCFG_1_POWERLEVEL_VAL_MIN 0
#define ATC_ECCFG_1_POWERLEVEL_VAL_MAX 4
#define ATC_ECCFG_1_POWERLEVEL_VAL_DEFAULT (-1)
#define ATC_ECCFG_1_REL_VERSION_VAL_MIN 13
#define ATC_ECCFG_1_REL_VERSION_VAL_MAX 14
#define ATC_ECCFG_1_REL_VERSION_VAL_DEFAULT 13
#define ATC_ECCFG_1_ROHC_VAL_MIN 0
#define ATC_ECCFG_1_ROHC_VAL_MAX 1
#define ATC_ECCFG_1_ROHC_VAL_DEFAULT (-1)
#define ATC_ECCFG_1_EPCO_VAL_MIN 0
#define ATC_ECCFG_1_EPCO_VAL_MAX 1
#define ATC_ECCFG_1_EPCO_VAL_DEFAULT (-1)
#define ATC_ECCFG_1_MULTICARRIER_VAL_MIN 0
#define ATC_ECCFG_1_MULTICARRIER_VAL_MAX 1
#define ATC_ECCFG_1_MULTICARRIER_VAL_DEFAULT (-1)
#define ATC_ECCFG_1_MULTITONE_VAL_MIN 0
#define ATC_ECCFG_1_MULTITONE_VAL_MAX 1
#define ATC_ECCFG_1_MULTITONE_VAL_DEFAULT (-1)
#define ATC_ECCFG_1_IPV6RSFORTESTSIM_VAL_MIN 0
#define ATC_ECCFG_1_IPV6RSFORTESTSIM_VAL_MAX 1
#define ATC_ECCFG_1_IPV6RSFORTESTSIM_VAL_DEFAULT (-1)
#define ATC_ECCFG_1_POWERCFUN_VAL_MIN 0
#define ATC_ECCFG_1_POWERCFUN_VAL_MAX 4
#define ATC_ECCFG_1_POWERCFUN_VAL_DEFAULT 1 //CFUN1
#define ATC_ECCFG_1_PSPOWERONMAXDEALY_VAL_MIN 0
#define ATC_ECCFG_1_PSPOWERONMAXDEALY_VAL_MAX 0xFFFF
#define ATC_ECCFG_1_PSPOWERONMAXDEALY_VAL_DEFAULT 0
#define ATC_ECCFG_1_IPV6RSDELAY_VAL_MIN 0
#define ATC_ECCFG_1_IPV6RSDELAY_VAL_MAX 65535
#define ATC_ECCFG_1_IPV6RSDELAY_VAL_DEFAULT (15)
#define ATC_ECCFG_1_DISABLENCELLMEAS_VAL_MIN (0)
#define ATC_ECCFG_1_DISABLENCELLMEAS_VAL_MAX (1)
#define ATC_ECCFG_1_DISABLENCELLMEAS_VAL_DEFAULT (0)
#define ATC_ECCFG_1_UECATEGORY_VAL_MIN (1)
#define ATC_ECCFG_1_UECATEGORY_VAL_MAX (2) //1 - CAT1, 2 - CAT1 bis
#define ATC_ECCFG_1_UECATEGORY_VAL_DEFAULT (1)
#define ATC_ECCFG_1_PSSOFTRESET_VAL_MIN (0)
#define ATC_ECCFG_1_PSSOFTRESET_VAL_MAX (1)
#define ATC_ECCFG_1_PSSOFTRESET_VAL_DEFAULT (0)
#define ATC_ECCFG_1_ENABLEEAB_VAL_MIN (0)
#define ATC_ECCFG_1_ENABLE_VAL_MAX (1)
#define ATC_ECCFG_1_ENABLE_VAL_DEFAULT (1)
#define ATC_ECCFG_1_ENABLEABCHECK_VAL_MIN (0)
#define ATC_ECCFG_1_ENABLEABCHECK_VAL_MAX (1)
#define ATC_ECCFG_1_ENABLEABCHECK_VAL_DEFAULT (0)
#define ATC_ECCFG_1_WEAKCELLOPT_VAL_MIN (0)
#define ATC_ECCFG_1_WEAKCELLOPT_VAL_MAX (1)
#define ATC_ECCFG_1_WEAKCELLOPT_VAL_DEFAULT (0)
#define ATC_ECCFG_1_QRXLEVMIN_VAL_MIN (-156)
#define ATC_ECCFG_1_QRXLEVMIN_VAL_MAX (0)
#define ATC_ECCFG_1_QRXLEVMIN_VAL_DEFAULT (0)
#define ATC_ECCFG_1_RESELTOWEAKNCELLOPT_VAL_MIN (0)
#define ATC_ECCFG_1_RESELTOWEAKNCELLOPT_VAL_MAX (100)
#define ATC_ECCFG_1_RESELTOWEAKNCELLOPT_VAL_DEFAULT (0)
#define ATC_ECCFG_1_ATTACHBEARERCID_VAL_MIN (1)
#define ATC_ECCFG_1_ATTACHBEARERCID_VAL_MAX (15)
#define ATC_ECCFG_1_ATTACHBEARERCID_VAL_DEFAULT (1)
#define ATC_ECCFG_1_TCPTPTOPT_VAL_MIN 0
#define ATC_ECCFG_1_TCPTPTOPT_VAL_MAX 2
#define ATC_ECCFG_1_TCPTPTOPT_VAL_DEFAULT (0)
#define ATC_ECCFG_1_ATTACH_WITH_IMSI_CONTROL_VAL_MIN (0)
#define ATC_ECCFG_1_ATTACH_WITH_IMSI_CONTROL_VAL_MAX (2)
#define ATC_ECCFG_1_ATTACH_WITH_IMSI_CONTROL_VAL_DEFAULT (1)
#define ATC_ECCFG_1_POWER_ATTACH_WITHOUT_EIA_VAL_MIN (0)
#define ATC_ECCFG_1_POWER_ATTACH_WITHOUT_EIA_VAL_MAX (1)
#define ATC_ECCFG_1_POWER_ATTACH_WITHOUT_EIA_VAL_DEFAULT (1)
#define ATC_ECCFG_1_DATACOUNTER_VAL_MIN (0)
#define ATC_ECCFG_1_DATACOUNTER_VAL_MAX (1)
#define ATC_ECCFG_1_DATACOUNTER_VAL_DEFAULT (0)
#define ATC_ECCFG_1_UPDATE_LOCI_CTRL_VAL_MIN (0)
#define ATC_ECCFG_1_UPDATE_LOCI_CTRL_VAL_MAX (1)
#define ATC_ECCFG_1_UPDATE_LOCI_CTRL_VAL_DEFAULT (0)
#define ATC_ECCFG_1_ROAM_MODE_VAL_MIN (1)
#define ATC_ECCFG_1_ROAM_MODE_VAL_MAX (255)
#define ATC_ECCFG_1_ROAM_MODE_VAL_DEFAULT (2)
#define ATC_ECCFG_2_ROAM_MODE_EFFECT_VAL_MIN (0)
#define ATC_ECCFG_2_ROAM_MODE_EFFECT_VAL_MAX (1)
#define ATC_ECCFG_2_ROAM_MODE_EFFECT_VAL_DEFAULT (1)
#define ATC_ECCFG_1_SAVE_PLMN_SEL_MODE_VAL_MIN (0)
#define ATC_ECCFG_1_SAVE_PLMN_SEL_MODE_VAL_MAX (1)
#define ATC_ECCFG_1_SAVE_PLMN_SEL_MODE_VAL_DEFAULT (1)
#define ATC_ECCFG_1_EMERGENCY_CAMP_VAL_MIN (0)
#define ATC_ECCFG_1_EMERGENCY_CAMP_VAL_MAX (1)
#define ATC_ECCFG_1_EMERGENCY_CAMP_VAL_DEFAULT (0)
#define ATC_ECCFG_1_ACL_VAL_MIN (0)
#define ATC_ECCFG_1_ACL_VAL_MAX (1)
#define ATC_ECCFG_1_ACL_VAL_DEF (0)
#define ATC_ECCFG_1_PDPREMAP_VAL_MIN (0)
#define ATC_ECCFG_1_PDPREMAP_VAL_MAX (2)
#define ATC_ECCFG_1_PDPREMAP_VAL_DEF (0)
#define ATC_ECCFG_1_PDPREACT_VAL_MIN (0)
#define ATC_ECCFG_1_PDPREACT_VAL_MAX (1)
#define ATC_ECCFG_1_PDPREACT_VAL_DEF (0)
#define ATC_ECCFG_1_UPDATE_FREQ_CTRL_VAL_MIN (0)
#define ATC_ECCFG_1_UPDATE_FREQ_CTRL_VAL_MAX (1)
#define ATC_ECCFG_1_UPDATE_FREQ_CTRL_VAL_DEF (0)
#define ATC_ECCFG_1_QUALITY_FIRST_VAL_MIN (0)
#define ATC_ECCFG_1_QUALITY_FIRST_VAL_MAX (1)
#define ATC_ECCFG_1_QUALITY_FIRST_VAL_DEFAULT (0)
#define ATC_ECCFG_1_STATIC_CONFIG_VAL_MIN (0)
#define ATC_ECCFG_1_STATIC_CONFIG_VAL_MAX (1)
#define ATC_ECCFG_1_STATIC_CONFIG_VAL_DEFAULT (0)
#define ATEC_ECCFG_GET_RSP_STR_LEN 512
/* AT+ECSTATUS */
#define ATC_ECSTATUS_0_MAX_PARM_STR_LEN 16
#define ATC_ECSTATUS_0_MAX_PARM_STR_DEFAULT NULL
/* AT+ECRMFPLMN */
#define ATC_ECRMFPLMN_0_VAL_MIN 0
#define ATC_ECRMFPLMN_0_VAL_MAX 2
#define ATC_ECRMFPLMN_0_VAL_DEFAULT 0
/*AT+ECBCINFO*/
#define ATC_ECBCINFO_0_VAL_MIN 0
#define ATC_ECBCINFO_0_VAL_MAX 2
#define ATC_ECBCINFO_0_VAL_DEFAULT 0
#define ATC_ECBCINFO_1_VAL_MIN 4
#define ATC_ECBCINFO_1_VAL_MAX 300 /*timeout, MAX: 5 mins*/
#define ATC_ECBCINFO_1_VAL_DEFAULT 8 /*default: 8s*/
#define ATC_ECBCINFO_2_VAL_MIN 0
#define ATC_ECBCINFO_2_VAL_MAX 1 /*save_for_later*/
#define ATC_ECBCINFO_2_VAL_DEFAULT 0 /*not need to save*/
#define ATC_ECBCINFO_3_VAL_MIN 1 /*max_cell_number*/
#define ATC_ECBCINFO_3_VAL_MAX 7 /*max_cell_number, 1 serving cell + 6 neighber cell */
#define ATC_ECBCINFO_3_VAL_DEFAULT 7
#define ATC_ECBCINFO_4_VAL_MIN 0 /*report mode, 0 - report in AT response */
#define ATC_ECBCINFO_4_VAL_MAX 1 /*report mode, 1 - report in URC response */
#define ATC_ECBCINFO_4_VAL_DEFAULT 0
/* AT+CMAR */
#define ATC_CMAR_0_VAL_MIN 0
#define ATC_CMAR_0_VAL_MAX 2
#define ATC_CMAR_0_VAL_DEFAULT 0
/* AT+CMOLR */
#define ATC_CMOLR_0_ENABLE_VAL_MIN 0
#define ATC_CMOLR_0_ENABLE_VAL_MAX 3
#define ATC_CMOLR_0_ENABLE_VAL_DEFAULT 0
#define ATC_CMOLR_1_METHOD_VAL_MIN 0
#define ATC_CMOLR_1_METHOD_VAL_MAX 6
#define ATC_CMOLR_1_METHOD_VAL_DEFAULT 0
#define ATC_CMOLR_2_HORACCSET_VAL_MIN 0
#define ATC_CMOLR_2_HORACCSET_VAL_MAX 1
#define ATC_CMOLR_2_HORACCSET_VAL_DEFAULT 0
#define ATC_CMOLR_3_HORACC_VAL_MIN 0
#define ATC_CMOLR_3_HORACC_VAL_MAX 127
#define ATC_CMOLR_3_HORACC_VAL_DEFAULT 0
#define ATC_CMOLR_4_VERREQ_VAL_MIN 0
#define ATC_CMOLR_4_VERREQ_VAL_MAX 1
#define ATC_CMOLR_4_VERREQ_VAL_DEFAULT 0
#define ATC_CMOLR_5_VERACCSET_VAL_MIN 0
#define ATC_CMOLR_5_VERACCSET_VAL_MAX 1
#define ATC_CMOLR_5_VERACCSET_VAL_DEFAULT 0
#define ATC_CMOLR_6_VERACC_VAL_MIN 0
#define ATC_CMOLR_6_VERACC_VAL_MAX 127
#define ATC_CMOLR_6_VERACC_VAL_DEFAULT 0
#define ATC_CMOLR_7_VELREQ_VAL_MIN 0
#define ATC_CMOLR_7_VELREQ_VAL_MAX 4
#define ATC_CMOLR_7_VELREQ_VAL_DEFAULT 0
#define ATC_CMOLR_8_REQMODE_VAL_MIN 0
#define ATC_CMOLR_8_REQMODE_VAL_MAX 1
#define ATC_CMOLR_8_REQMODE_VAL_DEFAULT 0
#define ATC_CMOLR_9_TIMEOUT_VAL_MIN 0
#define ATC_CMOLR_9_TIMEOUT_VAL_MAX 65535
#define ATC_CMOLR_9_TIMEOUT_VAL_DEFAULT 0
#define ATC_CMOLR_10_INTERVAL_VAL_MIN 0
#define ATC_CMOLR_10_INTERVAL_VAL_MAX 65535
#define ATC_CMOLR_10_INTERVAL_VAL_DEFAULT 0
#define ATC_CMOLR_11_SHAPEREQ_VAL_MIN 1
#define ATC_CMOLR_11_SHAPEREQ_VAL_MAX 64
#define ATC_CMOLR_11_SHAPEREQ_VAL_DEFAULT 0
#define ATC_CMOLR_12_PLANE_VAL_MIN 0
#define ATC_CMOLR_12_PLANE_VAL_MAX 1
#define ATC_CMOLR_12_PLANE_VAL_DEFAULT 0
#define ATC_CMOLR_13_NMEAREQ_STR_DEFAULT NULL
#define ATC_CMOLR_13_NMEAREQ_STR_MAX_LEN 16
#define ATC_CMOLR_14_THIRDPARTYADDR_STR_DEFAULT NULL
#define ATC_CMOLR_14_THIRDPARTYADDR_STR_MAX_LEN 16
/* AT+CMTLR */
#define ATC_CMTLR_0_VAL_MIN 0
#define ATC_CMTLR_0_VAL_MAX 3
#define ATC_CMTLR_0_VAL_DEFAULT 0
/* AT+CMTLRA */
#define ATC_CMTLRA_0_VAL_MIN 0
#define ATC_CMTLRA_0_VAL_MAX 1
#define ATC_CMTLRA_0_VAL_DEFAULT 0
#define ATC_CMTLRA_1_VAL_MIN 0
#define ATC_CMTLRA_1_VAL_MAX 255
#define ATC_CMTLRA_1_VAL_DEFAULT 0
/*AT+ECSTATIS*/
#define ATC_ESTATIS_0_VAL_MIN 0
#define ATC_ESTATIS_0_VAL_MAX 600
#define ATC_ESTATIS_0_VAL_DEFAULT 0
/*AT+ECCGSN*/
#define ATC_ECCGSN_MAX_PARM_STR_LEN 8
#define ATC_ECCGSN_MAX_PARM_STR_DEFAULT NULL
/* AT+ECPSTEST */
#define ATC_ECPSTEST_VAL_MIN 0
#define ATC_ECPSTEST_VAL_MAX 1
#define ATC_ECPSTEST_VAL_DEFAULT 0
/* AT+ECPOWERCLASS */
#define ATC_ECPOWERCLASS_1_VAL_MIN 0
#define ATC_ECPOWERCLASS_1_VAL_MAX 85
#define ATC_ECPOWERCLASS_1_VAL_DEFAULT 0
#define ATC_ECPOWERCLASS_2_VAL_MIN 3
#define ATC_ECPOWERCLASS_2_VAL_MAX 6
#define ATC_ECPOWERCLASS_2_VAL_DEFAULT 3
/* AT+ECEVENTSTATIS */
#define ATC_ECEVENTSTATIS_1_VAL_MIN 0
#define ATC_ECEVENTSTATIS_1_VAL_MAX 2
#define ATC_ECEVENTSTATIS_1_VAL_DEFAULT 0
/* AT+ECNASTCFG */
#define ATC_ECNASTCFG_0_VAL_MIN 0
#define ATC_ECNASTCFG_0_VAL_MAX 2
#define ATC_ECNASTCFG_0_VAL_DEF (ATC_ECNASTCFG_0_VAL_MIN)
#define ATC_ECNASTCFG_1_VAL_MIN 0
#define ATC_ECNASTCFG_1_VAL_MAX 0xFFFFF
#define ATC_ECNASTCFG_1_VAL_DEF 0
#define ATC_ECNASTCFG_2_VAL_MIN 0
#define ATC_ECNASTCFG_2_VAL_MAX 255
#define ATC_ECNASTCFG_2_VAL_DEF 0
/* AT+ECWIFISCAN */
#define ATC_ECWIFISCAN_0_TIME_VAL_MIN 4000
#define ATC_ECWIFISCAN_0_TIME_VAL_MAX 255000
#define ATC_ECWIFISCAN_0_TIME_VAL_DEF 12000
#define ATC_ECWIFISCAN_1_ROUND_VAL_MIN 1
#define ATC_ECWIFISCAN_1_ROUND_VAL_MAX 3
#define ATC_ECWIFISCAN_1_ROUND_VAL_DEF 1
#define ATC_ECWIFISCAN_2_MAXBSSIDNUM_VAL_MIN 4
#define ATC_ECWIFISCAN_2_MAXBSSIDNUM_VAL_MAX 10
#define ATC_ECWIFISCAN_2_MAXBSSIDNUM_VAL_DEF 5
#define ATC_ECWIFISCAN_3_SCANTIMEOUT_VAL_MIN 1
#define ATC_ECWIFISCAN_3_SCANTIMEOUT_VAL_MAX 255
#define ATC_ECWIFISCAN_3_SCANTIMEOUT_VAL_DEF 5
#define ATC_ECWIFISCAN_4_PRIORITY_VAL_MIN 0 //data preferred
#define ATC_ECWIFISCAN_4_PRIORITY_VAL_MAX 1 //wifiscan preferred
#define ATC_ECWIFISCAN_4_PRIORITY_VAL_DEF 0
CmsRetId devCFUN(const AtCmdInputContext *pAtCmdReq);
CmsRetId devECBAND(const AtCmdInputContext *pAtCmdReq);
CmsRetId devECFREQ(const AtCmdInputContext *pAtCmdReq);
//CmsRetId devCGSN(const AtCmdInputContext *pAtCmdReq);
CmsRetId devECCGSN(const AtCmdInputContext *pAtCmdReq);
CmsRetId devECCGSNLOCK(const AtCmdInputContext *pAtCmdReq);
CmsRetId devECCFG(const AtCmdInputContext *pAtCmdReq);
CmsRetId devECRMFPLMN(const AtCmdInputContext *pAtCmdReq);
CmsRetId devCMAR(const AtCmdInputContext *pAtCmdReq);
CmsRetId devCMOLR(const AtCmdInputContext *pAtCmdReq);
CmsRetId devCMTLR(const AtCmdInputContext *pAtCmdReq);
CmsRetId devCMTLRA(const AtCmdInputContext *pAtCmdReq);
CmsRetId devECSTATUS(const AtCmdInputContext *pAtCmdReq);
CmsRetId devECSTATIS(const AtCmdInputContext *pAtCmdReq);
CmsRetId devECBCINFO(const AtCmdInputContext *pAtCmdReq);
CmsRetId devECWIFISCAN(const AtCmdInputContext *pAtCmdReq);
CmsRetId devECPSTEST(const AtCmdInputContext *pAtCmdReq);
//CmsRetId devECPOWERCLASS(const AtCmdInputContext *pAtCmdReq);
CmsRetId devECEVENTSTATIS(const AtCmdInputContext *pAtCmdReq);
//extern void atCmdResetSystem(uint8_t atCid, uint32_t delayMs);
CmsRetId devECNASTCFG(const AtCmdInputContext *pAtCmdReq);
#endif

View File

@@ -0,0 +1,167 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_general.h
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_PLAT_H__
#define __ATEC_PLAT_H__
#include <stdint.h>
#include "at_util.h"
#include DEBUG_LOG_HEADER_FILE
#include "debug_trace.h"
/* ATE */
#define ATC_E_0_VAL_MIN 0
#define ATC_E_0_VAL_MAX 1
#define ATC_E_0_VAL_DEFAULT 0
/* ATQ */
#define ATC_Q_0_VAL_MIN 0
#define ATC_Q_0_VAL_MAX 1
#define ATC_Q_0_VAL_DEFAULT 0
/* ATV */
#define ATC_V_0_VAL_MIN 1
#define ATC_V_0_VAL_MAX 1
#define ATC_V_0_VAL_DEFAULT 1
/* ATL */
#define ATC_L_0_VAL_MIN 0
#define ATC_L_0_VAL_MAX 3
#define ATC_L_0_VAL_DEFAULT 0
/* ATM */
#define ATC_M_0_VAL_MIN 0
#define ATC_M_0_VAL_MAX 2
#define ATC_M_0_VAL_DEFAULT 0
/* ATS0 */
#define ATC_S0_0_VAL_MIN 0
#define ATC_S0_0_VAL_MAX 255
#define ATC_S0_0_VAL_DEFAULT 0
/* AT&C */
#define ATC_AND_C_0_VAL_MIN 0
#define ATC_AND_C_0_VAL_MAX 1
#define ATC_AND_C_0_VAL_DEFAULT 1
/* AT&D */
#define ATC_AND_D_0_VAL_MIN 0
#define ATC_AND_D_0_VAL_MAX 2
#define ATC_AND_D_0_VAL_DEFAULT 2
/* ATD */
#define ATC_D_ALL_STR_MAX_LEN 64
#define ATC_D_GPRS_SC_STR_MAX_LEN 2
#define ATC_D_CALLED_ADDR_STR_MAX_LEN 15
#define ATC_D_L2P_STR_MAX_LEN 3
#define ATC_D_CID_STR_MAX_LEN 2
#define ATC_D_STR_DEFAULT NULL
/* ATO */
#define ATC_O_0_VAL_MIN 0
#define ATC_O_0_VAL_MAX 0
#define ATC_O_0_VAL_DEFAULT 0
/* ATH */
#define ATC_H_0_VAL_MIN 0
#define ATC_H_0_VAL_MAX 0
#define ATC_H_0_VAL_DEFAULT 0
/* AT+CGMI */
#define ATC_CGMI_0_VAL_MIN 0
#define ATC_CGMI_0_VAL_MAX 2
#define ATC_CGMI_0_VAL_DEFAULT 0
/* AT+CGMM */
#define ATC_CGMM_0_VAL_MIN 0
#define ATC_CGMM_0_VAL_MAX 2
#define ATC_CGMM_0_VAL_DEFAULT 0
/* AT+CSCS */
#define ATC_CSCS_0_VAL_MIN 0
#define ATC_CSCS_0_VAL_MAX 2
#define ATC_CSCS_0_VAL_DEFAULT 0
/* AT+CMUX */
#define ATC_CMUX_0_VAL_MIN 0
#define ATC_CMUX_0_VAL_MAX 2
#define ATC_CMUX_0_VAL_DEFAULT 0
/* AT+CMEE */
#define ATC_CMEE_0_VAL_MIN 0
#define ATC_CMEE_0_VAL_MAX 2
#define ATC_CMEE_0_VAL_DEFAULT 0
/* AT+CSCS */
#define ATC_CSCS_0_STR_MAX_LEN 10
#define ATC_CSCS_0_STR_DEFAULT NULL
/* AT+ECURC */
#define ATC_ECURC_0_MAX_PARM_STR_LEN 16
#define ATC_ECURC_0_MAX_PARM_STR_DEFAULT NULL
#define ATC_ECURC_1_VAL_MIN 0
#define ATC_ECURC_1_VAL_MAX 1
#define ATC_ECURC_1_VAL_DEFAULT 0
#define ATC_ECURC_GET_RSP_STR_LEN 128
/* AT+ECURCCFG */
#define ATC_ECURCCFG_0_MAX_PARM_STR_LEN 32
#define ATC_ECURCCFG_0_MAX_PARM_STR_DEFAULT NULL
#define ATC_ECURCCFG_1_TYPE_VAL_MIN 0
#define ATC_ECURCCFG_1_TYPE_VAL_MAX 1
#define ATC_ECURCCFG_1_TYPE_VAL_DEFAULT 1
#define ATC_ECURCCFG_1_DELAY_VAL_MIN 0
#define ATC_ECURCCFG_1_DELAY_VAL_MAX 10000
#define ATC_ECURCCFG_1_DELAY_VAL_DEFAULT 0
#define ATC_ECURCCFG_1_CACHE_VAL_MIN 0
#define ATC_ECURCCFG_1_CACHE_VAL_MAX 1
#define ATC_ECURCCFG_1_CACHE_VAL_DEFAULT 0
#define ATC_ECURCCFG_2_PULSE_DURATION_VAL_MIN 1
#define ATC_ECURCCFG_2_PULSE_DURATION_VAL_MAX 2000
#define ATC_ECURCCFG_2_PULSE_DURATION_VAL_DEFAULT 120
#define ATC_ECURCCFG_3_PULSE_COUNT_VAL_MIN 1
#define ATC_ECURCCFG_3_PULSE_COUNT_VAL_MAX 5
#define ATC_ECURCCFG_3_PULSE_COUNT_VAL_DEFAULT 1
CmsRetId gcAT(const AtCmdInputContext *pAtCmdReq);
CmsRetId gcATE(const AtCmdInputContext *pAtCmdReq);
CmsRetId gcATQ(const AtCmdInputContext *pAtCmdReq);
CmsRetId gcATT(const AtCmdInputContext *pAtCmdReq);
CmsRetId gcATV(const AtCmdInputContext *pAtCmdReq);
CmsRetId gcATL(const AtCmdInputContext *pAtCmdReq);
CmsRetId gcATM(const AtCmdInputContext *pAtCmdReq);
CmsRetId gcATS0(const AtCmdInputContext *pAtCmdReq);
CmsRetId gcCGMI(const AtCmdInputContext *pAtCmdReq);
CmsRetId gcCGMM(const AtCmdInputContext *pAtCmdReq);
CmsRetId gcCSCS(const AtCmdInputContext *pAtCmdReq);
CmsRetId gcCMUX(const AtCmdInputContext *pAtCmdReq);
CmsRetId gcCMEE(const AtCmdInputContext *pAtCmdReq);
CmsRetId gcATANDC(const AtCmdInputContext *pAtCmdReq);
CmsRetId gcATANDD(const AtCmdInputContext *pAtCmdReq);
CmsRetId gcECURC(const AtCmdInputContext *pAtCmdReq);
CmsRetId gcECURCCFG(const AtCmdInputContext *pAtCmdReq);
CmsRetId gcATD(const AtCmdInputContext *pAtCmdReq);
CmsRetId gcATO(const AtCmdInputContext *pAtCmdReq);
CmsRetId gcATH(const AtCmdInputContext *pAtCmdReq);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,257 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_mm.h
*
* Description: Macro definition for network service related AT commands
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_MM_H
#define _ATEC_MM_H
/* AT+CREG */
#define ATC_CREG_0_VAL_MIN 0
#define ATC_CREG_0_VAL_MAX 3
#define ATC_CREG_0_VAL_DEFAULT 0
/* AT+CSQ */
#define ATC_CSQ_0_VAL_MIN 0
#define ATC_CSQ_0_VAL_MAX 2
#define ATC_CSQ_0_VAL_DEFAULT 0
/* AT+COPS */
#define ATC_COPS_0_MODE_VAL_MIN 0
#define ATC_COPS_0_MODE_VAL_MAX 4
#define ATC_COPS_0_MODE_VAL_DEFAULT 0 /* auto */
#define ATC_COPS_1_FORMAT_VAL_MIN 0
#define ATC_COPS_1_FORMAT_VAL_MAX 2
#define ATC_COPS_1_FORMAT_VAL_DEFAULT 3 /* invalid */
#define ATC_COPS_2_OPER_STR_DEFAULT NULL
#define ATC_COPS_2_OPER_STR_MAX_LEN 16
#define ATC_COPS_3_ACT_VAL_MIN 7
#define ATC_COPS_3_ACT_VAL_MAX 7
#define ATC_COPS_3_ACT_VAL_DEFAULT 7 /* E-UTRAN */
#define ATC_COPS_GUARD_TIMER 60 /* second */
/* save parameters for Manual PLMN select: AT+COPS=<mode>,<format>,<plmnName>,<act> */
typedef struct AtcCopsManulSelectInfo_Tag
{
UINT8 mode;
UINT8 format;
UINT8 act;
UINT8 plmnName[ATC_COPS_2_OPER_STR_MAX_LEN + CMS_NULL_CHAR_LEN];
}AtcCopsManulSelectInfo;
typedef struct AtcCopsInfo_Tag
{
UINT8 plmnNum;
BOOL bPendingManulPlmnSelect;
AtcCopsManulSelectInfo manulSelectInfo;
CmiNumericPlmn *plmnList;
}AtcCopsInfo;
/* AT+CESQ */
#define ATC_CESQ_0_VAL_MIN 0
#define ATC_CESQ_0_VAL_MAX 2
#define ATC_CESQ_0_VAL_DEFAULT 0
/* AT+CPSMS */
#define ATC_CPSMS_0_MODE_VAL_MIN 0
#define ATC_CPSMS_0_MODE_VAL_MAX 2
#define ATC_CPSMS_0_MODE_VAL_DEFAULT 0
#define ATC_CPSMS_1_PRAU_STR_DEFAULT NULL
#define ATC_CPSMS_1_PRAU_STR_MAX_LEN 8
#define ATC_CPSMS_2_GPRS_STR_DEFAULT NULL
#define ATC_CPSMS_2_GPRS_STR_MAX_LEN 8
#define ATC_CPSMS_3_PTAU_STR_DEFAULT "00110100" /* default 20 hours */
#define ATC_CPSMS_3_PTAU_STR_MAX_LEN 8
#define ATC_CPSMS_4_ACT_STR_DEFAULT "00100101" /* default 5 minutes */
#define ATC_CPSMS_4_ACT_STR_MAX_LEN 8
/* AT+CEDRXS */
#define ATC_CEDRXS_0_MODE_VAL_MIN 0
#define ATC_CEDRXS_0_MODE_VAL_MAX 3
#define ATC_CEDRXS_0_MODE_VAL_DEFAULT 0
#define ATC_CEDRXS_1_VAL_MIN 0
#define ATC_CEDRXS_1_VAL_MAX 4
#define ATC_CEDRXS_1_VAL_DEFAULT 4
#define ATC_CEDRXS_2_STR_DEFAULT NULL
#define ATC_CEDRXS_2_STR_MAX_LEN 4
/* AT+CEDRXRDP */
#define ATC_CEDRXRDP_0_VAL_MIN 0
#define ATC_CEDRXRDP_0_VAL_MAX 2
#define ATC_CEDRXRDP_0_VAL_DEFAULT 0
/* AT+CCIOTOPT */
#define ATC_CCIOTOPT_0_VAL_MIN 0
#define ATC_CCIOTOPT_0_VAL_MAX 3
#define ATC_CCIOTOPT_0_VAL_DEFAULT 7 //CMI_MM_CIOT_OPT_RPT_MODE_NOT_PRESENT
#define ATC_CCIOTOPT_1_VAL_MIN 0 /* 0 - NO OPT, 1- CP, 2 - UP, 3-UP&CP */
#define ATC_CCIOTOPT_1_VAL_MAX 3
#define ATC_CCIOTOPT_1_VAL_DEFAULT 0
#define ATC_CCIOTOPT_2_VAL_MIN 0
#define ATC_CCIOTOPT_2_VAL_MAX 2
#define ATC_CCIOTOPT_2_VAL_DEFAULT 0
/* AT+CCLK */
#define ATC_CCLK_0_STR_DEFAULT NULL
#define ATC_CCLK_0_STR_MAX_LEN 32
/* AT+CTZR */
#define ATC_CTZR_0_VAL_MIN 0
#define ATC_CTZR_0_VAL_MAX 3
#define ATC_CTZR_0_VAL_DEFAULT 0
/*
* 0 disable time zone change event reporting.
* 1 Enable time zone change event reporting by unsolicited result code +CTZV: <tz>.
* 2 Enable extended time zone and local time reporting by unsolicited result code
* +CTZE: <tz>,<dst>,[<time>].
* 3 Enable extended time zone and universal time reporting by unsolicited result code
* +CTZEU: <tz>,<dst>,[<utime>].
*/
typedef enum AtcCTZRRptValue_Enum
{
ATC_CTZR_DISABLE_RPT = 0,
ATC_CTZR_RPT_TZ,
ATC_CTZR_RPT_LOCAL_TIME,
ATC_CTZR_RPT_UTC_TIME
}AtcCTZRRptValue;
/* AT+CTZU */
#define ATC_CTZU_0_VAL_MIN 0
#define ATC_CTZU_0_VAL_MAX 1
#define ATC_CTZU_0_VAL_DEFAULT 0
/*
* <onoff>: integer type value indicating
* 0 Disable automatic time zone update via NITZ.
* 1 Enable automatic time zone update via NITZ.
*/
typedef enum AtcCTZUUpdateValue_Enum
{
ATC_CTZU_DISABLE_UPDATE_TZ_VIA_NITZ = 0,
ATC_CTZU_ENABLE_UPDATE_TZ_VIA_NITZ
}AtcCTZUUpdateValue;
/*AT+ECCESQ*/
#define ATC_ECCESQ_0_VAL_MIN 0
#define ATC_ECCESQ_0_VAL_MAX 2
#define ATC_ECCESQ_0_VAL_DEFAULT 0
/*
* AT+ECCESQ=<n>
* <n>, report level
* 0: disable URC (unsolicited result code)
* 1: report, +CESQ: <rxlev>,<ber>,<rscp>,<ecno>,<rsrq>,<rsrp>, as 27.007
* 2: report, +ECCESQ: RSRP,<rsrp>,RSRQ,<rsrq>,SNR,<snr>
*/
typedef enum AtcECCESQRptValue_Enum
{
ATC_ECCESQ_DISABLE_RPT = 0,
ATC_ECCESQ_RPT_CESQ,
ATC_ECCESQ_RPT_ECCESQ
}AtcECCESQRptValue;
/*AT+ECPSMR*/
#define ATC_ECPSMR_0_VAL_MIN 0
#define ATC_ECPSMR_0_VAL_MAX 1
#define ATC_ECPSMR_0_VAL_DEFAULT 0
/*
* AT+ECPSMR=<n>
* <n>, bitmap of report level
* bit[0]: 1 enable unsolicited result code +ECPSMR
* 0 disable unsolicited result code
*/
typedef enum AtcECPSMRValue_Enum
{
ATC_ECPSMR_DISABLE = 0,
ATC_ECPSMR_ENABLE,
}AtcECPSMRValue;
/*
* AT+ECPTWEDRXS=2,XX,XX
* <n>, bitmap of report level
* bit[0]: 1 enable unsolicited result code +ECPTWEDRXP
* 0 disable unsolicited result code
*/
typedef enum AtcECPTWEDRXSValue_Enum
{
ATC_ECPTWEDRXS_DISABLE = 0,
ATC_ECPTWEDRXS_ENABLE
}AtcNPTWEDRXSValue;
/*AT+ECEMMTIME*/
#define ATC_ECEMMTIME_0_VAL_MIN 0
#define ATC_ECEMMTIME_0_VAL_MAX 7
#define ATC_ECEMMTIME_VAL_DEFAULT 0
/*
* AT+ECEMMTIME=<n>
* <n>, bitmap of report level
* bit[0]: 1 enable unsolicited result code T3346
* 0 disable unsolicited result code T3346
* bit[1]: 1 enable unsolicited result code T3448
* 0 disable unsolicited result code T3448
* bit[2]: 1 enable unsolicited result code T3412&extT3412
* 0 disable unsolicited result code T3412&extT3412
*/
#define ATC_ECEMMTIME_T3346_BIT_OFFSET 0
#define ATC_ECEMMTIME_T3448_BIT_OFFSET 1
#define ATC_ECEMMTIME_T3412_BIT_OFFSET 2
/* AT+ECPTWEDRXS */
#define ATC_ECPTWEDRXS_0_MODE_VAL_MIN 0
#define ATC_ECPTWEDRXS_0_MODE_VAL_MAX 3
#define ATC_ECPTWEDRXS_0_MODE_VAL_DEFAULT 0
#define ATC_ECPTWEDRXS_1_VAL_MIN 0
#define ATC_ECPTWEDRXS_1_VAL_MAX 5
#define ATC_ECPTWEDRXS_1_VAL_DEFAULT 4
#define ATC_ECPTWEDRXS_2_STR_DEFAULT NULL
#define ATC_ECPTWEDRXS_2_STR_MAX_LEN 4
#define ATC_ECPTWEDRXS_3_STR_DEFAULT NULL
#define ATC_ECPTWEDRXS_3_STR_MAX_LEN 4
CmsRetId mmCREG(const AtCmdInputContext *pAtCmdReq);
CmsRetId mmCOPS(const AtCmdInputContext *pAtCmdReq);
CmsRetId mmCSQ(const AtCmdInputContext *pAtCmdReq);
CmsRetId mmCESQ(const AtCmdInputContext *pAtCmdReq);
CmsRetId mmCPSMS(const AtCmdInputContext *pAtCmdReq);
CmsRetId mmCEDRXS(const AtCmdInputContext *pAtCmdReq);
CmsRetId mmCEDRXRDP(const AtCmdInputContext *pAtCmdReq);
CmsRetId mmCCIOTOPT(const AtCmdInputContext *pAtCmdReq);
CmsRetId mmCCIOTOPTI(const AtCmdInputContext *pAtCmdReq);
CmsRetId mmCRCES(const AtCmdInputContext *pAtCmdReq);
CmsRetId mmCCLK(const AtCmdInputContext *pAtCmdReq);
CmsRetId mmCTZR(const AtCmdInputContext *pAtCmdReq);
CmsRetId mmCTZU(const AtCmdInputContext *pAtCmdReq);
CmsRetId mmECPLMNS(const AtCmdInputContext *pAtCmdReq);
CmsRetId mmECCESQS(const AtCmdInputContext *pAtCmdReq);
CmsRetId mmECPSMR(const AtCmdInputContext *pAtCmdReq);
CmsRetId mmECPTWEDRXS(const AtCmdInputContext *pAtCmdReq);
CmsRetId mmECEMMTIME(const AtCmdInputContext *pAtCmdReq);
CmsRetId mmECPLMNRESELECT(const AtCmdInputContext *pAtCmdReq);
AtcCopsInfo *mmGetCopsInfo(void);
CmsRetId mmGetPlmnNumericStr(UINT8 plmnFormat, UINT8 *plmnName, UINT8 *plmnNumericStr);
#endif

View File

@@ -0,0 +1,47 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename:
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_PHY_H
#define _ATEC_PHY_H
#include <stdint.h>
#include "at_util.h"
#include DEBUG_LOG_HEADER_FILE
#include "debug_trace.h"
/* AT^PHYDEBUG */
#define ATC_PHYDBG_0_STR_DEFAULT NULL
#define ATC_PHYDBG_0_STR_MAX_LEN 16
#define ATC_PHYDBG_1_VAL_MIN 0
#define ATC_PHYDBG_1_VAL_MAX 2
#define ATC_PHYDBG_1_VAL_DEFAULT 0
#define ATC_PHYDBG_2_VAL_MIN -70
#define ATC_PHYDBG_2_VAL_MAX 23
#define ATC_PHYDBG_2_VAL_DEFAULT 0
#define ATC_PHYDBG_3_VAL_MIN -70
#define ATC_PHYDBG_3_VAL_MAX 23
#define ATC_PHYDBG_3_VAL_DEFAULT 0
#define ATC_PHYDBG_VAL_MIN 0
#define ATC_PHYDBG_VAL_MAX 255
#define ATC_PHYDBG_VAL_DEFAULT 0x7f
CmsRetId phyECPHYCFG(const AtCmdInputContext *pAtCmdReq);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,375 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_ps.h
*
* Description: Macro definition for packet switched service related AT commands
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_PS_H
#define _ATEC_PS_H
#define ATC_CID_VAL_MIN 1
#define ATC_CID_VAL_MAX 15
#define ATC_CID_VAL_DEFAULT 1
/* AT+CGCMOD */
#define ATC_CGCMOD_0_CID_VAL_MIN ATC_CID_VAL_MIN
#define ATC_CGCMOD_0_CID_VAL_MAX ATC_CID_VAL_MAX
#define ATC_CGCMOD_0_CID_VAL_DEFAULT ATC_CID_VAL_DEFAULT
/* AT+CGREG */
#define ATC_CGREG_0_VAL_MIN 0
#define ATC_CGREG_0_VAL_MAX 2
#define ATC_CGREG_0_VAL_DEFAULT 0
/* AT+CGATT */
#define ATC_CGATT_0_STATE_VAL_MIN 0
#define ATC_CGATT_0_STATE_VAL_MAX 1
#define ATC_CGATT_0_STATE_VAL_DEFAULT 1 /* attached */
/* AT+CGACT */
#define ATC_CGACT_0_STATE_VAL_MIN 0
#define ATC_CGACT_0_STATE_VAL_MAX 1
#define ATC_CGACT_0_STATE_VAL_DEFAULT 1 /* activated */
#define ATC_CGACT_1_CID_VAL_MIN ATC_CID_VAL_MIN
#define ATC_CGACT_1_CID_VAL_MAX ATC_CID_VAL_MAX
#define ATC_CGACT_1_CID_VAL_DEFAULT ATC_CID_VAL_DEFAULT
/* AT+CGDATA */
#define ATC_CGDATA_0_L2P_STR_DEFAULT "M-PT"
#define ATC_CGDATA_0_L2P_STR_MAX_LEN 16
#define ATC_CGDATA_1_CID_VAL_MIN ATC_CID_VAL_MIN
#define ATC_CGDATA_1_CID_VAL_MAX ATC_CID_VAL_MAX
#define ATC_CGDATA_1_CID_VAL_DEFAULT ATC_CID_VAL_DEFAULT
/* AT+CGDCONT */
#define ATC_CGDCONT_0_CID_VAL_MIN ATC_CID_VAL_MIN
#define ATC_CGDCONT_0_CID_VAL_MAX ATC_CID_VAL_MAX
#define ATC_CGDCONT_0_CID_VAL_DEFAULT ATC_CID_VAL_DEFAULT
#define ATC_CGDCONT_1_PDPTYPE_STR_DEFAULT "IP"
#define ATC_CGDCONT_2_APN_STR_DEFAULT NULL
#define ATC_CGDCONT_2_APN_STR_MAX_LEN 99 /* readable APN should limited in 99 bytes, as encoded APN max: 100 bytes */
#define ATC_CGDCONT_6_IPV4ADDRALLOC_VAL_MIN 0
#define ATC_CGDCONT_6_IPV4ADDRALLOC_VAL_MAX 0
#define ATC_CGDCONT_6_IPV4ADDRALLOC_VAL_DEFAULT 0
#define ATC_CGDCONT_7_PARA_VAL_MIN 0
#define ATC_CGDCONT_7_PARA_VAL_MAX 2
#define ATC_CGDCONT_7_PARA_VAL_DEFAULT 0
#define ATC_CGDCONT_8_PARA_VAL_MIN 0
#define ATC_CGDCONT_8_PARA_VAL_MAX 0
#define ATC_CGDCONT_8_PARA_VAL_DEFAULT 0
#define ATC_CGDCONT_9_PARA_VAL_MIN 0
#define ATC_CGDCONT_9_PARA_VAL_MAX 0
#define ATC_CGDCONT_9_PARA_VAL_DEFAULT 0
#define ATC_CGDCONT_10_PARA_VAL_MIN 0
#define ATC_CGDCONT_10_PARA_VAL_MAX 1
#define ATC_CGDCONT_10_PARA_VAL_DEFAULT 0
#define ATC_CGDCONT_11_PARA_VAL_MIN 0
#define ATC_CGDCONT_11_PARA_VAL_MAX 1
#define ATC_CGDCONT_11_PARA_VAL_DEFAULT 0
#define ATC_CGDCONT_12_PARA_VAL_MIN 0
#define ATC_CGDCONT_12_PARA_VAL_MAX 1
#define ATC_CGDCONT_12_PARA_VAL_DEFAULT 0
#define ATC_CGDCONT_13_PARA_VAL_MIN 0
#define ATC_CGDCONT_13_PARA_VAL_MAX 1
#define ATC_CGDCONT_13_PARA_VAL_DEFAULT 0
#define ATC_CGDCONT_14_PARA_VAL_MIN 0
#define ATC_CGDCONT_14_PARA_VAL_MAX 1
#define ATC_CGDCONT_14_PARA_VAL_DEFAULT 0
/* AT+CGDSCONT */
#define ATC_CGDSCONT_0_CID_MIN ATC_CID_VAL_MIN
#define ATC_CGDSCONT_0_CID_MAX ATC_CID_VAL_MAX
#define ATC_CGDSCONT_0_CID_DEFAULT ATC_CID_VAL_DEFAULT
#define ATC_CGDSCONT_1_PRIM_CID_MIN ATC_CID_VAL_MIN
#define ATC_CGDSCONT_1_PRIM_CID_MAX ATC_CID_VAL_MAX
#define ATC_CGDSCONT_1_PRIM_CID_DEFAULT ATC_CID_VAL_DEFAULT
#define ATC_CGDSCONT_2_PRIM_DCOMP_MIN 0
#define ATC_CGDSCONT_2_PRIM_DCOMP_MAX 3
#define ATC_CGDSCONT_2_PRIM_DCOMP_DEFAULT 0
#define ATC_CGDSCONT_3_PRIM_HCOMP_MIN 0
#define ATC_CGDSCONT_3_PRIM_HCOMP_MAX 4
#define ATC_CGDSCONT_3_PRIM_HCOMP_DEFAULT 0
#define ATC_CGDSCONT_4_PRIM_IMS_SIG_IND_MIN 0
#define ATC_CGDSCONT_4_PRIM_IMS_SIG_IND_MAX 1
#define ATC_CGDSCONT_4_PRIM_IMS_SIG_IND_DEFAULT 0
/* AT+CGEQOS */
#define ATC_CGEQOS_0_CID_VAL_MIN ATC_CID_VAL_MIN
#define ATC_CGEQOS_0_CID_VAL_MAX ATC_CID_VAL_MAX
#define ATC_CGEQOS_0_CID_VAL_DEFAULT ATC_CID_VAL_DEFAULT
#define ATC_CGEQOS_1_QCI_VAL_MIN 0
#define ATC_CGEQOS_1_QCI_VAL_MAX 79
#define ATC_CGEQOS_1_QCI_VAL_DEFAULT 0
#define ATC_CGEQOS_2_DLGBR_VAL_MIN 0
#define ATC_CGEQOS_2_DLGBR_VAL_MAX 256000
#define ATC_CGEQOS_2_DLGBR_VAL_DEFAULT 0
#define ATC_CGEQOS_3_ULGBR_VAL_MIN 0
#define ATC_CGEQOS_3_ULGBR_VAL_MAX 256000
#define ATC_CGEQOS_3_ULGBR_VAL_DEFAULT 0
#define ATC_CGEQOS_4_DLMBR_VAL_MIN 0
#define ATC_CGEQOS_4_DLMBR_VAL_MAX 256000
#define ATC_CGEQOS_4_DLMBR_VAL_DEFAULT 0
#define ATC_CGEQOS_5_ULMBR_VAL_MIN 0
#define ATC_CGEQOS_5_ULMBR_VAL_MAX 256000
#define ATC_CGEQOS_5_ULMBR_VAL_DEFAULT 0
/* AT+CGEQOSRDP */
#define ATC_CGEQOSRDP_0_CID_VAL_MIN ATC_CID_VAL_MIN
#define ATC_CGEQOSRDP_0_CID_VAL_MAX ATC_CID_VAL_MAX
#define ATC_CGEQOSRDP_0_CID_VAL_DEFAULT ATC_CID_VAL_DEFAULT
/* AT+CGCONTRDP */
#define ATC_CGCONTRDP_0_CID_VAL_MIN ATC_CID_VAL_MIN
#define ATC_CGCONTRDP_0_CID_VAL_MAX ATC_CID_VAL_MAX
#define ATC_CGCONTRDP_0_CID_VAL_DEFAULT ATC_CID_VAL_DEFAULT
/* AT+CGSCONTRDP */
#define ATC_CGSCONTRDP_0_CID_VAL_MIN ATC_CID_VAL_MIN
#define ATC_CGSCONTRDP_0_CID_VAL_MAX ATC_CID_VAL_MAX
#define ATC_CGSCONTRDP_0_CID_VAL_DEFAULT ATC_CID_VAL_DEFAULT
/* AT+CEREG */
#define ATC_CEREG_0_VAL_MIN 0
#define ATC_CEREG_0_VAL_MAX 5
#define ATC_CEREG_0_VAL_DEFAULT 0
/* AT+CSCON */
#define ATC_CSCON_0_VAL_MIN 0
#define ATC_CSCON_0_VAL_MAX 2
#define ATC_CSCON_0_VAL_DEFAULT 0
/* AT+CGTFT */
#define ATC_CGTFT_0_CID_VAL_MIN ATC_CID_VAL_MIN
#define ATC_CGTFT_0_CID_VAL_MAX ATC_CID_VAL_MAX
#define ATC_CGTFT_0_CID_VAL_DEFAULT ATC_CID_VAL_DEFAULT
#define ATC_CGTFT_1_PF_ID_VAL_MIN 1
#define ATC_CGTFT_1_PF_ID_VAL_MAX 16
#define ATC_CGTFT_1_PF_ID_VAL_DEFAULT 1
#define ATC_CGTFT_2_EP_INDEX_VAL_MIN 0
#define ATC_CGTFT_2_EP_INDEX_VAL_MAX 255
#define ATC_CGTFT_2_EP_INDEX_VAL_DEFAULT 0
#define ATC_CGTFT_4_PROTO_ID_VAL_MIN 0
#define ATC_CGTFT_4_PROTO_ID_VAL_MAX 255
#define ATC_CGTFT_4_PROTO_ID_VAL_DEFAULT 0
#define ATC_CGTFT_10_DIRECTION_VAL_MIN 0
#define ATC_CGTFT_10_DIRECTION_VAL_MAX 3
#define ATC_CGTFT_10_DIRECTION_VAL_DEFAULT 0
/* AT+CGTFTRDP */
#define ATC_CGTFTRDP_0_CID_VAL_MIN ATC_CID_VAL_MIN
#define ATC_CGTFTRDP_0_CID_VAL_MAX ATC_CID_VAL_MAX
#define ATC_CGTFTRDP_0_CID_VAL_DEFAULT ATC_CID_VAL_DEFAULT
/* AT+CSODCP */
#define ATC_CSODCP_0_CID_VAL_MIN 0 /* as some equipment send CID = 0, which act as the initial PDP */
#define ATC_CSODCP_0_CID_VAL_MAX ATC_CID_VAL_MAX
#define ATC_CSODCP_0_CID_VAL_DEFAULT ATC_CID_VAL_DEFAULT
#define ATC_CSODCP_1_CPD_VAL_MIN 1
#define ATC_CSODCP_1_CPD_VAL_MAX 950
#define ATC_CSODCP_1_CPD_VAL_DEFAULT 24
#define ATC_CSODCP_2_CPDATA_STR_MAX_LEN (ATC_CSODCP_1_CPD_VAL_MAX*2+1)
#define ATC_CSODCP_2_CPDATA_STR_DEFAULT NULL
#define ATC_CSODCP_3_RAI_VAL_MIN 0
#define ATC_CSODCP_3_RAI_VAL_MAX 2
#define ATC_CSODCP_3_RAI_VAL_DEFAULT 0 /*RAI: No information available*/
#define ATC_CSODCP_4_TYPE_VAL_MIN 0
#define ATC_CSODCP_4_TYPE_VAL_MAX 1 /*Regular data*/
#define ATC_CSODCP_4_TYPE_VAL_DEFAULT 0
/* AT+ECATTBEARER */
/* AT+CRTDCP */
#define ATC_CRTDCP_0_VAL_MIN 0
#define ATC_CRTDCP_0_VAL_MAX 2
#define ATC_CRTDCP_0_VAL_DEFAULT 0
/* AT+CGAUTH */
#define ATC_CGAUTH_0_CID_VAL_MIN ATC_CID_VAL_MIN
#define ATC_CGAUTH_0_CID_VAL_MAX ATC_CID_VAL_MAX
#define ATC_CGAUTH_0_CID_VAL_DEFAULT ATC_CID_VAL_DEFAULT
#define ATC_CGAUTH_1_AUTHPROT_VAL_MIN 0
#define ATC_CGAUTH_1_AUTHPROT_VAL_MAX 2
#define ATC_CGAUTH_1_AUTHPROT_VAL_DEFAULT 0
#define ATC_CGAUTH_2_USER_STR_MAX_LEN 64
#define ATC_CGAUTH_2_USER_STR_DEFAULT NULL
#define ATC_CGAUTH_3_PASSWD_STR_MAX_LEN 64
#define ATC_CGAUTH_3_PASSWD_STR_DEFAULT NULL
/* AT+CIPCA */
#define ATC_CIPCA_0_VAL_MIN 3
#define ATC_CIPCA_0_VAL_MAX 3
#define ATC_CIPCA_0_VAL_DEFAULT 3
#define ATC_CIPCA_1_ATT_VAL_MIN 0
#define ATC_CIPCA_1_ATT_VAL_MAX 1
#define ATC_CIPCA_1_ATT_VAL_DEFAULT 0
/* AT+CGAPNRC */
#define ATC_CGAPNRC_0_CID_VAL_MIN ATC_CID_VAL_MIN
#define ATC_CGAPNRC_0_CID_VAL_MAX ATC_CID_VAL_MAX
#define ATC_CGAPNRC_0_CID_VAL_DEFAULT ATC_CID_VAL_DEFAULT
/* AT+CGEREP */
#define ATC_CGEREP_0_VAL_MIN 0
#define ATC_CGEREP_0_VAL_MAX 1
#define ATC_CGEREP_0_VAL_DEFAULT 0
#define ATC_CGEREP_1_VAL_MIN 0
#define ATC_CGEREP_1_VAL_MAX 0
#define ATC_CGEREP_1_VAL_DEFAULT 0
/* AT+ECSENDDATA */
#define ATC_ECSENDDATA_0_CID_VAL_MIN ATC_CID_VAL_MIN
#define ATC_ECSENDDATA_0_CID_VAL_MAX ATC_CID_VAL_MAX
#define ATC_ECSENDDATA_0_CID_VAL_DEFAULT ATC_CID_VAL_DEFAULT
#define ATC_ECSENDDATA_1_DATALEN_VAL_MIN 1
#define ATC_ECSENDDATA_1_DATALEN_VAL_MAX 950
#define ATC_ECSENDDATA_1_DATALEN_VAL_DEFAULT 24
#define ATC_ECSENDDATA_2_DATA_STR_MAX_LEN (ATC_ECSENDDATA_1_DATALEN_VAL_MAX*2+1)
#define ATC_ECSENDDATA_2_DATA_STR_DEFAULT NULL
#define ATC_ECSENDDATA_3_RAI_VAL_MIN 0
#define ATC_ECSENDDATA_3_RAI_VAL_MAX 2
#define ATC_ECSENDDATA_3_RAI_VAL_DEFAULT 0 /*RAI: No information available*/
#define ATC_ECSENDDATA_4_TYPE_VAL_MIN 0
#define ATC_ECSENDDATA_4_TYPE_VAL_MAX 1
#define ATC_ECSENDDATA_4_TYPE_VAL_DEFAULT 0 /*Regular data*/
/* AT+ECCIOTPLANE */
#define ATC_ECCIOTPLANE_0_PLANE_VAL_MIN 0
#define ATC_ECCIOTPLANE_0_PLANE_VAL_MAX 2
#define ATC_ECCIOTPLANE_0_PLANE_VAL_DEFAULT 0
/* AT+ECNBIOTRAI */
#define ATC_ECNBIOTRAI_0_RAI_VAL_MIN 0
#define ATC_ECNBIOTRAI_0_RAI_VAL_MAX 1
#define ATC_ECNBIOTRAI_0_RAI_VAL_DEFAULT 0
/* AT+CGPADDR */
#define ATC_CGPADDR_0_CID_VAL_MIN ATC_CID_VAL_MIN
#define ATC_CGPADDR_0_CID_VAL_MAX ATC_CID_VAL_MAX
#define ATC_CGPADDR_0_CID_VAL_DEFAULT ATC_CID_VAL_DEFAULT
/* AT+CSCON */
#define ATC_CSCON_0_STATE_VAL_MIN 0
#define ATC_CSCON_0_STATE_VAL_MAX 1
#define ATC_CSCON_0_STATE_VAL_DEFAULT 0 /* disable indication */
/* AT+CEMODE */
#define ATC_CEMODE_VAL_MIN 0
#define ATC_CEMODE_VAL_MAX 3
#define ATC_CEMODE_VAL_DEFAULT 0
/* AT+CPSDO */
#define ATC_CPSDO_VAL_MIN 0
#define ATC_CPSDO_VAL_MAX 1
#define ATC_CPSDO_VAL_DEFAULT 0
/* AT+ECGDCNT */
#define ATC_ECGDCNT_0_VAL_MIN 0
#define ATC_ECGDCNT_0_VAL_MAX 1
#define ATC_ECGDCNT_0_VAL_DEFAULT 0
/* AT+ECAUGDCNT */
#define ATC_ECAUGDCNT_0_VAL_MIN 0
#define ATC_ECAUGDCNT_0_VAL_MAX 65535
#define ATC_ECAUGDCNT_0_VAL_DEFAULT 0
/* AT+ECSCLKEX */
#define ATC_ECSCLKEX_0_VAL_MIN 0
#define ATC_ECSCLKEX_0_VAL_MAX 1
#define ATC_ECSCLKEX_0_VAL_DEFAULT 0
#define ATC_ECSCLKEX_1_VAL_MIN 1
#define ATC_ECSCLKEX_1_VAL_MAX 50
#define ATC_ECSCLKEX_1_VAL_DEFAULT 3
#define ATC_ECSCLKEX_2_VAL_MIN 1
#define ATC_ECSCLKEX_2_VAL_MAX 600
#define ATC_ECSCLKEX_2_VAL_DEFAULT 30
/*
* +CGEREP=[<mode>[,<bfr>]]
* <mode>: integer type
* 0 buffer unsolicited result codes in the MT; if MT result code buffer is full, the oldest ones can be discarded.
* No codes are forwarded to the TE.
* 1 discard unsolicited result codes when MT-TE link is reserved (e.g. in on-line data mode); otherwise forward
* them directly to the TE
* 2 buffer unsolicited result codes in the MT when MT-TE link is reserved (e.g. in on-line data mode) and flush
* them to the TE when MT-TE link becomes available; otherwise forward them directly to the TE; - NOT SUPPORT
*/
typedef enum AtcCGEREPMode_Enum
{
ATC_CGEREP_DISCARD_OLD_CGEV = 0,
ATC_CGEREP_FWD_CGEV
}AtcCGEREPMode;
/*
* <n>: integer type
* 0 disable unsolicited result code
* 1 enable unsolicited result code +CSCON: <mode>
* 2 enable unsolicited result code +CSCON: <mode>[,<state>]
* 3 enable unsolicited result code +CSCON: <mode>[,<state>[,<access>]]
*/
typedef enum AtcCSCONRptLevel_Enum
{
ATC_DISABLE_CSCON_RPT = 0,
ATC_CSCON_RPT_MODE,
ATC_CSCON_RPT_MODE_STATE,
ATC_CSCON_RPT_MODE_STATE_ACCESS
}AtcCSCONRptLevel;
CmsRetId psCGDCONT(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCGATT(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCGACT(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCGDATA(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCGDSCONT(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCGCMOD(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCGEQOS(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCGEQOSRDP(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCGCONTRDP(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCEREG(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCSCON(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCGTFT(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCSODCP(const AtCmdInputContext *pAtCmdReq);
//CmsRetId psECATTBEARER(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCRTDCP(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCGAUTH(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCIPCA(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCGEREP(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCGAPNRC(const AtCmdInputContext *pAtCmdReq);
CmsRetId psECSENDDATA(const AtCmdInputContext *pAtCmdReq);
CmsRetId psECCIOTPLANE(const AtCmdInputContext *pAtCmdReq);
//CmsRetId psECNBIOTRAI(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCGPADDR(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCNMPSD(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCEER(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCEMODE(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCGTFTRDP(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCPSDO(const AtCmdInputContext *pAtCmdReq);
CmsRetId psCGSCONTRDP(const AtCmdInputContext *pAtCmdReq);
CmsRetId psECGDCNT(const AtCmdInputContext *pAtCmdReq);
CmsRetId psECAUGDCNT(const AtCmdInputContext *pAtCmdReq);
CmsRetId psECSCLKEX(const AtCmdInputContext *pAtCmdReq);
#endif

View File

@@ -0,0 +1,75 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename:
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_RF_H
#define _ATEC_RF_H
#include <stdint.h>
#include "at_util.h"
#include DEBUG_LOG_HEADER_FILE
#include "debug_trace.h"
/*********************************************************************************
* Defines
*********************************************************************************/
extern uint32_t ShareInfoAPSetPhyCaliMem(void);
#define RF_NST_A2C_BUFF_ADDR ShareInfoAPSetPhyCaliMem() // 0xC800 : 50K
#define RF_NST_C2A_BUFF_ADDR (RF_NST_A2C_BUFF_ADDR+0xC800)
#define RF_NST_TEMP_BUFF_ADDR1 (RF_NST_C2A_BUFF_ADDR+0x3C00)
#define RF_NST_TEMP_BUFF_ADDR2 (RF_NST_TEMP_BUFF_ADDR1+0x7800)
#define RF_NST_TABLE_BUFF_ADDR (RF_NST_TEMP_BUFF_ADDR2+0x3C00)
#define ATC_ECRFTEST_0_STR_MAX_LEN 8000 /* */
#define ATC_ECRFNST_0_STR_MAX_LEN 8000 /* */
#define RF_CALNST_PREHANDLE_CRC_ERROR (-2) // preHandle error
#define RF_CALNST_TRANSDATABLOCK_INDEX_ERROR (-3)
// rf Antenna Tuner
#define RF_ANTENNA_TUNER_BAND_NUM_MAX_ONEGROUP 14
#define RF_ANTENNA_TUNER_GROUP_NUM_MAX 4
/*********************************************************************************
* Enums
*********************************************************************************/
/*********************************************************************************
* struct
*********************************************************************************/
typedef struct
{
UINT8 bandNum[RF_ANTENNA_TUNER_BAND_NUM_MAX_ONEGROUP]; // the max band num in one group is 14
UINT8 gpioBitMask; // fem gpio bits mask, 1- this gpio is used, 0- this gpio is not used. FemGpio0 corresponds to bit0...FemGpio7 corresponds to bit7
UINT8 gpioBitVal; // fem gpio bits vaule, 0- this gpio is low level, 1- this gpio is high level. FemGpio0 corresponds to bit0...FemGpio7 corresponds to bit7
}RfAtnTunerOneGroupCfg; // 16 bytes
typedef union
{
RfAtnTunerOneGroupCfg antTunerCfg[RF_ANTENNA_TUNER_GROUP_NUM_MAX];
UINT8 u8[64];
}RfOflAtnTunerCfg; // 64 bytes
CmsRetId phyECRFNST(const AtCmdInputContext *pAtCmdReq);
BOOL phyECRFOpenApiDcDcVpaCfg(UINT8 ena, UINT8 voltage);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,200 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_sim.h
*
* Description: Process SIM related AT commands
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_SIM_H
#define _ATEC_SIM_H
/* AT+CRSM */
#define ATC_CRSM_0_CMD_VAL_MIN 0
#define ATC_CRSM_0_CMD_VAL_MAX 255
#define ATC_CRSM_0_CMD_VAL_DEFAULT 0
#define ATC_CRSM_1_FILEID_VAL_MIN 0
#define ATC_CRSM_1_FILEID_VAL_MAX 0x7FFF
#define ATC_CRSM_1_FILEID_VAL_DEFAULT 0
#define ATC_CRSM_2_P1_VAL_MIN 0
#define ATC_CRSM_2_P1_VAL_MAX 255
#define ATC_CRSM_2_P1_VAL_DEFAULT 0
#define ATC_CRSM_3_P2_VAL_MIN 0
#define ATC_CRSM_3_P2_VAL_MAX 255
#define ATC_CRSM_3_P2_VAL_DEFAULT 0
#define ATC_CRSM_4_P3_VAL_MIN 0
#define ATC_CRSM_4_P3_VAL_MAX 255
#define ATC_CRSM_4_P3_VAL_DEFAULT 0
#define ATC_CRSM_5_DATA_STR_MAX_LEN 512
#define ATC_CRSM_5_DATA_STR_DEFAULT NULL
#define ATC_CRSM_6_PATH_STR_MAX_LEN 8
#define ATC_CRSM_6_PATH_STR_DEFAULT NULL
/* AT+CSIM */
#define ATC_CSIM_0_VAL_MIN 8
#define ATC_CSIM_0_VAL_MAX 522
#define ATC_CSIM_0_VAL_DEFAULT 0
#define ATC_CSIM_1_CMD_STR_MAX_LEN 522
#define ATC_CSIM_1_CMD_STR_DEFAULT NULL
/* AT+CPIN */
#define ATC_CPIN_0_PIN_STR_MAX_LEN 8
#define ATC_CPIN_0_PIN_STR_MIN_LEN 4
#define ATC_CPIN_0_PIN_STR_DEFAULT NULL
#define ATC_CPIN_1_NEWPIN_STR_MAX_LEN 8
#define ATC_CPIN_1_NEWPIN_STR_MIN_LEN 4
#define ATC_CPIN_1_NEWPIN_STR_DEFAULT NULL
/* AT+CPWD */
#define ATC_CPWD_0_FAC_STR_MAX_LEN 2
#define ATC_CPWD_0_FAC_STR_DEFAULT NULL
#define ATC_CPWD_1_OLDPIN_STR_MAX_LEN 8
#define ATC_CPWD_1_OLDPIN_STR_MIN_LEN 4
#define ATC_CPWD_1_OLDPIN_STR_DEFAULT NULL
#define ATC_CPWD_2_NEWPIN_STR_MAX_LEN 8
#define ATC_CPWD_2_NEWPIN_STR_MIN_LEN 4
#define ATC_CPWD_2_NEWPIN_STR_DEFAULT NULL
/* AT+CLCK */
#define ATC_CLCK_0_FAC_STR_MAX_LEN 2
#define ATC_CLCK_0_FAC_STR_DEFAULT NULL
#define ATC_CLCK_1_MODE_VAL_MIN 0
#define ATC_CLCK_1_MODE_VAL_MAX 2
#define ATC_CLCK_1_MODE_VAL_DEFAULT 0
#define ATC_CLCK_2_PIN_STR_MAX_LEN 8
#define ATC_CLCK_2_PIN_STR_MIN_LEN 4
#define ATC_CLCK_2_PIN_STR_DEFAULT NULL
/* AT+CPINR */
#define ATC_CPINR_0_MAX_PARM_STR_LEN 16
#define ATC_CPINR_0_MAX_PARM_STR_DEFAULT NULL
/* AT+CSUS */
#define ATC_CSUS_0_VAL_MIN 0
#define ATC_CSUS_0_VAL_MAX 2
#define ATC_CSUS_0_VAL_DEFAULT 0
/* AT+CCHO */
#define ATC_CCHO_0_STR_MAX_LEN 32
#define ATC_CCHO_0_STR_DEFAULT NULL
/* AT+CCHC */
#define ATC_CCHC_0_VAL_MIN 1
#define ATC_CCHC_0_VAL_MAX 19
#define ATC_CCHC_0_VAL_DEFAULT 0
/* AT+CGLA */
#define ATC_CGLA_0_VAL_MIN 1
#define ATC_CGLA_0_VAL_MAX 19
#define ATC_CGLA_0_VAL_DEFAULT 0
#define ATC_CGLA_1_VAL_MIN 8
#define ATC_CGLA_1_VAL_MAX 522
#define ATC_CGLA_1_VAL_DEFAULT 0
#define ATC_CGLA_2_STR_MAX_LEN 522
#define ATC_CGLA_2_STR_DEFAULT NULL
/* AT+ECSIMSLEEP */
#define ATC_ECSIMSLEEP_0_VAL_MIN 0
#define ATC_ECSIMSLEEP_0_VAL_MAX 1
#define ATC_ECSIMSLEEP_0_VAL_DEFAULT 1
/* AT+ECSWC */
#define ATC_ECSWC_0_VAL_MIN 0
#define ATC_ECSWC_0_VAL_MAX 3
#define ATC_ECSWC_0_VAL_DEFAULT 0
/* AT+ECSIMPD */
#define ATC_ECSIMPD_0_VAL_MIN 0
#define ATC_ECSIMPD_0_VAL_MAX 1
#define ATC_ECSIMPD_0_VAL_DEFAULT 0
/* AT+ECUSATP */
#define ATC_ECUSATP_0_VAL_MIN 64
#define ATC_ECUSATP_0_VAL_MAX 78
#define ATC_ECUSATP_0_VAL_DEFAULT 0
#define ATC_ECUSATP_1_CMD_STR_MAX_LEN 78
#define ATC_ECUSATP_1_CMD_STR_DEFAULT NULL
/* AT+ECSIMCFG */
#define ECSIMCFG_MAX_SET_PARAMS_NUM 16 //limit input parameter number <= 16
#define ATC_ECSIMCFG_0_MAX_PARM_STR_LEN 32
#define ATC_ECSIMCFG_0_MAX_PARM_STR_DEFAULT NULL
#define ATC_ECSIMCFG_1_SIMSIMULATOR_VAL_MIN 0
#define ATC_ECSIMCFG_1_SIMSIMULATOR_VAL_MAX 1
#define ATC_ECSIMCFG_1_SIMSIMULATOR_VAL_DEFAULT (-1)
#define ATC_ECSIMCFG_1_SOFTSIM_VAL_MIN 0
#define ATC_ECSIMCFG_1_SOFTSIM_VAL_MAX 1
#define ATC_ECSIMCFG_1_SOFTSIM_VAL_DEFAULT (-1)
#define ATC_ECSIMCFG_1_SIMPOWERSAVE_VAL_MIN 0
#define ATC_ECSIMCFG_1_SIMPOWERSAVE_VAL_MAX 1
#define ATC_ECSIMCFG_1_SIMPOWERSAVE_VAL_DEFAULT (-1)
#define ATC_ECSIMCFG_1_SIMPRESENCEDETECT_VAL_MIN 0
#define ATC_ECSIMCFG_1_SIMPRESENCEDETECT_VAL_MAX 1
#define ATC_ECSIMCFG_1_SIMPRESENCEDETECT_VAL_DEFAULT (-1)
#define ATC_ECSIMCFG_1_SIMSLOT_VAL_MIN 0
#define ATC_ECSIMCFG_1_SIMSLOT_VAL_MAX 1
#define ATC_ECSIMCFG_1_SIMSLOT_VAL_DEFAULT 0
/* AT+CPOL */
#define ATC_CPOL_0_INDEX_VAL_MIN 1
#define ATC_CPOL_0_INDEX_VAL_MAX 500
#define ATC_CPOL_0_INDEX_VAL_DEFAULT 0
#define ATC_CPOL_1_FORMAT_VAL_MIN 0
#define ATC_CPOL_1_FORMAT_VAL_MAX 2
#define ATC_CPOL_1_FORMAT_VAL_DEFAULT 0xFF
#define ATC_CPOL_2_OPERN_STR_MAX_LEN 16
#define ATC_CPOL_2_OPERN_STR_DEFAULT NULL
#define ATC_CPOL_3_GSMACT_VAL_MIN 0
#define ATC_CPOL_3_GSMACT_VAL_MAX 1
#define ATC_CPOL_3_GSMACT_VAL_DEFAULT 0
#define ATC_CPOL_4_GSMCACT_VAL_MIN 0
#define ATC_CPOL_4_GSMCACT_VAL_MAX 1
#define ATC_CPOL_4_GSMCACT_VAL_DEFAULT 0
#define ATC_CPOL_5_UTRANACT_VAL_MIN 0
#define ATC_CPOL_5_UTRANACT_VAL_MAX 1
#define ATC_CPOL_5_UTRANACT_VAL_DEFAULT 0
#define ATC_CPOL_6_EUTRANACT_VAL_MIN 0
#define ATC_CPOL_6_EUTRANACT_VAL_MAX 1
#define ATC_CPOL_6_EUTRANACT_VAL_DEFAULT 0
/* AT+CPLS */
#define ATC_CPLS_0_LIST_VAL_MIN 0
#define ATC_CPLS_0_LIST_VAL_MAX 2
#define ATC_CPLS_0_LIST_VAL_DEFAULT 0
CmsRetId simCPIN(const AtCmdInputContext *pAtCmdReq);
CmsRetId simCPWD(const AtCmdInputContext *pAtCmdReq);
CmsRetId simCSIM(const AtCmdInputContext *pAtCmdReq);
CmsRetId simCRSM(const AtCmdInputContext *pAtCmdReq);
CmsRetId simCIMI(const AtCmdInputContext *pAtCmdReq);
CmsRetId simECICCID(const AtCmdInputContext *pAtCmdReq);
CmsRetId simCLCK(const AtCmdInputContext *pAtCmdReq);
CmsRetId simCPINR(const AtCmdInputContext *pAtCmdReq);
CmsRetId simCSUS(const AtCmdInputContext *pAtCmdReq);
CmsRetId simCCHO(const AtCmdInputContext *pAtCmdReq);
CmsRetId simCCHC(const AtCmdInputContext *pAtCmdReq);
CmsRetId simCGLA(const AtCmdInputContext *pAtCmdReq);
CmsRetId simECSIMSLEEP(const AtCmdInputContext *pAtCmdReq);
CmsRetId simECSWC(const AtCmdInputContext *pAtCmdReq);
//CmsRetId simECSIMPD(const AtCmdInputContext *pAtCmdReq);
CmsRetId simCNUM(const AtCmdInputContext *pAtCmdReq);
CmsRetId simECUSATP(const AtCmdInputContext *pAtCmdReq);
CmsRetId simECSIMCFG(const AtCmdInputContext *pAtCmdReq);
CmsRetId simECSIMRM(const AtCmdInputContext *pAtCmdReq);
CmsRetId simCPOL(const AtCmdInputContext *pAtCmdReq);
CmsRetId simCPLS(const AtCmdInputContext *pAtCmdReq);
#endif

View File

@@ -0,0 +1,301 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_sms.h
*
* Description: SMS AT commands implementation
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_SMS_H
#define _ATEC_SMS_H
#include "commontypedef.h"
#include "ps_sms_if.h"
/******************************************************************************
*****************************************************************************
* AT SMS COMMON MARCO
*****************************************************************************
******************************************************************************/
#define ATC_MAX_SMS_TDPU_SIZE (232)
#define ATC_SMS_RECORD_MAX_NUMBER 254 /* The total number of the saved SMS message in SIM */
typedef enum atecMtSmsType_enum
{
ATEC_MT_DELIVER_SMS = 0,
ATEC_MT_SUBMIT_REPORT_SMS = 1,
ATEC_MT_STATUS_REPORT_SMS = 2
}atecMtSmsType;
typedef enum atecMoSmsType_enum
{
ATEC_MO_DELIVER_REPORT_SMS = 0,
ATEC_MO_SUBMIT_SMS = 1,
ATEC_MO_COMMAND_SMS = 2,
}atecMoSmsType;
#define ATEC_MT_SMS_TYPE_MASK 0x03 /* SMS MT Message-Type Indicator mask */
#define ATEC_M0_SMS_TYPE_MASK 0x03 /* SMS MO Message-Type Indicator mask */
/* AT+CSMS */
#define ATC_CSMS_0_SERVICE_VAL_MIN 0
#define ATC_CSMS_0_SERVICE_VAL_MAX 127
#define ATC_CSMS_0_SERVICE_VAL_DEFAULT 0
/* AT+CPMS */
#define ATC_CPMS_0_MEM1_STR_MAX_LEN 3
#define ATC_CPMS_0_MEM1_STR_DEFAULT NULL
#define ATC_CPMS_1_MEM2_STR_MAX_LEN 3
#define ATC_CPMS_1_MEM2_STR_DEFAULT NULL
#define ATC_CPMS_2_MEM3_STR_MAX_LEN 3
#define ATC_CPMS_2_MEM3_STR_DEFAULT NULL
/* Ref TS-27.005, 3.1 parameter Definitions for <mem1>/<mem2>/<mem3> */
#define ATC_CPMS_PARAM_STR_BM "BM"
#define ATC_CPMS_PARAM_STR_ME "ME"
#define ATC_CPMS_PARAM_STR_MT "MT"
#define ATC_CPMS_PARAM_STR_SM "SM"
#define ATC_CPMS_PARAM_STR_TA "TA"
#define ATC_CPMS_PARAM_STR_SR "SR"
/* AT+CSCA */
#define ATC_CSCA_0_ADDR_STR_MAX_LEN ((CMI_SMS_MAX_LENGTH_OF_ADDRESS_VALUE + 1) * 4)
#define ATC_CSCA_0_ADDR_STR_DEFAULT NULL
#define ATC_CSCA_1_TYPE_VAL_MIN 0
#define ATC_CSCA_1_TYPE_VAL_MAX 255
#define ATC_CSCA_1_TYPE_VAL_DEFAULT PSIL_SMS_TOA_NUMBER_INTERNATIONAL
/* AT+CNMI */
#define ATC_CNMI_0_MODE_VAL_MIN 0
#define ATC_CNMI_0_MODE_VAL_MAX 3
#define ATC_CNMI_0_MODE_VAL_DEFAULT 0
#define ATC_CNMI_1_MT_VAL_MIN 0
#define ATC_CNMI_1_MT_VAL_MAX 3
#define ATC_CNMI_1_MT_VAL_DEFAULT 0
#define ATC_CNMI_2_BM_VAL_MIN 0
#define ATC_CNMI_2_BM_VAL_MAX 3
#define ATC_CNMI_2_BM_VAL_DEFAULT 0
#define ATC_CNMI_3_DS_VAL_MIN 0
#define ATC_CNMI_3_DS_VAL_MAX 2
#define ATC_CNMI_3_DS_VAL_DEFAULT 0
#define ATC_CNMI_4_BFR_VAL_MIN 0
#define ATC_CNMI_4_BFR_VAL_MAX 1
#define ATC_CNMI_4_BFR_VAL_DEFAULT 0
/* AT+CMGF */
#define ATC_CMGF_0_MODE_VAL_MIN 0
#define ATC_CMGF_0_MODE_VAL_MAX 1
#define ATC_CMGF_0_MODE_VAL_DEFAULT 0
/* AT+CMGL */
#define ATC_CMGL_0_MODE_STR_MAX_LEN 11
#define ATC_CMGL_0_MODE_STR_DEFAULT "REC UNREAD"
#define ATC_CMGL_0_STATE_VAL_MIN 0
#define ATC_CMGL_0_STATE_VAL_MAX 4
#define ATC_CMGL_0_STATE_VAL_DEFAULT 0
/* AT+CMGR */
#define ATC_CMGR_0_MSG_VAL_MIN 0
#define ATC_CMGR_0_MSG_VAL_MAX ATC_SMS_RECORD_MAX_NUMBER
#define ATC_CMGR_0_MSG_VAL_DEFAULT 0
/* AT+CMGS */
#define ATC_CMGS_0_PDU_LENGTH_MIN 1
#define ATC_CMGS_0_PDU_LENGTH_MAX PSIL_SMS_MAX_PDU_SIZE
#define ATC_CMGS_0_PDU_LENGTH_DEFAULT 1
#define ATC_ADDR_STR_MAX_LEN ((CMI_SMS_MAX_LENGTH_OF_ADDRESS_VALUE + 1) * 4)
#define ATC_ADDR_STR_DEFAULT PNULL
#define ATC_ADDR_TYPE_OCT_MIN 0
#define ATC_ADDR_TYPE_OCT_MAX 255
#define ATC_ADDR_TYPE_OCT_DEFAULT PSIL_SMS_TOA_NUMBER_UNKNOWN
/* AT+CMGW for PDU mode */
#define ATC_CMGW_0_PDU_LENGTH_MIN 1
#define ATC_CMGW_0_PDU_LENGTH_MAX PSIL_SMS_MAX_PDU_SIZE
#define ATC_CMGW_0_PDU_LENGTH_DEFAULT 1
#define ATC_CMGW_1_STAT_VAL_MIN CMI_SMS_STOR_STATUS_REC_UNREAD
#define ATC_CMGW_1_STAT_VAL_MAX CMI_SMS_STOR_STATUS_STO_SENT
#define ATC_CMGW_1_STAT_VAL_DEFAULT CMI_SMS_STOR_STATUS_STO_UNSENT
/* AT+CMGW for Text mode */
#define ATC_CMGW_0_ADDR_LENGTH_MAX ATC_ADDR_STR_MAX_LEN
#define ATC_CMGW_0_ADDR_LENGTH_DEFAULT ATC_ADDR_STR_DEFAULT
#define ATC_CMGW_1_STAT_STR_MAX_LEN 20
#define ATC_CMGW_1_STAT_STR_DEFAULT PSIL_SMS_STATUS_STRING_STO_UNSENT
/* AT+CMGD */
#define ATC_CMGD_0_DEL_INDEX_MIN 0
#define ATC_CMGD_0_DEL_INDEX_MAX (ATC_SMS_RECORD_MAX_NUMBER - 1)
#define ATC_CMGD_0_DEL_INDEX_DEFAULT 0
#define ATC_CMGD_1_DEL_STATE_MIN 0
#define ATC_CMGD_1_DEL_STATE_MAX 4
#define ATC_CMGD_1_DEL_STATE_DEFAULT 0
/* AT+CMMS */
#define ATC_CMMS_0_MODE_VAL_MIN 0
#define ATC_CMMS_0_MODE_VAL_MAX 2
#define ATC_CMMS_0_MODE_VAL_DEFAULT 0
/* AT+CNMA */
#define ATC_CNMA_0_REPLY_VAL_MIN 0
#define ATC_CNMA_0_REPLY_VAL_MAX 2
#define ATC_CNMA_0_REPLY_VAL_DEFAULT 0
#define ATC_CNMA_1_REPLY_VAL_MIN 0
#define ATC_CNMA_1_REPLY_VAL_MAX PSIL_SMS_MAX_PDU_SIZE_OF_DELIVER_REPORT
#define ATC_CNMA_1_REPLY_VAL_DEFAULT 0
/* AT+CSMP */
#define ATC_CSMP_0_FO_VAL_MIN 0
#define ATC_CSMP_0_FO_VAL_MAX 255
#define ATC_CSMP_1_VP_RELATIVE_VAL_MIN 0
#define ATC_CSMP_1_VP_RELATIVE_VAL_MAX 255
#define ATC_CSMP_1_VP_RELATIVE_VAL_DEFAULT PSIL_MSG_VP_DEFAULT
#define ATC_CSMP_1_VP_ABSOLUTE_STR_MAX_LEN 22 /* Time string:yy/MM/dd/,hh:mm:ss+zz */
#define ATC_CSMP_1_VP_ABSOLUTE_STR_DEFAULT NULL
#define ATC_CSMP_1_VP_ENHANCED_STR_MAX_LEN 15 /* (PSIL_SMS_VP_OCTET_MAX_LENGTH *2) + 1 */
#define ATC_CSMP_1_VP_ENHANCED_STR_DEFAULT NULL
#define ATC_CSMP_2_PID_VAL_MIN 0
#define ATC_CSMP_2_PID_VAL_MAX 1
#define ATC_CSMP_2_PID_VAL_DEFAULT 0
#define ATC_CSMP_3_DCS_VAL_MIN 0
#define ATC_CSMP_3_DCS_VAL_MAX 255
#define ATC_CSMP_3_DCS_VAL_DEFAULT 0
/* AT+CSDH */
#define ATC_CSDH_0_SHOW_VAL_MIN 0
#define ATC_CSDH_0_SHOW_VAL_MAX 1
#define ATC_CSDH_0_SHOW_VAL_DEFAULT 0
/* AT+CSAS */
#define ATC_CSAS_0_PROFILE_VAL_MIN 0
#define ATC_CSAS_0_PROFILE_VAL_MAX 255
#define ATC_CSAS_0_PROFILE_VAL_DEFAULT 0
/* AT+CRES */
#define ATC_CRES_0_PROFILE_VAL_MIN 0
#define ATC_CRES_0_PROFILE_VAL_MAX 255
#define ATC_CRES_0_PROFILE_VAL_DEFAULT 0
/* AT+CMSS */
#define ATC_CMSS_0_INDEX_VAL_MIN 0
#define ATC_CMSS_0_INDEX_VAL_MAX (ATC_SMS_RECORD_MAX_NUMBER - 1)
#define ATC_CMSS_0_INDEX_VAL_DEFAULT 0
#define ATC_CMSS_1_ADDR_LENGTH_MIN ATC_ADDR_STR_MAX_LEN
#define ATC_CMSS_1_ADDR_LENGTH_MAX ATC_ADDR_STR_MAX_LEN
#define ATC_CMSS_1_ADDR_LENGTH_DEFAULT 0
#define ATC_CMSS_2_TODA_VAL_MIN ATC_ADDR_TYPE_OCT_MIN
#define ATC_CMSS_2_TODA_VAL_MAX ATC_ADDR_TYPE_OCT_MAX
#define ATC_CMSS_2_TODA_VAL_DEFAULT ATC_ADDR_TYPE_OCT_DEFAULT
/* AT+ECSMSSEND */
#define ATC_ECSMSSEND_0_MODE_VAL_MIN 0
#define ATC_ECSMSSEND_0_MODE_VAL_MAX 1
#define ATC_ECSMSSEND_0_MODE_VAL_DEFAULT 0
/* AT+CSCB */
#define ATC_CSCB_0_MODE_VAL_MIN 0
#define ATC_CSCB_0_MODE_VAL_MAX 1
#define ATC_CSCB_0_MODE_VAL_DEFAULT 0
#define ATC_CSCB_STR_LEN 100
/* AT+ECCMGS */
#define ATC_ECCMGS_2_MSG_ID_VAL_MIN 0
#define ATC_ECCMGS_2_MSG_ID_VAL_MAX 255
#define ATC_ECCMGS_2_MSG_ID_VAL_DEFAULT 0
#define ATC_ECCMGS_3_MSG_PARTS_VAL_MIN 0
#define ATC_ECCMGS_3_MSG_PARTS_VAL_MAX 255
#define ATC_ECCMGS_3_MSG_PARTS_VAL_DEFAULT 0
#define ATC_ECCMGS_4_MSG_PART_NUM_VAL_MIN 0
#define ATC_ECCMGS_4_MSG_PART_NUM_VAL_MAX 255
#define ATC_ECCMGS_4_MSG_PART_NUM_VAL_DEFAULT 0
/******************************************************************************
*****************************************************************************
* STRUCT
*****************************************************************************
******************************************************************************/
typedef struct AtecSmsCMSSinfo_TAG
{
UINT8 sendIndex;
UINT8 mem2Type;
PsilSmsStoreItemInfo *pReadSmsInfo;
BOOL isSmsSendPending;
CmiSmsAddressInfo *pDestAddrInfo;
}AtecSmsCMSSinfo;
#define CONCAT_SMS_MAX_BUFFER_SIZE 5
typedef struct AtecConcatSmsSegment_TAG
{
UINT8 seqNum; /* Sequence number of the current segment */
CHAR *strBuf; /* Buffered +CMT report */
struct AtecConcatSmsSegment_TAG *next; /* Pointer to the next segment*/
}AtecConcatSmsSegment;
typedef struct AtecConcatSmsBuf_TAG
{
UINT8 refNum; /* Concatenated SMS reference number */
UINT8 maxNum; /* Maximum number of segments */
UINT8 lastSeqNumRpt; /* Last sequence number of segment reported */
UINT8 segmentCount; /* Count of segments bufferted */
AtecConcatSmsSegment *segmentListHead; /* Head of buffered SMS segments list */
}AtecConcatSmsBuf;
/******************************************************************************
*****************************************************************************
* API
*****************************************************************************
******************************************************************************/
CmsRetId smsCSCA(const AtCmdInputContext *pAtCmdReq);
CmsRetId smsCMGS(const AtCmdInputContext *pAtCmdReq);
CmsRetId smsCMGC(const AtCmdInputContext *pAtCmdReq);
CmsRetId smsCMGF(const AtCmdInputContext *pAtCmdReq);
CmsRetId smsCMGW(const AtCmdInputContext *pAtCmdReq);
CmsRetId smsCMGR(const AtCmdInputContext *pAtCmdReq);
CmsRetId smsCMGL(const AtCmdInputContext *pAtCmdReq);
CmsRetId smsCMGD(const AtCmdInputContext *pAtCmdReq);
CmsRetId smsCMSS(const AtCmdInputContext *pAtCmdReq);
CmsRetId smsECSMSSEND(const AtCmdInputContext *pAtCmdReq);
CmsRetId smsCSMP(const AtCmdInputContext *pAtCmdReq);
CmsRetId smsCSMS(const AtCmdInputContext *pAtCmdReq);
CmsRetId smsCSDH(const AtCmdInputContext *pAtCmdReq);
CmsRetId smsCPMS(const AtCmdInputContext *pAtCmdReq);
CmsRetId smsCNMA(const AtCmdInputContext *pAtCmdReq);
CmsRetId smsCNMAInputData(UINT8 chanId, UINT8 *pInput, UINT16 length);
void smsCNMACancel(void);
CmsRetId smsCNMI(const AtCmdInputContext *pAtCmdReq);
CmsRetId smsECCMGS(const AtCmdInputContext *pAtCmdReq);
CmsRetId smsECCMGR(const AtCmdInputContext *pAtCmdReq);
CmsRetId smsCMGSCMGCInputData(UINT8 chanId, UINT8 *pInput, UINT16 length);
void smsCMGSCMGCCancel(void);
CmsRetId smsCMGWInputData(UINT8 chanId, UINT8 * pInput, UINT16 length);
void smsCMGWCancel(void);
CmsRetId smsCMMS(const AtCmdInputContext *pAtCmdReq);
CmsRetId smsCSCB(const AtCmdInputContext *pAtCmdReq);
BOOL smsCPMSPrefMemIntConvStr( UINT8 perfMemInt, CHAR *pPerfMemString);
BOOL smsCPMSPrefMemStrConvInt(CHAR *pPerfMemString, UINT8 *pPrefMemInt);
BOOL SmsDeliverDisplayFormat(UINT8 chanId, UINT8 smsFormat, CmiSmsDisplayCmd showCmd, PsilSmsStoreItemInfo *pSmsReadInfo, AtOutPdu *pAtRspPdu);
BOOL SmsSubmitDisplayFormat(UINT8 chanId, UINT8 smsFormat, CmiSmsDisplayCmd showCmd, PsilSmsStoreItemInfo *pSmsReadInfo, AtOutPdu *pAtRspPdu);
BOOL *smsECCMGRWaitSimFlag(void);
BOOL SmsCbmDisplayFormat(UINT8 chanId, UINT8 smsFormat, CmiSmsDisplayCmd showCmd, PsilSmsStoreItemInfo *pSmsReadInfo, AtOutPdu *pAtRspPdu);
BOOL SmsStatusRptDisplayFormat(UINT8 chanId, UINT8 smsFormat, CmiSmsDisplayCmd showCmd, PsilSmsStoreItemInfo *pSmsReadInfo, AtOutPdu *pAtRspPdu);
#endif

View File

@@ -0,0 +1,35 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_dev_cnf_ind.h
*
* Description: Process dev related AT commands
*
* History:
*
* Notes:
*
******************************************************************************/
#ifdef FEATURE_PS_DEV_AT_ENABLE
#ifndef __ATEC_DEV_CNF_IND_H__
#define __ATEC_DEV_CNF_IND_H__
#include <stdio.h>
#include "cmsis_os2.h"
#include "at_util.h"
#include "cmidev.h"
#include "atec_dev.h"
#include "ps_dev_if.h"
void atDevProcCmiCnf(CamCmiCnf *pCmiCnf);
void atDevProcCmiInd(CamCmiInd *pCmiInd);
#endif
#endif

View File

@@ -0,0 +1,28 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_mm_cnf_ind.h
*
* Description: Process Network related AT commands
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_MM_CNF_IND_API_H
#define _ATEC_MM_CNF_IND_API_H
#include "at_util.h"
#define CPSMS_BUF_LEN 64
void atMmProcCmiCnf(CamCmiCnf *pCmiCnf);
void atMmProcCmiInd(CamCmiInd *pCmiInd);
#endif

View File

@@ -0,0 +1,35 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_phy_cnf_ind.h
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_PHY_CNF_IND_H__
#define __ATEC_PHY_CNF_IND_H__
#include <stdlib.h>
#include <string.h>
#include "cmsis_os2.h"
#include "at_util.h"
#include "atec_phy.h"
#include "ctype.h"
#include "cmicomm.h"
#include "atc_reply.h"
#include "ps_phy_if.h"
void atPhyProcCmiCnf(PhyCmiCnf *pCmiCnf);
void atPhyProcCmiInd(PhyCmiInd *pCmiInd);
#endif

View File

@@ -0,0 +1,44 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_ps_cnf_ind.h
*
* Description: Process packet switched service related AT commands
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_PS_CNF_IND_H__
#define __ATEC_PS_CNF_IND_H__
#include <stdio.h>
#include "cmsis_os2.h"
#include "at_util.h"
#include "cmips.h"
#include "atec_ps.h"
#include "ps_ps_if.h"
#define ATEC_CGCONTRDP_RESP_BUF_SIZE 1280
/*
* Cause ID -> Cause STRING mapping
*/
typedef struct AtcCeerCauseMapping_Tag
{
UINT16 causeId;
const CHAR *pStr;
}AtcCeerCauseMapping;
void atPsProcCmiCnf(CamCmiCnf *pCmiCnf);
void atPsProcCmiInd(CamCmiInd *pCmiInd);
#endif

View File

@@ -0,0 +1,32 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_sim_cnf_ind.h
*
* Description: The header file of atec_sim_cnf_ind
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_SIM_CNF_IND_H__
#define __ATEC_SIM_CNF_IND_H__
#include <stdio.h>
#include "cmsis_os2.h"
#include "at_util.h"
//#include "atec_controller.h"
#include "cmisim.h"
#include "atec_sim.h"
#include "ps_sim_if.h"
void atSimProcCmiCnf(CamCmiCnf *pCmiCnf);
void atSimProcCmiInd(CamCmiInd *pCmiInd);
#endif

View File

@@ -0,0 +1,61 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_sms_cnf_ind.h
*
* Description: Process SMS related AT commands
*
* History:
*
* Notes:
*
******************************************************************************/
#ifdef FEATURE_PS_SMS_AT_ENABLE
#ifndef __ATEC_SMS_CNF_IND_H__
#define __ATEC_SMS_CNF_IND_H__
#include "at_util.h"
#include "atec_sms.h"
#include "ps_sms_if.h"
CmsRetId smsNewMsgAck(UINT32 reqHandle, UINT32 reply, UINT16 ackPduLen, UINT8 *ackPdu);
CmsRetId smsCMGSCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId smsCMSSCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId smsCSCAGetCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId smsCSCACSMPSetCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId smsCSMSCurrentGetCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId smsCSMSSetCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId smsCSMSSupportedGetCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId smsCMMSSetCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId smsCMMSGetCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId smsCSCBGetCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId smsCSCBSetCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId smsCMGRCMSSGetSmsMsgRecordCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId smsCMGWSetSmsMsgRecordCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId smsCMGDDelSmsMsgRecordCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId smsCMGLSmsMsgRecordCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId smsCPMSGetStorStatusCnf(UINT16 reqHandle, UINT16 rc, void *paras);
CmsRetId smsNewSMSRptUrc(CmiSmsNewMsgInd *pCmiMsgInd);
CmsRetId smsProcNewSMSInd(void * paras);
CmsRetId smsNewMessageMemoryLocationInd(void *paras);
CmsRetId smsCMGRGetSmsMsgCnf(UINT16 reqHandle, PsilSmsStoreItemInfo *pGetSmsInfo);
CmsRetId smsCMSSGetSmsMsgCnf(UINT16 reqHandle, PsilSmsStoreItemInfo *pGetSmsInfo);
CmiSmsAccMemRet smsStoreNewMsgToStorage(UINT32 atHandle, CmiSmsNewMsgInd *pCmiMsgInd, UINT8 saveMode, UINT8* pMemIndex);
void atSmsProcCmiCnf(CamCmiCnf *pCmiCnf);
void atSmsProcCmiInd(CamCmiInd *pCmiInd);
#endif
#endif

View File

@@ -0,0 +1,53 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: at_ref_entity.h
*
* Description: Process protocol related AT CMD
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __AT_REF_ENTITY_H__
#define __AT_REF_ENTITY_H__
#include "at_util.h"
#include "cmicomm.h"
/******************************************************************************
*****************************************************************************
* EXTERNAL API
*****************************************************************************
******************************************************************************/
/*
* process: SIG_CAM_CMI_CNF
*/
CmsRetId atRefProcCmiCnf(CamCmiCnf *pCmiCnf);
/*
* process: SIG_CAM_CMI_IND
*/
CmsRetId atRefProcCmiInd(CamCmiInd *pCmiInd);
/*
* process: SIG_CMS_APPL_CNF
*/
CmsRetId atRefProcApplCnf(CmsApplCnf *pApplCnf);
/*
* process: SIG_CMS_APPL_IND
*/
CmsRetId atRefProcApplInd(CmsApplInd *pApplInd);
#endif

View File

@@ -0,0 +1,52 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_ref_cmd_table.h
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_REF_CMD_TABLE_H
#define _ATEC_REF_CMD_TABLE_H
#include "at_util.h"
/******************************************************************************
*****************************************************************************
* MARCO
*****************************************************************************
******************************************************************************/
/******************************************************************************
*****************************************************************************
* ENUM
*****************************************************************************
******************************************************************************/
/*
* REF AT CMD table
*/
AtCmdPreDefInfoC* atcGetRefAtCmdSeqPointer(void);
/*
* REF AT CMD number
*/
UINT32 atcGetRefAtCmdSeqNumb(void);
#endif
/* END OF FILE */

View File

@@ -0,0 +1,143 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_ref_ps.h
*
* Description: Process protocol related AT CMD
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_REF_PS_H_
#define _ATEC_REF_PS_H_
#include "at_util.h"
/* AT+QENG */
#define MAX_QENG_PARA_LEN 20
#define ATC_QENG_STR_DEFAULT NULL
/* AT+QICSGP */
#define ATC_QICSGP_0_CONTEXTID_VAL_MIN 1
#define ATC_QICSGP_0_CONTEXTID_VAL_MAX 15
#define ATC_QICSGP_0_CONTEXTID_VAL_DEF 1
#define ATC_QICSGP_1_CONTEXTTYPE_VAL_MIN 1
#define ATC_QICSGP_1_CONTEXTTYPE_VAL_MAX 3
#define ATC_QICSGP_1_CONTEXTTYPE_VAL_DEF 1
#define ATC_QICSGP_2_APN_VAL_DEF PNULL
#define ATC_QICSGP_2_APN_STR_MAX_LEN 100
#define ATC_QICSGP_3_UNAME_VAL_DEF PNULL
#define ATC_QICSGP_3_UNAME_STR_MAX_LEN (CMI_PS_MAX_AUTH_STR_LEN)
#define ATC_QICSGP_4_UPSWD_VAL_DEF PNULL
#define ATC_QICSGP_4_UPSWD_STR_MAX_LEN (CMI_PS_MAX_AUTH_STR_LEN)
#define ATC_QICSGP_5_AUTHTYPE_VAL_MIN 0
#define ATC_QICSGP_5_AUTHTYPE_VAL_MAX 3
#define ATC_QICSGP_5_AUTHTYPE_VAL_DEF 0
/* AT+QIACT */
#define ATC_QIACT_0_CONTEXTID_VAL_MIN 1
#define ATC_QIACT_0_CONTEXTID_VAL_MAX 15
#define ATC_QIACT_0_CONTEXTID_VAL_DEF 1
/* AT+QIDEACT */
#define ATC_QIDEACT_0_CONTEXTID_VAL_MIN 1
#define ATC_QIDEACT_0_CONTEXTID_VAL_MAX 15
#define ATC_QIDEACT_0_CONTEXTID_VAL_DEF 1
/* AT+QWIFISCAN */
#define ATC_QWIFISCAN_0_TIME_VAL_MIN 4000
#define ATC_QWIFISCAN_0_TIME_VAL_MAX 255000
#define ATC_QWIFISCAN_0_TIME_VAL_DEF 12000
#define ATC_QWIFISCAN_1_ROUND_VAL_MIN 1
#define ATC_QWIFISCAN_1_ROUND_VAL_MAX 3
#define ATC_QWIFISCAN_1_ROUND_VAL_DEF 1
#define ATC_QWIFISCAN_2_MAXBSSIDNUM_VAL_MIN 4
#define ATC_QWIFISCAN_2_MAXBSSIDNUM_VAL_MAX 10
#define ATC_QWIFISCAN_2_MAXBSSIDNUM_VAL_DEF 5
#define ATC_QWIFISCAN_3_SCANTIMEOUT_VAL_MIN 1
#define ATC_QWIFISCAN_3_SCANTIMEOUT_VAL_MAX 255
#define ATC_QWIFISCAN_3_SCANTIMEOUT_VAL_DEF 5
#define ATC_QWIFISCAN_4_PRIORITY_VAL_MIN 0 //data preferred
#define ATC_QWIFISCAN_4_PRIORITY_VAL_MAX 1 //wifiscan preferred
#define ATC_QWIFISCAN_4_PRIORITY_VAL_DEF 0
/* AT+QPOWD */
#define ATC_QPOWD_0_CONTEXTID_VAL_MIN 0
#define ATC_QPOWD_0_CONTEXTID_VAL_MAX 1
#define ATC_QPOWD_0_CONTEXTID_VAL_DEF 0
/* AT+QIREGAPP */
#define ATC_QIREGAPP_0_APN_VAL_DEF PNULL
#define ATC_QIREGAPP_0_APN_VAL_MAX_LEN 100
#define ATC_QIREGAPP_1_UNAME_VAL_DEF PNULL
#define ATC_QIREGAPP_1_UNAME_STR_MAX_LEN (CMI_PS_MAX_AUTH_STR_LEN)
#define ATC_QIREGAPP_2_UPSWD_VAL_DEF PNULL
#define ATC_QIREGAPP_3_UPSWD_STR_MAX_LEN (CMI_PS_MAX_AUTH_STR_LEN)
/* AT+QGDCNT */
#define ATC_QGDCNT_0_VAL_MIN 0
#define ATC_QGDCNT_0_VAL_MAX 1
#define ATC_QGDCNT_0_VAL_DEFAULT 0
/* AT+QAUGDCNT */
#define ATC_QAUGDCNT_0_VAL_MIN 0
#define ATC_QAUGDCNT_0_VAL_MAX 65535
#define ATC_QAUGDCNT_0_VAL_DEFAULT 0
/* AT+QCFG */
#define QCFG_0_TYPE_STR_MAX_LEN 32
#define QCFG_0_TYPE_STR_DEF_VAL NULL
#define QCFG_1_TYPE_VAL_MIN 0
#define QCFG_1_TYPE_VAL_MAX 1
#define QCFG_1_TYPE_VAL_DEF (QCFG_1_TYPE_VAL_MIN)
typedef enum QCFG_URCCACHE_STATE_Enum
{
QCFG_URCCACHE_DISABLE = 0,
QCFG_URCCACHE_ENABLE = 1,
}QCFG_URCCACHE_STATE;
CmsRetId refPsQCCID(const AtCmdInputContext *pAtCmdReq);
CmsRetId refPsQENG(const AtCmdInputContext *pAtCmdReq);
CmsRetId refPsQCELL(const AtCmdInputContext *pAtCmdReq);
CmsRetId refPsQWIFISCAN(const AtCmdInputContext *pAtCmdReq);
CmsRetId refPsQPOWD(const AtCmdInputContext *pAtCmdReq);
CmsRetId refPsACT(const AtCmdInputContext *pAtCmdReq);
CmsRetId refPsDEACT(const AtCmdInputContext *pAtCmdReq);
CmsRetId refPsQGDCNT(const AtCmdInputContext *pAtCmdReq);
CmsRetId refPsQAUGDCNT(const AtCmdInputContext *pAtCmdReq);
CmsRetId refPsREGAPP(const AtCmdInputContext *pAtCmdReq);
CmsRetId refPsCSGP(const AtCmdInputContext *pAtCmdReq);
CmsRetId refPsQSPN(const AtCmdInputContext *pAtCmdReq);
CmsRetId refPsQCFG(const AtCmdInputContext *pAtCmdReq);
#endif

View File

@@ -0,0 +1,324 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_ref_tcpip.h
*
* Description: Process TCP/IP related AT CMD
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef _ATEC_REF_TCP_IP_H_
#define _ATEC_REF_TCP_IP_H_
#include "at_util.h"
#include "at_sock_entity.h"
#define MAX_REF_URL_IPADDR_LEN 255
#define MAX_REF_IPADDR_LEN 64
#define QISOCKET_CONNECT_ID_INVALID 255
/* AT+QIOPEN*/
#define QIOPEN_0_CID_MIN 1
#define QIOPEN_0_CID_MAX 15
#define QIOPEN_0_CID_DEF 1
#define QIOPEN_1_CONNECT_ID_MIN 0
#define QIOPEN_1_CONNECT_ID_MAX 11
#define QIOPEN_1_CONNECT_ID_DEF 0
#define QIOPEN_2_TYPE_STR_MAX_LEN 12
#define QIOPEN_2_TYPE_STR_DEF NULL
#define QIOPEN_3_REMOTE_ADDR_STR_MAX_LEN MAX_REF_URL_IPADDR_LEN
#define QIOPEN_3_REMOTE_ADDR_STR_DEF NULL
#define QIOPEN_4_REMOTE_PORT_MIN 0
#define QIOPEN_4_REMOTE_PORT_MAX 65535
#define QIOPEN_4_REMOTE_PORT_DEF 0
#define QIOPEN_5_LOCAL_PORT_MIN 0
#define QIOPEN_5_LOCAL_PORT_MAX 65535
#define QIOPEN_5_LOCAL_PORT_DEF 0
#define QIOPEN_6_ACCESS_MODE_MIN 0
#define QIOPEN_6_ACCESS_MODE_MAX 2
#define QIOPEN_6_ACCESS_MODE_DEF 1
#define QIOPEN_SERVER_MODE_LOCAL_PORT_MIN 10000
#define QIOPEN_SERVER_MODE_LOCAL_PORT_MAX 10015
/* AT+QICLOSE*/
#define QICLOSE_0_CONNECT_ID_MIN 0
#define QICLOSE_0_CONNECT_ID_MAX 11
#define QICLOSE_0_CONNECT_ID_DEF 0
#define QICLOSE_1_TIME_OUT_MIN 0
#define QICLOSE_1_TIME_OUT_MAX 65535
#define QICLOSE_1_TIME_OUT_DEF 10
/*AT+QIRD*/
#define AT_QIRD_0_CONNECTID_MIN (0)
#define AT_QIRD_0_CONNECTID_MAX (11)
#define AT_QIRD_0_CONNECTID_DEF (-1)
#define AT_QIRD_1_READ_LENGTH_MIN (0)
#define AT_QIRD_1_READ_LENGTH_MAX (1500)
#define AT_QIRD_1_READ_LENGTH_DEF (0)
/* AT+QICFG */
#define ATC_QICFG_0_MAX_PARM_STR_LEN 32
#define ATC_QICFG_0_MAX_PARM_STR_DEFAULT NULL
#define AT_QICFG_1_TRANS_PKT_SIZE_MIN (1)
#define AT_QICFG_1_TRANS_PKT_SIZE_MAX (1460)
#define AT_QICFG_1_TRANS_PKT_SIZE_DEF (0)
#define AT_QICFG_2_TRANS_WAIT_TM_MIN (0)
#define AT_QICFG_2_TRANS_WAIT_TM_MAX (20)
#define AT_QICFG_2_TRANS_WAIT_TM_DEF (0)
#define AT_QICFG_3_SEND_DATA_FORMAT_MIN (0)
#define AT_QICFG_3_SEND_DATA_FORMAT_MAX (1)
#define AT_QICFG_3_SEND_DATA_FORMAT_DEF (0)
#define AT_QICFG_4_RECV_DATA_FORMAT_MIN (0)
#define AT_QICFG_4_RECV_DATA_FORMAT_MAX (1)
#define AT_QICFG_4_RECV_DATA_FORMAT_DEF (0)
#define AT_QICFG_5_VIEW_MODE_MIN (0)
#define AT_QICFG_5_VIEW_MODE_MAX (1)
#define AT_QICFG_5_VIEW_MODE_DEF (0)
#define AT_QICFG_6_PASSIVE_CLOSE_MIN (0)
#define AT_QICFG_6_PASSIVE_CLOSE_MAX (1)
#define AT_QICFG_6_PASSIVE_CLOSE_DEF (0)
#define AT_QICFG_7_UDP_READ_MODE_MIN (0)
#define AT_QICFG_7_UDP_READ_MODE_MAX (1)
#define AT_QICFG_7_UDP_READ_MODE_DEF (0)
#define AT_QICFG_8_UDP_SEND_MODE_MIN (0)
#define AT_QICFG_8_UDP_SEND_MODE_MAX (1)
#define AT_QICFG_8_UDP_SEND_MODE_DEF (0)
#define AT_QICFG_9_TCP_KEEPALIVE_ENABLE_MIN (0)
#define AT_QICFG_9_TCP_KEEPALIVE_ENABLE_MAX (1)
#define AT_QICFG_9_TCP_KEEPALIVE_ENABLE_DEF (0)
#define AT_QICFG_10_TCP_KEEPALIVE_IDLE_TIME_MIN (0)
#define AT_QICFG_10_TCP_KEEPALIVE_IDLE_TIME_MAX (1800)
#define AT_QICFG_10_TCP_KEEPALIVE_IDLE_TIME_DEF (0)
#define AT_QICFG_11_TCP_KEEPALIVE_INT_TIME_MIN (24)
#define AT_QICFG_11_TCP_KEEPALIVE_INT_TIME_MAX (100)
#define AT_QICFG_11_TCP_KEEPALIVE_INT_TIME_DEF (0)
#define AT_QICFG_12_TCP_KEEPALIVE_PROBE_CNT_MIN (3)
#define AT_QICFG_12_TCP_KEEPALIVE_PROBE_CNT_MAX (10)
#define AT_QICFG_12_TCP_KEEPALIVE_PROBE_CNT_DEF (0)
#define AT_QICFG_13_RECV_IND_MIN (0)
#define AT_QICFG_13_RECV_IND_MAX (1)
#define AT_QICFG_13_RECV_IND_DEF (0)
#define AT_QICFG_14_TCP_ACCEPT_MIN (0)
#define AT_QICFG_14_TCP_ACCEPT_MAX (1)
#define AT_QICFG_14_TCP_ACCEPT_DEF (0)
#define AT_QICFG_15_SENDINFO_MIN (0)
#define AT_QICFG_15_SENDINFO_MAX (1)
#define AT_QICFG_15_SENDINFO_DEF (0)
/*AT+QISDE*/
#define AT_QISDE_0_ECHO_MIN (0)
#define AT_QISDE_0_ECHO_MAX (1)
#define AT_QISDE_0_ECHO_DEF (0)
/*AT+QISWTMD parameters defined*/
#define AT_QISWTMD_0_CONNECTID_MIN (0)
#define AT_QISWTMD_0_CONNECTID_MAX (11)
#define AT_QISWTMD_0_CONNECTID_DEF (-1)
#define AT_QISWTMD_1_ACCMODE_MIN (0)
#define AT_QISWTMD_1_ACCMODE_MAX (2)
#define AT_QISWTMD_1_ACCMODE_DEF (0)
/*AT+QISTATE*/
#define AT_QISTATE_0_SERVICETYPE_MIN (0)
#define AT_QISTATE_0_SERVICETYPE_MAX (1)
#define AT_QISTATE_0_SERVICETYPE_DEF (0)
#define AT_QISTATE_1_CONTEXTID_MIN (1)
#define AT_QISTATE_1_CONTEXTID_MAX (15)
#define AT_QISTATE_1_CONTEXTID_DEF (1)
#define AT_QISTATE_1_CONNECTID_MIN (0)
#define AT_QISTATE_1_CONNECTID_MAX (11)
#define AT_QISTATE_1_CONNECTID_DEF (0)
/*AT+QISENDEX parameters defined*/
#define AT_QISENDEX_0_CONNECTID_MIN (0)
#define AT_QISENDEX_0_CONNECTID_MAX (11)
#define AT_QISENDEX_0_CONNECTID_DEF (-1)
#define QISENDEX_SEND_HEX_MAX (512)
#define AT_QISENDEX_1_SENDHEXDATA_DEF (PNULL)
/*AT+QISEND parameters defined*/
#define AT_QISEND_0_CONNECTID_MIN (0)
#define AT_QISEND_0_CONNECTID_MAX (11)
#define AT_QISEND_0_CONNECTID_DEF (-1)
#define AT_QISEND_1_SENDLEN_MIN (0)
#define AT_QISEND_1_SENDLEN_MAX (1460)
#define AT_QISEND_1_SENDLEN_DEF (0)
#define AT_QISEND_2_REMOTE_IP_DEF (PNULL)
#define AT_QISEND_3_REMOTE_PORT_MIN (0)
#define AT_QISEND_3_REMOTE_PORT_MAX (65535)
#define AT_QISEND_3_REMOTE_PORT_DEF (0)
/* AT+QPING */
#define QPING_DEFAULT_PAYLOAD_SIZE 35
#define QPING_0_CID_MIN 1
#define QPING_0_CID_MAX 15
#define QPING_0_CID_DEF 1
#define QPING_1_STR_MAX_LEN MAX_REF_URL_IPADDR_LEN
#define QPING_1_STR_DEF NULL
#define QPING_2_TIMEOUT_MIN 1
#define QPING_2_TIMEOUT_MAX 255
#define QPING_2_TIMEOUT_DEF 4
#define QPING_3_PING_NUM_MIN 1
#define QPING_3_PING_NUM_MAX 10
#define QPING_3_PING_NUM_DEF 4
/*AT +QSNTP*/
#define QSNTP_0_CID_MIN 1
#define QSNTP_0_CID_MAX 15
#define QSNTP_0_CID_DEF 1
#define QSNTP_1_STR_MAX_LEN MAX_REF_URL_IPADDR_LEN
#define QSNTP_1_STR_DEF NULL
#define QSNTP_2_PORT_MIN 1
#define QSNTP_2_PORT_MAX 65535
#define QSNTP_2_PORT_DEF 123
#define QSNTP_3_AUTO_MIN 0
#define QSNTP_3_AUTO_MAX 1
#define QSNTP_3_AUTO_DEF 0
#define QSNTP_GET_STATUS_CNF_STR_LEN 312
/*AT+QIDNSCFG*/
#define QIDNSCFG_DNS_NUM 2
#define QIDNSCFG_GET_CNF_STR_LEN 256
#define QIDNSCFG_GET_CNF_TMP_STR_LEN 64
#define QIDNSCFG_0_CID_MIN 1
#define QIDNSCFG_0_CID_MAX 15
#define QIDNSCFG_0_CID_DEF 1
#define QIDNSCFG_1_DNS_MAX_LEN MAX_REF_IPADDR_LEN
#define QIDNSCFG_1_DNS_DEF NULL
/* AT+QIDNSGIP */
#define QIDNSGIP_0_CID_MIN 1
#define QIDNSGIP_0_CID_MAX 15
#define QIDNSGIP_0_CID_DEF 1
#define QIDNSGIP_1_STR_MAX_LEN MAX_REF_URL_IPADDR_LEN
#define QIDNSGIP_1_STR_DEF NULL
/* AT+ECNETDEVCTL */
#define QNETDEVCTL_0_OP_MIN 0
#define QNETDEVCTL_0_OP_MAX 3
#define QNETDEVCTL_0_OP_DEF 0
#define QNETDEVCTL_1_CID_MIN 1
#define QNETDEVCTL_1_CID_MAX 15
#define QNETDEVCTL_1_CID_DEF 1
#define QNETDEVCTL_2_URCEN_MIN 0
#define QNETDEVCTL_2_URCEN_MAX 1
#define QNETDEVCTL_2_URCEN_DEF 0
/**********************macro define****************************************/
#define NM_TRANS_IPV4ADDR_TO_BYTE(ipAddr ,ipAddrCfg ) \
do{ \
ipAddrCfg.ipAddr[0] = ip4_addr1(&(ipAddr.u_addr.ip4)); \
ipAddrCfg.ipAddr[1] = ip4_addr2(&(ipAddr.u_addr.ip4)); \
ipAddrCfg.ipAddr[2] = ip4_addr3(&(ipAddr.u_addr.ip4)); \
ipAddrCfg.ipAddr[3] = ip4_addr4(&(ipAddr.u_addr.ip4)); \
}while(0)
#define NM_TRANS_IPV6ADDR_TO_BYTE(ipAddr ,ipAddrCfg ) \
do{ \
UINT16 ipv6U16 = 0; \
ipv6U16 = IP6_ADDR_BLOCK1(&(ipAddr.u_addr.ip6)); \
ipAddrCfg.ipAddr[0] = (UINT8)((ipv6U16 >> 8)&0xFF); \
ipAddrCfg.ipAddr[1] = (UINT8)(ipv6U16 & 0xFF); \
ipv6U16 = IP6_ADDR_BLOCK2(&(ipAddr.u_addr.ip6)); \
ipAddrCfg.ipAddr[2] = (UINT8)((ipv6U16 >> 8)&0xFF); \
ipAddrCfg.ipAddr[3] = (UINT8)(ipv6U16 & 0xFF); \
ipv6U16 = IP6_ADDR_BLOCK3(&(ipAddr.u_addr.ip6)); \
ipAddrCfg.ipAddr[4] = (UINT8)((ipv6U16 >> 8)&0xFF); \
ipAddrCfg.ipAddr[5] = (UINT8)(ipv6U16 & 0xFF); \
ipv6U16 = IP6_ADDR_BLOCK4(&(ipAddr.u_addr.ip6)); \
ipAddrCfg.ipAddr[6] = (UINT8)((ipv6U16 >> 8)&0xFF); \
ipAddrCfg.ipAddr[7] = (UINT8)(ipv6U16 & 0xFF); \
ipv6U16 = IP6_ADDR_BLOCK5(&(ipAddr.u_addr.ip6)); \
ipAddrCfg.ipAddr[8] = (UINT8)((ipv6U16 >> 8)&0xFF); \
ipAddrCfg.ipAddr[9] = (UINT8)(ipv6U16 & 0xFF); \
ipv6U16 = IP6_ADDR_BLOCK6(&(ipAddr.u_addr.ip6)); \
ipAddrCfg.ipAddr[10] = (UINT8)((ipv6U16 >> 8)&0xFF); \
ipAddrCfg.ipAddr[11] = (UINT8)(ipv6U16 & 0xFF); \
ipv6U16 = IP6_ADDR_BLOCK7(&(ipAddr.u_addr.ip6)); \
ipAddrCfg.ipAddr[12] = (UINT8)((ipv6U16 >> 8)&0xFF); \
ipAddrCfg.ipAddr[13] = (UINT8)(ipv6U16 & 0xFF); \
ipv6U16 = IP6_ADDR_BLOCK8(&(ipAddr.u_addr.ip6)); \
ipAddrCfg.ipAddr[14] = (UINT8)((ipv6U16 >> 8)&0xFF); \
ipAddrCfg.ipAddr[15] = (UINT8)(ipv6U16 & 0xFF); \
}while(0)
/**********************function api define****************************************/
CmsRetId nmQIOPEN(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmQICLOSE(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmQIPING(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmQINTP(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmQIDNSCFG(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmQIDNSGIP(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmQIRD(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmQICFG(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmQISDE(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmQIGETERROR(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmQISTATE(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmQISEND(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmQISENDEX(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmQISWTMD(const AtCmdInputContext *pAtCmdReq);
CmsRetId nmQISocInputData(UINT8 chanId, UINT8 *pInput, UINT16 length);
void nmQISocFreeDataInfo(void);
void nmQISocFreeDataBody(void);
CmsRetId nmQISocInputPSTHData(UINT8 chanId, UINT8 *pInput, UINT16 length);
void nmQISocPSTHdataInit(UINT8 connectId, UINT16 reqHander);
void nmQISocPSTHdataDeInit(void);
void nmQISocEnableUlfc(UINT8 chanId);
void nmQISocDisableUlfc(UINT8 chanId);
CmsRetId nmQNETDEVCTL(const AtCmdInputContext *pAtCmdReq);
AtRefSocketSendInfo *nmQISocGetSendMsgHander(void);
#endif

View File

@@ -0,0 +1,31 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_ref_ps_cnf_ind.h
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_REF_PS_CNF_IND_H__
#define __ATEC_REF_PS_CNF_IND_H__
#include "cmicomm.h"
void atRefDevProcCmiCnf(CamCmiCnf *pCmiCnf);
void atRefSimProcCmiCnf(CamCmiCnf *pCmiCnf);
void atRefPsProcCmiCnf(CamCmiCnf *pCmiCnf);
void atRefPsProcCmiInd(CamCmiInd *pCmiInd);
CmsRetId refPsProcDeactInd(UINT16 reqHandle,void *paras);
void atRefMmProcCmiCnf(CamCmiCnf *pCmiCnf);
#endif

View File

@@ -0,0 +1,33 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename: atec_ref_tcpip_cnf_ind.h
*
* Description:Process TCP/IP service related AT commands
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATEC_REF_TCPIP_CNF_IND_H__
#define __ATEC_REF_TCPIP_CNF_IND_H__
#include "at_util.h"
void atTcpIpProcRefNmApplCnf(CmsApplCnf *pApplCnf);
void atTcpIpProcRefNmApplInd(CmsApplInd *pApplInd);
void atTcpIpProcRefSoclCnf(CmsApplCnf *pApplCnf);
void atTcpIpProcRefSoclInd(CmsApplInd *pApplInd);
/*
* When AT channel enter: ATC_REF_SOCKET_PASSTHROUGH_STATE/ATC_ONLINE_COMMAND_STATE, the AT channel data/Event callback API
*/
CmsRetId nmRefSockPSTHAndOnlineCmdCallback(UINT8 chanId, UINT8 curChanState, AtDataAndOnlineCmdSEvt eventId, void *pArg);
#endif

View File

@@ -0,0 +1,365 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename:
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATC_REPLY_H__
#define __ATC_REPLY_H__
#include "commontypedef.h"
#include "atc_decoder.h"
#include "pspdu.h"
/******************************************************************************
* +-----+ +-----+
* | DTE | --> AT CMD --> | DCE |
* +-----+ +-----+
*
* V.250: Table 3/V.250 <20>C Effect of V parameter on response formats
* 1> Two types of responses: "information text" and "result codes"
* A) "information text" three parts: a header, text, and a trailer
* a> ATV0: <text><S3><S4> (normal: <text>\r\n)
* b> ATV1: <S3><S4><text><S3><S4> (normal: \r\n<text>\r\n)
* c> information text returned in response to manufacturer-specific commands
* may contain multiple lines, may therefore include: CR,LF (\r\n)
*
* B) "result codes" three parts: a header, the result text, and a trailer
* a> ATV0: <numeric code><S3> (normal: <numeric code>\r)
* example: 0\r (OK)
*
* b> ATV1: <S3><S4><verbose code><S3><S4> (normal: \r\n<verbose code>\r\n)
* example: \r\nOK\r\n
*
* c> Three types of result codes: "final", "intermediate", and "unsolicited".
* i> "final": indicates the completion of a full DCE action and a willingness
* to accept new commands from the DTE
* ii> "intermediate": suc as: the DCE moves from "command state" to
* "online data state", and issues a: "CONNECT"
* iii> "Unsolicited": URC
*
* C) "Extended syntax result codes"
* a> "extended syntax result codes" format is the same as "result codes" regard to
* headers and trailers; (Note: also controlled by ATV)
* b> "extended syntax result codes" have no numeric equivalent,
* and are always issued in alphabetic form, so only: === ATV1 ===?
* c> "Extended syntax result codes" may be:
* "final", "intermediate", "unsolicited"
* d> "Extended syntax result codes" shall be prefixed by the "+" character
* example: \r\n+<name>\r\n => \r\n+CME ERROR: <err>\r\n
*
* D) "Information text formats for test commands"
* example:
* a> (0)
* b> (0,1,4)
* c> (1-5)
* d> (0,4-6,9,11-12)
******************************************************************************/
/******************************************************************************
* 1. Additional commands may follow an extended syntax command on the same command line if a
* semicolon (";", IA5 3/11) is inserted after the preceding extended command as a separator.
* 2. Extended syntax commands may appear on the same command line after a basic syntax command
* without a separator
* 3. So whether a basic syntax command could be following after an command? - maybe can't --TBD
*
* Example:
* AT command:
* ATCMD1 CMD2=12; +CMD1; +CMD2=,,15; +CMD2?; +CMD2=?<CR>
* ^basic| | ^
* ^ ^ |
* ================================================================
* Information responses and result codes:
* A) If ATV1 (default)
* <CR><LF>+CMD2: 3,0,15,"GSM"<CR><LF> --> information text
* <CR><LF>+CMD2: (0-3),(0,1),(0-12,15),("GSM","IRA")<CR><LF> --> information text
* <CR><LF>OK<CR><LF> --> final result code
* B) If ATV0
* +CMD2: 3,0,15,"GSM"<CR><LF> --> information text
* +CMD2: (0-3),(0,1),(0-12,15),("GSM","IRA")<CR><LF> --> information text
* 0<CR> --> final result code
*
* =============================================================
* Error command, or process error, response:
* A) If command is not accepted/right, such cases:
* a> command itself is invalid, as: ATBCDFG
* b> command cannot be performed for some reasons, such as:
* i> one or more mandatory values are omitted, or
* ii> one or more values are of the wrong type or
* iii> outside the permitted range.
* if AT1:
* <CR><LF>ERROR<CR><LF> --> final result code
* if AT0
* 4<CR> --> final result code
* B) If command was not processed due to an error related to MT operation,
* response (no matter the ATV value):
* <CR><LF>+CME ERROR: <err><CR><LF>
*
******************************************************************************/
/******************************************************************************
*****************************************************************************
* MARCO
*****************************************************************************
******************************************************************************/
//basicResultStr
#define ATC_BASIC_RESULT_STR_LEN 64
#define ATC_EXTENDED_RESULT_STR_LEN 128
#define ATC_IND_RESP_MAX_STR_LEN 8192
#define ATC_SUCC_CODE 0
/******************************************************************************
*****************************************************************************
* Enum & structure
*****************************************************************************
******************************************************************************/
/*
* <n>: integer type.
* 0 disable +CME ERROR: <err> result code and use ERROR instead
* 1 enable +CME ERROR: <err> result code and use numeric <err> values (refer subclause 9.2)
* 2 enable +CME ERROR: <err> result code and use verbose <err> values (refer subclause 9.2)
*/
typedef enum AtcCMEERetType_Enum
{
ATC_CMEE_DISABLE_ERROR_CODE = 0,
ATC_CMEE_NUM_ERROR_CODE,
ATC_CMEE_VERBOSE_ERROR_CODE
}AtcCMEERetType;
/*
* REFER: V.250, 5.7.1, Table 1/V.250 esult codes
*/
typedef enum AtResultCode_Tag
{
AT_RC_OK = 0, /* 1> AT command done/acknowledged, guard timer should stop
* 2> add "\r\n" at start&end of response
* 3> add "\r\nOK\r\n" after response
*/
AT_RC_CONNECT = 1, /* A connection has been established;
the DCE is moving from command state to online data state */
AT_RC_RING = 2, /* An incoming call signal from the network, -- not used now */
AT_RC_NO_CARRIER = 3, /* The connection has been terminated or the attempt to establish
a connection failed*/
AT_RC_ERROR = 4, /* Command not recognized, command line maximum length exceeded,
parameter value invalid, or other problem with processing the command line*/
AT_RC_NO_DIALTONE = 6, /* No dial tone detected, -- not used now*/
AT_RC_BUSY = 7, /* Engaged (busy) signal detected -- not used now*/
AT_RC_NO_ANSWER = 8, /* (Wait for Quiet Answer) dial modifier was used, but
remote ringing followed by five seconds of silence was not
detected before expiration of the connection timer -- not used now */
/*
* Extended syntax result codes:
*/
AT_RC_CONTINUE = 10, /* 1> AT procedure not finished/continued, guard timer should not stop
* 2> only add: "\r\n" at start of response
* example: <CR><LF>+CGPADDR: <cid>[,<PDP_addr_1>[,<PDP_addr_2>]] ==> AT_RC_CONTINUE
* <CR><LF>+CGPADDR: <cid>,[<PDP_addr_1>[,<PDP_addr_2>]]<S3><S4> ==> AT_RC_OK
*/
AT_RC_NO_RESULT = 11, /* 1> AT command done, guard timer should stop,
* 2> but no "result code" ("\r\nOK\r\n") replied/printed
* 3> add "\r\n" at start&end of response
*/
AT_RC_RAW_INFO, /* 1> AT command done, guard timer should stop
* 2> but no "result code" ("\r\nOK\r\n") replied/printed
* 3> not add "\r\n"
*/
AT_RC_RAW_INFO_CONTINUE,/* 1> AT procedure not finished/continued, guard timer should not stop,
* 2> not add "\r\n"
*/
AT_RC_CME_ERROR, /* +CME ERROR */
AT_RC_CMS_ERROR, /* +CMS ERROR */
AT_RC_CUSTOM_ERROR = 20,
AT_RC_HTTP_ERROR, //Timer will Stop, +HTTP ERROR
AT_RC_SOCKET_ERROR, //Timer will Stop, +SOCKET ERROR
AT_RC_MQTT_ERROR, //Timer will Stop, +MQTT ERROR
AT_RC_DM_ERROR, //DM ERROR
AT_RC_ADC_ERROR, //ADC ERROR
AT_RC_EXAMPLE_ERROR, //EC ERROR
AT_RC_ECSOC_ERROR, //Timer will Stop, +CME ERROR
AT_RC_ECSRVSOC_ERROR, //EC server soc error
AT_RC_REFSOC_ERROR, //Timer will Stop, ERROR
AT_RC_REFPS_ERROR = AT_RC_REFSOC_ERROR, //Timer will Stop, ERROR
AT_RC_FILE_ERROR, //File ERROR
AT_RC_SSL_ERROR, //Timer will Stop, +SSL ERROR
AT_RC_FWUPD_ERROR, //FWUPD ERROR
AT_RC_CTW_ERROR, //CTW ERROR
}AtResultCode;
/*
* AT URC type
*/
typedef enum AtUrcType_enum
{
AT_OTHER_URC = 0,
AT_SMS_URC,
AT_RING_URC
}AtUrcType;
/*
* AT reply/URC PDU mode
*/
typedef struct AtOutPdu_Tag
{
DlPduBlock *pPdu;
/*
* |<---------------- pPdu->length ----------------->|
* +-+-+---------------+-----------------------+-+-+-+
* | | |+CEREG: 2,0\r\n | | | |
* +-+-+---------------+-----------------------+-+-+-+
* ^ ^ ^ ^
* | |startOffset |inOffset |endOffset
* |pPdu->pPdu
*
* Note:
* 1> Two bytes reserved in header for "\r\n"
* 2> Three bytes reserved at end for "\r\n\0"
*/
BOOL bFail; /* whether AT out PDU print OK */
UINT8 rsvd;
UINT16 startOffset;
UINT16 inOffset;
UINT16 endOffset;
}AtOutPdu; // 12 bytes
/******************************************************************************
*****************************************************************************
* external API
*****************************************************************************
******************************************************************************/
/*
* AT REPLY
*/
CmsRetId atcReply(UINT16 srcHandle, AtResultCode resCode, UINT32 errCode, const CHAR *pRespInfo);
/*
* AT URC
* Note:
* 1> In this API, will add: "\r\n" at start/end of URC string.
*/
CmsRetId atcURC(UINT32 chanId, const CHAR *pUrcStr);
/*
* AT SMS MT URC
* Note:
* 1> In this API, will add: "\r\n" at start/end of URC string.
* 2> MT SMS URC: +CMTI, +CMT, +CDS, +CBM
*/
CmsRetId atcSmsURC(UINT32 chanId, const CHAR *pUrcStr);
/*
* send the result code string
*/
CmsRetId atcSendResultCode(AtChanEntity *pAtChanEty, AtResultCode resCode, const CHAR *pResultStr);
/*
* send echo string
*/
CmsRetId atcEchoString(AtChanEntityP pAtChanEty, const CHAR *pStr, UINT32 strLen);
/*
* Send response string: "pStr" via AT channel, without any modification, or suppression
*/
CmsRetId atcSendRawRespStr(AtChanEntity *pAtChanEty, const CHAR *pStr, UINT32 strLen);
/*
* whether URC API configured
*/
BOOL atcBeURCConfiged(UINT32 chanId);
/*
* AT REPLY in PDU.
* Note: pAtPdu will send to Tx task in this API, if want to re-use, need to call: atPduInit() to init again.
*/
CmsRetId atcPduReply(UINT16 srcHandler, AtResultCode resCode, UINT32 errCode, AtOutPdu *pAtPdu);
/*
* AT URC in PDU
* Note:
* 1> pAtPdu will send to Tx task in this API, if want to re-use, need to call: atPduInit() to init again.
* 2> In this API, will add: "\r\n" at start/end of URC string.
*/
CmsRetId atcPduURC(UINT32 chanId, AtOutPdu *pAtPdu);
/*
* 1> "DlPduBlock" not changed any in this API, only send the "DlPduBlock"
* to Tx task (or RIL APP task) transparently
* 2> As the "DlPduBlock" is sent, tha caller can't use it anymore
*/
CmsRetId atcRawPduURC(UINT32 chanId, DlPduBlock *pPdu);
/*
* Diff with atcURC():
* a) URC maybe pended in URC list when AT channel in data state, but not in this API
* b) URC maybe pended when one AT command is ongoing (not replied), but not in this API
* c) "\r\n" will be added at the beginning\ending of URC in API: atcURC(), but not in this API
*/
CmsRetId atcPassThrough(UINT32 chanId, const UINT8 *pData, UINT32 length);
/*
* Diff with atcRawPduURC():
* a) URC maybe pended in URC list when AT channel in data state,
* b) URC maybe pended when one AT command is ongoing (not replied), but
* c) this API no such limitions, just pass the PDU to Tx task
*/
CmsRetId atcPduPassThrough(UINT32 chanId, DlPduBlock *pPdu);
/*
* AT action, after one AT line done
*/
CmsRetId atcLineEndProc(UINT32 chanId, AtResultCode resCode);
/**
\brief Only used in case of sending "OK"/etc, when exist online data state
\Note:
\ 1> Example: when in PPP online data state, if recv '+++'(or DTR event),
\ AT channel should enter: ATC_ONLINE_COMMAND_STATE. and reply "OK".
\ 2> Why not using "atcURC()"? as the string result "OK" should be changed to numeric format: 0 if ATV0 configed
\ and URC maybe cached/delayed, so involved this new API
*/
CmsRetId atcResultCode(UINT32 chanId, AtResultCode resCode);
/*
* check whether any URC need to flush to send out
* API called in CMS task
*/
void atcCheckFlushUrc(UINT8 chanId);
/*
* URC RI done callback
*/
void atcUrcRiDoneCallback(UINT16 paramSize, void *pParam);
/*
* AT URC delaty timer expiry, URC could be flush/Tx
*/
void atcUrcDelayTimerExpiry(UINT16 timeId);
#endif

View File

@@ -0,0 +1,44 @@
/******************************************************************************
*(C) Copyright 2018 AirM2M International Ltd.
* All Rights Reserved
******************************************************************************
* Filename:
*
* Description:
*
* History:
*
* Notes:
*
******************************************************************************/
#ifndef __ATC_REPLY_ERR_MAP_H__
#define __ATC_REPLY_ERR_MAP_H__
#include "CommonTypedef.h"
/*
* ERROR CODE ID -> ERROR STRING mapping
*/
typedef struct AtcErrStrMapping_Tag
{
UINT32 errId;
const CHAR *pStr;
}AtcErrStrMapping;
/******************************************************************************
*****************************************************************************
* external API
*****************************************************************************
******************************************************************************/
/*
* AT REPLY
*/
const CHAR* atcGetCMEEStr(const UINT32 errId);
#endif