mirror of
https://gitee.com/beecue/fastbee.git
synced 2025-12-21 18:35:54 +08:00
更新硬件SDK
This commit is contained in:
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
@@ -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 */
|
||||
@@ -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 */
|
||||
@@ -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 */
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 */
|
||||
@@ -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 */
|
||||
@@ -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 */
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
@@ -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 */
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
@@ -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 */
|
||||
@@ -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 */
|
||||
@@ -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 */
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -0,0 +1,157 @@
|
||||
/******************************************************************************
|
||||
|
||||
*(C) Copyright 2018 AirM2M International Ltd.
|
||||
|
||||
* All Rights Reserved
|
||||
|
||||
******************************************************************************
|
||||
* Filename: ccio_custom.h
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* History: 2021/1/19 created by xuwang
|
||||
*
|
||||
* Notes: customized features of Channel Centre for Input/Output(CCIO) service
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef CCIO_CUSTOM_H
|
||||
#define CCIO_CUSTOM_H
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* INCLUDES *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* MACROS *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* customed device executed flags definition, which is a subset of 'CcioDevExecFlags_e'
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
CCIO_DEF_CUST_BEGIN = 0x0DEFC000,
|
||||
CCIO_DEF_CUST_A = CCIO_DEF_CUST_BEGIN,
|
||||
CCIO_DEF_CUST_B,
|
||||
CCIO_DEF_CUST_END = 0x0DEFFFFF
|
||||
}CcioCustDevExecFlags_e;
|
||||
|
||||
/*
|
||||
* customed device status flags definition, which is a subset of 'CcioDevStatusFlags_e'
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
CCIO_DSF_CUST_BEGIN = 0x0D5FE000,
|
||||
CCIO_DSF_CUST_A = CCIO_DSF_CUST_BEGIN,
|
||||
CCIO_DSF_CUST_B,
|
||||
CCIO_DSF_CUST_END = 0x0D5FFFFF
|
||||
}CcioCustDevStatusFlags_e;
|
||||
|
||||
/*
|
||||
* customed entity status flags definition, which is a subset of 'CcioEntStatusFlags_e'
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
CCIO_ESF_CUST_BEGIN = 0x0E5FC000,
|
||||
CCIO_ESF_CUST_A = CCIO_DSF_CUST_BEGIN,
|
||||
CCIO_ESF_CUST_B,
|
||||
CCIO_ESF_CUST_END = 0x0E5FFFFF
|
||||
}CcioCustEntStatusFlags_e;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
/* control msg */
|
||||
CCIO_CHAN_CMSG_CUST_BEGIN = CCIO_CHAN_CMSG_CUST_FLAG,
|
||||
CCIO_CHAN_CMSG_CUST_A = CCIO_CHAN_CMSG_CUST_BEGIN,
|
||||
CCIO_CHAN_CMSG_CUST_B,
|
||||
|
||||
CCIO_CHAN_CMSG_CUST_MAXID,
|
||||
CCIO_CHAN_CMSG_CUST_END = (CCIO_CHAN_CMSG_CUST_FLAG | CCIO_CHAN_MSG_CODE_MASK),
|
||||
|
||||
/* data msg */
|
||||
CCIO_CHAN_DMSG_CUST_BEGIN = CCIO_CHAN_DMSG_CUST_FLAG,
|
||||
CCIO_CHAN_DMSG_CUST_A = CCIO_CHAN_DMSG_CUST_BEGIN,
|
||||
CCIO_CHAN_DMSG_CUST_B,
|
||||
|
||||
CCIO_CHAN_DMSG_CUST_MAXID,
|
||||
CCIO_CHAN_DATA_CUST_END = (CCIO_CHAN_DMSG_CUST_FLAG | CCIO_CHAN_MSG_CODE_MASK),
|
||||
|
||||
/* error msg */
|
||||
CCIO_CHAN_EMSG_CUST_BEGIN = CCIO_CHAN_EMSG_CUST_FLAG,
|
||||
CCIO_CHAN_EMSG_CUST_A = CCIO_CHAN_EMSG_CUST_BEGIN,
|
||||
CCIO_CHAN_EMSG_CUST_B,
|
||||
|
||||
CCIO_CHAN_EMSG_CUST_MAXID,
|
||||
CCIO_CHAN_EMSG_CUST_END = (CCIO_CHAN_EMSG_CUST_FLAG | CCIO_CHAN_MSG_CODE_MASK)
|
||||
}CcioCustChanMessageId_e;
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* DATA TYPE DEFINITION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
/* CCIO_DEF_CUST_A */
|
||||
typedef struct
|
||||
{
|
||||
uint8_t rsvd[4];
|
||||
}CcioDeaCustA_t;
|
||||
|
||||
/* CCIO_DEF_CUST_B */
|
||||
typedef struct
|
||||
{
|
||||
uint8_t rsvd[4];
|
||||
}CcioDeaCustB_t;
|
||||
|
||||
/* CCIO_DSF_CUST_A */
|
||||
typedef struct
|
||||
{
|
||||
uint8_t rsvd[4];
|
||||
}CcioDsaCustA_t;
|
||||
|
||||
/* CCIO_DSF_CUST_B */
|
||||
typedef struct
|
||||
{
|
||||
uint8_t rsvd[4];
|
||||
}CcioDsaCustB_t;
|
||||
|
||||
/* CCIO_ESF_CUST_A */
|
||||
typedef struct
|
||||
{
|
||||
uint8_t rsvd[4];
|
||||
}CcioEsaCustA_t;
|
||||
|
||||
/* CCIO_ESF_CUST_B */
|
||||
typedef struct
|
||||
{
|
||||
uint8_t rsvd[4];
|
||||
}CcioEsaCustB_t;
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* GLOBAL FUNCTIONS DECLEARATION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
int32_t ccioInitCustTxTask(void *args);
|
||||
int32_t ccioDeinitCustTxTask(void *args);
|
||||
int32_t ccioSendToCustTxTask(void *msg, uint32_t timeout);
|
||||
|
||||
int32_t usbdExecCustInstr(uint32_t flags, void *args);
|
||||
int32_t uartdExecCustInstr(uint32_t flags, void *args);
|
||||
int32_t radiodExecCustInstr(uint32_t flags, void *args);
|
||||
|
||||
int32_t ccioHandleCustDevStatus(uint32_t flags, void *args);
|
||||
int32_t ccioHandleCustEntStatus(uint32_t flags, void *args);
|
||||
|
||||
int32_t ccioHandleCustChanMsg(CcioChanMessage_t *chmsg);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,173 @@
|
||||
/******************************************************************************
|
||||
|
||||
*(C) Copyright 2018 AirM2M International Ltd.
|
||||
|
||||
* All Rights Reserved
|
||||
|
||||
******************************************************************************
|
||||
* Filename: ccio_message.h
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* History: 2021/1/19 created by xuwang
|
||||
*
|
||||
* Notes:
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef CCIO_MESSAGE_H
|
||||
#define CCIO_MESSAGE_H
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* INCLUDES *
|
||||
*----------------------------------------------------------------------------*/
|
||||
#include "ccio_pub.h"
|
||||
#include "ccio_device.h"
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* MACROS *
|
||||
*----------------------------------------------------------------------------*/
|
||||
/* universal flag */
|
||||
#define CCIO_CHAN_MSG_FLAG 0x7
|
||||
|
||||
/* ctrl/data/err msg type flag */
|
||||
#define CCIO_CHAN_CMSG_TYPE 0xC
|
||||
#define CCIO_CHAN_DMSG_TYPE 0xD
|
||||
#define CCIO_CHAN_EMSG_TYPE 0xE
|
||||
|
||||
#define CCIO_CHAN_CMSG_MAXNUM (CCIO_CHAN_CMSG_MAXID & CCIO_CHAN_MSG_CODE_MASK)
|
||||
#define CCIO_CHAN_DMSG_MAXNUM (CCIO_CHAN_DMSG_MAXID & CCIO_CHAN_MSG_CODE_MASK)
|
||||
#define CCIO_CHAN_EMSG_MAXNUM (CCIO_CHAN_EMSG_MAXID & CCIO_CHAN_MSG_CODE_MASK)
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* DATA TYPE DEFINITION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
typedef enum
|
||||
{
|
||||
/* control msg */
|
||||
CCIO_CHAN_CMSG_BEGIN = CCIO_CHAN_CMSG_FLAG,
|
||||
CCIO_CHAN_DEV_ADD = CCIO_CHAN_CMSG_BEGIN,
|
||||
CCIO_CHAN_DEV_DEL,
|
||||
CCIO_CHAN_ULPDU_FREE,
|
||||
CCIO_CHAN_DLPDU_FREE,
|
||||
CCIO_CHAN_RBUF_FLUSH,
|
||||
CCIO_CHAN_SYSTEM_RESET,
|
||||
CCIO_CHAN_SYSTEM_PWOFF,
|
||||
CCIO_CHAN_SLP_MODE_SWITCH,
|
||||
CCIO_CHAN_SERL_CONF_CHG,
|
||||
CCIO_CHAN_SERL_CTS_CHG,
|
||||
CCIO_CHAN_SERL_DTR_CHG,
|
||||
CCIO_CHAN_SERL_STATE_SET,
|
||||
CCIO_CHAN_AUTO_BAUDRATE,
|
||||
CCIO_CHAN_USB_STATE,
|
||||
CCIO_CHAN_SCT_USB_STATE,
|
||||
CCIO_CHAN_SCT_USB_TXDONE,
|
||||
CCIO_CHAN_SCT_USB_T_EXPIRY,
|
||||
CCIO_CHAN_SCT_USB_EP_UNBLOCK,
|
||||
CCIO_CHAN_RNDIS_INIT,
|
||||
CCIO_CHAN_RNDIS_DEINIT,
|
||||
CCIO_CHAN_ECM_SET_FILTER,
|
||||
CCIO_CHAN_WAN_MEDIA_NOTIF,
|
||||
CCIO_CHAN_PPP_SESSN_START,
|
||||
CCIO_CHAN_PPP_SESSN_STOP,
|
||||
CCIO_CHAN_PPP_SESSN_RESUME,
|
||||
CCIO_CHAN_PPP_SESSN_TMCTRL,
|
||||
CCIO_CHAN_PPP_SPEC_PATTN,
|
||||
CCIO_CHAN_DATA_MODE_HS_REQ,
|
||||
CCIO_CHAN_ULFC_MEM_EVENT,
|
||||
CCIO_CHAN_DLFC_MEM_EVENT,
|
||||
CCIO_CHAN_TFC_POLICY_ENABLE,
|
||||
CCIO_CHAN_CMSG_MAXID,
|
||||
CCIO_CHAN_CMSG_END = (CCIO_CHAN_CMSG_FLAG | CCIO_CHAN_MSG_CODE_MASK),
|
||||
|
||||
/* data msg */
|
||||
CCIO_CHAN_DMSG_BEGIN = CCIO_CHAN_DMSG_FLAG,
|
||||
CCIO_CHAN_AT = CCIO_CHAN_DMSG_BEGIN,
|
||||
CCIO_CHAN_PPP,
|
||||
CCIO_CHAN_ECM,
|
||||
CCIO_CHAN_RNDIS,
|
||||
CCIO_CHAN_DIAG,
|
||||
CCIO_CHAN_OPAQ,
|
||||
|
||||
CCIO_CHAN_DMSG_MAXID,
|
||||
CCIO_CHAN_DATA_END = (CCIO_CHAN_DMSG_FLAG | CCIO_CHAN_MSG_CODE_MASK),
|
||||
|
||||
/* error msg */
|
||||
CCIO_CHAN_EMSG_BEGIN = CCIO_CHAN_EMSG_FLAG,
|
||||
CCIO_CHAN_RBUF_EBNA = CCIO_CHAN_EMSG_BEGIN,
|
||||
CCIO_CHAN_USB_ESTATUS,
|
||||
CCIO_CHAN_AHB_EADDR,
|
||||
|
||||
CCIO_CHAN_EMSG_MAXID,
|
||||
CCIO_CHAN_EMSG_END = (CCIO_CHAN_EMSG_FLAG | CCIO_CHAN_MSG_CODE_MASK)
|
||||
}CcioChanMessageId_e;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint32_t msgId;
|
||||
const int8_t *msgName; /* recommended MAX length: 32 */
|
||||
chanMsgHandleFunc msgHandlFn;
|
||||
}CcioChanMsgTblEntry_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool_t isUsed;
|
||||
CcioChanMsgTblEntry_t *entry;
|
||||
}CcioChanMsgTblIdx_t;
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* GLOBAL FUNCTIONS DECLEARATION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
void ccioInitChanMsgTbls(void);
|
||||
void ccioDeinitChanMsgTbls(void);
|
||||
int32_t ccioHandleChanMsg(CcioChanMessage_t *chmsg, CcioChanMsgTblIdx_t *tblIdx, uint32_t maxItems);
|
||||
|
||||
int32_t ccioBuildMsgDevAdd(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDsaDevAdd_t *dsaDevAdd);
|
||||
int32_t ccioBuildMsgDevDel(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDsaDevDel_t *dsaDevDel);
|
||||
int32_t ccioBuildMsgUlPduFree(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDsaUlPduFree_t *dsaPduFree);
|
||||
int32_t ccioBuildMsgDlPduFree(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDsaDlPduFree_t *dsaPduFree);
|
||||
|
||||
int32_t ccioBuildMsgSystemReset(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, AtCmdResetSystem_t *resetSys);
|
||||
int32_t ccioBuildMsgSystemPwOff(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, AtCmdPwOffSystem_t *powerOffSys);
|
||||
int32_t ccioBuildMsgSlpModeSwitch(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, AtCmdSwitchSlpMode_t *slpMode);
|
||||
int32_t ccioBuildMsgSerlConfChg(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, AtCmdChgSerlConf_t *serlConf);
|
||||
int32_t ccioBuildMsgSerlCtsChg(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDsaCtsChg_t *ctsChg);
|
||||
int32_t ccioBuildMsgSerlDtrChg(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDsaDtrChg_t *dtrChg);
|
||||
int32_t ccioBuildMsgSerlStateSet(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioSerlState_t *serlState);
|
||||
int32_t ccioBuildMsgTfcPolicyEnable(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioTfcPolicyEnable_t *tfcEnable);
|
||||
int32_t ccioBuildMsgUlfcMemEvent(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioUlfcMemEvent_t *ulfcMemEvt);
|
||||
int32_t ccioBuildMsgDlfcMemEvent(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDlfcMemEvent_t *dlfcMemEvt);
|
||||
|
||||
int32_t ccioBuildMsgWanMediaNotif(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDsaWanMediaNotif_t *dsaWanNotif);
|
||||
|
||||
int32_t ccioBuildMsgAutoBaudRate(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDsaAutoBaudRate_t *dsaAutoBaud);
|
||||
|
||||
int32_t ccioBuildMsgUsbState(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDsaUsbState_t *dsaUsbState);
|
||||
int32_t ccioBuildMsgSctUsbTxDone(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDsaSctTxDone_t *dsaTxDone);
|
||||
int32_t ccioBuildMsgSctUsbState(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDsaSctUsbState_t *dsaSctState);
|
||||
int32_t ccioBuildMsgSctUsbTExpiry(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDsaSctUsbTmExpr_t *dsaTmExpr);
|
||||
int32_t ccioBuildMsgSctUsbEpUnblock(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDsaSctUsbUnblkEp_t *dsaUnblkEp);
|
||||
int32_t ccioBuildMsgRndisInit(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDsaRndisInit_t *dsaRndisInit);
|
||||
int32_t ccioBuildMsgRndisDeinit(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDsaRndisDeinit_t *dsaRndisDeinit);
|
||||
int32_t ccioBuildMsgEcmSetFilter(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDsaEcmSetFilter_t *dsaEcmFilter);
|
||||
int32_t ccioBuildMsgPppSessnStart(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, AtCmdStartPppSessn_t *pppStart);
|
||||
int32_t ccioBuildMsgPppSessnStop(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, AtCmdStopPppSessn_t *pppStop);
|
||||
int32_t ccioBuildMsgPppSessnResume(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, AtCmdResumePppSessn_t *pppResume);
|
||||
int32_t ccioBuildMsgPppSessnTmCtrl(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, AtCmdTmCtrlPppSessn_t *pppTmCtrl);
|
||||
int32_t ccioBuildMsgDataModeHSReq(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, AtCmdReqDataModeHS_t *dataModeHS);
|
||||
|
||||
int32_t ccioBuildMsgDevInXfer(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDevInXfer_t *inXfer);
|
||||
int32_t ccioBuildMsgDevOutXfer(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDevOutXfer_t *outXfer);
|
||||
int32_t ccioBuildMsgRxStatus(CcioChanMessage_t *chmsg, CcioChanMessageId_e msgId, CcioDsaRxStatus_t *dsaRxStatus);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
|
||||
/******************************************************************************
|
||||
|
||||
*(C) Copyright 2018 AirM2M International Ltd.
|
||||
|
||||
* All Rights Reserved
|
||||
|
||||
******************************************************************************
|
||||
* Filename: ccio_monitor.h
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* History: 2021/1/19 created by xuwang
|
||||
*
|
||||
* Notes:
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef CCIO_MONITOR_H
|
||||
#define CCIO_MONITOR_H
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* INCLUDES *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* MACROS *
|
||||
*----------------------------------------------------------------------------*/
|
||||
#define CCIO_CHAN_MSGQ_DELAY_NONE 0
|
||||
#define CCIO_CHAN_MSGQ_DELAT_TIME 500
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* DATA TYPE DEFINITION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* GLOBAL FUNCTIONS DECLEARATION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
void ccioInitMonitor(uint8_t bmTaskCreateFlag);
|
||||
void ccioDeinitMonitor(uint8_t bmTaskKillFlag);
|
||||
|
||||
void ccioReportUlfcMemEvent(OsaUlfcMemEvtFlags_e flags, OsaUlfcMemEvtArgs_t *args);
|
||||
void ccioReportDlfcMemEvent(OsaDlfcMemEvtFlags_e flags, OsaDlfcMemEvtArgs_t *args);
|
||||
|
||||
int32_t ccioSetRxSyncFlag(uint8_t isSync);
|
||||
int32_t ccioGetRxSyncFlag(void);
|
||||
|
||||
int32_t ccioSetUpChannels(uint8_t chanType, void *chent);
|
||||
int32_t ccioPullDownChannels(uint8_t chanType, void *chent);
|
||||
|
||||
int32_t ccioHandleDevStatus(uint32_t flags, void *args);
|
||||
int32_t ccioHandleEntStatus(uint32_t flags, void *args);
|
||||
|
||||
uint32_t ccioQueryChanPendTccm(void);
|
||||
|
||||
uint8_t ccioIsUldpPppSchemAvlb(void);
|
||||
|
||||
void* ccioGetEutraServEnt(void);
|
||||
void* ccioGetEtherServEnt(void);
|
||||
void* ccioGetPppServEnt(void);
|
||||
|
||||
int32_t ccioDisablePmuSleep(uint32_t lanMedia, uint32_t slpState);
|
||||
int32_t ccioEnablePmuSleep(uint32_t lanMedia, uint32_t slpState);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,220 @@
|
||||
/******************************************************************************
|
||||
|
||||
*(C) Copyright 2018 AirM2M International Ltd.
|
||||
|
||||
* All Rights Reserved
|
||||
|
||||
******************************************************************************
|
||||
* Filename: ccio_provider.h
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* History: 2021/1/19 created by xuwang
|
||||
*
|
||||
* Notes:
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef CCIO_PROVIDER_H
|
||||
#define CCIO_PROVIDER_H
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* INCLUDES *
|
||||
*----------------------------------------------------------------------------*/
|
||||
#include "ccio_base.h"
|
||||
#include "ccio_misc.h"
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* MACROS *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* The size of a ring buffer malloced actually.
|
||||
* CCIO_RBUF_XTRA_SIZE is used only when the data is splitted
|
||||
* into two blocks and not cycled in the ring.
|
||||
*/
|
||||
#define CCIO_RBUF_REAL_SIZE(sz) ((sz) + CCIO_RBUF_XTRA_SIZE)
|
||||
#ifdef __USER_CODE__
|
||||
#define DIAG_RBUF_REAL_SIZE CCIO_RBUF_REAL_SIZE(CCIO_BUF_SIZE_128)
|
||||
#define ATOSN_RBUF_REAL_SIZE CCIO_RBUF_REAL_SIZE(CCIO_BUF_SIZE_2K) /* Normal atos */
|
||||
#define ATOSC_RBUF_REAL_SIZE CCIO_RBUF_REAL_SIZE(CCIO_BUF_SIZE_8) /* atos for rf calibration */
|
||||
#define PPPOS_RBUF_REAL_SIZE CCIO_RBUF_REAL_SIZE(CCIO_BUF_SIZE_2K)
|
||||
#define OPAQOS_RBUF_REAL_SIZE CCIO_RBUF_REAL_SIZE(CCIO_BUF_SIZE_8) /* opaque or raw data */
|
||||
#define ETHER_RBUF_REAL_SIZE CCIO_RBUF_REAL_SIZE(CCIO_BUF_SIZE_16K)
|
||||
#else
|
||||
#define DIAG_RBUF_REAL_SIZE CCIO_RBUF_REAL_SIZE(CCIO_BUF_SIZE_128)
|
||||
#define ATOSN_RBUF_REAL_SIZE CCIO_RBUF_REAL_SIZE(CCIO_BUF_SIZE_4K) /* Normal atos */
|
||||
#define ATOSC_RBUF_REAL_SIZE CCIO_RBUF_REAL_SIZE(CCIO_BUF_SIZE_8K) /* atos for rf calibration */
|
||||
#define PPPOS_RBUF_REAL_SIZE CCIO_RBUF_REAL_SIZE(CCIO_BUF_SIZE_8K)
|
||||
#define OPAQOS_RBUF_REAL_SIZE CCIO_RBUF_REAL_SIZE(CCIO_BUF_SIZE_4K) /* opaque or raw data */
|
||||
#define ETHER_RBUF_REAL_SIZE CCIO_RBUF_REAL_SIZE(CCIO_BUF_SIZE_16K)
|
||||
#endif
|
||||
#define RNDIS_RBUF_REAL_SIZE ETHER_RBUF_REAL_SIZE
|
||||
#define ECM_RBUF_REAL_SIZE ETHER_RBUF_REAL_SIZE
|
||||
|
||||
#define DIAG_RBUF_AVLB_THRES CCIO_BUF_SIZE_32
|
||||
#define ATOS_RBUF_AVLB_THRES 1600 /* ceiling of ETH MTU */
|
||||
#define PPPOS_RBUF_AVLB_THRES 1600
|
||||
#define OPAQOS_RBUF_AVLB_THRES 1600
|
||||
#define RNDIS_RBUF_AVLB_THRES (CCIO_RNDIS_XFER_MAXSIZE + CCIO_RBUF_NPT_HDR_SIZE * (CCIO_RNDIS_MAX_PKT_PER_XFER + 1))
|
||||
#define ECM_RBUF_AVLB_THRES 1600
|
||||
|
||||
/**
|
||||
* cycle ctrl tail size of rbuf,
|
||||
* determining when writeIdx is started from the beginning.
|
||||
*/
|
||||
#define USB_RBUF_PT_CCT_SIZE 0
|
||||
#define USB_RBUF_NPT_CCT_SIZE CCIO_RBUF_NPT_HDR_SIZE
|
||||
#define UART_RBUF_CCT_SIZE 0
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* DATA TYPE DEFINITION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
void *chent;
|
||||
void *respArgs; //passed in atRespFunc/atRespPduFunc
|
||||
}CcioAtCmdCtx_t;
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* GLOBAL FUNCTIONS DECLEARATION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
\fn void ccioInitAtServProvider(CcioDevice_t *chdev, uint8_t isForPpp)
|
||||
\brief init AT service provider
|
||||
\return
|
||||
*/
|
||||
void ccioInitAtServProvider(CcioDevice_t *chdev, uint8_t isForPpp);
|
||||
|
||||
/**
|
||||
\fn void ccioDeinitAtServProvider(CcioEntity_t *chent, uint8_t isForPpp)
|
||||
\brief deinit AT service provider
|
||||
\return
|
||||
*/
|
||||
void ccioDeinitAtServProvider(CcioEntity_t *chent, uint8_t isForPpp);
|
||||
|
||||
/**
|
||||
\fn void ccioInitDiagServProvider(CcioDevice_t *chdev)
|
||||
\brief init diag service provider
|
||||
\return
|
||||
*/
|
||||
void ccioInitDiagServProvider(CcioDevice_t *chdev);
|
||||
|
||||
/**
|
||||
\fn void ccioDeinitDiagServProvider(CcioEntity_t *chent)
|
||||
\brief deinit diag service provider
|
||||
\return
|
||||
*/
|
||||
void ccioDeinitDiagServProvider(CcioEntity_t *chent);
|
||||
|
||||
/**
|
||||
\fn void ccioInitOpaqServProvider(CcioDevice_t *chdev)
|
||||
\brief init opaque service provider
|
||||
\return
|
||||
*/
|
||||
void ccioInitOpaqServProvider(CcioDevice_t *chdev);
|
||||
|
||||
/**
|
||||
\fn void ccioDeinitOpaqServProvider(CcioEntity_t *chent)
|
||||
\brief deinit opaque service provider
|
||||
\return
|
||||
*/
|
||||
void ccioDeinitOpaqServProvider(CcioEntity_t *chent);
|
||||
|
||||
/**
|
||||
\fn void ccioInitRndisServProvider(CcioDevice_t *chdev)
|
||||
\brief init rndis service provider
|
||||
\return
|
||||
*/
|
||||
void ccioInitRndisServProvider(CcioDevice_t *chdev);
|
||||
|
||||
/**
|
||||
\fn void ccioDeinitRndisServProvider(CcioEntity_t *chent)
|
||||
\brief deinit rndis service provider
|
||||
\return
|
||||
*/
|
||||
void ccioDeinitRndisServProvider(CcioEntity_t *chent);
|
||||
|
||||
/**
|
||||
\fn void ccioInitEcmServProvider(CcioDevice_t *chdev)
|
||||
\brief init ecm service provider
|
||||
\return
|
||||
*/
|
||||
void ccioInitEcmServProvider(CcioDevice_t *chdev);
|
||||
|
||||
/**
|
||||
\fn void ccioDeinitEcmServProvider(CcioEntity_t *chent)
|
||||
\brief deinit ecm service provider
|
||||
\return
|
||||
*/
|
||||
void ccioDeinitEcmServProvider(CcioEntity_t *chent);
|
||||
|
||||
/**
|
||||
\fn void ccioInitEutraServProvider(CcioDevice_t *chdev)
|
||||
\brief init eutra service provider
|
||||
\return
|
||||
*/
|
||||
void ccioInitEutraServProvider(CcioDevice_t *chdev);
|
||||
|
||||
/**
|
||||
\fn void ccioDeinitEutraServProvider(CcioEntity_t *chent)
|
||||
\brief deinit eutra service provider
|
||||
\return
|
||||
*/
|
||||
void ccioDeinitEutraServProvider(CcioEntity_t *chent);
|
||||
|
||||
/**
|
||||
\fn void* ccioPreGetDeviceRbuf(CcioRbufUsage_e rbUsage, uint8_t hwtype, uint8_t llsn, CcioRbufXtras_t *rbXtras)
|
||||
\brief get the rbuf of a certain device in advance
|
||||
\return void*
|
||||
*/
|
||||
void* ccioPreGetDeviceRbuf(CcioRbufUsage_e rbUsage, uint8_t hwtype, uint8_t llsn, CcioRbufXtras_t *rbXtras);
|
||||
|
||||
/**
|
||||
\fn void ccioPreUngetDeviceRbuf(CcioRbufUsage_e rbUsage, uint8_t* rbuf)
|
||||
\brief get the rbuf of related provider
|
||||
\return
|
||||
*/
|
||||
void ccioPreUngetDeviceRbuf(CcioRbufUsage_e rbUsage, uint8_t* rbuf);
|
||||
|
||||
/**
|
||||
\fn void* ccioGetProviderRbuf(CcioRbufUsage_e rbUsage, uint16_t chanId, CcioRbufXtras_t *rbXtras)
|
||||
\brief get the rbuf of related provider
|
||||
\return void*
|
||||
*/
|
||||
void* ccioGetProviderRbuf(CcioRbufUsage_e rbUsage, uint16_t chanId, CcioRbufXtras_t *rbXtras);
|
||||
|
||||
/**
|
||||
\fn void ccioUngetProviderRbuf(CcioRbufUsage_e rbUsage, uint8_t* rbuf)
|
||||
\brief get the rbuf of related provider
|
||||
\return
|
||||
*/
|
||||
void ccioUngetProviderRbuf(CcioRbufUsage_e rbUsage, uint8_t* rbuf);
|
||||
|
||||
/**
|
||||
\fn uint16_t ccioGetRbufCctSize(uint8_t hwType, CcioDevHwAcm_e bmHwAcm, CcioRbufUsage_e rbUsage)
|
||||
\brief get the cct size of the rbuf
|
||||
\return void*
|
||||
*/
|
||||
uint16_t ccioGetRbufCctSize(uint8_t hwType, CcioDevHwAcm_e bmHwAcm, CcioRbufUsage_e rbUsage);
|
||||
|
||||
/**
|
||||
\fn uint8_t ccioIsMultiLanDevEnabled(void)
|
||||
\brief enable single or multiple devices
|
||||
\return uint8_t
|
||||
*/
|
||||
uint8_t ccioIsMultiLanDevEnabled(void);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,209 @@
|
||||
/******************************************************************************
|
||||
|
||||
*(C) Copyright 2018 AirM2M International Ltd.
|
||||
|
||||
* All Rights Reserved
|
||||
|
||||
******************************************************************************
|
||||
* Filename: radio_device.h
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* History: 2021/1/19 created by xuwang
|
||||
*
|
||||
* Notes:
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef RADIO_DEVICE_H
|
||||
#define RADIO_DEVICE_H
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* INCLUDES *
|
||||
*----------------------------------------------------------------------------*/
|
||||
#include "ccio_base.h"
|
||||
#include "ccio_misc.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* MACROS *
|
||||
*----------------------------------------------------------------------------*/
|
||||
/* only one device for ctrl plane */
|
||||
#define RADIO_DEV_REAL_MAXNUM 1
|
||||
|
||||
#define EUTRA_DEV_CTRLPLANE_CID 0
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* DATA TYPE DEFINITION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* configuration about a uart device.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
uint8_t bmCreateFlag; /**< refer to 'CcioTaskOperFlag_e', bitmap type */
|
||||
uint8_t rsvd[3];
|
||||
}RadioDevConf_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t lanType; /* refer to 'CcioLanMediaType_e' */
|
||||
uint8_t isWakeUp;
|
||||
uint16_t mtu;
|
||||
}CcioLanLinkUp_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t lanType; /* refer to 'CcioLanMediaType_e' */
|
||||
uint8_t rsvd[3];
|
||||
}CcioLanLinkDown_t;
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* GLOBAL FUNCTIONS DECLEARATION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* @brief radioDevCreate(uint8_t cid)
|
||||
* @details create a radio device of dtype with 'cid'
|
||||
*
|
||||
* @param pdpCid pdp context id
|
||||
* @param radioConf The configuration about a radio device
|
||||
* @return 0 succ; < 0 failure with errno.
|
||||
*/
|
||||
int32_t radioDevCreate(uint8_t pdpCid, RadioDevConf_t *radioConf);
|
||||
|
||||
/**
|
||||
* @brief radioDevDestroy(uint8_t cid)
|
||||
* @details destroy/delete a radio device of dtype with 'cid'
|
||||
*
|
||||
* @param cid pdp context id
|
||||
* @return 0 succ; < 0 failure with errno.
|
||||
*/
|
||||
int32_t radioDevDestroy(uint8_t pdpCid);
|
||||
|
||||
/**
|
||||
* @brief radioDevFreeUlPduList(UlPduBlock_t *list)
|
||||
* @details free ulpdu block list.
|
||||
*
|
||||
* @param ulpdu head of ulpdu list
|
||||
* @return void
|
||||
*/
|
||||
void radioDevFreeUlPduList(UlPduBlock_t *list);
|
||||
|
||||
/**
|
||||
* @brief radioDevQueryLocalMac(CcioMacAddr_t *localMac)
|
||||
* @details get local mac addr
|
||||
*
|
||||
* @param localMac info of local mac
|
||||
* @return void.
|
||||
*/
|
||||
void radioDevQueryLocalMac(CcioMacAddr_t *localMac);
|
||||
|
||||
/**
|
||||
* @brief radioDevNotifyTcpipDataPathCapability(void *lanDataPathCap)
|
||||
* @details lan data path capability notification from ps/lwip
|
||||
*
|
||||
* @param lanDataPathCap capability of lan data path
|
||||
* @return void.
|
||||
*/
|
||||
void radioDevNotifyTcpipDataPathCapability(void *lanDataPathCap);
|
||||
|
||||
/**
|
||||
* @brief radioDevQueryTcpipDataPathCapability(CcioLanMediaType_e lanType, CcioDataPathCap_t *dataPath)
|
||||
* @details query lan data path capability
|
||||
*
|
||||
* @param lanType lan(ecm/rndis/ppp) media type
|
||||
* @param dataPath query capability of lan data path
|
||||
* @return void.
|
||||
*/
|
||||
void radioDevQueryTcpipDataPathCapability(CcioLanMediaType_e lanType, CcioDataPathCap_t *dataPath);
|
||||
|
||||
/**
|
||||
* @brief radioDevQueryDataPathHostConf(CcioLanMediaType_e lanType, CcioDataPathHostConf_t *hostConf)
|
||||
* @details query host addr/dns config
|
||||
*
|
||||
* @param lanType lan(rndis/ppp) media type
|
||||
* @param queryWan query info of wan media
|
||||
* @return void.
|
||||
*/
|
||||
void radioDevQueryDataPathHostConf(CcioLanMediaType_e lanType, CcioDataPathHostConf_t *hostConf);
|
||||
|
||||
/**
|
||||
* @brief radioDevLanLinkStatusChange(CcioLanMedia_t *linkStatus)
|
||||
* @details lan media state report to ps/lwip
|
||||
*
|
||||
* @param changeLan info of lan link status change
|
||||
* @return void.
|
||||
*/
|
||||
void radioDevLanLinkStatusChange(CcioLanMedia_t *linkStatus);
|
||||
|
||||
/**
|
||||
* @brief radioDevLanLinkUp(CcioLanLinkUp_t *linkUp)
|
||||
* @details notify ps/lwip that LAN link is up
|
||||
*
|
||||
* @param linkUp info of LAN link up
|
||||
* @return void.
|
||||
*/
|
||||
void radioDevLanLinkUp(CcioLanLinkUp_t *linkUp);
|
||||
|
||||
/**
|
||||
* @brief radioDevLanLinkDown(CcioLanLinkDown_t *linkDown)
|
||||
* @details notify ps/lwip that LAN link is down
|
||||
*
|
||||
* @param linkDown info of LAN link down
|
||||
* @return void.
|
||||
*/
|
||||
void radioDevLanLinkDown(CcioLanLinkDown_t *linkDown);
|
||||
|
||||
/**
|
||||
* @brief radioDevHoldOnPppSessn(uint8_t atCid)
|
||||
* @details notify ps to switch to online command mode
|
||||
*
|
||||
* @param atCid at cid No from PS
|
||||
* @return 0 succ; < 0 failure with errno.
|
||||
*/
|
||||
int32_t radioDevHoldOnPppSessn(uint8_t atCid);
|
||||
|
||||
/**
|
||||
* @brief radioDevAbortPppSessn(uint8_t atCid, uint8_t pdp4Cid, uint8_t pdp6Cid)
|
||||
* @details notify ps that ppp sessn is disconnected
|
||||
*
|
||||
* @param atCid at cid No from PS
|
||||
* @param pdp4Cid ipv4 pdp context id
|
||||
* @param pdp6Cid ipv6 pdp context id
|
||||
* @return 0 succ; < 0 failure with errno.
|
||||
*/
|
||||
int32_t radioDevAbortPppSessn(uint8_t atCid, uint8_t pdp4Cid, uint8_t pdp6Cid);
|
||||
|
||||
/**
|
||||
* @brief radioDevSetPppAuth(uint8_t pdpCid, CcioAuthType_e authType, CcioAuthInfo_t *authInfo)
|
||||
* @details set auth for ppp sessn
|
||||
*
|
||||
* @param pdpCid pdp context id
|
||||
* @param authType auth type(pap/chap/none)
|
||||
* @param authInfo auth info
|
||||
* @return 0 succ; < 0 failure with errno.
|
||||
*/
|
||||
int32_t radioDevSetPppAuth(uint8_t pdpCid, CcioAuthType_e authType, CcioAuthInfo_t *authInfo);
|
||||
|
||||
/**
|
||||
* @brief radioDevActPppBearer(uint8_t pdpCid)
|
||||
* @details activate pdp context for ppp sessn
|
||||
*
|
||||
* @param pdpCid pdp context id
|
||||
* @return 0 succ; < 0 failure with errno.
|
||||
*/
|
||||
int32_t radioDevActPppBearer(uint8_t pdpCid);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
/******************************************************************************
|
||||
|
||||
*(C) Copyright 2018 AirM2M International Ltd.
|
||||
|
||||
* All Rights Reserved
|
||||
|
||||
******************************************************************************
|
||||
* Filename: uart_device.h
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* History: 2021/1/19 created by xuwang
|
||||
*
|
||||
* Notes:
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef UART_DEVICE_H
|
||||
#define UART_DEVICE_H
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* INCLUDES *
|
||||
*----------------------------------------------------------------------------*/
|
||||
#include <stdint.h>
|
||||
#include "Driver_USART.h"
|
||||
#include "ccio_pub.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* MACROS *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* DATA TYPE DEFINITION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
/** \brief configuration struct for initializing UART hardware */
|
||||
typedef struct
|
||||
{
|
||||
ARM_POWER_STATE powerMode; /**< UART power mode, ARM_POWER_FULL or ARM_POWER_LOW */
|
||||
uint32_t ctrlSetting; /**< setting value passed to ARM Control API */
|
||||
uint32_t baudRate; /**< baudrate value */
|
||||
}UartHwConf_t;
|
||||
|
||||
/**
|
||||
* configuration about a uart device.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
UartHwConf_t hwConf;
|
||||
ARM_DRIVER_USART *drvHandler; /**< uart driver handler */
|
||||
uint8_t mainUsage; /**< refer to 'CsioDevType_e' */
|
||||
uint8_t speedType; /**< refer to 'CcioSpeedType_e' */
|
||||
uint8_t bmCreateFlag; /**< refer to 'CcioTaskOperFlag_e', bitmap type */
|
||||
uint8_t isDftAtPort :1; /* < default uartIdx for AT or not */
|
||||
uint8_t rsvd :7;
|
||||
}UartDevConf_t;
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* GLOBAL FUNCTIONS DECLEARATION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
/**
|
||||
* @brief uartDevCreate(uint32_t uartIdx, UartDevConf_t *uartConf)
|
||||
* @details create a uart device of 'uartIdx'
|
||||
*
|
||||
* @param uartIdx The index of uart port
|
||||
* @param uartConf The configuration about a uart device
|
||||
* @return NULL failure; !NULL the created uart device.
|
||||
*/
|
||||
CcioDevice_t* uartDevCreate(uint32_t uartIdx, UartDevConf_t *uartConf);
|
||||
|
||||
/**
|
||||
* @brief uartDevDestroy(uint32_t uartIdx)
|
||||
* @details destroy/delete a uart device of 'uartIdx'
|
||||
*
|
||||
* @param uartIdx index of uart port
|
||||
* @return 0 succ; < 0 failure with errno.
|
||||
*/
|
||||
int32_t uartDevDestroy(uint32_t uartIdx);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,208 @@
|
||||
/******************************************************************************
|
||||
|
||||
*(C) Copyright 2018 AirM2M International Ltd.
|
||||
|
||||
* All Rights Reserved
|
||||
|
||||
******************************************************************************
|
||||
* Filename: usb_device.h
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* History: 2021/1/19 created by xuwang
|
||||
*
|
||||
* Notes:
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef USB_DEVICE_H
|
||||
#define USB_DEVICE_H
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* INCLUDES *
|
||||
*----------------------------------------------------------------------------*/
|
||||
#include "ccio_pub.h"
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* MACROS *
|
||||
*----------------------------------------------------------------------------*/
|
||||
#define INVALID_USB_IF_NUM (0xf)//4 bit
|
||||
#define INVALID_USB_EP_NUM (0xf)//4 bit
|
||||
#define INVALID_USB_IF_TYEP_NUM (0x0)//3 bit,=USB_INTERFACE_NONE
|
||||
#define MAX_USB_IF_NUM_PER_TYEP (4)//max 4 ifs per if type. e.g. max 4 AT ifs, enough
|
||||
|
||||
|
||||
#define MAX_OUT_EP_NUM (13)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* DATA TYPE DEFINITION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
typedef struct UsbIf2Ep
|
||||
{
|
||||
uint16_t usbIfIdx :4; /* usb interface Id, used to */
|
||||
uint16_t usbIfType :3; /* usb interface type, refer to UsbIfType_e */
|
||||
uint16_t inEpNum :4; /* in ep number of this interface */
|
||||
uint16_t outEpNum :4; /* out ep number of this interface */
|
||||
uint16_t hasIntEp :1; /* is this interface has an interrupt ep */
|
||||
uint16_t intEpNum :4; /* interrupt ep number of this interface */
|
||||
uint16_t resv :12; /* reserved */
|
||||
uint16_t maxNextXferSize; /*next usb recv size for this if, set by ccio*/
|
||||
|
||||
}UsbIf2Ep_t;
|
||||
|
||||
|
||||
typedef struct UsbType2If
|
||||
{
|
||||
uint32_t ethIfIdx :4; /* eth(rndis/ecm) If idx, get from usr define table */
|
||||
uint32_t atIfIdx :4; /* at If idx, get from usr define table */
|
||||
uint32_t logIfIdx :4; /* log If idx, get from usr define table */
|
||||
uint32_t pppIfIdx :4; /* ppp If idx, get from usr define table */
|
||||
uint32_t rawIfIdx :4; /* raw If idx, get from usr define table */
|
||||
uint32_t resv :12; /* reserved */
|
||||
|
||||
}UsbType2If_t;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* configuration about a usb device.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
uint8_t bmCreateFlag; /**< refer to 'CcioTaskOperFlag_e', bitmap type */
|
||||
uint8_t rsvd[3];
|
||||
}UsbDevConf_t;
|
||||
|
||||
|
||||
|
||||
// max support 5 interfaces
|
||||
typedef enum
|
||||
{
|
||||
USB_INTERACE_0 = 0,
|
||||
USB_INTERACE_1,
|
||||
USB_INTERACE_2,
|
||||
USB_INTERACE_3,
|
||||
USB_INTERACE_4,
|
||||
USB_INTERACE_MAXCNT
|
||||
} UsbIfIdx_e;
|
||||
|
||||
|
||||
typedef struct UsbIfEpMap
|
||||
{
|
||||
UsbIf2Ep_t usbIf2Ep[USB_INTERACE_MAXCNT];
|
||||
|
||||
uint8_t epNum2IfIdx[MAX_OUT_EP_NUM];/*get If idx from oep num, used by uldp recv callback*/
|
||||
|
||||
uint8_t ulgInepNum;
|
||||
|
||||
UsbType2If_t type2If;
|
||||
|
||||
uint8_t usbEnumSpeed;
|
||||
|
||||
}UsbIfEpMap_t;
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* GLOBAL FUNCTIONS DECLEARATION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* @brief usbDevCreate(uint32_t usbIfIdx, UsbDevConf_t *usbConf)
|
||||
* @details create a usb device of 'usbIfIdx'
|
||||
*
|
||||
* @param usbIfIdx idx of usb port
|
||||
* @param usbConf The configurattion of a usb port
|
||||
* @return NULL failure; !NULL the created uart device.
|
||||
*/
|
||||
CcioDevice_t* usbDevCreate(uint32_t usbIfIdx, UsbDevConf_t *usbConf);
|
||||
|
||||
/**
|
||||
* @brief usbDevDestroy(uint32_t usbIfIdx)
|
||||
* @details destroy/delete a usb device of 'usbIfIdx'
|
||||
*
|
||||
* @param usbIfIdx idx of usb port
|
||||
* @return 0 succ; < 0 failure with errno.
|
||||
*/
|
||||
int32_t usbDevDestroy(uint32_t usbIfIdx);
|
||||
|
||||
/**
|
||||
* @brief usbDevInput(uint32_t usbIfIdx, uint32_t xferCnt, uint32_t event)
|
||||
* @details handle the IRQ from usb driver
|
||||
*
|
||||
* @param epNum out epNum of usb port
|
||||
* @param xferCnt The xfer data size
|
||||
* @param event usb IRQ event
|
||||
* @return void.
|
||||
*/
|
||||
void usbDevInput(uint8_t epNum, uint32_t xferCnt, uint32_t event);
|
||||
|
||||
/**
|
||||
* @brief usbDevNotifyEcmEvent(uint32_t flags, void *args)
|
||||
* @details ecm ctrl event notification
|
||||
*
|
||||
* @param flags ecm event flags
|
||||
* @param args ecm event args
|
||||
* @return void.
|
||||
*/
|
||||
void usbDevNotifyEcmEvent(uint32_t flags, void *args);
|
||||
|
||||
/**
|
||||
* @brief usbDevNotifyRndisEvent(uint32_t flags, void *args)
|
||||
* @details rndis ctrl event notification
|
||||
*
|
||||
* @param flags rndis event flags
|
||||
* @param args rndis event args
|
||||
* @return void.
|
||||
*/
|
||||
void usbDevNotifyRndisEvent(uint32_t flags, void *args);
|
||||
|
||||
/**
|
||||
* @brief usbDevNotifySerlEvent(uint32_t flags, void *args)
|
||||
* @details serial ctrl event notification
|
||||
*
|
||||
* @param flags serial event flags
|
||||
* @param args serial event args
|
||||
* @return void.
|
||||
*/
|
||||
void usbDevNotifySerlEvent(uint32_t flags, void *args);
|
||||
|
||||
/**
|
||||
* @brief usbDevNotifyTxDoneToSct(void)
|
||||
* @details notify sct that usb tx is completed
|
||||
*
|
||||
* @return void.
|
||||
*/
|
||||
void usbDevNotifyTxDoneToSct(uint32_t evt);
|
||||
|
||||
/**
|
||||
* @brief usbDevNotifyStateToSct(uint32_t stateEvt)
|
||||
* @details notify sct that usb device state is changed
|
||||
*
|
||||
* @param stateEvt state event id of usb device
|
||||
* @return void.
|
||||
*/
|
||||
void usbDevNotifyStateToSct(uint32_t stateEvt);
|
||||
|
||||
uint8_t usbDevGetEpNumFromIf(UsbIfIdx_e ifIdx);
|
||||
void usbDevGetIfRbAddrLen(UsbIfIdx_e ifIdx, uint32_t *len, uint32_t *addr );
|
||||
int32_t usbDevCfgOutXfer(UsbIfIdx_e ifIdx);
|
||||
uint8_t usbDevGetUlgInEpNum( void );
|
||||
uint8_t usbDevGetLogIfIdx( void );
|
||||
uint8_t usbDevGetEnumSpd( void );
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,360 @@
|
||||
/******************************************************************************
|
||||
|
||||
*(C) Copyright 2018 AirM2M International Ltd.
|
||||
|
||||
* All Rights Reserved
|
||||
|
||||
******************************************************************************
|
||||
* Filename: ccio_base.h
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* History: 2021/1/19 created by xuwang
|
||||
*
|
||||
* Notes: basic elements of Channel Centre for Input/Output(CCIO) service
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef CCIO_BASE_H
|
||||
#define CCIO_BASE_H
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* INCLUDES *
|
||||
*----------------------------------------------------------------------------*/
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
#include DEBUG_LOG_HEADER_FILE
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* MACROS *
|
||||
*----------------------------------------------------------------------------*/
|
||||
/* buffer size */
|
||||
#define CCIO_BUF_SIZE_8 (8)
|
||||
#define CCIO_BUF_SIZE_16 (16)
|
||||
#define CCIO_BUF_SIZE_32 (32)
|
||||
#define CCIO_BUF_SIZE_64 (64)
|
||||
#define CCIO_BUF_SIZE_128 (128)
|
||||
#define CCIO_BUF_SIZE_256 (256)
|
||||
#define CCIO_BUF_SIZE_512 (512)
|
||||
#define CCIO_BUF_SIZE_1K (1024)
|
||||
#define CCIO_BUF_SIZE_2K (2048)
|
||||
#define CCIO_BUF_SIZE_4K (4096)
|
||||
#define CCIO_BUF_SIZE_8K (CCIO_BUF_SIZE_4K << 1)
|
||||
#define CCIO_BUF_SIZE_16K (CCIO_BUF_SIZE_4K << 2)
|
||||
#define CCIO_BUF_SIZE_32K (CCIO_BUF_SIZE_4K << 3)
|
||||
|
||||
/* alignment size */
|
||||
#define CCIO_ALIGN_SIZE_1 (1 << 0)
|
||||
#define CCIO_ALIGN_SIZE_2 (1 << 1)
|
||||
#define CCIO_ALIGN_SIZE_4 (1 << 2)
|
||||
#define CCIO_ALIGN_SIZE_8 (1 << 3)
|
||||
|
||||
#define CCIO_INFINITE_CYCLE_CNT 0xffff
|
||||
/* mac addr length */
|
||||
#define CCIO_MAC_ADDR_MAXSIZE 6
|
||||
/* ipv4 addr length */
|
||||
#define CCIO_IP4_ADDR_MAXSIZE 4
|
||||
/* ipv6 addr length */
|
||||
#define CCIO_IP6_ADDR_MAXSIZE 16
|
||||
/* ipv6 interface id length */
|
||||
#define CCIO_IP6_ID_MAXSIZE 8
|
||||
|
||||
/* 5bits */
|
||||
#define CCIO_CHAN_MAXNUM 32
|
||||
|
||||
/* lan channel: usb/uart */
|
||||
#define CCIO_CHAN_LAN_MAXNUM CCIO_DEV_NO_BASE_SPI
|
||||
#define CCIO_CHAN_WAN_MAXNUM (CCIO_CHAN_MAXNUM - CCIO_DEV_NO_BASE_RADIO)
|
||||
|
||||
#define CCIO_CHAN_ID_ANY 0xFFFF
|
||||
#define CCIO_CHAN_ID_UNDEF CCIO_DEV_ID_UNDEF
|
||||
#define CCIO_CHAN_NO_GET(chanId) CCIO_DEV_NO_GET(chanId)
|
||||
|
||||
/* chanId & devId has the same definition,
|
||||
* whose format is described as follows.
|
||||
* *******************************************
|
||||
* 16 14 11 9 5 0
|
||||
* |rsvd+-type-+-st-+--llsn--+----No.----|
|
||||
* |====+======+====+========+===========|
|
||||
* | Channel/Device ID |
|
||||
* |====+======+====+========+===========|
|
||||
*/
|
||||
#define CCIO_DEV_NO_BASE_USB 0
|
||||
#define CCIO_DEV_NO_BASE_UART 6
|
||||
#define CCIO_DEV_NO_BASE_SPI 10
|
||||
/*
|
||||
* 10~15 is reserved for other hw type, such as spi, i2c, i2s...
|
||||
*/
|
||||
#define CCIO_DEV_NO_BASE_RADIO 16
|
||||
|
||||
#define CCIO_DEV_ID_UNDEF CCIO_BITMASK(16,0)
|
||||
#define CCIO_DEV_NO_UNDEF CCIO_BITMASK(5,0)
|
||||
#define CCIO_DEV_LLSN_UNDEF CCIO_BITMASK(4,0)
|
||||
#define CCIO_DEV_SUBTYPE_UNDEF CCIO_BITMASK(2,0)
|
||||
#define CCIO_DEV_TYPE_UNDEF CCIO_BITMASK(3,0)
|
||||
|
||||
#define CCIO_DEV_ID_MASK CCIO_BITMASK(16,0)
|
||||
#define CCIO_DEV_NO_MASK CCIO_BITMASK(5,0)
|
||||
#define CCIO_DEV_LLSN_MASK CCIO_BITMASK(4,5)
|
||||
#define CCIO_DEV_SUBTYPE_MASK CCIO_BITMASK(2,9)
|
||||
#define CCIO_DEV_TYPE_MASK CCIO_BITMASK(3,11)
|
||||
|
||||
#define CCIO_DEV_NO_GET(id) ( (id) & CCIO_DEV_NO_MASK)
|
||||
#define CCIO_DEV_LLSN_GET(id) (((id) & CCIO_DEV_LLSN_MASK) >> 5)
|
||||
#define CCIO_DEV_SUBTYPE_GET(id) (((id) & CCIO_DEV_SUBTYPE_MASK) >> 9)
|
||||
#define CCIO_DEV_TYPE_GET(id) (((id) & CCIO_DEV_TYPE_MASK) >> 11)
|
||||
|
||||
#define CCIO_DEV_ID_SET(dt,st,llsn,no) ((((dt) << 11) & CCIO_DEV_TYPE_MASK) | \
|
||||
(((st) << 9) & CCIO_DEV_SUBTYPE_MASK) | \
|
||||
(((llsn) << 5) & CCIO_DEV_LLSN_MASK) | \
|
||||
((no) & CCIO_DEV_NO_MASK))
|
||||
|
||||
#define CCIO_BITMASK(nbits,lsh) (((1 << (nbits)) - 1) << lsh)
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* DATA TYPE DEFINITION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
typedef bool bool_t;
|
||||
|
||||
typedef void CcioPbuf_t;
|
||||
|
||||
/**
|
||||
* The type which is used to hold the size
|
||||
* and the indicies of the buffer.
|
||||
*/
|
||||
typedef uint16_t RbufSize_t;
|
||||
|
||||
/* 2bits: ccio speed type definition */
|
||||
typedef enum
|
||||
{
|
||||
CCIO_ST_SLOW = 0,
|
||||
CCIO_ST_MEDIUM,
|
||||
CCIO_ST_HIGH,
|
||||
|
||||
CCIO_ST_MAXNUM
|
||||
}CcioSpeedType_e;
|
||||
|
||||
/* 3bits: ccio hardware type definition */
|
||||
typedef enum
|
||||
{
|
||||
CCIO_HT_USB = 0,
|
||||
CCIO_HT_UART,
|
||||
//CCIO_HT_SPI,
|
||||
CCIO_HT_RADIO,
|
||||
CCIO_HT_HWIND, /* hw independent */
|
||||
|
||||
CCIO_HT_MAXNUM
|
||||
}CcioHwType_e;
|
||||
|
||||
/* 3bits: ccio device type definition */
|
||||
typedef enum
|
||||
{
|
||||
CCIO_DT_SERIAL = 0,
|
||||
CCIO_DT_RNDIS,
|
||||
CCIO_DT_ECM,
|
||||
CCIO_DT_EUTRA,
|
||||
|
||||
CCIO_DT_MAXNUM
|
||||
}CcioDevType_e;
|
||||
|
||||
/* 2bits: Serial device subtype definition */
|
||||
typedef enum
|
||||
{
|
||||
CSIO_DT_AT = 0,
|
||||
CSIO_DT_PPP,
|
||||
CSIO_DT_DIAG,
|
||||
CSIO_DT_OPAQ,
|
||||
|
||||
CSIO_DT_MAXNUM
|
||||
}CsioDevType_e;
|
||||
|
||||
/* 2bits: rndis/ecm(Net) device subtype definition */
|
||||
typedef enum
|
||||
{
|
||||
CNIO_DT_ETHER = 0,
|
||||
|
||||
CNIO_DT_MAXNUM
|
||||
}CnioDevType_e;
|
||||
|
||||
/* 2bits: eUtra device subtype definition: cp&up? */
|
||||
typedef enum
|
||||
{
|
||||
CUIO_DT_CTRL = 0,
|
||||
CUIO_DT_DATA,
|
||||
|
||||
CUIO_DT_MAXNUM
|
||||
}CuioDevType_e;
|
||||
|
||||
/* 2bits: disable/en~ uplink/downlink hardware acceleration mechanism */
|
||||
typedef enum
|
||||
{
|
||||
CCIO_DEV_HWACM_NONE = 0,
|
||||
CCIO_DEV_HWACM_UL = (1 << 0), /* bit0 */
|
||||
CCIO_DEV_HWACM_DL = (1 << 1), /* bit1 */
|
||||
|
||||
CCIO_DEV_HWACM_MAXNUM
|
||||
}CcioDevHwAcm_e;
|
||||
|
||||
/* 2bits: ccio device working state definition */
|
||||
typedef enum
|
||||
{
|
||||
CCIO_DWS_UNDEF = 0,
|
||||
CCIO_DWS_INITIAL,
|
||||
CCIO_DWS_ASSIGNED,
|
||||
CCIO_DWS_WORKING,
|
||||
|
||||
CCIO_DWS_MAXNUM
|
||||
}CcioDevWorkState_e;
|
||||
|
||||
/** \brief List of channel Tx/Rx task create/kill flag */
|
||||
typedef enum
|
||||
{
|
||||
CCIO_TASK_FLAG_NONE = 0x0, /**< None of send and recv task is created */
|
||||
CCIO_TASK_FLAG_TX = 0x1, /**< Will create/kill send task during device initialization */
|
||||
CCIO_TASK_FLAG_RX = 0x2, /**< Will create/kill recv task during device initialization and start to recv after successful call */
|
||||
}CcioTaskOperFlag_e;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CCIO_SERL_STATE_DCD = 0,
|
||||
CCIO_SERL_STATE_RI,
|
||||
|
||||
CCIO_SERL_STATE_MAXNUM
|
||||
}CcioSerlState_e;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CCIO_SERL_DCD_OFF = 0,
|
||||
CCIO_SERL_DCD_ON,
|
||||
}CcioSerlDcdState_e;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t stateId; /* CcioSerlState_e */
|
||||
uint8_t rsvd[3];
|
||||
uint32_t data;
|
||||
uint32_t extras;
|
||||
void *chdev;
|
||||
}CcioSerlState_t;
|
||||
|
||||
/* lan media state between DTE & DCE */
|
||||
typedef enum
|
||||
{
|
||||
CCIO_LMS_DISCONNECTED = 0,
|
||||
CCIO_LMS_NEGOTIATING,
|
||||
CCIO_LMS_CONNECTED
|
||||
}CcioLanMediaState_e;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CCIO_LAN_MEDIA_UNDEF = 0,
|
||||
CCIO_LAN_MEDIA_RNDIS,
|
||||
CCIO_LAN_MEDIA_ECM,
|
||||
CCIO_LAN_MEDIA_PPP,
|
||||
CCIO_LAN_MEDIA_AT,
|
||||
|
||||
CCIO_LAN_MEDIA_MAXNUM = CCIO_LAN_MEDIA_AT
|
||||
}CcioLanMediaType_e;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t lanType; /* refer to 'CcioLanMediaType_e' */
|
||||
uint8_t lanState; /* refer to 'CcioLanMediaState_e' */
|
||||
uint8_t rsvd[2];
|
||||
void *chdev;
|
||||
}CcioLanMedia_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t isAvlb;
|
||||
uint8_t isPppType; /* 0-eth, 1-ppp */
|
||||
uint8_t pdp4Cid; /* bit7: 0/1 exist or not; others: cid info! */
|
||||
uint8_t pdp6Cid; /* bit7: 0/1 exist or not; others: cid info! */
|
||||
}CcioDataPathCap_t;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CCIO_IP4_TYPE = (1 << 0),
|
||||
CCIO_IP6_TYPE = (1 << 1)
|
||||
}CcioIpType_e;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t ipType; /* CcioIpType_e */
|
||||
uint8_t pdp4Cid; /* bit7: 0/1 exist or not; others: cid info! */
|
||||
uint8_t pdp6Cid; /* bit7: 0/1 exist or not; others: cid info! */
|
||||
uint8_t rsvd;
|
||||
|
||||
uint8_t ip4Addr[CCIO_IP4_ADDR_MAXSIZE];
|
||||
uint8_t ip6Id[CCIO_IP6_ID_MAXSIZE];
|
||||
|
||||
uint8_t ip4Dns[2][CCIO_IP4_ADDR_MAXSIZE];
|
||||
uint8_t ip6Dns[2][CCIO_IP6_ADDR_MAXSIZE];
|
||||
}CcioDataPathHostConf_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t mac[CCIO_MAC_ADDR_MAXSIZE];
|
||||
}CcioMacAddr_t;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CCIO_AUTH_NONE = 0,
|
||||
CCIO_AUTH_PAP,
|
||||
CCIO_AUTH_CHAP
|
||||
}CcioAuthType_e;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint16_t userLen;
|
||||
uint16_t pwdLen;
|
||||
uint8_t user[CCIO_BUF_SIZE_64];
|
||||
uint8_t pwd[CCIO_BUF_SIZE_64];
|
||||
}CcioAuthPap_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint16_t challLen;
|
||||
uint16_t respLen;
|
||||
uint8_t chall[CCIO_BUF_SIZE_64];
|
||||
uint8_t resp[CCIO_BUF_SIZE_64];
|
||||
}CcioAuthChap_t;
|
||||
|
||||
typedef union
|
||||
{
|
||||
CcioAuthPap_t pap;
|
||||
CcioAuthChap_t chap;
|
||||
}CcioAuthInfo_t;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CCIO_EOK = 0, /* operation completed successfull */
|
||||
CCIO_ERR = -1, /* unspecified error: no other errno fits */
|
||||
CCIO_EARGS = -2, /* invalid argument(s) */
|
||||
CCIO_EFOUND = -3, /* item not found */
|
||||
CCIO_EEXIST = -4, /* item already exists */
|
||||
CCIO_EPERM = -5, /* operation/scenario not permitted */
|
||||
CCIO_EMALLOC = -6, /* memory alloc failure */
|
||||
CCIO_EMFREE = -7, /* memory free failure */
|
||||
CCIO_EMATCHED = -8, /* unmatched value/item */
|
||||
CCIO_EEMPTY = -9, /* table/list is empty */
|
||||
|
||||
CCIO_STATUS_RSVD = 0x7FFFFFFF
|
||||
}CcioStatus_e;
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* GLOBAL FUNCTIONS DECLEARATION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,264 @@
|
||||
/******************************************************************************
|
||||
|
||||
*(C) Copyright 2018 AirM2M International Ltd.
|
||||
|
||||
* All Rights Reserved
|
||||
|
||||
******************************************************************************
|
||||
* Filename: ccio_misc.h
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* History: 2021/1/19 created by xuwang
|
||||
*
|
||||
* Notes: adaptor layer of reference data type(struct/macro/...)
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef CCIO_MISC_H
|
||||
#define CCIO_MISC_H
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* INCLUDES *
|
||||
*----------------------------------------------------------------------------*/
|
||||
#include "uldp.h"
|
||||
#include "pspdu.h"
|
||||
#include "osaulfcmem.h"
|
||||
#include "osadlfcmem.h"
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* MACROS *
|
||||
*----------------------------------------------------------------------------*/
|
||||
//#define CCIO_ULPDU_FAST_FREE_ENABLE
|
||||
|
||||
/* ip net MTU of data */
|
||||
#define CCIO_IPNET_DATA_MTU 1500
|
||||
|
||||
/* min size of recv window for each channel */
|
||||
#define CCIO_RX_WIN_MINSIZE 512
|
||||
|
||||
/* NOTE: must be LE than sizeof(NmAtiGetNetInfoRet) */
|
||||
#define CCIO_WAN_CONF_MAXSIZE 128
|
||||
|
||||
/* max rndis packets in one transfer */
|
||||
#define CCIO_RNDIS_MAX_PKT_PER_XFER 10//RNDIS_MAX_PACK_PER_XFER
|
||||
|
||||
/* max size of rndis packet */
|
||||
#define CCIO_RNDIS_XFER_MAXSIZE 3584//ALIGNUP(RNDIS_RX_BUFFER_SIZE)
|
||||
|
||||
/* max size of ecm packet */
|
||||
#define CCIO_ECM_XFER_MAXSIZE 1536 //ALIGNUP(eth mtu 1514)
|
||||
|
||||
/* max size of ppp packet over serial */
|
||||
#define CCIO_PPP_XFER_MAXSIZE 1536 //ALIGNUP(ppp mtu 1508)
|
||||
|
||||
/* max size of normal packet over serial, e.g. AT, OPAQ
|
||||
* [caution]: as being restricted by usb driver,
|
||||
* some data of particular size(e.g 512/1024) can't be transfered @maxsize = 1536!
|
||||
*/
|
||||
#define CCIO_NORM_XFER_MAXSIZE 512
|
||||
|
||||
/**
|
||||
* extra size for managing ulpdu link node
|
||||
* when data was written in two contiguous ram blocks.
|
||||
* and it often occurs when the size between write_idx
|
||||
* and the buffer end is smaller than data length and
|
||||
* it has to split it and write the remaining data to
|
||||
* the ring buffer head again.
|
||||
*/
|
||||
#define CCIO_RBUF_XTRA_SIZE CCIO_RBUF_NPT_HDR_SIZE
|
||||
|
||||
/**
|
||||
* fixed size for uldp control block
|
||||
* and it equals to sizeof(UldpHdrInfo_t) + sizeof(UlPduBlock_t).
|
||||
*/
|
||||
#define CCIO_RBUF_NPT_HDR_SIZE (sizeof(UldpHdrInfo_t) + sizeof(UlPduBlock_t))
|
||||
|
||||
#define CCIO_ALIGN_UP(x,sz) (((x) + ((sz) - 1)) & (~((sz) - 1)))
|
||||
#define CCIO_ALIGN_DOWN(x,sz) ((x) & (~((sz) - 1)))
|
||||
|
||||
#define CCIO_CASE_UPPER(c) ((((c) >= 'a') && ((c) <= 'z')) ? ((c) - ('a' - 'A')) : (c))
|
||||
#define CCIO_CASE_LOWER(c) ((((c) >= 'A') && ((c) <= 'Z')) ? ((c) + ('a' - 'A')) : (c))
|
||||
|
||||
#define CCIO_MAX(x,y) (((x) > (y)) ? (x) : (y))
|
||||
#define CCIO_MIN(x,y) (((x) < (y)) ? (x) : (y))
|
||||
#define CCIO_ELEMNUM(x) (sizeof(x)/sizeof(x[0]))
|
||||
|
||||
#if 1
|
||||
#define CCIO_HTONS(x) ((((x) & 0x00ffUL) << 8) | (((x) & 0xff00UL) >> 8))
|
||||
#define CCIO_HTONL(x) ((((x) & 0x000000ffUL) << 24) | \
|
||||
(((x) & 0x0000ff00UL) << 8) | \
|
||||
(((x) & 0x00ff0000UL) >> 8) | \
|
||||
(((x) & 0xff000000UL) >> 24))
|
||||
#else /* Big Endian */
|
||||
#define CCIO_HTONS(x)
|
||||
#define CCIO_HTONL(x)
|
||||
#endif
|
||||
#define CCIO_NTOHS(x) CCIO_HTONS(x)
|
||||
#define CCIO_NTOHL(x) CCIO_HTONL(x)
|
||||
|
||||
#define CCIO_RBUF_ULDP_HDR_BUILD(uldph, len, isCmplt, crcRes) \
|
||||
do\
|
||||
{\
|
||||
(uldph)->magicNum = ULDP_HDR_MAGIC;\
|
||||
(uldph)->msgLen = (len);\
|
||||
(uldph)->isRdsPppCmpl = (isCmplt);\
|
||||
(uldph)->crcResult = (crcRes);\
|
||||
}while(0)
|
||||
|
||||
#define CCIO_RBUF_ULPDU_BUILD(ulpdu, chno, buf, len, bsame, bcont, next) \
|
||||
UL_PDU_BLOCK_SET_BASICS(ulpdu, chno, UL_RBUF_MEM, bsame, buf, len, 0, bcont, next)
|
||||
|
||||
#define CCIO_HEAP_DLPDU_BUILD(dlpdu, buf, len) \
|
||||
DL_PDU_BLOCK_SET_BASICS(dlpdu, DL_HEAP_MEM, buf, len, 0, NULL)
|
||||
|
||||
#define CCIO_ULPDU_LIST_APPEND(list, ulpdu) \
|
||||
do\
|
||||
{\
|
||||
if(((UlPduBlockList_t*)(list))->tail)\
|
||||
{\
|
||||
((UlPduBlockList_t*)(list))->tail->pNext = (ulpdu);\
|
||||
}\
|
||||
else\
|
||||
{\
|
||||
((UlPduBlockList_t*)(list))->head = ((UlPduBlockList_t*)(list))->tail = (ulpdu);\
|
||||
}\
|
||||
while(((UlPduBlockList_t*)(list))->tail->pNext)\
|
||||
{\
|
||||
((UlPduBlockList_t*)(list))->tail = ((UlPduBlockList_t*)(list))->tail->pNext;\
|
||||
}\
|
||||
}while(0)
|
||||
|
||||
#define CCIO_ULPDU_LIST_APPEND_LIST(list, hd, tl) \
|
||||
do\
|
||||
{\
|
||||
if(((UlPduBlockList_t*)(list))->tail)\
|
||||
{\
|
||||
((UlPduBlockList_t*)(list))->tail->pNext = (hd);\
|
||||
((UlPduBlockList_t*)(list))->tail = (tl);\
|
||||
}\
|
||||
else\
|
||||
{\
|
||||
((UlPduBlockList_t*)(list))->head = (hd);\
|
||||
((UlPduBlockList_t*)(list))->tail = (tl);\
|
||||
}\
|
||||
}while(0)
|
||||
|
||||
#define CCIO_DLPDU_LIST_APPEND(list, dlpdu) \
|
||||
do\
|
||||
{\
|
||||
if(((DlPduBlockList_t*)(list))->tail)\
|
||||
{\
|
||||
((DlPduBlockList_t*)(list))->tail->pNext = (dlpdu);\
|
||||
}\
|
||||
else\
|
||||
{\
|
||||
((DlPduBlockList_t*)(list))->head = ((DlPduBlockList_t*)(list))->tail = (dlpdu);\
|
||||
}\
|
||||
while(((DlPduBlockList_t*)(list))->tail->pNext)\
|
||||
{\
|
||||
((DlPduBlockList_t*)(list))->tail = ((DlPduBlockList_t*)(list))->tail->pNext;\
|
||||
}\
|
||||
}while(0)
|
||||
|
||||
#define CCIO_DLPDU_LIST_APPEND_LIST(list, head, tail) \
|
||||
do\
|
||||
{\
|
||||
if(((DlPduBlockList_t*)(list))->tail)\
|
||||
{\
|
||||
((DlPduBlockList_t*)(list))->tail->pNext = (head);\
|
||||
((DlPduBlockList_t*)(list))->tail = (tail);\
|
||||
}\
|
||||
else\
|
||||
{\
|
||||
((DlPduBlockList_t*)(list))->head = (head);\
|
||||
((DlPduBlockList_t*)(list))->tail = (tail);\
|
||||
}\
|
||||
}while(0)
|
||||
|
||||
#define CCIO_CONVTO_LANTYPE(lmt) (((lmt) == CCIO_LAN_MEDIA_RNDIS) ? NM_LAN_TYPE_RNDIS \
|
||||
: (((lmt) == CCIO_LAN_MEDIA_ECM) ? NM_LAN_TYPE_ECM \
|
||||
: (((lmt) == CCIO_LAN_MEDIA_PPP) ? NM_LAN_TYPE_PPP \
|
||||
: NM_LAN_TYPE_INVALID)))
|
||||
#define CCIO_CONVTO_LANNETTYPE(lmt) ((((lmt) == CCIO_LAN_MEDIA_RNDIS) || ((lmt) == CCIO_LAN_MEDIA_ECM)) ? NM_LAN_NET_TYPE_ETH \
|
||||
: (((lmt) == CCIO_LAN_MEDIA_PPP) ? NM_LAN_NET_TYPE_PPP \
|
||||
: NM_LAN_NET_TYPE_INVALID))
|
||||
#define CCIO_CONVTO_LANMEDIA(lt) (((lt) == NM_LAN_TYPE_RNDIS) ? CCIO_LAN_MEDIA_RNDIS \
|
||||
: (((lt) == NM_LAN_TYPE_ECM) ? CCIO_LAN_MEDIA_ECM \
|
||||
: (((lt) == NM_LAN_TYPE_PPP) ? CCIO_LAN_MEDIA_PPP \
|
||||
: CCIO_LAN_MEDIA_UNDEF)))
|
||||
|
||||
#define CCIO_CONVTO_LANSTATUS(lms) (((lms) == CCIO_LMS_CONNECTED) ? NM_LAN_LINK_STATUS_CONNECTED \
|
||||
: NM_LAN_LINK_STATUS_DISCONNECTED)
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* DATA TYPE DEFINITION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CUST_RBUF_FOR_DIAG = 0,
|
||||
CUST_RBUF_FOR_AT_NORM,
|
||||
CUST_RBUF_FOR_AT_CALI,
|
||||
CUST_RBUF_FOR_OPAQ,
|
||||
CUST_RBUF_FOR_PPP,
|
||||
CUST_RBUF_FOR_RNDIS,
|
||||
CUST_RBUF_FOR_ECM
|
||||
}CcioRbufUsage_e;
|
||||
|
||||
/**
|
||||
* extra info about customized rbuf.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
uint8_t xtraSize;
|
||||
uint8_t isPreGet;
|
||||
uint8_t rsvd[2];
|
||||
uint16_t avlbThres;
|
||||
uint16_t totalSize; /* real size, including xtra size */
|
||||
}CcioRbufXtras_t;
|
||||
|
||||
typedef UlPduBlock UlPduBlock_t;
|
||||
typedef DlPduBlock DlPduBlock_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
UlPduBlock_t *head;
|
||||
UlPduBlock_t *tail;
|
||||
}UlPduBlockList_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
DlPduBlock_t *head;
|
||||
DlPduBlock_t *tail;
|
||||
}DlPduBlockList_t;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
OsaUlfcMemEvtFlags_e flags;
|
||||
OsaUlfcMemEvtArgs_t *args;
|
||||
}CcioUlfcMemEvent_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
OsaDlfcMemEvtFlags_e flags;
|
||||
OsaDlfcMemEvtArgs_t *args;
|
||||
}CcioDlfcMemEvent_t;
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* GLOBAL FUNCTIONS DECLEARATION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,233 @@
|
||||
/******************************************************************************
|
||||
|
||||
*(C) Copyright 2018 AirM2M International Ltd.
|
||||
|
||||
* All Rights Reserved
|
||||
|
||||
******************************************************************************
|
||||
* Filename: ccio_pub.h
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* History: 2021/1/19 created by xuwang
|
||||
*
|
||||
* Notes: public & universal definition of Channel Centre for Input/Output(CCIO) service
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef CCIO_PUB_H
|
||||
#define CCIO_PUB_H
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* INCLUDES *
|
||||
*----------------------------------------------------------------------------*/
|
||||
#include "ccio_base.h"
|
||||
#include "RTE_Device.h"
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* MACROS *
|
||||
*----------------------------------------------------------------------------*/
|
||||
#define CCIO_CHAN_MSG_TYPE_MASK 0xFF000000
|
||||
#define CCIO_CHAN_MSG_CTRL_MASK 0x00FF0000
|
||||
#define CCIO_CHAN_MSG_CODE_MASK 0x0000FFFF
|
||||
|
||||
/* universal msg type flags */
|
||||
#define CCIO_CHAN_CMSG_FLAG 0x7C000000
|
||||
#define CCIO_CHAN_DMSG_FLAG 0x7D000000
|
||||
#define CCIO_CHAN_EMSG_FLAG 0x7E000000
|
||||
|
||||
/* customized msg type flag */
|
||||
#define CCIO_CHAN_CMSG_CUST_FLAG 0x3C000000
|
||||
#define CCIO_CHAN_DMSG_CUST_FLAG 0x3D000000
|
||||
#define CCIO_CHAN_EMSG_CUST_FLAG 0x3E000000
|
||||
|
||||
/* msg ctrl flag1(0x000F0000): Class Of Service */
|
||||
#define CCIO_CHAN_MSG_CF_COS0 0x00000000 /* msg with cos 0, e.g. Rx: ctrl/err msg, Tx: primary channel, mandary */
|
||||
#define CCIO_CHAN_MSG_CF_COS1 0x00010000 /* msg with cos 1, e.g. Rx: ppp/eth data, Tx: secondary channel, optional */
|
||||
#define CCIO_CHAN_MSG_CF_COS2 0x00020000 /* msg with cos 2, e.g. Rx: at/diag command, Tx: customed channel, optional */
|
||||
|
||||
/* msg ctrl flag2(0x00F00000) */
|
||||
#define CCIO_CHAN_MSG_CF_DIN 0x00400000 /* input data to device? for data msg only! */
|
||||
#define CCIO_CHAN_MSG_CF_IRQ 0x00800000 /* is triggered by IRQ? */
|
||||
|
||||
#define CCIO_CHAN_MSG_IS_DIN(msgId) ((msgId) & CCIO_CHAN_MSG_CF_DIN ? 1 : 0)
|
||||
#define CCIO_CHAN_MSG_IS_IRQ(msgId) ((msgId) & CCIO_CHAN_MSG_CF_IRQ ? 1 : 0)
|
||||
|
||||
#define CCIO_CHAN_MSG_ID_BUILD(id, isIrq, isDin, cos) ((id) | ((isIrq) ? CCIO_CHAN_MSG_CF_IRQ : 0) \
|
||||
| ((isDin) ? CCIO_CHAN_MSG_CF_DIN : 0) \
|
||||
| ((cos) & 0x000F0000))
|
||||
#define CCIO_CHAN_MSG_BUILD(chmsg, id, chdev, flgs, dat, xtr) \
|
||||
do\
|
||||
{\
|
||||
((CcioChanMessage_t*)(chmsg))->msgId = id;\
|
||||
((CcioChanMessage_t*)(chmsg))->lanDev = (CcioDevice_t*)(chdev);\
|
||||
((CcioChanMessage_t*)(chmsg))->flags = (flgs);\
|
||||
((CcioChanMessage_t*)(chmsg))->info.data = (uint32_t)(dat);\
|
||||
((CcioChanMessage_t*)(chmsg))->extras.data = (uint32_t)(xtr);\
|
||||
}while(0)
|
||||
|
||||
#define CCIO_CHAN_MSG_TBL_ENTRY(id, idDesc, func) {id, (const int8_t*)(idDesc), (chanMsgHandleFunc)func}
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* DATA TYPE DEFINITION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
/* prototype definition */
|
||||
struct CcioDevice;
|
||||
struct CcioEntity;
|
||||
|
||||
/*-Function prototype for device init functions by driver,
|
||||
* @param dev: the device to be initialized.
|
||||
*/
|
||||
typedef int32_t (*chdevInitFunc)(struct CcioDevice *dev, uint8_t llsn, void *extras);
|
||||
|
||||
/*-This function is called by channel monitor when it wants
|
||||
* to send a packet on the device driver.
|
||||
* Note: packets to be Tx out should be inserted into the "txHead/txTail" under "CcioDevice_t"
|
||||
*/
|
||||
typedef int32_t (*chdevOutFunc)(struct CcioDevice *dev, void *extras);
|
||||
|
||||
/*-This function is called by I/O device driver
|
||||
* to pass a packet up to the channel monitor.
|
||||
*/
|
||||
typedef int32_t (*chdevInCallback)(struct CcioDevice *dev, uint32_t xferCnt, void *extras);
|
||||
/**This function is called by channel monitor to set configs of the device
|
||||
* @param flags: device config event.
|
||||
* @param args : device config info.
|
||||
*/
|
||||
typedef int32_t (*chdevExecFunc)(uint32_t flags, void *args);
|
||||
/*-Function prototype for notifying entity that device status is changed.
|
||||
* @param flags: device status event.
|
||||
* @param args : device status info.
|
||||
*/
|
||||
typedef int32_t (*chdevStatusCallback)(uint32_t flags, void *args);
|
||||
|
||||
|
||||
typedef struct CcioDevice
|
||||
{
|
||||
struct CcioDevice *next;
|
||||
|
||||
uint16_t devId; /* guid generated by monitor! */
|
||||
uint16_t isPwOn :1; /* the device is power on or off, via monitor */
|
||||
uint16_t speedType :2; /* refer to 'CcioSpeedType_e', via driver */
|
||||
uint16_t hwtype :3; /* refer to 'CcioHwType_e', via driver */
|
||||
uint16_t type :3; /* refer to 'CcioDevType_e', via driver */
|
||||
uint16_t subtype :2; /* more details about device, via driver */
|
||||
uint16_t dedicate :1; /* common/dedicate device(attr), via driver */
|
||||
uint16_t llsn :4; /* lower-level serial number, via driver */
|
||||
uint32_t wkState :2; /* refer to 'CcioDevWorkState_e', via monitor */
|
||||
uint32_t bmHwAcm :2; /* refer to 'CcioDevHwAcm_e', via monitor */
|
||||
uint32_t isWaitTxCmplt :1; /* wait Tx complete IRQ or not, via driver */
|
||||
uint32_t asgnTxCos :2; /* the assigned tx channel(primary/secondary/customed), via monitor */
|
||||
uint32_t rsvdBits :25;
|
||||
void *chent; /* for fast accessing, via monitor */
|
||||
|
||||
chdevOutFunc chdevOutFn; /* via driver */
|
||||
chdevInCallback chdevInCb; /* via monitor */
|
||||
chdevExecFunc chdevExecFn; /* via driver */
|
||||
chdevStatusCallback chdevStatusCb; /* via monitor */
|
||||
|
||||
void *txHead; /* chain head for tx dlpdu, via driver */
|
||||
void *txTail; /* chain tail for tx dlpdu, via driver */
|
||||
|
||||
void *extras; /* privacy field for driver. */
|
||||
}CcioDevice_t;
|
||||
|
||||
|
||||
/**This function is called by CCIO channel monitor
|
||||
* when it wants to pass a packet for further handling.
|
||||
*/
|
||||
typedef int32_t (*chentInCallback)(void *chent, CcioPbuf_t *custPbuf, void *extras);
|
||||
/**This function is called by the l2 layer or same layer entity
|
||||
* when it wants to send a packet via a certain of I/O channel Entity.
|
||||
*/
|
||||
typedef int32_t (*chentOutFunc)(void *chent, CcioPbuf_t *custPbuf, void *extras);
|
||||
/**Function prototype for notifying user that entity status is changed.
|
||||
* @param flags: entity status event.
|
||||
* @param args : entity status info.
|
||||
*/
|
||||
typedef int32_t (*chentStatusCallback)(uint32_t flags, void *args);
|
||||
/**Function prototype for init channel entity
|
||||
*/
|
||||
typedef int32_t (*chentInitCallback)(void *chent, chentStatusCallback statusCb, void *extras);
|
||||
/**Function prototype for deinit channel entity
|
||||
*/
|
||||
typedef int32_t (*chentDeinitCallback)(void *chent);
|
||||
|
||||
|
||||
typedef struct CcioEntity
|
||||
{
|
||||
struct CcioEntity *next;
|
||||
|
||||
uint16_t chanId; /* same as chdev->devId finally */
|
||||
uint16_t open :1; /* set it TRUE if device has been assigned, via monitor */
|
||||
uint16_t chanType :3; /* channel type set by user, same as chdev->type */
|
||||
uint16_t servType :2; /* service type set by user, same as chdev->subtype */
|
||||
uint16_t txDelay :1; /* atcmd/netdata is delayed to be delivered to Tx task */
|
||||
uint16_t rsvdBit :9;
|
||||
void *chdev; /* init & enable it, via monitor */
|
||||
void *rbuf; /* rbuf to recv data, via monitor */
|
||||
|
||||
chentOutFunc chentOutFn; /* via monitor */
|
||||
chentInCallback chentInCb; /* via monitor */
|
||||
chentStatusCallback chentStatusCb; /* via user */
|
||||
}CcioEntity_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
/* inherited field & MUST be placed on the top! */
|
||||
CcioEntity_t base;
|
||||
|
||||
uint8_t lanState; /* refer to 'CcioLanMediaState_e', via monitor/user */
|
||||
uint8_t pdp4Cid; /* ipv4 pdp context Id, via monitor */
|
||||
uint8_t pdp6Cid; /* ipv6 pdp context Id, via monitor */
|
||||
uint8_t isWanAvlb :1;
|
||||
uint8_t notifAgain :1;
|
||||
uint8_t rsvd :6;
|
||||
|
||||
void *extras; /* for user context. */
|
||||
|
||||
/* TODO: statistic, via monitor */
|
||||
}EtherEntity_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint32_t msgId;
|
||||
CcioDevice_t *lanDev; /* src/dest lan chdev, NULL for monitor */
|
||||
/*
|
||||
* [flags/info/xtras]: customed field, fill whatever you want!
|
||||
*/
|
||||
uint32_t flags;
|
||||
union
|
||||
{
|
||||
uint32_t data;
|
||||
uint8_t *dataPtr;
|
||||
}info;
|
||||
union
|
||||
{
|
||||
uint32_t data;
|
||||
uint8_t *dataPtr;
|
||||
}extras;
|
||||
}CcioChanMessage_t;
|
||||
|
||||
typedef int32_t (*chanMsgBuildFunc)(CcioChanMessage_t *chmsg, uint32_t msgId, void *args);
|
||||
typedef int32_t (*chanMsgHandleFunc)(CcioChanMessage_t *chmsg);
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* GLOBAL FUNCTIONS DECLEARATION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
int32_t ccioSendMsgToRxTask(uint32_t msgId, void *args, chanMsgBuildFunc buildFn);
|
||||
int32_t ccioSendMsgToTxTask(uint32_t msgId, void *args, chanMsgBuildFunc buildFn);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,180 @@
|
||||
/******************************************************************************
|
||||
|
||||
*(C) Copyright 2018 AirM2M International Ltd.
|
||||
|
||||
* All Rights Reserved
|
||||
|
||||
******************************************************************************
|
||||
* Filename: ccio_atcmd.h
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* History: Rev1.0 2020-02-24
|
||||
*
|
||||
* Notes: uart/usb at command header file
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef CCIO_ATCMD_H
|
||||
#define CCIO_ATCMD_H
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* INCLUDES *
|
||||
*----------------------------------------------------------------------------*/
|
||||
#include "ccio_misc.h"
|
||||
#include "ccio_base.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* MACROS *
|
||||
*----------------------------------------------------------------------------*/
|
||||
/* dummy atCid when AT channel is removed! */
|
||||
#define CCIO_DUMMY_AT_CHANID 1
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* DATA TYPE DEFINITION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
typedef struct
|
||||
{
|
||||
uint32_t delayMs;
|
||||
void *chdev;
|
||||
}AtCmdResetSystem_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t mode;
|
||||
uint8_t atCid;
|
||||
uint8_t rsvd[2];
|
||||
void *chdev;
|
||||
}AtCmdPwOffSystem_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t mode;
|
||||
uint8_t rsvd[3];
|
||||
void *chdev;
|
||||
}AtCmdSwitchSlpMode_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t isSave;
|
||||
uint8_t rsvd[3];
|
||||
uint32_t baudRate;
|
||||
uint32_t frameFmt;
|
||||
void *chdev;
|
||||
}AtCmdChgSerlConf_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
void *chdev;
|
||||
}AtCmdReqDataModeHS_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t pdp4Cid; /* bit7: 0/1 exist or not; others: cid info! */
|
||||
uint8_t pdp6Cid; /* bit7: 0/1 exist or not; others: cid info! */
|
||||
uint16_t flags;
|
||||
void *chdev;
|
||||
}AtCmdStartPppSessn_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t isClosed;
|
||||
uint8_t rsvd[3];
|
||||
void *chdev;
|
||||
}AtCmdStopPppSessn_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t rsvd[4];
|
||||
void *chdev;
|
||||
}AtCmdResumePppSessn_t;
|
||||
|
||||
/* timing-controlling */
|
||||
typedef struct
|
||||
{
|
||||
uint32_t msgId; /* CcioChanMessageId_e */
|
||||
uint32_t data;
|
||||
uint32_t extras;
|
||||
void *chdev;
|
||||
}AtCmdTmCtrlPppSessn_t;
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* GLOBAL FUNCTIONS DECLEARATION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
int32_t atCmdInput(uint8_t atCid, uint8_t *atStr, uint16_t atStrLen);
|
||||
int32_t atCmdOutput(uint8_t atCid, uint8_t *atStr, uint16_t atStrLen);
|
||||
int32_t atCmdOutputDlPdu(uint8_t atCid, uint8_t outFmt, DlPduBlock_t *dlpdu);
|
||||
|
||||
/**
|
||||
\brief Bypass SEND task and send string to uart directly
|
||||
\param[in] atCid at chanId from PS
|
||||
\param[in] strPtr pointer to string body
|
||||
\param[in] strLen string length
|
||||
\return void
|
||||
\note Used only in specific cases, such as sleep entering procedure where we should not switch out from IDLE task
|
||||
*/
|
||||
int32_t atCmdDirectOutput(uint8_t atCid, uint8_t *strPtr, uint16_t strLen);
|
||||
|
||||
uint8_t atCmdGetChanNo(uint8_t atCid);
|
||||
|
||||
void atCmdResetOutMode(void);
|
||||
|
||||
void atCmdRestoreOutMode(void);
|
||||
|
||||
/*
|
||||
* dcdState: 0 - DCD off (high level), 1 - DCD on (low level)
|
||||
*/
|
||||
int32_t atCmdSetDcdState(uint8_t atCid, uint8_t dcdState);
|
||||
|
||||
/**
|
||||
\brief request to set pstn serial ri signal to mcu or host
|
||||
\param[in] atCid at chanId from PS
|
||||
\param[in] cycleCnt the count of cycle(0-unset ri, 0xffff(CCIO_INFINITE_CYCLE_CNT)-square wave)
|
||||
\param[in] dutyCyclePct percentage of duty cycle(0-100)
|
||||
\param[in] cycleTimeMs cycle time in msec unit
|
||||
\return 0-succ, < 0-failure
|
||||
\note
|
||||
*/
|
||||
int32_t atCmdReqSetRiState(uint8_t atCid, uint16_t cycleCnt, uint16_t dutyCyclePct, uint32_t cycleTimeMs);
|
||||
|
||||
/**
|
||||
\brief Get IPR string for AT CMD AT+IPR print out
|
||||
\param[in] atCid at chanId from PS
|
||||
\return pointer to IPR string
|
||||
*/
|
||||
uint8_t* atCmdGetIPRString(uint8_t atCid);
|
||||
|
||||
/**
|
||||
\brief Get supported baudrate list string for AT CMD print out
|
||||
\param[in] atCid at chanId from PS
|
||||
\return pointer to ECIPR string
|
||||
*/
|
||||
uint8_t* atCmdGetBaudRateString(uint8_t atCid);
|
||||
|
||||
/**
|
||||
\brief Check if UART baud rate valid or not
|
||||
\param[in] atCid at chanId from PS
|
||||
\param[in] baudRate baud rate need to check
|
||||
\return true if pass otherwise false
|
||||
*/
|
||||
bool_t atCmdIsBaudRateValid(uint8_t atCid, uint32_t baudRate);
|
||||
|
||||
int32_t atCmdStartPppSessn(uint8_t atCid, uint8_t pdp4Cid, uint8_t pdp6Cid, bool_t needAct);
|
||||
int32_t atCmdStopPppSessn(uint8_t atCid, uint32_t args);
|
||||
int32_t atCmdResumePppSessn(uint8_t atCid, uint32_t args);
|
||||
|
||||
int32_t atCmdReqDataModeHS(uint8_t atCid, uint32_t args);
|
||||
|
||||
void atCmdPowerOff(uint8_t atCid, uint8_t mode);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
/******************************************************************************
|
||||
|
||||
*(C) Copyright 2018 AirM2M International Ltd.
|
||||
|
||||
* All Rights Reserved
|
||||
|
||||
******************************************************************************
|
||||
* Filename: ccio_netdata.h
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* History: 2021/1/19 created by xuwang
|
||||
*
|
||||
* Notes:
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef CCIO_NETDATA_H
|
||||
#define CCIO_NETDATA_H
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* INCLUDES *
|
||||
*----------------------------------------------------------------------------*/
|
||||
#include "ccio_misc.h"
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* MACROS *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* DATA TYPE DEFINITION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* GLOBAL FUNCTIONS DECLEARATION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
void netifSetFastChkInfo(void *fastChkInfo, UINT16 infoLen);
|
||||
void* netifGetFastChkInfo(void);
|
||||
|
||||
int32_t ethDataInput(UlPduBlock_t *ulpdu, void *extras);
|
||||
int32_t ethDataOutput(uint8_t lanType, DlPduBlock_t *head, DlPduBlock_t *tail);
|
||||
int32_t ethDataFastOutput(uint8_t lanType);
|
||||
|
||||
int32_t netDataInput(UlPduBlock_t *ulpdu, void *extras);
|
||||
int32_t netDataOutput(DlPduBlock_t *head, DlPduBlock_t *tail);
|
||||
int32_t netDataFastOutput(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
/******************************************************************************
|
||||
|
||||
*(C) Copyright 2018 AirM2M International Ltd.
|
||||
|
||||
* All Rights Reserved
|
||||
|
||||
******************************************************************************
|
||||
* Filename: ccio_opaq.h
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* History: 2022/3/15 created by xuwang
|
||||
*
|
||||
* Notes:
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef CCIO_OPAQ_H
|
||||
#define CCIO_OPAQ_H
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* INCLUDES *
|
||||
*----------------------------------------------------------------------------*/
|
||||
#include "ccio_misc.h"
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* MACROS *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* DATA TYPE DEFINITION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
* GLOBAL FUNCTIONS DECLEARATION *
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
\fn int32_t opaqDataInput(UlPduBlock_t *ulpdu, void *extras)
|
||||
\brief to further handle opaq data received from serial device
|
||||
\return
|
||||
\note invoked by RxTask automatically once opaq data is received
|
||||
*/
|
||||
int32_t opaqDataInput(UlPduBlock_t *ulpdu, void *extras);
|
||||
|
||||
/**
|
||||
\fn int32_t opaqDataOutput(uint8_t chanNo, DlPduBlock_t *dlpdu, void *extras)
|
||||
\brief to send opaq data out of serial device
|
||||
\return
|
||||
\note invoked by customer's AppTask for outputting opaq data
|
||||
*/
|
||||
int32_t opaqDataOutput(uint8_t chanNo, DlPduBlock_t *dlpdu, void *extras);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,440 @@
|
||||
/******************************************************************************
|
||||
* (C) Copyright 2018 AirM2M International Ltd.
|
||||
* All Rights Reserved
|
||||
*******************************************************************************
|
||||
* Filename: cms_api.h
|
||||
*
|
||||
* Description: CMS (Communication Modem Service layer/task) external API & signal definition
|
||||
*
|
||||
* History:
|
||||
*
|
||||
* Notes:
|
||||
* 1> This is the API file which should (only) included by other modules, such as APP task
|
||||
* which need CMS serives.
|
||||
* 2> Other modules (not runing in CMS task), must not include other CMS header files
|
||||
******************************************************************************/
|
||||
#ifndef __CMS_API_H__
|
||||
#define __CMS_API_H__
|
||||
|
||||
#include <stdint.h>
|
||||
#include "string.h"
|
||||
#include "commontypedef.h"
|
||||
#include "osasys.h"
|
||||
#include "cms_def.h"
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* CMS EXTERNAL COMMON MARCO
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
#define CMS_MAX_DELAY_MS 0xEFFFFFFF //without time out
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* CMS EXTERNAL COMMON ENUM
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
/*
|
||||
* Signal ID between CMS task and other tasks
|
||||
*/
|
||||
typedef enum _SIG_EPAT_cmsSigId_Enum
|
||||
{
|
||||
/*
|
||||
* 0x0900 - 0x09FF, reserved for CMS task signals
|
||||
*/
|
||||
|
||||
SIG_CMS_BASE = 0x0900,
|
||||
|
||||
/*
|
||||
* 0x0900 - 0x090F, used between URAT/USB <-> CMS (AT CMD SRV)
|
||||
*/
|
||||
AT_CMD_SIGNAL_BASE = 0x0900,
|
||||
SIG_AT_CMD_STR_REQ, //AtCmdStrReq
|
||||
SIG_AT_CMD_CONTINUE_REQ, //AtCmdContinueReq
|
||||
|
||||
//SIG_AT_CMD_DATA_MODE_HS_REQ,
|
||||
SIG_AT_CMD_DATA_MODE_HS_CNF,
|
||||
|
||||
|
||||
AT_CMD_SIGNAL_END = 0x090F,
|
||||
|
||||
/*
|
||||
* 0x0910 - 0x091F, used between APP (LWM2M/COAP/MQTT, etc) <-> CMS(AT CMD SRV) (cms_comm.h)
|
||||
*/
|
||||
APP_SIGNAL_BASE = 0x0910,
|
||||
SIG_CMS_APPL_REQ, //CmsApplReq
|
||||
SIG_CMS_APPL_CNF, //CmsApplCnf
|
||||
SIG_CMS_APPL_IND, //CmsApplInd
|
||||
|
||||
APP_SIGNAL_END = 0x091F,
|
||||
|
||||
/*
|
||||
* 0x0928 - 0x092F, used between SIMBIP <-> STK PS Proxy (psstk_bip.h)
|
||||
*/
|
||||
|
||||
/*
|
||||
* 0x0930 - 0x093F, used between CMS task <- IPC -> PHY for PHY/RF AT CMD (acmsgtype.h)
|
||||
*/
|
||||
|
||||
/*
|
||||
* 0x0940 - 0x095F, used for others CMS signal
|
||||
*/
|
||||
SIG_CMS_OTHER_BASE = 0x0940,
|
||||
SIG_CMS_PHY_WAKEUP_READY_IND, //usless for CAT1, OsaEmptySignal, after PHY wake up ready, send this signal to CMS to schedule PS tasks
|
||||
SIG_CMS_SYN_API_REQ, //CmsSynApiReq
|
||||
SIG_CMS_HIGH_PRI_SYN_API_REQ, //CmsSynApiReq, this called with high priority without any block in CMS task
|
||||
SIG_CMS_BLOCK_API_REQ, //CmsBlockApiReq
|
||||
SIG_CMS_NON_BLOCK_API_REQ, //CmsNonBlockApiReq
|
||||
SIG_CMS_APMU_SC_CALIBR_REQ, // C2A_SLOWCLOCK_CALIBR_REQ
|
||||
SIG_CMS_APMU_SC_CALIBR_CANCEL_REQ,
|
||||
SIG_CMS_DCXO_NVM_UPDT_REQ, // C2A_DCXO_NVM_UPDT_REQ
|
||||
SIG_CMS_AUXADC_REQ, // C2A_AUXADC_REQ
|
||||
SIG_CMS_SEND_UART_STR_REQ, // C2A_SEND_UART_STR_REQ
|
||||
SIG_CMS_UTC_TIME_REQ, // C2A_UTC_TIME_REQ
|
||||
SIG_CMS_CP_BTOFFSET_UPD_REQ, // CP indicate ap to update BT offset
|
||||
SIG_CMS_APMU_COMM_TEST_REQ, // C2A_COMM_TEST_REQ
|
||||
SIG_CMS_CP_PAGING_EVENT_IND_ISR, //CmsCpPagingEventIndIsr
|
||||
SIG_CMS_SIM_HOT_SWAP_IND, //CmsSimHotSwapInd--fast signal
|
||||
//SIG_CMS_PMU_PS_WAKEUP_IND = 0x0950,
|
||||
SIG_CMS_PMU_PS_MODEM_START_IND, //CmsPmuInd
|
||||
SIG_CMS_OTHER_END = 0x0960,
|
||||
|
||||
/*
|
||||
* 0x0980 - 0x09FF, reserved for customer, an example
|
||||
*/
|
||||
CUSTOMER_SIGNAL_BASE = 0x0980,
|
||||
SIG_CUSTOMER_MSG_CALLBACK,
|
||||
SIG_CUSTOMER_REQ,
|
||||
SIG_CUSTOMER_CNF,
|
||||
SIG_CUSTOMER_IND,
|
||||
#ifdef __USER_CODE__
|
||||
SIG_CUSTOMER_LOG,
|
||||
#endif
|
||||
CUSTOMER_SIGNAL_END = 0x09FF
|
||||
|
||||
}cmsSigId;
|
||||
|
||||
/*
|
||||
* CMS ERROR CODE, at_api/cms_api common return error code
|
||||
*/
|
||||
typedef enum CmsRetId_enum
|
||||
{
|
||||
CMS_RET_SUCC = 0,
|
||||
|
||||
CMS_FAIL = -1,
|
||||
CMS_INVALID_PARAM = -2,
|
||||
CMS_BUSY = -3,
|
||||
CMS_LIST_FULL = -4,
|
||||
CMS_LIST_NOT_FOUND = -5,
|
||||
CMS_SEMP_ERROR = -6, //Semaphore not created/error
|
||||
CMS_TIME_OUT = -7,
|
||||
CMS_SIM_NOT_INSERT = -8, //SIM not inserted
|
||||
CMS_OPER_NOT_SUPPROT = -9, //operation not supported
|
||||
CMS_SIM_WRONG = -10, //SIM wrong, excute command while returned invalid data
|
||||
CMS_NOT_POWER_ON = -11, //Not power on, maybe cfun0 state
|
||||
CMS_SIM_BUSY = -12, //SIM busy, cannot process any instruction
|
||||
CMS_NO_MEM = -13,
|
||||
CMS_NO_RESOURCE = -14,
|
||||
CMS_AT_SENT_FAIL = -15,
|
||||
|
||||
CMS_RET_CONTINUE = -127, /* specical ERR ID */
|
||||
|
||||
}_CmsRetId;
|
||||
|
||||
|
||||
/*
|
||||
* refer _CmsRetId
|
||||
*/
|
||||
typedef INT32 CmsRetId;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* APP layer ID, value: 0 - 255
|
||||
* CmsApplCnf->header.appId
|
||||
*/
|
||||
typedef enum CmsAppLayerId_Enum
|
||||
{
|
||||
APPL_BASE = 1,
|
||||
APPL_NM = 2,
|
||||
APPL_SOCKET = 3,
|
||||
APPL_MQTT = 4,
|
||||
APPL_CTW = 5,
|
||||
APPL_LWM2M = 6,
|
||||
APPL_HTTP = 7,
|
||||
APPL_SSL = 8,
|
||||
APPL_DTLS = 9,
|
||||
APPL_ECSOC = 10,
|
||||
APPL_ONENET = 11,
|
||||
APPL_CTLWM2M = 12,
|
||||
APPL_ADC = 13,
|
||||
APPL_EXAMPLE = 14,
|
||||
APPL_ECSRVSOC = 16,
|
||||
APPL_DM = 17,
|
||||
APPL_FWUPD = 18,
|
||||
|
||||
/*
|
||||
* new APPL add here
|
||||
*/
|
||||
APPL_ALARM = 19,
|
||||
APPL_FILE = 20,
|
||||
|
||||
APPL_REF_SOC = 21,
|
||||
|
||||
|
||||
|
||||
APPL_END = 0xFF
|
||||
}CmsAppId;
|
||||
|
||||
|
||||
/*
|
||||
* ApplRetCode
|
||||
* value of "ApplRetCnf->header.rc"
|
||||
* Note:
|
||||
* 1> If some APP has their own error code, need to defined in their own header file, such as: at_sock_task.h
|
||||
* 2> But the "0" is reserved for SUCC
|
||||
*/
|
||||
typedef enum applRetCode_Enum
|
||||
{
|
||||
APPL_RET_SUCC = 0,
|
||||
APPL_RET_FAIL = 1,
|
||||
APPL_RET_NETWORK_FAIL = 2,
|
||||
APPL_RET_END,
|
||||
}ApplRetCode;
|
||||
|
||||
|
||||
/*
|
||||
* LWM2M error code
|
||||
*/
|
||||
|
||||
typedef enum AT_LWM2M_ERROR
|
||||
{
|
||||
LWM2M_PARAM_ERROR = 1, //parameter error
|
||||
LWM2M_SEMPH_ERROR = 2, //cannot create semph
|
||||
LWM2M_CONFIG_ERROR = 3, //config error
|
||||
LWM2M_NO_FREE_CLIENT = 4, //no free client
|
||||
LWM2M_NO_FIND_CLIENT = 5, //no find client
|
||||
LWM2M_OPERATION_NOT_SUPPORT = 6, //operation not support
|
||||
LWM2M_ADDOBJ_FAILED = 7, //add object failed
|
||||
LWM2M_NO_FIND_OBJ = 8, //no find object
|
||||
LWM2M_DELOBJ_FAILED = 9, //delete object failed
|
||||
LWM2M_NO_NETWORK = 10, //network not ready
|
||||
LWM2M_INTER_ERROR = 11, //internal error
|
||||
LWM2M_REG_BAD_REQUEST = 12, //register fail bad request
|
||||
LWM2M_REG_FORBIDEN = 13, //register fail forbden
|
||||
LWM2M_REG_PRECONDITION = 14, //register fail parameter error
|
||||
LWM2M_REG_TIMEOUT = 15, //register fail timeout
|
||||
LWM2M_SESSION_INVALID = 16, //create session fail
|
||||
LWM2M_ALREADY_ADD = 17 //already has object
|
||||
}_AtLwm2mError;
|
||||
|
||||
|
||||
|
||||
typedef enum AT_CTLWM2M_ERROR
|
||||
{
|
||||
CTLWM2M_OTHER_ERROR = 1,
|
||||
CTLWM2M_PARAM_NUM_ERROR = 2,
|
||||
CTLWM2M_PARAM_VALUE_ERROR = 3,
|
||||
CTLWM2M_TERMINAL_NOT_READY = 4,
|
||||
CTLWM2M_NOT_SUPPORT_SECURITY_MODE = 5,
|
||||
CTLWM2M_OPERATION_NOT_SUPPORT = 6,
|
||||
CTLWM2M_ADDOBJ_FAILED = 7,
|
||||
CTLWM2M_PARAM_NOT_INT = 8,
|
||||
CTLWM2M_DELOBJ_FAILED = 9,
|
||||
CTLWM2M_SEMPH_ERROR = 10,
|
||||
CTLWM2M_PARAM_LEN_OVERFLOW = 14,
|
||||
CTLWM2M_PLATFORM_NOT_READY = 15,
|
||||
CTLWM2M_DATALEN_NOT_EVEN = 17,
|
||||
CTLWM2M_NOT_ALLOWED_CONNECT = 32,
|
||||
CTLWM2M_NOT_SEND_COMMAND = 33,
|
||||
CTLWM2M_CREATE_SESSION_FAILED = 34
|
||||
}_AtCtLwm2mError;
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* STRUCT
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* SigId: SIG_CMS_APPL_REQ
|
||||
* Signal send to other APP task
|
||||
*/
|
||||
typedef struct CmsApplReq_Tag
|
||||
{
|
||||
struct {
|
||||
UINT8 appId; //CmsAppId
|
||||
UINT8 primId; //prim ID in each APP group
|
||||
UINT16 srcHandler;
|
||||
}header;
|
||||
|
||||
UINT8 body[];
|
||||
}CmsApplReq;
|
||||
|
||||
/*
|
||||
* SigId: SIG_CMS_APPL_CNF
|
||||
* Signal sent from APP tasks
|
||||
*/
|
||||
typedef struct CmsApplCnf_Tag
|
||||
{
|
||||
struct {
|
||||
UINT8 appId; //CmsAppId
|
||||
UINT8 primId; //prim ID in each APP group
|
||||
UINT16 srcHandler; //Handler
|
||||
UINT16 rc;
|
||||
UINT16 rsvd;
|
||||
}header;
|
||||
|
||||
UINT8 body[];
|
||||
}CmsApplCnf;
|
||||
|
||||
/*
|
||||
* SigId: SIG_CMS_APPL_IND
|
||||
* Signal sent from APP tasks
|
||||
*/
|
||||
typedef struct CmsApplInd_Tag
|
||||
{
|
||||
struct {
|
||||
UINT8 appId; //CmsAppId
|
||||
UINT8 primId; //prim ID in each APP group
|
||||
|
||||
/*
|
||||
* As some indication is triggered by some AT request, in such as need to fill this "reqHandler",
|
||||
* otherwise set to "BROADCAST_IND_HANDLER".
|
||||
*/
|
||||
UINT16 reqHandler;
|
||||
}header;
|
||||
|
||||
UINT8 body[];
|
||||
}CmsApplInd;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* SigIg: SIG_PMU_IND
|
||||
* Signal: send from pmu module to cms task
|
||||
*/
|
||||
typedef struct CmsPmuIndTag
|
||||
{
|
||||
UINT16 indId;
|
||||
UINT16 reserved;
|
||||
}CmsPmuInd;
|
||||
|
||||
/*
|
||||
* SigIg: SIG_CMS_SIM_HOT_SWAP_IND
|
||||
* Signal: send from APP tasks or ISR to cms task
|
||||
*/
|
||||
typedef struct CmsSimHotSwapIndTag
|
||||
{
|
||||
BOOL bSimPlugIn;// indicated whether the SIM card plugged in or out
|
||||
UINT8 reserved1;
|
||||
UINT16 reserved2;
|
||||
}CmsSimHotSwapInd;
|
||||
|
||||
|
||||
/*
|
||||
* SigId: SIG_CUSTOMER_CNF, used as an example
|
||||
*/
|
||||
typedef struct custRetCnfTag
|
||||
{
|
||||
struct {
|
||||
UINT16 cnfId;
|
||||
UINT16 srcHandler; //Handler from CamCmiReq
|
||||
UINT16 rc;
|
||||
UINT16 reserved;
|
||||
}header;
|
||||
|
||||
UINT8 body[];
|
||||
}custRetCnf;
|
||||
|
||||
/*
|
||||
* SigIg: SIG_CUSTOMER_IND, used as an example
|
||||
*/
|
||||
typedef struct custRetIndTag
|
||||
{
|
||||
struct {
|
||||
UINT16 indId;
|
||||
UINT16 srcHandler;
|
||||
UINT16 rc;
|
||||
UINT16 reserved;
|
||||
}header;
|
||||
|
||||
UINT8 body[];
|
||||
}custRetInd;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* CMS EXTERNAL API
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* init and create CMS task
|
||||
*/
|
||||
void cmsTaskInit(void);
|
||||
|
||||
/*
|
||||
* APP send the "SIG_CMS_APPL_CNF" to CMS task
|
||||
*/
|
||||
CmsRetId applSendCmsCnf(UINT16 reqHandler, UINT16 rcCode, UINT8 appId, UINT8 primId, UINT16 primSize, void *pPrimBody);
|
||||
|
||||
/*
|
||||
* APP send the "SIG_CMS_APPL_IND" to CMS task
|
||||
*/
|
||||
CmsRetId applSendCmsInd(UINT16 reqHandler, UINT8 appId, UINT8 primId, UINT16 primSize, void *pPrimBody);
|
||||
|
||||
/*
|
||||
* Pmu Module send the "SIG_CMS_PMU_PS_WAKEUP_IND" to CMS task
|
||||
*/
|
||||
CmsRetId apmuWakeupPsNoneBlock(void);
|
||||
|
||||
/*
|
||||
* Pmu Module send the "SIG_CMS_PMU_PS_MODEM_START_IND" to CMS task
|
||||
*/
|
||||
CmsRetId apmuSendCmsCpStartSig(void);
|
||||
|
||||
/*
|
||||
* must remove later - TBD
|
||||
*/
|
||||
//CmsRetId appCallbackWithNoBlock(app_callback_fn function, void *ctx);;
|
||||
|
||||
/**
|
||||
\fn void cmsStartPs(void)
|
||||
\brief start protocl stack (tasks), if PS is not ready
|
||||
\returns void
|
||||
\Note: a) could only be called in task.
|
||||
\ b) this is a blocked (sync) API, after PS task started, than return
|
||||
\ c) if the caller not want to blocked, please call: cmsStartPsNonBlock()
|
||||
*/
|
||||
void cmsStartPs(void);
|
||||
|
||||
/**
|
||||
\fn void cmsStartPs(void)
|
||||
\brief start protocl stack (tasks), if PS is not ready
|
||||
\returns void
|
||||
\Note: a) could only be called in task.
|
||||
\ b) this is a non blocked API, API return, not means PS is already
|
||||
*/
|
||||
void cmsStartPsNonBlock(void);
|
||||
|
||||
/**
|
||||
\fn BOOL cmsIsPsReady(void)
|
||||
\brief Whether protocol stack is ready to send/recv signals
|
||||
\returns BOOL
|
||||
*/
|
||||
BOOL cmsIsPsReady(void);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copy right: 2017-, Copyrigths of AirM2M Ltd.
|
||||
* File name: cms_comm.h
|
||||
* Description: Communication Modem Service layer/task common header file
|
||||
* History: Rev1.0 2018-08-06
|
||||
* Note: common header which called by CMS task internally
|
||||
****************************************************************************/
|
||||
#ifndef __CMS_COMM_H__
|
||||
#define __CMS_COMM_H__
|
||||
|
||||
#include "cms_api.h"
|
||||
#include "mw_nvm_config.h"
|
||||
#include "mw_nvm_info.h"
|
||||
#include "mw_aon_info.h"
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* CMS EXTERNAL COMMON MARCO
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* CMS EXTERNAL COMMON ENUM
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
/******
|
||||
* extern specification
|
||||
******/
|
||||
extern SignalQueue gCmsPendingSigQueue; // 8 bytes
|
||||
#define pCmsPendingSigQue &gCmsPendingSigQueue
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* CMS EXTERNAL API
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,256 @@
|
||||
/******************************************************************************
|
||||
* (C) Copyright 2018 AirM2M International Ltd.
|
||||
* All Rights Reserved
|
||||
*******************************************************************************
|
||||
* Filename: cms_def.h
|
||||
*
|
||||
* Description: Communication Modem Service layer/task MARCO/COMMON definition
|
||||
*
|
||||
* History:
|
||||
*
|
||||
* Notes:
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef __CMS_DEF_H__
|
||||
#define __CMS_DEF_H__
|
||||
#include "commontypedef.h"
|
||||
#include "osasys.h"
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* CMS COMMON MARCO
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* CMS task stack size & queue size
|
||||
*/
|
||||
#define CMS_TASK_STACK_SIZE 3072
|
||||
|
||||
#define CMS_TASK_QUEUE_SIZE 30 /* Enlarge from 20 to 30,
|
||||
* Bug #3978: as some PS AT CMD maybe trigger several (reach to 15) CMI CNF signal to
|
||||
* CMS task, (e.g., AT+CGPADDR, if 15 bearer defined by tester), in the case,
|
||||
* 20 (several CMI IND at same time) queue size maybe not enough, so enlarge to 30
|
||||
*/
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* 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
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* Internal handler, channel ID set to 0.
|
||||
* Internal valid value: 0x01 ~ 0xFF
|
||||
*/
|
||||
#define BROADCAST_IND_HANDLER 0x0001
|
||||
#define CMS_REQ_HANDLER 0x0060
|
||||
#define PS_DIAL_REQ_HANDLER 0x0061
|
||||
#define PS_STK_REQ_RSP_HANDLER 0x0062
|
||||
//#define APP_SYNC_REQ_HANDLER 0x0063
|
||||
#define PS_LPP_REQ_RSP_HANDLER 0x0064
|
||||
#define PS_DIAL_PPP_REQ_HANDLER 0x0065
|
||||
|
||||
/*
|
||||
* used in ps_syn_cnf.c, AppPsBlockReq
|
||||
* Handler from: [0x0020 ~ 0x0030)
|
||||
*/
|
||||
#define APP_PS_BLOCK_REQ_NUM 16
|
||||
#define APP_PS_BLOCK_REQ_START_HANDLER 0x0020
|
||||
#define APP_PS_BLOCK_REQ_END_HANDLER (APP_PS_BLOCK_REQ_START_HANDLER + APP_PS_BLOCK_REQ_NUM - 1)
|
||||
|
||||
/*
|
||||
* used in CAM, this reserved for CAM SYNC API
|
||||
*/
|
||||
#define CAM_CMI_SYNC_REQ_NUM 16
|
||||
#define CAM_CMI_SYNC_REQ_START_HANDLER 0x0030
|
||||
#define CAM_CMI_SYNC_REQ_END_HANDLER (CAM_CMI_SYNC_REQ_START_HANDLER + CAM_CMI_SYNC_REQ_NUM - 1)
|
||||
|
||||
|
||||
|
||||
#define CMS_SET_SRC_HANDLER(TID, subAtId, chanId) ((UINT16)(((TID)&0x1F) | (((subAtId)<<5)&0xE0) | (((chanId)<<8)&0xF00)))
|
||||
|
||||
#define CMS_GET_HANDLER_TID(srcHandler) ((srcHandler) & 0x1F)
|
||||
#define CMS_GET_HANDLER_SUB_ATID(srcHandler) (((srcHandler) & 0xE0) >> 5)
|
||||
#define CMS_GET_HANDLER_CHAN_ID(srcHandler) (((srcHandler) & 0xF00) >> 8)
|
||||
#define CMS_GET_UINT16_HANDLER(srcHandler) ((srcHandler) & 0xFFFF)
|
||||
|
||||
/******************************************************************************
|
||||
* 3 bits SUB AT ID, value: 0 - 7
|
||||
* 1> 0 is default value
|
||||
* 2> 0 - 4, used for EC
|
||||
* 3> 5,6,7, used for REF
|
||||
******************************************************************************/
|
||||
/*
|
||||
* CMS default SUB AT ID
|
||||
* CMS_GET_HANDLER_SUB_ATID()
|
||||
*/
|
||||
#define CMS_DEFAULT_SUB_AT_ID 0
|
||||
|
||||
#define CMS_EC_MAX_SUB_AT_ID 4
|
||||
|
||||
/*
|
||||
* SUB AT ID, used for REF AT CMD
|
||||
*/
|
||||
#define CMS_REF_SUB_AT_1_ID 5
|
||||
#define CMS_REF_SUB_AT_2_ID 6
|
||||
#define CMS_REF_SUB_AT_3_ID 7
|
||||
|
||||
/*
|
||||
* ECBCINFO called by ECBCINFO/QENG/CESQ/CSQ/QCELL, so need use different sub Id to diff it.
|
||||
* the default sub Id is used in ECBCINFO
|
||||
* CSQ/CESQ all mapped: CMI_MM_GET_EXTENDED_SIGNAL_QUALITY_REQ, so need this "sub Id" to diff it
|
||||
*/
|
||||
typedef enum AtcSignalQualitySubAtId_enum
|
||||
{
|
||||
ATEC_SIGNAL_ECBCINFO_SUB_AT = CMS_DEFAULT_SUB_AT_ID,
|
||||
ATEC_SIGNAL_QUALITY_CSQ_SUB_AT = 1,
|
||||
ATEC_SIGNAL_QUALITY_CESQ_SUB_AT = 2,
|
||||
ATEC_SIGNAL_QCELL_SUB_AT = CMS_REF_SUB_AT_1_ID,
|
||||
ATEC_SIGNAL_QENG_SUB_AT = CMS_REF_SUB_AT_2_ID,
|
||||
}AtcSignalQualitySubAtId;
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* CMI REQ/CNF/IND ID:
|
||||
* 15 11 0
|
||||
* +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||
* | SG ID | PRIM ID |
|
||||
* +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||
*
|
||||
* CMI: CIOT Modem Interface
|
||||
******************************************************************************/
|
||||
#define CMS_GET_CMI_SG_ID(reqId) (((reqId)>>12)&0x000F)
|
||||
#define CMS_GET_CMI_PRIM_ID(reqId) ((reqId)&0x0FFF)
|
||||
#define CMS_SET_CMI_REQ_CNF_ID(sgId, primId) ((UINT16)(((sgId)<<12)|((primId)&0x0FFF)))
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* STR end byte: '\0'
|
||||
*/
|
||||
#define CMS_NULL_CHAR_LEN 1
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* CMS COMMON ENUM
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* CMS channel ID, MAX: 15, now only enabled 5 ID
|
||||
* 1> 1st: 0, is reserved for: AT indication, and internal using
|
||||
* 2> 2nd: 1, default AT channel, used for AT CMD send from USB.
|
||||
* 3> 3rd: 2, reserved for AT SDK API (RIL API).
|
||||
* 4> 4th, 3, AT channel, used for AT CMD send from UART
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
CMS_CHAN_RSVD = 0,
|
||||
CMS_CHAN_IND = CMS_CHAN_RSVD,
|
||||
|
||||
CMS_CHAN_1 = 1,
|
||||
CMS_CHAN_DEFAULT = 1,
|
||||
CMS_CHAN_USB = 1, //default is used for ATCMD from USB
|
||||
AT_CHAN_DEFAULT = 1,
|
||||
|
||||
CMS_CHAN_2 = 2,
|
||||
CMS_RIL_API_CHAN = 2, //channel reserved for SDK API (RIL API)
|
||||
AT_RIL_API_CHAN = 2,
|
||||
|
||||
CMS_CHAN_3 = 3,
|
||||
CMS_CHAN_UART = 3, //used for ATCMD from UART
|
||||
|
||||
/*
|
||||
* still/only channel 4 are used for other purposes.
|
||||
*/
|
||||
CMS_CHAN_4 = 4,
|
||||
|
||||
CMS_CHAN_NUM = 5,
|
||||
|
||||
CMS_CHAN_MAX = 15
|
||||
}cmsChanId;
|
||||
|
||||
#define MID_WARE_USED_AT_CHAN_NUM 4 //(CMS_CHAN_NUM-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
|
||||
*/
|
||||
typedef enum CmsOsaTimerSubModId_enum
|
||||
{
|
||||
CMS_TIMER_AT_SUB_MOD_ID = 0,
|
||||
CMS_TIMER_PS_LPP_SUB_MOD_ID = 1,
|
||||
CMS_TIMER_APP_PS_BLOCK_REQ_SUB_MOD_ID = 2,
|
||||
//...
|
||||
|
||||
|
||||
CMS_TIMER_SUB_MOD_ID_MAX = 15
|
||||
}CmsOsaTimerSubModId;
|
||||
|
||||
#define CMS_SET_OSA_TIMER_ID(subMid, subTid) (UINT16)((((subMid)<<12)&0xF000) | ((subTid)&0xFFF))
|
||||
|
||||
#define CMS_GET_OSA_TIMER_SUB_MOD_ID(timerId) (((timerId)>>12)&0x0F)
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* cmsDeepPmuCtrlBitmap
|
||||
* Whether CMS task allow the PMU enter the hibernate/sleep2 state (only AON memory)
|
||||
* Each sub-module has a bit to indicate whether allow it:
|
||||
* 0 - allow, 1 - not allow;
|
||||
* So when all bits is set to 0 (cmsDeepPmuCtrlBitmap == 0) just means CMS task
|
||||
* is in IDLE state, and allow to enter hibernate state
|
||||
******************************************************************************/
|
||||
extern UINT32 cmsDeepPmuCtrlBitmap;
|
||||
|
||||
/*
|
||||
*/
|
||||
typedef enum CmsDeepPmuVoteSubMod_Enum
|
||||
{
|
||||
CMS_AT_UART_CHAN_PMU_MOD,
|
||||
|
||||
//...
|
||||
|
||||
CMS_PMU_MOD_MAX = 32
|
||||
}CmsDeepPmuVoteSubMod;
|
||||
|
||||
|
||||
#define CMS_SUB_MOD_ALLOW_DEEP_PMU(subMod) \
|
||||
do { \
|
||||
if ((subMod)<32 && (subMod)>=0) \
|
||||
(cmsDeepPmuCtrlBitmap &= (~(1<<(subMod)))); \
|
||||
else \
|
||||
OsaCheck(FALSE, subMod, cmsDeepPmuCtrlBitmap, 0); \
|
||||
}while(FALSE)
|
||||
|
||||
|
||||
#define CMS_SUB_MOD_NOT_ALLOW_DEEP_PMU(subMod) \
|
||||
do { \
|
||||
if ((subMod)<32 && (subMod)>=0) \
|
||||
(cmsDeepPmuCtrlBitmap |= (1<<(subMod))); \
|
||||
else \
|
||||
OsaCheck(FALSE, subMod, cmsDeepPmuCtrlBitmap, 0); \
|
||||
}while(FALSE)
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,189 @@
|
||||
/******************************************************************************
|
||||
* (C) Copyright 2018 AirM2M International Ltd.
|
||||
* All Rights Reserved
|
||||
*******************************************************************************
|
||||
* Filename: cms_util.h
|
||||
*
|
||||
* Description: CMS (Communication Modem Service) utility header file
|
||||
*
|
||||
* History:
|
||||
*
|
||||
* Notes:
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef __CMS_UTIL_H__
|
||||
#define __CMS_UTIL_H__
|
||||
|
||||
#include "cms_api.h"
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* MARCO
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* 4 bytes MAGIC words
|
||||
*/
|
||||
#define CMS_MAGIC_WORDS 0xA4B6C9D2
|
||||
#define CMS_MAGIC_WORDS_SIZE 4
|
||||
#define CMS_SYN_API_BODY_MAX 1024
|
||||
|
||||
typedef CmsRetId (*CmsSynCallback)(UINT16 inputSize, void *pInput, UINT16 outputSize, void *pOutput);
|
||||
|
||||
//typedef void (*CmsBlockCallback)(CmsBlockApiInfo *pApiInfo);
|
||||
typedef void (*CmsBlockCallback)(void *pArg);
|
||||
|
||||
typedef void (*CmsNonBlockCallback)(UINT16 paramSize, void *pParam);
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* ENUM
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* STRUCT
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* SIG: SIG_CMS_SYN_API_REQ
|
||||
* API called in CMS task, and without timeout
|
||||
*/
|
||||
typedef struct CmsSynApiInfo_Tag
|
||||
{
|
||||
osSemaphoreId_t sem;
|
||||
CmsRetId retCode; //CmsRetId
|
||||
CmsSynCallback cmsSynFunc;
|
||||
UINT16 inputSize;
|
||||
UINT16 outputSize;
|
||||
UINT32 hdrMagic;
|
||||
|
||||
/*
|
||||
* +----------------------+--------------+---------+--------------+-------+
|
||||
* | CmsSynApiInfo | input PARAM | MAGIC | output PARAM | MAGIC |
|
||||
* +----------------------+--------------+---------+--------------+-------+
|
||||
* ^ ^ ^ ^ ^
|
||||
* pApiInfo param pInMagic pOutAddr pOutMagic
|
||||
*/
|
||||
|
||||
UINT8 param[]; /*input + output parameters, and should 4 bytes aligned*/
|
||||
}CmsSynApiInfo; //20 bytes
|
||||
|
||||
typedef struct CmsSynApiReq_Tag
|
||||
{
|
||||
CmsSynApiInfo *pApiInfo;
|
||||
}CmsSynApiReq;
|
||||
|
||||
|
||||
/*
|
||||
* SIG: SIG_CMS_BLOCK_API_REQ
|
||||
* API called in CMS task, and timeout setting
|
||||
*/
|
||||
typedef struct CmsBlockApiInfo_Tag
|
||||
{
|
||||
osSemaphoreId_t sem;
|
||||
CmsRetId retCode; //CmsRetId
|
||||
CmsBlockCallback cmsBlockFunc;
|
||||
UINT32 timeOutMs; //timeOut in MILLISECONDS
|
||||
UINT16 inputSize;
|
||||
UINT16 outputSize;
|
||||
|
||||
void *pInput;
|
||||
void *pOutput;
|
||||
}CmsBlockApiInfo; //28 bytes
|
||||
|
||||
typedef struct CmsBlockApiReq_Tag
|
||||
{
|
||||
CmsBlockApiInfo *pApiInfo;
|
||||
}CmsBlockApiReq;
|
||||
|
||||
/*
|
||||
* SIG: SIG_CMS_NON_BLOCK_API_REQ
|
||||
* API called in CMS task
|
||||
*/
|
||||
typedef struct CmsNonBlockApiReq_Tag
|
||||
{
|
||||
CmsNonBlockCallback cmsNonBlockFunc;
|
||||
|
||||
UINT16 paramSize;
|
||||
UINT16 rsvd;
|
||||
|
||||
UINT8 param[];
|
||||
}CmsNonBlockApiReq;
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* API
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
INT8 cmsDigitCharToNum(UINT8 ch);
|
||||
BOOL cmsHexStrToUInt(UINT32 *pOutput, const UINT8 *pHexStr, UINT32 strMaxLen);
|
||||
BOOL cmsDecStrToUInt(UINT32 *pOutput, const UINT8 *pDecStr, UINT32 strMaxLen);
|
||||
BOOL cmsBinStrToUInt(UINT32 *pOutput, const UINT8 *pBinStr, UINT32 strMaxLen);
|
||||
|
||||
BOOL cmsHexStrToInt(INT32 *pOutput, const UINT8 *pHexStr, UINT32 strMaxLen);
|
||||
BOOL cmsDecStrToInt(INT32 *pOutput, const UINT8 *pDecStr, UINT32 strMaxLen);
|
||||
BOOL cmsBinStrToInt(INT32 *pOutput, const UINT8 *pBinStr, UINT32 strMaxLen);
|
||||
|
||||
|
||||
|
||||
BOOL cmsBePureIntStr(CHAR * str);
|
||||
|
||||
/*
|
||||
* "1234" -> {0x12, 0x34}
|
||||
*/
|
||||
INT32 cmsHexStrToHex(UINT8 *pOutput, UINT32 outBufSize, const CHAR *pHexStr, UINT32 strMaxLen);
|
||||
|
||||
/*
|
||||
* {0x12, 0x34} -> "1234"
|
||||
*/
|
||||
INT32 cmsHexToHexStr(CHAR *pOutStr, UINT32 outBufSize, const UINT8 *pHexData, UINT32 hexLen);
|
||||
INT32 cmsHexToLowHexStr(CHAR *pOutStr, UINT32 outBufSize, const UINT8 *pHexData, UINT32 hexLen);
|
||||
|
||||
/*
|
||||
* "AbcDef" -> "ABCDEF"
|
||||
*/
|
||||
BOOL cmsStrToUpper(CHAR* pStr);
|
||||
|
||||
/*
|
||||
* 3 -> '3'
|
||||
*/
|
||||
INT8 cmsNumToChar(UINT8 num);
|
||||
|
||||
/*
|
||||
* CMS API CALL, API called in CMS task
|
||||
*/
|
||||
CmsRetId cmsSynApiCall(CmsSynCallback synFunc, UINT16 inputSize, void *pInput, UINT16 outputSize, void *pOutPut);
|
||||
CmsRetId cmsHighPriSynApiCall(CmsSynCallback synFunc, UINT16 inputSize, void *pInput, UINT16 outputSize, void *pOutPut);
|
||||
CmsRetId cmsBlockApiCall(CmsBlockCallback blockFunc, UINT16 inputSize, void *pInput, UINT16 outputSize, void *pOutPut, UINT32 timeOutMs);
|
||||
CmsRetId cmsNonBlockApiCall(CmsNonBlockCallback nonBlockFunc, UINT16 inputSize, void *pInput);
|
||||
|
||||
/*
|
||||
*/
|
||||
void cmsProcHighPriSynApiReqSig(CmsSynApiReq *pSynApiReq);
|
||||
|
||||
/******************************************************************************
|
||||
* psCamCmiReq
|
||||
* Description: PS CAM CMI request, reques/access PS service
|
||||
* input: UINT16 srcHdr;
|
||||
* UINT8 sgId; // CamSgIdEnum
|
||||
* UINT16 primId; // prim ID
|
||||
* UINT16 primSize; //prim body size
|
||||
* void *primBody; //prim body
|
||||
* output: void
|
||||
* Comment:
|
||||
* 1> Before send the signal, need to check whether PS task is ready, if not, need to
|
||||
* start PS firstly
|
||||
* 2> This API could only be called in CMS task
|
||||
******************************************************************************/
|
||||
void psCamCmiReq(UINT16 srcHdr, UINT8 sgId, UINT16 primId, UINT16 primSize, void *primBody);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
#ifndef __CMS_NET_LIGHT_H__
|
||||
#define __CMS_NET_LIGHT_H__
|
||||
/******************************************************************************
|
||||
******************************************************************************
|
||||
Copyright: - 2017- Copyrights of AirM2M Ltd.
|
||||
File name: - cmsnetlight.h
|
||||
Description: - the head file for cmsnetlight.c
|
||||
History: - 03/30/2020, Originated by xlhu
|
||||
******************************************************************************
|
||||
******************************************************************************/
|
||||
#include "cms_util.h"
|
||||
#include "osasys.h"
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* MARCO
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* STRUCT
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* ENUM
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
typedef enum CmsNetlightMode_Tag
|
||||
{
|
||||
NET_LIGHT_DISABLE = 0,
|
||||
NET_LIGHT_ENABLE = 1
|
||||
}
|
||||
CmsNetlightMode;
|
||||
|
||||
typedef enum NetlightFlickerMode_Tag
|
||||
{
|
||||
NETLIGHT_FLICKER_NONE = 0,
|
||||
NETLIGHT_FLICKER_FAST = 1,
|
||||
NETLIGHT_FLICKER_SLOW = 2,
|
||||
}
|
||||
NetlightFlickerMode;
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
******************************************************************************
|
||||
* External global variable
|
||||
******************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* Functions
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
CmsRetId cmsNetlightMonitorCmiInd(const SignalBuf *indSignalPtr);
|
||||
CmsRetId cmsNetlightMonitorCmiCnf(const SignalBuf *cnfSignalPtr);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,226 @@
|
||||
#ifndef __PS_DIAL_H__
|
||||
#define __PS_DIAL_H__
|
||||
/******************************************************************************
|
||||
******************************************************************************
|
||||
Copyright: - 2017- Copyrights of AirM2M Ltd.
|
||||
File name: - psdial.h
|
||||
Description: - DIAL functions
|
||||
History: - 04/12/2018
|
||||
******************************************************************************
|
||||
******************************************************************************/
|
||||
#include "cms_api.h"
|
||||
#include "osasys.h"
|
||||
#include "cmicomm.h"
|
||||
#include "lwip/ip_addr.h"
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* MARCO
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* whether auto dial after power on
|
||||
*/
|
||||
#ifndef AT_POWER_ON_AUTO_DIAL
|
||||
#define AT_POWER_ON_AUTO_DIAL 1
|
||||
#endif
|
||||
|
||||
/*
|
||||
* DNS config parameter
|
||||
*/
|
||||
#define PS_DAIL_DEFAULT_DNS_NUM 2
|
||||
#define PS_DAIL_IPV4_ADDR_LEN 4
|
||||
#define PS_DAIL_IPV6_ADDR_LEN 16
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* STRUCT
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* PS DAIL context
|
||||
*/
|
||||
typedef struct PsDialContext_Tag
|
||||
{
|
||||
UINT32 psTaskCreated : 1; /* Whether PS tasks (CCM/NAS/RRC/AS/UICC) created.
|
||||
* 1> As PS tasks is not created when power on/wake up from deep sleep by default.
|
||||
* Here, involved a flag to record it.
|
||||
* 2> When APP/AT need PS service, need to check this flag firstly, and if PS task
|
||||
* is not created, need let/trigger PSDAIL to create PS tasks.
|
||||
*/
|
||||
UINT32 psTaskReady : 1; /* Whether PS tasks is ready to be accessed.
|
||||
* 1> If first power on, after PS task created, then set it to TRUE
|
||||
* 2> If wake up from deep sleep. after PS task created and PS wake up procedure done, then set it
|
||||
* to TRUE.
|
||||
*/
|
||||
UINT32 psNeedWakeup : 1; /* Whether PS task need wake up before set to "Ready"
|
||||
* 1> Set to TRUE, when AP wake up from deep sleep, and PS task has created before.
|
||||
* 2> Set to TRUE, when AP OS (IDLE task) called enter deep sleep callback to cover the case:
|
||||
* enter deep sleep failed, if a interrupt comes during enter deep sleep procedure.
|
||||
* 3> Set to TRUE, after PS task woken up.
|
||||
* Note:
|
||||
* 1> "psTaskReady" & "psNeedWakeup" can not both set to TRUE, just
|
||||
* a) if "psNeedWakeup" = TRUE, "psTaskReady" must be FALSE
|
||||
* b) if "psTaskReady" = TRUE, "psNeedWakeup" must be FALSE
|
||||
* c) if "psNeedWakeup" = FALSE, "psTaskReady" could be TRUE or FALSE
|
||||
*/
|
||||
|
||||
|
||||
//UINT32 bNetifActed : 1; //netif/PDP state, in fact this flag should set in LWIP net-manager side
|
||||
UINT32 bActIfDuringWakeup : 1; /* whether active bearer/netif during sleep2/hib wake up, proc:
|
||||
* 1> CGCONTRDP, to read all default bearers, linkup netmgr/lwip
|
||||
* 2> CGSCONTRDP, to read all dedicated bearers, linkup netmgr/lwip
|
||||
* 3> CGTFTRDP, to read all TFT config, config to netmgr/lwip
|
||||
* Set this value to FALSE, after all these done
|
||||
*/
|
||||
UINT32 bSilentReset : 1;
|
||||
UINT32 rsvd0 : 3;
|
||||
|
||||
UINT32 actingCid : 8; /* current activating CID */
|
||||
UINT32 actingCidCgevReason: 4; /* CmiPsPdnTypeReason, 1> psdail need it decide whether need to init another PDP, 2> netif also need it */
|
||||
UINT32 psConnStatus : 1; /* 0 - RRC IDLE, 1- RRC connected */
|
||||
UINT32 bTrafficIdleTriggerTau:1; /* When Pdcp monitor traffic idle after a <idle_time> (set by AT+ECSCLKEX), notify psDial, then do as follows:
|
||||
* 1> Trigger UE to force to go idle
|
||||
* 2> After UE go idle, trigger a TAU to sync with NW.
|
||||
* 3> False: no need to trigger TAU after go idle as above.
|
||||
* True : need to trigger TAU after go idle as above.
|
||||
*/
|
||||
UINT32 rsvd1 : 10;
|
||||
|
||||
CmiSimImsiStr ueImsi; //20 bytes
|
||||
}PsDialContext; //24 bytes
|
||||
|
||||
|
||||
/*
|
||||
* PS DIAL AON info, save to flash, when enter HIB
|
||||
*/
|
||||
typedef struct PsDialAonInfo_Tag
|
||||
{
|
||||
UINT32 cfunState : 8; /* CFUN state, CmiFuncValueEnum */
|
||||
UINT32 ceregState : 4; /* CEREG, CmiCeregStateEnum */
|
||||
UINT32 psTaskCreatedBefore : 1; /* Whether PS task has been created before.
|
||||
* 1> Set to TRUE, once PS task created.
|
||||
* 2> No way to set FALSE.
|
||||
* Note: need it to decide whether need PS wakeup prcedure when PS task created
|
||||
*/
|
||||
UINT32 bSmsReady : 1; /* Whether SMS init ready or not */
|
||||
UINT32 rsvd0 : 2;
|
||||
|
||||
UINT32 rsvd1 : 16;
|
||||
}PsDialAonInfo;
|
||||
|
||||
|
||||
/*
|
||||
* PS DAIL DNS CONFIG
|
||||
* DNS order:
|
||||
* 1> NW configed DNS;
|
||||
* 2> DNS configed in NVM by AT CMD: AT+ECDNSCFG
|
||||
* 3> default configed DNS indexed by UE IMSI
|
||||
*/
|
||||
typedef struct PsDialDnsCfg_Tag
|
||||
{
|
||||
UINT8 ipv4DnsNum ; //ipv4 valid dns num
|
||||
UINT8 ipv6DnsNum ; //ipv6 valid dns num
|
||||
UINT16 rsvd;
|
||||
ip4_addr_t ipv4Dns[PS_DAIL_DEFAULT_DNS_NUM];
|
||||
ip6_addr_t ipv6Dns[PS_DAIL_DEFAULT_DNS_NUM];
|
||||
|
||||
}PsDialDnsCfg; //44 bytes
|
||||
|
||||
typedef enum {
|
||||
PS_DIAL_NET_TYPE_IPV4 = 0,
|
||||
PS_DIAL_NET_TYPE_IPV6 = 1,
|
||||
PS_DIAL_NET_TYPE_IPV4V6 = 2,
|
||||
PS_DIAL_NET_TYPE_INVALID = 3,
|
||||
}PsDialNetType;
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
******************************************************************************
|
||||
* External global variable
|
||||
******************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* This context save in AON memory
|
||||
*/
|
||||
extern PsDialAonInfo *pDialAonInfo;
|
||||
|
||||
/*
|
||||
* PS dial static context
|
||||
*/
|
||||
extern PsDialContext psDialCtx;
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* Functions
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
CmsRetId psDialProcCmiInd(const SignalBuf *indSignalPtr);
|
||||
CmsRetId psDialProcCmiCnf(const SignalBuf *cnfSignalPtr);
|
||||
void psDailGetCfgDnsByUeImsi(PsDialDnsCfg *pDnsCfg);
|
||||
|
||||
|
||||
/*
|
||||
* check whether netif is acted
|
||||
*/
|
||||
//BOOL psDialLwipNetIfIsAct(void);
|
||||
BOOL psDailBeCfun1State(void);
|
||||
BOOL psDialBeActNetifDoneDuringWakeup(void);
|
||||
|
||||
/******************************************************************************
|
||||
* psDialSetAdptDnsServerInfo
|
||||
* Description: Set DNS server address
|
||||
* input: UINT8 cid, PsDialDnsCfg *pPcoDns, PsDialDnsCfg *pAdptDns, BOOL bWakeUp
|
||||
* output: BOOL
|
||||
* Comment:
|
||||
******************************************************************************/
|
||||
BOOL psDialSetAdptDnsServerInfo(UINT8 cid, UINT8 type, PsDialDnsCfg *pPcoDns, PsDialDnsCfg *pAdptDns, BOOL bWakeUp);
|
||||
|
||||
/*
|
||||
* return current CFUN state: CMI_DEV_MIN_FUNC/CMI_DEV_FULL_FUNC/CMI_DEV_TURN_OFF_RF_FUNC
|
||||
*/
|
||||
UINT8 psDialGetCfunState(void);
|
||||
|
||||
/*
|
||||
* return current RRC connection state: 0 - IDLE state, 1 - connected state
|
||||
*/
|
||||
UINT8 psDialGetPsConnStatus(void);
|
||||
|
||||
/*
|
||||
* return CEREG state: CmiCeregStateEnum
|
||||
* CMI_PS_NOT_REG = 0,
|
||||
* CMI_PS_REG_HOME = 1,
|
||||
* CMI_PS_NOT_REG_SEARCHING = 2,
|
||||
* CMI_PS_REG_DENIED = 3,
|
||||
* CMI_PS_REG_UNKNOWN = 4,
|
||||
* CMI_PS_REG_ROAMING = 5,
|
||||
* CMI_PS_REG_SMS_ONLY_HOME = 6, // not applicable
|
||||
* CMI_PS_REG_SMS_ONLY_ROAMING = 7, // not applicable
|
||||
* CMI_PS_REG_EMERGENCY = 8,
|
||||
* CMI_PS_REG_CSFB_NOT_PREFER_HOME = 9, // not applicable
|
||||
* CMI_PS_REG_CSFB_NOT_PREFER_ROAMING = 10 //not applicable
|
||||
*/
|
||||
UINT8 psDialGetCeregState(void);
|
||||
|
||||
/*
|
||||
* PS dial init, called when CMS task started
|
||||
*/
|
||||
void psDialInit(void);
|
||||
|
||||
/*
|
||||
* Request CMI/PS service, all CMS sub-modules must call it to request PS service
|
||||
*/
|
||||
void psCamCmiReq(UINT16 srcHdr, UINT8 sgId, UINT16 primId, UINT16 primSize, void *primBody);
|
||||
|
||||
/*
|
||||
* return PS SMS init ready or not
|
||||
*/
|
||||
BOOL psDialBeSmsReady(void);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
#ifndef __PS_DIAL_NET_H__
|
||||
#define __PS_DIAL_NET_H__
|
||||
/******************************************************************************
|
||||
******************************************************************************
|
||||
Copyright: - 2017- Copyrights of AirM2M Ltd.
|
||||
File name: - psdial_net.h
|
||||
Description: - psdial net header
|
||||
History: - 2021/11/17, Originated by xlhu
|
||||
******************************************************************************
|
||||
******************************************************************************/
|
||||
#include "commontypedef.h"
|
||||
#include "cms_api.h"
|
||||
#include "networkmgr.h"
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* MARCO
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
#define PSDIAL_NET_OPT
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* STRUCT
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef PSDIAL_NET_OPT
|
||||
|
||||
/*
|
||||
* PS dial static context in MSMB
|
||||
*/
|
||||
typedef struct PsDialNetStaticContext_Tag
|
||||
{
|
||||
#if 0
|
||||
UINT32 ignoreUrc :1; /* Whether need ignore URC: +ECNETDEVSTATUS: %d
|
||||
* 1> During the NET CID re-bind (AT+ECNETDEVCTL change the CID) procedure,
|
||||
* should not report the first unbind URC for old CID.
|
||||
* 2> During the PDP re-act procedure, also should not report all URC
|
||||
*/
|
||||
UINT32 needRebindAfterUnbindInd :1; /* Whether need to re-bind (NetMgrLanCtrl()) the CID, after recv: NmAtiLanInfo
|
||||
* which indicated the OLD cid unbind. used in case:
|
||||
* 1> the bind CID changed by AT+ECNETDEVCTL, before bind new, need waiting for
|
||||
* old unbind
|
||||
* 2> PDP re-act, should wait for old CID LAN unbind, before bind new CID, in fact
|
||||
* here "old CID" = "new CID"
|
||||
* 3> the new bind CID in: "MWAonNetParamCfg.cid"
|
||||
* In fact, not need it, always need to check whether need to bind after recv: NmAtiLanInfo
|
||||
*/
|
||||
#endif
|
||||
UINT32 bBindOnceProc :1; /* whether current procedure is tigger by AT+ECNETDEVCTL, which OPT is:
|
||||
* MW_AON_NET_DEV_CTL_OP_BIND_CID_ONCE
|
||||
*/
|
||||
|
||||
UINT32 rsvd :31;
|
||||
|
||||
}PsDialNetStaticContext;
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
******************************************************************************
|
||||
* External global variable
|
||||
******************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* Functions
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
/*
|
||||
* psdial net unbind cid for lwip
|
||||
*/
|
||||
//void psDialNetDevCtrlUnBindCid(UINT8 cid);
|
||||
|
||||
/*
|
||||
* psdial net bind cid for lwip
|
||||
*/
|
||||
//void psDialNetDevCtrlBindCid(UINT8 newCid);
|
||||
|
||||
/*
|
||||
* psdial net process device control
|
||||
*/
|
||||
void psDialNetDevCtl(UINT8 op, UINT8 cid, BOOL bUrcEn);
|
||||
|
||||
/*
|
||||
* psdial net proc appl Ind (NM_ATI_LAN_INFO_IND)
|
||||
*/
|
||||
void psDialNetProcApplInd(CmsApplInd *pAppInd);
|
||||
|
||||
/*
|
||||
* psdial net proc Act Pdn Ctx Failure by sending appl Ind (NM_ATI_LAN_INFO_IND)
|
||||
*/
|
||||
void psDialNetProcActPdnCtxFailure(void);
|
||||
|
||||
/*
|
||||
* psdial net WAN link up and lan bind
|
||||
*/
|
||||
void psDialNetLinkupCtrl(UINT8 cid, NmIfConfiguration *pIfCfg);
|
||||
|
||||
/*
|
||||
* psdial net auto dial mode check
|
||||
*/
|
||||
void psDialNetAutoDialCheck(void);
|
||||
|
||||
/*
|
||||
* psdial net link down
|
||||
*/
|
||||
void psDialNetLinkDown(UINT8 cid);
|
||||
|
||||
/*
|
||||
* psdial net init and lanconfig for lwip
|
||||
*/
|
||||
void psDialNetInit(void);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
#ifndef __PS_DIAL_PAGING_BOOT_H__
|
||||
#define __PS_DIAL_PAGING_BOOT_H__
|
||||
/******************************************************************************
|
||||
******************************************************************************
|
||||
Copyright: - 2017- Copyrights of AirM2M Ltd.
|
||||
File name: - psdial_paging_boot.h
|
||||
Description: - PS paging boot header, control paging/measurement wake up procedure
|
||||
History: - 2021/06/02, Originated by Jason
|
||||
******************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
#include "commontypedef.h"
|
||||
#include "osasig.h"
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* MACRO/ENUM
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* STRUCT
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* SIG_CMS_CP_PAGING_EVENT_IND_ISR
|
||||
*/
|
||||
typedef struct CmsCpPagingEventIndIsr
|
||||
{
|
||||
UINT8 eventId; //CpPagingImgEventId
|
||||
UINT8 rsvd;
|
||||
UINT16 eventSize; //event body/buffer size
|
||||
|
||||
void *pEvent; /* event body/buffer, !!! not need to free, as using global memory !!! */
|
||||
}CmsCpPagingEventIndIsr; // 8 bytes
|
||||
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* CMS EXTERNAL API
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
/**
|
||||
\fn void psDialPagingImgInfoInit(void)
|
||||
\brief init "pagingImgInfo" context
|
||||
\returns void
|
||||
\Note: a) called in ec_main() before AP start paging image,
|
||||
\ b) can not be to re-called when boot from AP paging image to AP full image
|
||||
*/
|
||||
void psDialPagingImgInfoInit(void);
|
||||
|
||||
/**
|
||||
\fn BOOL psDialPagingImgProcCpEventIsr(UINT8 eventId, void *pEvent, UINT16 eventSize)
|
||||
\brief API called by AP paging image, to process CP/PHY paging event
|
||||
\param[in] eventID CpPagingImgEventId
|
||||
\param[in] pEvent event buffer/body, using AP/CP share global memory, !!! NOT need to free !!!
|
||||
\param[in] eventSize event buffer/body size in bytes
|
||||
\returns BOOL
|
||||
\Note: a) return TRUE, caller must wake up to AP big image
|
||||
\ b) should only be called in ISR (IPC0)
|
||||
*/
|
||||
CpPagingImgEventRet psDialPagingImgProcCpEventIsr(UINT8 eventId, void *pEvent, UINT16 eventSize);
|
||||
|
||||
|
||||
/**
|
||||
\fn void psDialWakeupCheckPagingEvent(void)
|
||||
\brief check whether any paging event is set in AP paging image
|
||||
\returns void
|
||||
\Note: a) called when CMS task start/init.
|
||||
\ b) if CP paging event need to wake up AP big image, when AP big image wake up
|
||||
\ (CMS task created), check any paging event
|
||||
*/
|
||||
void psDialWakeupCheckPagingEvent(void);
|
||||
|
||||
/**
|
||||
\fn void psDialProcCpPagingEventIndIsrSig(CmsCpPagingEventIndIsr *pCpEventIsr)
|
||||
\brief proc "SIG_CMS_CP_PAGING_EVENT_IND_ISR" signal
|
||||
\returns void
|
||||
\Note: a) if CMS task already created, CP paging event don't processed in ISR, just forward
|
||||
\ this signal to CMS task
|
||||
*/
|
||||
void psDialProcCpPagingEventIndIsrSig(CmsCpPagingEventIndIsr *pCpEventIsr);
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
#ifndef __PS_DIAL_PLMN_CFG_H__
|
||||
#define __PS_DIAL_PLMN_CFG_H__
|
||||
/******************************************************************************
|
||||
******************************************************************************
|
||||
Copyright: - 2017- Copyrights of AirM2M Ltd.
|
||||
File name: - psdial_plmn_cfg.h
|
||||
Description: - PLMN static configuation functions
|
||||
History: - 06/26/2018, Originated by Jason
|
||||
******************************************************************************
|
||||
******************************************************************************/
|
||||
#include "commontypedef.h"
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* MARCO
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
#define DIAL_CFG_IPV4 0
|
||||
#define DIAL_CFG_IPV6 1
|
||||
#define DIAL_CFG_IPV4V6 2
|
||||
|
||||
#define DIAL_CFG_PRFER_BAND_NUM 8
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* STRUCT
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
typedef struct DialPlmnCfgInfoTag
|
||||
{
|
||||
struct {
|
||||
UINT16 mcc;
|
||||
UINT16 mnc;
|
||||
} plmn;
|
||||
|
||||
BOOL eitf; /*ESM information transfer flag*/
|
||||
UINT8 ipType;
|
||||
|
||||
CHAR *pApn;
|
||||
CHAR *pShortName;
|
||||
CHAR *pLongName;
|
||||
UINT8 preBand[DIAL_CFG_PRFER_BAND_NUM]; /*prefer band*/
|
||||
CHAR *pDefIp4Dns1;
|
||||
CHAR *pDefIp4Dns2;
|
||||
CHAR *pDefIp6Dns1;
|
||||
CHAR *pDefIp6Dns2;
|
||||
}DialPlmnCfgInfo;
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
******************************************************************************
|
||||
* External global variable
|
||||
******************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* Functions
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
const DialPlmnCfgInfo* psDialGetPlmnCfgByPlmn(UINT16 mcc, UINT16 mnc);
|
||||
BOOL psDialIsValidPlmnName(UINT8 plmnFormat, CHAR *plmnName);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
#ifndef __PS_DIAL_PPP_H__
|
||||
#define __PS_DIAL_PPP_H__
|
||||
/******************************************************************************
|
||||
******************************************************************************
|
||||
Copyright: - 2017- Copyrights of AirM2M Ltd.
|
||||
File name: - psdial_pp.h
|
||||
Description: - psdial pp header
|
||||
History: - 2021/12/15, Originated by fwang
|
||||
******************************************************************************
|
||||
******************************************************************************/
|
||||
#include "commontypedef.h"
|
||||
#include "cms_api.h"
|
||||
#include "networkmgr.h"
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* MARCO
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
#define PS_DIAL_PPP_AUTH_INFO_LEN 64
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* STRUCT
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
/*
|
||||
* PS Dial Ppp Disconnect non block api struct info
|
||||
*/
|
||||
typedef struct PsDialPppDisconnect_Tag
|
||||
{
|
||||
UINT8 atChanId;
|
||||
UINT8 ipv4Cid;
|
||||
UINT8 ipv6Cid;
|
||||
UINT8 resv;
|
||||
}PsDialPppDisconnect;
|
||||
|
||||
|
||||
/*
|
||||
* AUTH info during PPP LCP AUTH procedure
|
||||
*/
|
||||
typedef struct PsDialPppAuthInfo_Tag
|
||||
{
|
||||
UINT8 cid;
|
||||
UINT8 authType; /* 0 - invalid, 1 - PAP,; 2 - CHAP*/
|
||||
|
||||
UINT8 idChallLen; /* len of "papIdChapChall" */
|
||||
UINT8 pwdRespLen; /* len of "papPwdChapResp" */
|
||||
|
||||
/*
|
||||
* 1> If PAP type, "papIdChapChall" is the PAP username/userId, "papPwdChapResp" is PAP password, all in string format.
|
||||
* 2> If CHAP type, "papIdChapChall" is the CHAP challenge which sent from PPP server (UE) to PPP client (host),
|
||||
* "papPwdChapResp" is the CHAP response which sent from PPP client (host) to PPP server (UE),
|
||||
* Format (RFC 1994, 4.1):
|
||||
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
* | Code | Identifier | Length |
|
||||
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
* | Value-Size | Value ...
|
||||
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
* | Name ...
|
||||
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
* Code: 1 - Challenge
|
||||
* 2 - Response
|
||||
* Length: length of: 4 bytes (code + ID + length) + length of "Value-size + Value + name"
|
||||
*/
|
||||
UINT8 papIdChapChall[PS_DIAL_PPP_AUTH_INFO_LEN];
|
||||
UINT8 papPwdChapResp[PS_DIAL_PPP_AUTH_INFO_LEN];
|
||||
}PsDialPppAuthInfo;
|
||||
|
||||
/******************************************************************************
|
||||
******************************************************************************
|
||||
* External global variable
|
||||
******************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* Functions
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
CmsRetId psDialPppProcCmiCnf(const SignalBuf *cnfSignalPtr);
|
||||
|
||||
BOOL psDialIsPppChan(UINT16 atHandle);
|
||||
CmsRetId psDialPppConnect(UINT16 atHandle, BOOL bCidPresent, UINT8 cid);
|
||||
void psDialPppDisconnect(UINT8 atChanId, UINT8 ipv4Cid, UINT8 ipv6Cid);
|
||||
void psDialPppHoldOn(UINT8 atChanId);
|
||||
void psDialPppHangUp(UINT16 atHandle);
|
||||
void psDialPppLanLinkUp(UINT8 wanLinkupCid, NmIfConfiguration *pIfCfg);
|
||||
|
||||
/*
|
||||
* PPP LCP AUTH info
|
||||
*/
|
||||
void psDialPppSetAuth(PsDialPppAuthInfo *pAuthInfo);
|
||||
|
||||
/*
|
||||
* PPP LCP ACT BEARER
|
||||
*/
|
||||
void psDialPppActBearer(UINT8 cid);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
#ifndef __PS_DIAL_PS_CTRL_H__
|
||||
#define __PS_DIAL_PS_CTRL_H__
|
||||
/******************************************************************************
|
||||
******************************************************************************
|
||||
Copyright: - 2017- Copyrights of AirM2M Ltd.
|
||||
File name: - psdial_ps_ctrl.h
|
||||
Description: - PS control header
|
||||
History: - 2021/04/19, Originated by Jason
|
||||
******************************************************************************
|
||||
******************************************************************************/
|
||||
#include "commontypedef.h"
|
||||
#include "cms_api.h"
|
||||
#include "apmu_external.h"
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* MARCO
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* STRUCT
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
******************************************************************************
|
||||
* External global variable
|
||||
******************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* Functions
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* CMS task callback, before UE enter HIB/Sleep2 state
|
||||
* This API should be called in IDLE task, before PMU decide to enter HIB/Sleep2 state, and task schedule already closed
|
||||
*/
|
||||
void psDialDeepSlpEnterCallBack(APSleepState lowPowerState);
|
||||
|
||||
/*
|
||||
* PS dial first power on, not wake up, called when CMS task started,
|
||||
*/
|
||||
void psDialFirstPowerOn(void);
|
||||
|
||||
/*
|
||||
* whether PS task is ready (created) to access
|
||||
*/
|
||||
BOOL psDialPsIsReady(void);
|
||||
|
||||
/*
|
||||
* start PS and wake up PS, after this API, PS will be ready to access
|
||||
* this API, could only be called in CMS task
|
||||
*/
|
||||
void psDialStartPs(void);
|
||||
|
||||
|
||||
/*
|
||||
* start PS, sync callback, called in API: void cmsStartPs(void)
|
||||
*/
|
||||
CmsRetId psDialStartPsSynCallback(UINT16 inputSize, void *pInput, UINT16 outputSize, void *pOutput);
|
||||
|
||||
/*
|
||||
* start PS, non-blocked callback, called in API: void cmsStartPsNonBlock(void)
|
||||
*/
|
||||
void psDialStartPsNonBlockCallback(UINT16 paramSize, void *pParam);
|
||||
|
||||
/*
|
||||
* AT+CGCONTRDP to get all default bearer context during wakeup procedure
|
||||
*/
|
||||
CmsRetId psDialGetAllCGCONTRDPParamDuringWakeup(UINT16 atHandle);
|
||||
|
||||
/*
|
||||
* AT+CEREG to get PS REG state
|
||||
*/
|
||||
CmsRetId psDialGetCEREGDuringWakeup(UINT16 atHandle);
|
||||
|
||||
/*
|
||||
* AT+CGSCONTRDP to get all dedicated bearer context during wakeup procedure
|
||||
*/
|
||||
CmsRetId psDialGetAllCGSCONTRDPDuringWakeup(UINT16 atHandle);
|
||||
|
||||
/*
|
||||
* AT+CGTFTRDP to get all activated TFT during wakeup procedure
|
||||
*/
|
||||
CmsRetId psDialGetAllCGTFTRDPDuringWakeup(UINT16 atHandle);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copy right: 2017-, Copyrigths of AirM2M Ltd.
|
||||
* File name: ps_dev_if.h
|
||||
* Description: API interface implementation header file for dev service
|
||||
* History: Rev1.0 2018-10-12
|
||||
*
|
||||
****************************************************************************/
|
||||
#ifndef __PS_DEV_IF_H__
|
||||
#define __PS_DEV_IF_H__
|
||||
#include "cms_util.h"
|
||||
#include "cmidev.h"
|
||||
|
||||
CmsRetId devGetFunc(UINT32 atHandle);
|
||||
CmsRetId devSetFunc(UINT32 atHandle, INT32 funcVal, INT32 resetVal);
|
||||
CmsRetId devGetDevStatus(UINT32 atHandle);
|
||||
CmsRetId devGetSupportedCiotBandModeReq(UINT32 atHandle);
|
||||
CmsRetId devGetCiotBandModeReq(UINT32 atHandle);
|
||||
CmsRetId devSetCiotBandModeReq(UINT32 atHandle, CmiDevSetCiotBandReq *pCmiSetBandReq);
|
||||
CmsRetId devGetCiotFreqReq(UINT32 atHandle);
|
||||
CmsRetId devSetCiotFreqReq(UINT32 atHandle, UINT8 mode, const INT32 *pFreqList, UINT8 freqNum, INT32 phyCellId, BOOL bRefAT);
|
||||
CmsRetId devSetPowerState(UINT32 atHandle, UINT8 powerState);
|
||||
CmsRetId devGetExtCfg(UINT32 atHandle);
|
||||
CmsRetId devSetExtCfg(UINT32 atHandle, CmiDevSetExtCfgReq *pSetExtCfgReq);
|
||||
CmsRetId devRmFPLMN(UINT32 atHandle, INT32 type);
|
||||
#ifdef CMS_ENABLE_CAT_LPP_FEATURE
|
||||
CmsRetId devGetCMOLRCapa(UINT32 atHandle);
|
||||
CmsRetId devGetCMOLR(UINT32 atHandle);
|
||||
CmsRetId devSetCMOLR(UINT32 atHandle, UINT32 enable, UINT32 method, UINT32 horAccSet, UINT32 horAcc, UINT32 verReq, UINT32 verAccSet,
|
||||
UINT32 verAcc, UINT32 velReq, UINT32 reqMode, UINT32 timeOut, UINT32 interval, UINT32 shapeReq, UINT32 plane,
|
||||
UINT8* NMEAReq, UINT8* thirdPartyAddr, UINT32 paramNmb);
|
||||
CmsRetId devGetCMTLRCapa(UINT32 atHandle);
|
||||
CmsRetId devGetCMTLR(UINT32 atHandle);
|
||||
CmsRetId devSetCMTLR(UINT32 atHandle,INT32 subscribe);
|
||||
CmsRetId devGetCMTLRACapa(UINT32 atHandle);
|
||||
CmsRetId devGetCMTLRA(UINT32 atHandle);
|
||||
CmsRetId devSetCMTLRA(UINT32 atHandle,INT32 allow, INT32 handleId);
|
||||
#endif
|
||||
CmsRetId devGetESTATUS(UINT32 atHandle, UINT8 statusType);
|
||||
CmsRetId devSetESTATIS(UINT32 atHandle, UINT16 periodS);
|
||||
CmsRetId devGetECBCINFO(UINT32 atHandle, CmiDevGetBasicCellListInfoReq *pGetBcInfoReq);
|
||||
|
||||
CmsRetId devGetECPSTEST(UINT32 atHandle);
|
||||
CmsRetId devSetECPSTEST(UINT32 atHandle,UINT8 subscribe);
|
||||
CmsRetId devGetSupportedBandPowerClassReq(UINT32 atHandle);
|
||||
CmsRetId devGetECPOWERCLASS(UINT32 atHandle);
|
||||
CmsRetId devSetECPOWERCLASS(UINT32 atHandle, CmiDevSetPowerClassReq *pPowerClass);
|
||||
CmsRetId devGetECNBR14(UINT32 atHandle);
|
||||
|
||||
CmsRetId devGetEVENTSTATIS(UINT32 atHandle);
|
||||
CmsRetId devSetEVENTSTATIS(UINT32 atHandle, CmiDevSetEventStatisReq *pMode);
|
||||
|
||||
CmsRetId devGetWIFISCAN(UINT32 atHandle);
|
||||
CmsRetId devSetWIFISCAN(UINT32 atHandle, CmiDevSetWifiSacnReq *wifiScanReq);
|
||||
|
||||
CmiRcCode devSetExCfgParaSync(CmiDevSetExtCfgReq *pSetExCfgReq);
|
||||
CmiRcCode devGetExCfgParaSync(CmiDevGetExtCfgCnf *pGetExCfgCnf);
|
||||
|
||||
/**
|
||||
\fn CmiRcCode devGetNasTimerParaReqSync
|
||||
\brief get HighPriPlmnTimer/ESM3482/ESM3492 timer config info by syn Api
|
||||
\param[in/out] CmiDevGetTimerParaCnf *pGetTimerPareCnf
|
||||
\returns CmsRetId
|
||||
*/
|
||||
CmiRcCode devGetNasTimerParaReqSync(CmiDevGetNasTimerParaCnf *pGetTimerPareCnf);
|
||||
|
||||
/**
|
||||
\fn CmiRcCode psDevSetTimerParaReqSync
|
||||
\brief Set HighPriPlmnTimer/ESM3482/ESM3492 timer config info by syn Api
|
||||
\param[in/out]CmiDevSetTimerParaReq *pSetParaReq
|
||||
\returns CmsRetId
|
||||
*/
|
||||
CmiRcCode devSetNasTimerParaReqSync(CmiDevSetNasTimerParaReq *pSetParaReq);
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copy right: 2017-, Copyrigths of AirM2M Ltd.
|
||||
* File name: ps_mm_if.h
|
||||
* Description: API interface implementation header file for mm service
|
||||
* History: Rev1.0 2018-10-12
|
||||
*
|
||||
****************************************************************************/
|
||||
#ifndef __PS_MM_IF_H__
|
||||
#define __PS_MM_IF_H__
|
||||
#include "cms_util.h"
|
||||
|
||||
CmsRetId mmGetCregCapaReq(UINT32 atHandle);
|
||||
CmsRetId mmGetCregReq(UINT32 atHandle);
|
||||
CmsRetId mmManualPlmnSearch(UINT32 atHandle, UINT32 gardTimerSec);
|
||||
CmsRetId mmGetCurOperInfo(UINT32 atHandle);
|
||||
CmsRetId mmSetAutoPlmnRegister(UINT32 atHandle);
|
||||
CmsRetId mmSetManualPlmnRegister(UINT32 atHandle, BOOL bFailToAuto, INT32 operFormat, UINT8 *pOperStr, INT32 accTchVal);
|
||||
CmsRetId mmSetDeregister(UINT32 atHandle);
|
||||
CmsRetId mmSetOperFormat(UINT32 atHandle, INT32 operFormat);
|
||||
CmsRetId mmSetOperFormatSync(INT32 operFormat);
|
||||
CmsRetId mmGetCpsms(UINT32 atHandle);
|
||||
CmsRetId mmSetCpsms(UINT32 atHandle, UINT8 modeVal, const UINT8 *pRauT, const UINT8 *pGprsT, const UINT8 *pTauT, const UINT8 *pActT);
|
||||
CmsRetId mmGetEdrx(UINT32 atHandle);
|
||||
CmsRetId mmSetEdrx(UINT32 atHandle, UINT8 modeVal, UINT8 actType, UINT8* edrxVal);
|
||||
CmsRetId mmReadEdrxDyn(UINT32 atHandle);
|
||||
CmsRetId mmGetCiotoptCapa(UINT32 atHandle);
|
||||
CmsRetId mmSetCiotoptCfg(UINT32 atHandle, CmiMmSetCiotOptCfgReq *pSetCiotOptCfgReq);
|
||||
CmsRetId mmGetCiotoptCfg(UINT32 atHandle);
|
||||
CmsRetId mmGetCoverEnhancStatus(UINT32 atHandle);
|
||||
CmsRetId mmGetEcplmns(UINT32 atHandle);
|
||||
CmsRetId mmExecEcplmns(UINT32 atHandle);
|
||||
CmsRetId mmGetCESQ(UINT32 atHandle);
|
||||
CmsRetId mmGetECPSMR(UINT32 atHandle);
|
||||
UINT8 mmGetCsqRssiFromCesq(INT8 rsrp, INT8 rsrq, UINT16 rssiComp);
|
||||
CmsRetId mmSetPtwEdrx(UINT32 atHandle, UINT8 modeVal, UINT8 actType, UINT8* ptw, UINT8* edrxVal);
|
||||
CmsRetId mmGetPtwEdrx(UINT32 atHandle);
|
||||
CmsRetId mmGetECEMMTIME(UINT32 atHandle);
|
||||
CmsRetId mmSetECPLMNRESELECT(UINT32 atHandle);
|
||||
CmsRetId mmGetCurrOperatorName(UINT32 atHandle);
|
||||
CmsRetId mmSetTriggerRrcRelease(UINT32 atHandle);
|
||||
CmsRetId mmSetTriggerTau(UINT32 atHandle, UINT8 epsUpdateType);
|
||||
BOOL OperatorStringToNumericPlmn(const UINT8 *pPlmnStr, CmiNumericPlmn *pOutPlmn);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copy right: 2017-, Copyrigths of AirM2M Ltd.
|
||||
* File name: ps_nm_if.h
|
||||
* Description: API interface implementation header file for PHY service
|
||||
* History: Rev1.0 2018-10-12
|
||||
*
|
||||
****************************************************************************/
|
||||
#ifndef __PS_NM_IF_H__
|
||||
#define __PS_NM_IF_H__
|
||||
#include "cms_util.h"
|
||||
#include "appmgr.h"
|
||||
#include "networkmgr.h"
|
||||
|
||||
|
||||
|
||||
//#define ATEC_PING_IND_STR_LEN 160
|
||||
//#define ATEC_ECGADDR_STR_LEN 160
|
||||
|
||||
|
||||
CmsRetId psGetDNS(UINT32 atHandle, UINT8* url, UINT8 cid);
|
||||
CmsRetId psGetDNSWithoutCache(UINT32 atHandle, UINT8* url, UINT8 cid);
|
||||
CmsRetId psStopPing(UINT32 atHandle );
|
||||
CmsRetId psStartPing(UINT32 atHandle, UINT8* addr, INT16 addr_len, INT32 count, INT32 size, INT32 timeout, BOOL raiFlag, UINT8 cid);
|
||||
CmsRetId psStartPingWithOutUrl(UINT32 atHandle, UINT8 *pAddr, INT16 addr_len, INT32 count, INT32 size, INT32 timeout, BOOL raiFlag, UINT8 cid);
|
||||
|
||||
CmsRetId psIperfReq(UINT32 atHandle, NmIperfReq *pIperfReq);
|
||||
CmsRetId psSntpReq(UINT32 atHandle, char *sntpServer, UINT16 port, BOOL autoSync, UINT8 cid);
|
||||
CmsRetId psClearDnsCache(BOOL bClearAll, UINT8* url );
|
||||
|
||||
CmsRetId psGetDnsServer(UINT8 cid, NmNetIfDnsCfg *dnsServer);
|
||||
|
||||
CmsRetId psSetDnsServer(UINT8 cid, NmNetIfDnsCfg *dnsServer);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copy right: 2017-, Copyrigths of AirM2M Ltd.
|
||||
* File name: ps_phy_if.h
|
||||
* Description: API interface implementation header file for PHY service
|
||||
* History: Rev1.0 2018-10-12
|
||||
*
|
||||
****************************************************************************/
|
||||
#ifndef __PS_PHY_IF_H__
|
||||
#define __PS_PHY_IF_H__
|
||||
|
||||
#include "commontypedef.h"
|
||||
|
||||
/******************************************************************************
|
||||
* If no parameters carried in signal, just pass a reserved UINT32
|
||||
******************************************************************************/
|
||||
typedef UINT32 PhyCmiEmptySig;
|
||||
|
||||
/*
|
||||
* defined fast signal Id between CMS task<- IPC -> PHY for PHY/RF AT CMD
|
||||
* Id: 0x0930 - 0x093F
|
||||
*/
|
||||
typedef enum _EPAT_SIG_PHYCMISIGID_Tag
|
||||
{
|
||||
SIG_FAST_PHY_CMI_BASE = 0x0930,
|
||||
|
||||
SIG_FAST_PHY_CMI_REQ, // PhyCmiReq
|
||||
SIG_FAST_PHY_CMI_CNF, // PhyCmiCnf
|
||||
SIG_FAST_PHY_CMI_IND, // PhyCmiInd
|
||||
|
||||
SIG_FAST_PHY_CMI_END = 0x093F
|
||||
}PHYCMISIGID;
|
||||
|
||||
typedef enum CMI_PHY_PRIM_ID_TAG /* PRIM Id*/
|
||||
{
|
||||
CMI_PHY_PRIM_BASE,
|
||||
|
||||
CMI_PHY_SET_CFG_PARAM_REQ, //CmiPhySetCfgParamReq, AT+ECPHYCFG=<>
|
||||
CMI_PHY_SET_CFG_PARAM_CNF,
|
||||
CMI_PHY_SET_RF_TEST_CMD_REQ,
|
||||
CMI_PHY_SET_RF_TEST_CMD_CNF,
|
||||
CMI_PHY_SET_RF_NST_RST_REQ,
|
||||
CMI_PHY_SET_RF_NST_RST_CNF,
|
||||
CMI_PHY_SET_RF_NST_RST_IND,
|
||||
CMI_PHY_SET_RF_NST_RST_DEBUG,
|
||||
CMI_PHY_SET_RF_CFG_REQ,
|
||||
CMI_PHY_SET_RF_CFG_CNF,
|
||||
|
||||
CMI_PHY_PRIM_END
|
||||
}CMI_PHY_PRIM_ID;
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* PhyCmiReq - SIG_FAST_PHY_CMI_REQ
|
||||
* CMI interface request for PHY/RF AT CMD
|
||||
* Int16 reqId; 4 MSB bits SG ID | 12 bits PRIM ID;
|
||||
* Int16 srcHandler; ID use to identify which module send this request
|
||||
* Int8 body[0]; request PRIM entity
|
||||
******************************************************************************/
|
||||
typedef struct PhyCmiReqTag
|
||||
{
|
||||
struct {
|
||||
UINT16 reqId;
|
||||
UINT16 srcHandler;
|
||||
}header;
|
||||
|
||||
UINT8 body[];
|
||||
}PhyCmiReq;
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* PhyCmiCnf - SIG_FAST_PHY_CMI_CNF
|
||||
******************************************************************************/
|
||||
typedef struct PhyCmiCnfTag
|
||||
{
|
||||
struct {
|
||||
UINT16 cnfId; //4 MSB bits SG ID | 12 bits PRIM ID
|
||||
UINT16 srcHandler; //Handler from PhyCmiReq
|
||||
UINT16 rc;
|
||||
UINT16 reserved;
|
||||
}header;
|
||||
|
||||
UINT8 body[];
|
||||
}PhyCmiCnf;
|
||||
|
||||
typedef struct PhyCmiIndTag
|
||||
{
|
||||
struct {
|
||||
UINT16 indId; //4 MSB bits SG ID | 12 bits PRIM ID
|
||||
/*
|
||||
* As some indication is triggered by some AT request, in such as need to fill this "reqHandler",
|
||||
* otherwise set to "BROADCAST_IND_HANDLER".
|
||||
*/
|
||||
UINT16 reqHandler;
|
||||
}header;
|
||||
|
||||
UINT8 body[];
|
||||
}PhyCmiInd;
|
||||
|
||||
BOOL phyGetDebugModule(CHAR *strName, UINT8 *phyModule);
|
||||
|
||||
INT32 phySetDebugCfgInfo(UINT16 atHandle, UINT32 phyModId, INT32 *pCfgParams, UINT8 paramNum);
|
||||
|
||||
void phyGetPhyDebugAtCmdInfo(CHAR *pAtRspBuf, UINT16 bufLen);
|
||||
|
||||
void phyRestorePhyDebugAtCmdInfo(void);
|
||||
|
||||
void phySavePhyDebugAtCmdInfo(void);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,236 @@
|
||||
/******************************************************************************
|
||||
* (C) Copyright 2018 AirM2M International Ltd.
|
||||
* All Rights Reserved
|
||||
*******************************************************************************
|
||||
* Filename: ps_ps_if.h
|
||||
*
|
||||
* Description: API interface for PS service
|
||||
*
|
||||
* History:
|
||||
*
|
||||
* Notes:
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef __PS_PS_IF_H__
|
||||
#define __PS_PS_IF_H__
|
||||
#include "networkmgr.h"
|
||||
#include "cmicomm.h"
|
||||
#include "cmips.h"
|
||||
#include "cms_util.h"
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* MARCO
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
#define PSIL_PS_PDP_IP_V6_SIZE 128
|
||||
#define PSIL_PS_PDP_IPV4_SIZE 16
|
||||
#define PSIL_IPV4_SUBNETMUX_MAX_LEN 32
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* ENUM
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* STRUCT
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* API
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
CmsRetId psDeleteCGDCONTContext(UINT32 atHandle, UINT32 dwContextID);
|
||||
CmsRetId psSetAttachState(UINT32 atHandle, BOOL fAttached);
|
||||
CmsRetId psGetAttachState(UINT32 atHandle);
|
||||
CmsRetId psSetCGACT(UINT32 atHandle, INT32 cid, INT32 state);
|
||||
CmsRetId psEnterDataState(UINT32 atHandle, UINT8 cid);
|
||||
|
||||
CmsRetId psSetCdgcont (UINT32 atHandle, CmiPsDefPdpDefinition* ctxInfo);
|
||||
CmsRetId psGetCGCONTRDPParam(UINT32 atHandle, UINT32 cid);
|
||||
CmsRetId psGetAllCGCONTRDPParam(UINT32 atHandle);
|
||||
CmsRetId psQueryERegOption(UINT32 atHandle);
|
||||
CmsRetId psGetERegStatus(UINT32 atHandle);
|
||||
CmsRetId psGetCGTFT(UINT32 atHandle);
|
||||
CmsRetId psDeleteTft(UINT32 atHandle, INT32 cid);
|
||||
CmsRetId psSetTftFilter(UINT32 atHandle, const CmiPsPacketFilter *tftFilter);
|
||||
CmsRetId psSendUserData(UINT32 atHandle, INT32 cid, INT32 dataStrLen, UINT8 *pStrdata, INT32 rai, INT32 typeOfUserData, BOOL isCSODCP);
|
||||
CmsRetId psSetAttBear(UINT32 atHandle, AttachedBearCtxPreSetParam * param);
|
||||
CmsRetId psGetATTBEAR(UINT32 atHandle);
|
||||
CmsRetId psModBearerCtxReq (UINT32 atHandle, UINT32 cid);
|
||||
CmsRetId psGetCGDCONTCid (UINT32 atHandle);
|
||||
CmsRetId psSetCGEQOSQualityService (UINT32 atHandle, const CmiPsEpsQosParams* params);
|
||||
CmsRetId psDeleteCGEQOSQualityService (UINT32 atHandle, UINT32 cid);
|
||||
CmsRetId psGetCGEQOSQualityService (UINT32 atHandle);
|
||||
CmsRetId psSetCGEQOSRDPQualityService(UINT32 atHandle, UINT32 cid, BOOL bGetAll);
|
||||
CmsRetId psSetRTDCP(UINT32 atHandle, INT32 reporting);
|
||||
CmsRetId psGetCurRTDCP(UINT32 atHandle);
|
||||
CmsRetId psSetCGAUTH( UINT32 atHandle,CmiPsSetDefineAuthCtxReq *pSetDefinedAuthReq);
|
||||
CmsRetId psGetCGAUTH(UINT32 atHandle);
|
||||
CmsRetId psSetCIPCA(UINT32 atHandle,INT32 n,INT32 attach);
|
||||
CmsRetId psGetCIPCA(UINT32 atHandle);
|
||||
CmsRetId psGetCGAPNRC(UINT32 atHandle, INT32 cid, BOOL bGetAll);
|
||||
CmsRetId psSetECCIOTPLANE(UINT32 atHandle,INT32 plane);
|
||||
CmsRetId psGetPDPAddr(UINT32 atHandle, INT32 cid, BOOL bGetAll);
|
||||
CmsRetId psGetCSCON(UINT32 atHandle);
|
||||
CmsRetId psSendNoMorePsDataReq(UINT32 atHandle);
|
||||
CmsRetId psGetCEER(UINT32 atHandle);
|
||||
CmsRetId psSetCemode(UINT32 atHandle, UINT8 ceMode);
|
||||
CmsRetId psGetCemode(UINT32 atHandle);
|
||||
CmsRetId psGetAllBrsCidsInfo(UINT32 atHandle, CmiPsGetAllCidsInfoCmd reqCmd);
|
||||
|
||||
void psSetNetMaskStr(UINT8 addrType, int subnetMaskLen, char *maskStr);
|
||||
void psUint8IpAddrToStr(UINT8 addrType, UINT8 *valData, CHAR *ippStr);
|
||||
void psUint8Ipv4AddrToStr(UINT8 *addrData, CHAR *ippStr);
|
||||
void psUint8Ipv6AddrToStr(UINT8 addrType, UINT8 *ipUint8Addr, CHAR *ippStr);
|
||||
|
||||
void psPdpTypeToStr(UINT8 pdpType, char *typeStr);
|
||||
|
||||
CmsRetId psParseIpAddrAndMaskFromStr(CmiIpAddr *pCmiIp, const UINT8 *pIpStr);
|
||||
CmsRetId psParsePfPortInfoFromStr(CmiPsPfPortInfo *pPfPortInfo, const UINT8 *pIpStr);
|
||||
CmsRetId psParseTosMaskFromStr(CmiPsTosMask *pTosMask, const UINT8 *pStr);
|
||||
|
||||
BOOL psBeAllZero(const UINT8 *ArrayName, UINT8 Length);
|
||||
CmsRetId psGetCGDSCONTCid (UINT32 atHandle);
|
||||
CmsRetId psDeleteCGDedDCONTContext (UINT32 atHandle, UINT32 delCid);
|
||||
CmsRetId psSetDedCdgCont (UINT32 atHandle, DefineDedBearerCtxInfo* ctxInfo);
|
||||
CmsRetId psGetCGTFTRDPParam(UINT32 atHandle, UINT32 cid);
|
||||
CmsRetId psGetAllCGTFTRDPParam(UINT32 atHandle) ;
|
||||
CmsRetId psGetCPSDO(UINT32 atHandle);
|
||||
CmsRetId psSetCPSDO(UINT32 atHandle, UINT8 status);
|
||||
CmsRetId psSetModDedHandSkResultReq(UINT32 atHandle, UINT8 cid,UINT8 result);
|
||||
CmsRetId psSetActDedHandSkResultReq(UINT32 atHandle, UINT8 cid,UINT8 result);
|
||||
BOOL psParseDisplayApnName(const UINT8 *srcApn,UINT8 *destApn,UINT16 destMaxSize, UINT16 len, UINT8 *outlen);
|
||||
CmsRetId psGetCGSCONTRDPParam(UINT32 atHandle, UINT32 cid);
|
||||
CmsRetId psGetAllCGSCONTRDPParam(UINT32 atHandle);
|
||||
CmsRetId psGetDefinedCidContext (UINT32 atHandle,UINT8 cid);
|
||||
CmsRetId psSetGDCNT(UINT32 atHandle, UINT8 dataCounterOption);
|
||||
CmsRetId psGetGDCNT(UINT32 atHandle);
|
||||
CmsRetId psSetAUGDCNT(UINT32 atHandle, UINT16 autoSavePeriodS);
|
||||
CmsRetId psGetAUGDCNT(UINT32 atHandle);
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
******************************************************************************
|
||||
PS SYNC API, which could return info directly
|
||||
******************************************************************************
|
||||
******************************************************************************/
|
||||
/**
|
||||
\fn CmiRcCode psGetCGATTSync(UINT8 *pPsState)
|
||||
\brief AT+CGATT? get PS attach state
|
||||
\param[out] pPsState CMI_PS_DETACHED(0)/CMI_PS_DETACHED(1)
|
||||
\returns CmiRcCode MtErrorResultCode
|
||||
*/
|
||||
CmiRcCode psGetCGATTSync(UINT8 *pPsState);
|
||||
|
||||
|
||||
/**
|
||||
\fn CmiRcCode psGetAllBearersCidsBasicInfoSync(CmiPsGetAllBearersCidsInfoCnf *pCmiAllBrCidBasicInfo)
|
||||
\brief Get all bearers and cids basic info
|
||||
\param[out] pCmiAllBrCidBasicInfo CmiPsGetAllBearersCidsInfoCnf
|
||||
\returns CmiRcCode MtErrorResultCode
|
||||
*/
|
||||
CmiRcCode psGetAllBearersCidsBasicInfoSync(CmiPsGetAllBearersCidsInfoCnf *pCmiAllBrCidBasicInfo);
|
||||
|
||||
/**
|
||||
\fn CmiRcCode psSetCGAUTHSync(const CmiPsSetDefineAuthCtxReq *pCmiSetAuthInfo)
|
||||
\brief Set CGAUTH info
|
||||
\param[in] pCmiSetAuthInfo CmiPsSetDefineAuthCtxReq
|
||||
\returns CmiRcCode MtErrorResultCode
|
||||
*/
|
||||
CmiRcCode psSetCGAUTHSync(const CmiPsSetDefineAuthCtxReq *pCmiSetAuthInfo);
|
||||
|
||||
/**
|
||||
\fn CmiRcCode psGetOneCGAUTHSync(UINT8 cid, CmiPsGetDefineAuthCtxCnf *pCmiGetAuthCnf)
|
||||
\brief get one PDP AUTH config info
|
||||
\param[in] cid PDP CID
|
||||
\param[out] pCmiGetAuthCnf CmiPsGetDefineAuthCtxCnf
|
||||
\returns CmiRcCode MtErrorResultCode
|
||||
*/
|
||||
CmiRcCode psGetOneCGAUTHSync(UINT8 cid, CmiPsGetDefineAuthCtxCnf *pCmiGetAuthCnf);
|
||||
|
||||
/**
|
||||
\fn CmiRcCode psSetCGDCONTSync(CmiPsDefineBearerCtxReq *pCmiDefinePdpCtxReq)
|
||||
\brief Set CGDCONT info, define a default PDP
|
||||
\param[in] pCmiDefinePdpCtxReq CmiPsDefineBearerCtxReq
|
||||
\returns CmiRcCode MtErrorResultCode
|
||||
*/
|
||||
CmiRcCode psSetCGDCONTSync(const CmiPsDefineBearerCtxReq *pCmiDefinePdpCtxReq);
|
||||
|
||||
/**
|
||||
\fn CmiRcCode psGetOneCGDCONTSync(UINT8 cid, CmiPsGetDefinedBearerCtxCnf *pCmiGetdefinedPdpCnf)
|
||||
\brief get one default PDP CGDCONT info
|
||||
\param[in] cid default PDP CID
|
||||
\param[out] pCmiGetdefinedPdpCnf CmiPsGetDefinedBearerCtxCnf
|
||||
\returns CmiRcCode MtErrorResultCode
|
||||
*/
|
||||
CmiRcCode psGetOneCGDCONTSync(UINT8 cid, CmiPsGetDefinedBearerCtxCnf *pCmiGetdefinedPdpCnf);
|
||||
|
||||
/**
|
||||
\fn CmiRcCode psDelCGDCONTSync(UINT8 cid)
|
||||
\brief delete CGDCONT info, delete a default PDP context, refer: AT+CGDCONT=<cid>
|
||||
\param[in] cid PDP CID
|
||||
\returns CmiRcCode MtErrorResultCode
|
||||
*/
|
||||
CmiRcCode psDelCGDCONTSync(UINT8 cid);
|
||||
|
||||
/**
|
||||
\fn CmiRcCode psGetCGCONTRDPSync(UINT8 cid, CmiPsReadBearerDynCtxParamCnf *pDynBearerCtxParamCnf)
|
||||
\brief get one default PDP CGDCONT dyn param
|
||||
\param[in] cid default PDP CID
|
||||
\param[out] pDynBearerCtxParamCnf CmiPsReadBearerDynCtxParamCnf
|
||||
\returns CmiRcCode MtErrorResultCode
|
||||
*/
|
||||
CmiRcCode psGetCGCONTRDPSync(UINT8 cid, CmiPsReadBearerDynCtxParamCnf *pDynBearerCtxParamCnf);
|
||||
|
||||
#if 0 //duplicated
|
||||
/**
|
||||
\fn CmiRcCode psGetOneCGCONTRDPSync(UINT8 cid, CmiPsReadBearerDynCtxParamCnf *pCmiGetdefinedPdpCnf)
|
||||
\brief get one PDP dynamic info
|
||||
\param[in] cid default PDP CID
|
||||
\param[out] CmiPsReadBearerDynCtxParamCnf pCmiGetRdpPdpCnf
|
||||
\returns CmiRcCode
|
||||
*/
|
||||
CmiRcCode psGetOneCGCONTRDPSync(UINT8 cid, CmiPsReadBearerDynCtxParamCnf *pCmiGetRdpPdpCnf);
|
||||
#endif
|
||||
|
||||
/**
|
||||
\fn CmiRcCode psGetCGTFTRDPSync(UINT8 cid, CmiPsReadTFTDynCtxParamCnf *pDynTftCnf)
|
||||
\brief get actived TFT parameters of one bearer
|
||||
\param[in] cid PDP CID
|
||||
\param[out] pDynBearerCtxParamCnf CmiPsReadTFTDynCtxParamCnf
|
||||
\returns CmiRcCode MtErrorResultCode
|
||||
*/
|
||||
CmiRcCode psGetCGTFTRDPSync(UINT8 cid, CmiPsReadTFTDynCtxParamCnf *pDynTftCnf);
|
||||
|
||||
|
||||
/**
|
||||
\fn CmiRcCode psGetSCLKEXSync(CmiPsGetTrafficIdleMonitorCnf *pGetTrafficIdleMonitorCnf)
|
||||
\brief Get Traffic Idle Monitor Cnf
|
||||
\param[in] void
|
||||
\param[out] CmiPsGetTrafficIdleMonitorCnf *pGetTrafficIdleMonitorCnf
|
||||
\returns CmiRcCode MtErrorResultCode
|
||||
*/
|
||||
CmiRcCode psGetSCLKEXSync(CmiPsGetTrafficIdleMonitorCnf *pGetTrafficIdleMonitorCnf);
|
||||
|
||||
|
||||
/**
|
||||
\fn CmiRcCode psGetSCLKEXSync(CmiPsSetTrafficIdleMonitorReq *pSetTrafficIdleMonitorReq)
|
||||
\brief Set Traffic Idle Monitor Cnf
|
||||
\param[in] CmiPsSetTrafficIdleMonitorReq *pSetTrafficIdleMonitorReq
|
||||
\param[out] void
|
||||
\returns CmiRcCode MtErrorResultCode
|
||||
*/
|
||||
CmiRcCode psSetSCLKEXSync(const CmiPsSetTrafficIdleMonitorReq *pSetTrafficIdleMonitorReq);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copy right: 2017-, Copyrigths of AirM2M Ltd.
|
||||
* File name: ps_sim_if.h
|
||||
* Description: The header file for API interface for PS SIM module
|
||||
* History: Rev1.0 2018-10-12
|
||||
*
|
||||
****************************************************************************/
|
||||
#ifndef __PS_SIM_IF_H__
|
||||
#define __PS_SIM_IF_H__
|
||||
|
||||
#include "cms_util.h"
|
||||
#include "cmisim.h"
|
||||
|
||||
CmsRetId simGetImsi(UINT32 atHandle);
|
||||
CmsRetId simGetPinState(UINT32 atHandle);
|
||||
CmsRetId simEnterPin(UINT32 atHandle, UINT8* oldPasswd, UINT8* newPasswd);
|
||||
CmsRetId simSetCRSM(UINT32 atHandle, INT32 cmd, INT32 fileId, INT32 p1, INT32 p2, INT32 p3, CHAR *data, CHAR *pathId);
|
||||
CmsRetId simSetCSIM(UINT32 atHandle, UINT16 cmdStrLen, UINT8 *cmdStr);
|
||||
CmsRetId simGetIccid(UINT32 atHandle);
|
||||
CmsRetId simSetCPWD(UINT32 atHandle, UINT8 no, UINT8 oper, UINT8* oldPasswd, UINT8* newPasswd);
|
||||
CmsRetId simSetClck(UINT32 atHandle, UINT8 mode, UINT8 fac, UINT8* pinCode);
|
||||
CmsRetId simSetCcho(UINT32 atHandle, UINT8 *dfName);
|
||||
CmsRetId simSetCchc(UINT32 atHandle, UINT8 sessionId);
|
||||
CmsRetId simSetCgla(UINT32 atHandle, UINT8 sessionId, UINT16 len, UINT8* command);
|
||||
CmsRetId simSetSimSleep(UINT32 atHandle, UINT8 mode);
|
||||
CmsRetId simGetSimSleepState(UINT32 atHandle);
|
||||
CmsRetId simSetCpinr(UINT32 atHandle, UINT8 pinCode);
|
||||
CmsRetId simSetECSWC(UINT32 atHandle, UINT8 mode);
|
||||
CmsRetId simGetSWCSetting(UINT32 atHandle);
|
||||
CmsRetId simSetPinOperation(UINT32 atHandle, UINT8 operMode, UINT8* pinStr1, UINT8* pinStr2);
|
||||
//CmsRetId simSetECSIMPD(UINT32 atHandle, UINT8 mode);
|
||||
CmsRetId simGetECSIMPDSetting(UINT32 atHandle);
|
||||
CmsRetId simGetSubscriberNumber(UINT32 atHandle);
|
||||
CmsRetId simSetTerminalProfile(UINT32 atHandle, UINT16 strLen, UINT8 *profileStr);
|
||||
CmsRetId simGetTerminalProfile(UINT32 atHandle);
|
||||
CmsRetId simSetExtCfg(UINT32 atHandle, CmiSimSetExtCfgReq *pSetExtCfgReq);
|
||||
CmsRetId simGetExtCfg(UINT32 atHandle);
|
||||
CmsRetId simSetRemoval(UINT32 atHandle);
|
||||
CmsRetId simGetSmsParams(UINT32 atHandle);
|
||||
CmsRetId simSetSelectPlmnList(UINT32 atHandle, UINT8 plmnList);
|
||||
CmsRetId simSetPreferredPlmnList(UINT32 atHandle, UINT16 index, UINT8 format, UINT8 *pOperStr, UINT16 AccessTech);
|
||||
CmsRetId simGetPreferredPlmnList(UINT32 atHandle);
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
******************************************************************************
|
||||
PS SYNC API, which could return info directly
|
||||
******************************************************************************
|
||||
******************************************************************************/
|
||||
/**
|
||||
\fn CmiRcCode simGetPinStateSync(UINT8 *pPinState)
|
||||
\brief AT+CPIN? get SIM PIN state
|
||||
\param[out] pPinState CmiSimPinState
|
||||
\returns CmiRcCode MtErrorResultCode
|
||||
*/
|
||||
CmiRcCode simGetPinStateSync(UINT8 *pPinState);
|
||||
|
||||
/**
|
||||
\fn simSetHotSwapNotifySync(BOOL bSimPlugIn)
|
||||
\brief called by CMS task processed CmsSimHotSwapInd
|
||||
\param[out] pPinState CmiSimPinState
|
||||
\returns CmiRcCode MtErrorResultCode
|
||||
*/
|
||||
CmiRcCode simSetHotSwapNotifySync(BOOL bSimPlugIn);
|
||||
|
||||
/**
|
||||
\fn CmiRcCode simGetSelectedPlmnListSync(UINT8 *pPinState)
|
||||
\brief AT+CPLS? get selected PLMN list
|
||||
\param[out] pPinState CmiSimPinState
|
||||
\returns CmiRcCode MtErrorResultCode
|
||||
*/
|
||||
CmiRcCode simGetSelectedPlmnListSync(UINT8 *pList);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,739 @@
|
||||
/******************************************************************************
|
||||
* Copy right: 2017-, Copyrigths of AirM2M Ltd.
|
||||
* All Rights Reserved
|
||||
*******************************************************************************
|
||||
* Filename: ps_sms_if.h
|
||||
*
|
||||
* Description: API interface for SMS service
|
||||
*
|
||||
* History:
|
||||
*
|
||||
* Notes:
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef __PS_SMS_IF_H__
|
||||
#define __PS_SMS_IF_H__
|
||||
|
||||
#include "cms_util.h"
|
||||
#include "cmisms.h"
|
||||
|
||||
/******************************************************************************
|
||||
* SMS/CB Parameter Definitions: (27.005)
|
||||
* ============================================================================
|
||||
* A) Message storage param
|
||||
* 1. <index>: integer type
|
||||
* value in the range of location numbers supported by the associated memory
|
||||
* 2. <mem1>: string type
|
||||
* memory from which messages are READ and DELETED; +CMGL/+CMGR/+CMGD
|
||||
* "BM" - broadcast message storage
|
||||
* "ME" - ME message storage
|
||||
* "MT" - any of the storages associated with ME
|
||||
* "SM" - (U)SIM message storage
|
||||
* "TA" - TA message storage
|
||||
* "SR" - status report storage
|
||||
* 3. <mem2>: memory to which writing and sending operations
|
||||
* <mem3>: memory to which received SMs are preferred to be stored
|
||||
* unless forwarded directly to TE: +CNMI
|
||||
* 4. <stat>: integer type in PDU mode; string type in text mode
|
||||
* the status of message in memory
|
||||
* 0 "REC UNREAD" received unread message (i.e. new message)
|
||||
* 1 "REC READ" received read message
|
||||
* 2 "STO UNSENT" stored unsent message (only applicable to SMs)
|
||||
* 3 "STO SENT" stored sent message (only applicable to SMs)
|
||||
* 4 "ALL" all messages (only applicable to +CMGL command)
|
||||
*
|
||||
* ============================================================================
|
||||
* B) Message data param
|
||||
* 1. <ackpdu>: string type
|
||||
RP-ACK PDU
|
||||
* 2. <alpha>: string type
|
||||
* alphanumeric representation of <da> or <oa>;
|
||||
* 3. <cdata>: string type
|
||||
* TP-Command-Data in text mode responses,
|
||||
* example: int: 42 (0x2A) => "2A"
|
||||
* 4. <ct>: integer type
|
||||
* TP-Command-Type (default: 0)
|
||||
* 5. <da>: string format
|
||||
* TP-Destination-Address, type of address given by <toda>
|
||||
* 6. <data>
|
||||
* TP-User-Data in text mode response
|
||||
* 7. <dcs> integer format
|
||||
* SMS Data Coding Scheme (default 0)
|
||||
* 8. <dt> time-string format
|
||||
* TP-Discharge-Time: "yy/MM/dd,hh:mm:ss+zz or-zz"
|
||||
* 9. <fo> integer format
|
||||
* first octet of SMS-DELIVER, SMSSUBMIT (default 0x21), SMS-STATUS-REPORT, or SMS-COMMAND (default 2)
|
||||
* 10.<length> integer format
|
||||
* the length of the message body <data> in characters, in the text mode (+CMGF=1)
|
||||
* the length of the actual TP data unit in octets (INT8), in the PDU mode (+CMGF=0)
|
||||
* 11.<mid> integer format
|
||||
* CBM Message Identifier
|
||||
* 12.<mn> integer format
|
||||
* TP-Message-Number
|
||||
* 13.<mr> integer format
|
||||
* TP-Message-Reference
|
||||
* 14.<oa> string format
|
||||
* TP-Originating-Address, type of address given by <tooa>
|
||||
* 15.<page> integer format
|
||||
* 23.041 CBM Page Parameter bits 4-7
|
||||
* 16.<pages> integer format
|
||||
* 23.041 CBM Page Parameter bits 0-3
|
||||
* 17.<pdu> hexadecimal format
|
||||
* SMS TPDU in hexadecimal format: ME/TA converts each octet of TP data unit into two IRA character
|
||||
* example: int: 42 (0x2A) => "2A"
|
||||
* 18.<pid> integer format
|
||||
* 23.040 TP-Protocol-Identifier in integer format (default 0)
|
||||
* 19.<ra> string format
|
||||
* 23.040 TP-Recipient-Address, type of address given by <tora>
|
||||
* 20.<sca> string format
|
||||
* 24.011 RP SC (SMS service centre) address Address, type of address given by <tosca>
|
||||
* 21.<scts> time-string format
|
||||
* 23.040 TP-Service-Centre-Time-Stamp
|
||||
* 22.<sn> integer format
|
||||
* 23.041 CBM Serial Number
|
||||
* 23.<st> integer format
|
||||
* 23.040 TP-Status
|
||||
* 24.<toda> integer format
|
||||
* 24.011 TP-Destination-Address Type-of-Address
|
||||
* when first character of <da> is + (IRA 43) default is 145, otherwise default is 129
|
||||
* 25.<tooa>/<tora>/<tosca>
|
||||
* Type-of-Address octet in integer format
|
||||
* 26.<vp> integer format/time-string format
|
||||
* depending on SMS-SUBMIT <fo> setting: 3GPP TS 23.040 [3] TP-Validity-Period
|
||||
* either in integer format (default 167) or in time-string format (refer <dt>)
|
||||
*
|
||||
*******************************************************************************
|
||||
* Memory:
|
||||
* 1> AT+CSMP, +CSCA and +CSCB settings are stored directly to non-volatile memory of ME
|
||||
* a) AT+CSMP, param saved in mwconfig.nvm;
|
||||
* b) +CSCA=<sca>[,<tosca>], param saved in UICC
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* MARCO
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
#define PSIL_SMS_ADDR_INTERNATIONAL_PREFIX ((UINT8)'+')
|
||||
#define PSIL_SMS_MAX_PDU_SIZE CMI_SMS_MAX_PDU_SIZE //180
|
||||
#define PSIL_SMS_MAX_PDU_SIZE_OF_DELIVER_REPORT 164 /* 23.040 9.2.2.1a MAX length of SMS-DELIVER-REPORT */
|
||||
|
||||
/*
|
||||
* 1> DCS 7bit, max size is 160, max size of CSCS Char Set UCS2 is 160 * 4 = 640
|
||||
* 2> DCS 8bit, max size is 140
|
||||
* 3> DCS UCS2, max size is 280, HEX string type, example: "4F60" just means: 0x4F60.
|
||||
*/
|
||||
#define PSIL_SMS_MAX_7BIT_TXT_SIZE 160
|
||||
#define PSIL_SMS_MAX_TXT_SIZE 640
|
||||
|
||||
#define PSIL_SMS_MAX_UD_SIZE 140
|
||||
#define PSIL_SMS_INVALID_MEM_INDEX 255
|
||||
#define PSIL_BITS_NUMBER_OF_DIGIT 4
|
||||
|
||||
/*
|
||||
* Service Centre address, refer to TS-24.011 8.2.5.1
|
||||
* +----------------+
|
||||
* | length | Length of SC Address contents
|
||||
* +----------------+
|
||||
* | TOA | Type-of-Address
|
||||
* +----------------+
|
||||
* | dig 2 | dig 1 | Address value, 0 - 10 bytes
|
||||
* +----------------+
|
||||
* | dig 4 | dig 3 |
|
||||
* +----------------+
|
||||
* length: byte length, include: TOA and address.
|
||||
* TOA:
|
||||
* 7 0
|
||||
* +---+---+---+---+---+---+---+---+
|
||||
* | 1 | type-num | num-plan |
|
||||
* +---+---+---+---+---+---+---+---+
|
||||
* type-num: CmiSmsTypeOfNumberEnum
|
||||
* num-plan: CmiSmsNumberPlanIdEnum
|
||||
*/
|
||||
|
||||
/* The maximum length of the full address field (Address-Length, Type-of-Address and Address-Value) is 12 octets */
|
||||
#define PSIL_SMS_ADDR_ENCODE_MAX_SIZE 12
|
||||
|
||||
|
||||
/*
|
||||
* From 27.005:
|
||||
* 1> <pdu>: In the case of SMS: 3GPP TS 24.011 [6] SC address followed by 3GPP TS 23.040 [3] TPDU in
|
||||
* hexadecimal format.
|
||||
* 2> AT input is "HEX" (hexadecimal) string type, example: "2A" just means: 0x2A.
|
||||
* 3> So the input max string size should be: 2*(180+12)
|
||||
*/
|
||||
#define PSIL_SMS_HEX_PDU_STR_MAX_SIZE (2*(PSIL_SMS_MAX_PDU_SIZE+PSIL_SMS_ADDR_ENCODE_MAX_SIZE))
|
||||
|
||||
#define PSIL_SMS_VP_OCTET_MAX_LENGTH 7
|
||||
|
||||
/* The TP-Validity-Period-Format is a 2-bit field, located within bit no 3 and 4 of the first octet of SMS-SUBMIT */
|
||||
#define PSIL_SMS_FO_VPF_BIT_MASK 0x18
|
||||
|
||||
/*
|
||||
* FO:
|
||||
* SMS-SUBMIT first octet, refer to TS-23.040 9.2.2.2
|
||||
* bit7 bit0
|
||||
* +----+----+----+----+----+----+----+----+
|
||||
* | RP |UDHI|SRR | VPF | RD | MTI |
|
||||
* +----+----+----+----+----+----+----+----+
|
||||
* RP: Reply Path, 0 - not set
|
||||
* UDHI:User-Data-Header-Indicator, 0 - The TP-UD field contains only the short message
|
||||
* SRR: Status-Report-Request , 1 - A status report is requested
|
||||
* VPF: Validity-Period-Format, 00 - TP-VP field not present
|
||||
* RD: Reject-Duplicates, 0 - SC not reject the duplicate SMS
|
||||
* MTI: Message-Type-Indicator, 01 - SMS-SUBMIT
|
||||
*
|
||||
* Default FO: 0x21; SMS-SUBMIT PDU, status report required
|
||||
*/
|
||||
#define PSIL_MSG_FO_SUBMIT_DEFAULT ((UINT8)0x21)
|
||||
#define PSIL_MSG_FO_DELIVER_DEFAULT ((UINT8)0)
|
||||
#define PSIL_MSG_VP_DEFAULT ((UINT8)167) /* 24 hours - refer to TS-23.040 */
|
||||
#define PSIL_MSG_PID_DEFAULT ((UINT8)0) /* Refer to TS-23.040 9.2.3.9 */
|
||||
#define PSIL_MSG_REF_DEFAULT ((UINT8)0) /* Reference = 0 */
|
||||
|
||||
/*
|
||||
* SMS-SUBMIT T-PDU format/basic element, refer to TS-23.040 9.2.2.2
|
||||
* +----------------+
|
||||
* | FO | First Octet
|
||||
* +----------------+
|
||||
* | MR | Message-Reference
|
||||
* +----------------+
|
||||
* \ DA \ Destination-Address, length: 2 - 12 bytes
|
||||
* +----------------+
|
||||
* | PID | Protocol-Identifier
|
||||
* +----------------+
|
||||
* | DCS | Data-Coding-Scheme
|
||||
* +----------------+
|
||||
* : VP : Validity-Period, 0/1/7 bytes
|
||||
* +----------------+
|
||||
* | UDL | User-Data-Length
|
||||
* +----------------+
|
||||
* \ UD \ User-Data, 0 - 140 bytes
|
||||
* +----------------+
|
||||
*/
|
||||
|
||||
/*
|
||||
* SM-TL, address field (Destination-Address), refer to TS-23.040 9.1.2.5
|
||||
* +----------------+
|
||||
* | AL | Address length
|
||||
* +----------------+
|
||||
* | TOA | Type-of-Address
|
||||
* +----------------+
|
||||
* \ AV \ Address value, 0 - 10 bytes
|
||||
* +----------------+
|
||||
* AL: Number of useful semi-octets within the Address-Value field. !! (1 byte -> 2 length) !!
|
||||
* TOA:
|
||||
* 7 0
|
||||
* +---+---+---+---+---+---+---+---+
|
||||
* | 1 | type-num | num-plan |
|
||||
* +---+---+---+---+---+---+---+---+
|
||||
* type-num: CmiSmsTypeOfNumberEnum
|
||||
* num-plan: CmiSmsNumberPlanIdEnum
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* MSG/SMS ADDRESS LEN, encoded MAX 10 bytes, so for UCS2 MAX 80 length here
|
||||
*/
|
||||
#define PSIL_MSG_MAX_ADDR_LEN 80
|
||||
|
||||
|
||||
/* Refer to TS-27.005 case 3.1 Parameter definitions Parameter <Stat> for Text mode */
|
||||
#define PSIL_SMS_STATUS_STRING_REC_UNREAD "REC UNREAD"
|
||||
#define PSIL_SMS_STATUS_STRING_REC_READ "REC READ"
|
||||
#define PSIL_SMS_STATUS_STRING_STO_UNSENT "STO UNSENT"
|
||||
#define PSIL_SMS_STATUS_STRING_STO_SENT "STO SENT"
|
||||
#define PSIL_SMS_STATUS_STRING_ALL "ALL"
|
||||
|
||||
/*
|
||||
* A CBS page comprises of 82 octets, which, using the default character set, equates to 93 characters.
|
||||
*/
|
||||
#define PSIL_SMS_CBS_MAX_DATA_LENGTH 93
|
||||
|
||||
/*
|
||||
* This code is an escape to an extension of GSM 7 bit Default Alphabet table
|
||||
* 3GPP TS 23.038, 6.2.1
|
||||
*/
|
||||
#define PSIL_SMS_ESCAPE_EXTERN_TBL_CODE 0x1B
|
||||
|
||||
#define PSIL_SMS_SEND_RP_ACK_WITHOUT_TPDU 0
|
||||
#define PSIL_SMS_SEND_RP_ACK 1
|
||||
#define PSIL_SMS_SEND_RP_ERROR 2
|
||||
|
||||
#define PSIL_SMS_TP_CAUSE_NO_SMS_STORAGE_CAPABILITY_IN_SIM 0xD1
|
||||
#define PSIL_SMS_TP_CAUSE_MEMORY_CAPACITY_EXCEEDED 0xD3
|
||||
#define PSIL_SMS_TP_CAUSE_UNSPECIFIED_ERR 0xFF
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* ENUM
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
typedef enum PsilSmsDCSType_enum
|
||||
{
|
||||
PSIL_SMS_DCS_GENERAL_CODING = 0,
|
||||
PSIL_SMS_DCS_MESSAGE_WAITING = 1,
|
||||
PSIL_SMS_DCS_MESSAGE_CLASS = 2
|
||||
}PsilSmsDCSType;
|
||||
|
||||
typedef enum PsilSmsDCSClass_enum
|
||||
{
|
||||
PSIL_SMS_DCS_MESSAGE_CLASS_0 = 0,
|
||||
PSIL_SMS_DCS_MESSAGE_CLASS_1 = 1,
|
||||
PSIL_SMS_DCS_MESSAGE_CLASS_2 = 2,
|
||||
PSIL_SMS_DCS_MESSAGE_CLASS_3 =3
|
||||
}PsilSmsDCSClass;
|
||||
|
||||
typedef enum PsilSmsDCSIndicationType_Tag
|
||||
{
|
||||
PSIL_SMS_DCS_VOICEMAIL_MESSAGE_WAITING = 0,
|
||||
PSIL_SMS_DCS_FAX_MESSAGE_WAITING = 1,
|
||||
PSIL_SMS_DCS_ELECTRONIC_MAIL_MESSAGE_WAITING = 2,
|
||||
PSIL_SMS_DCS_OTHER_MESSAGE_WAITING = 3
|
||||
}PsilSmsDCSIndicationType;
|
||||
|
||||
/* Refer to TS-23.404 9.2.3.3 TP-VPF:TP-Validity-Period-Format */
|
||||
typedef enum PsilSmsValidityPeriodFormat_Enum
|
||||
{
|
||||
PSIL_SMS_VPF_NOT_PRESENT = 0, /* TP-VP field not present */
|
||||
PSIL_SMS_VPF_ENHANCE = 1, /* TP-VP field present and enhanced format */
|
||||
PSIL_SMS_VPF_RELATIVE = 2, /* TP-VP field present and Relative format */
|
||||
PSIL_SMS_VPF_ABSOLUTE = 3, /* TP-VP field present and Absolute format */
|
||||
PSIL_SMS_VPF_NUM_OF
|
||||
|
||||
}PsilSmsValidityPeriodFormat;
|
||||
|
||||
/*
|
||||
* enum used in encoding/decoding SMS text
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
PSIL_MSG_CODING_DEFAULT_7BIT = 0x00,
|
||||
PSIL_MSG_CODING_8BIT = 0x01,
|
||||
PSIL_MSG_CODING_UCS2 = 0x02,
|
||||
PSIL_MSG_CODING_NUM_OF
|
||||
}PsilMsgCodingType;
|
||||
|
||||
/*
|
||||
* current SMS input/output format
|
||||
*/
|
||||
typedef enum PsilSmsFormatMode_enum
|
||||
{
|
||||
PSIL_SMS_FORMAT_PDU_MODE = 0,
|
||||
PSIL_SMS_FORMAT_TXT_MODE = 1,
|
||||
PSIL_SMS_FORMAT_NUM_MODE
|
||||
}PsilSmsFormatMode;
|
||||
|
||||
/*
|
||||
* SMS show format in text mode for command +CSDH
|
||||
*/
|
||||
typedef enum PsilSmsShowMode_enum
|
||||
{
|
||||
PSIL_SMS_SHOW_DETAIL_INFO_DISABLE = 0,
|
||||
PSIL_SMS_SHOW_DETAIL_INFO_ENABLE = 1,
|
||||
PSIL_SMS_SHOW_DETAIL_INFO_END
|
||||
}PsilSmsShowMode;
|
||||
|
||||
/*
|
||||
* <toda>, type of dest address
|
||||
* 3GPP TS-24.011 [6] TP-Destination-Address Type-of-Address octet in integer format (when first
|
||||
* character of <da> is + (IRA 43) default is 145, otherwise default is 129)
|
||||
* 3GPP TS-23.040, 9.1.2.5
|
||||
*/
|
||||
typedef enum PsilSmsTypeOfAddress_enum
|
||||
{
|
||||
PSIL_SMS_TOA_NUMBER_RESTRICTED = 0x80, /* 128, Unknown type, unknown number format */
|
||||
PSIL_SMS_TOA_NUMBER_UNKNOWN = 0x81, /* 129, Unknown type, IDSN format number */
|
||||
PSIL_SMS_TOA_NUMBER_INTERNATIONAL = 0x91, /* 145, International number type, ISDN format */
|
||||
PSIL_SMS_TOA_NUMBER_NATIONAL = 0xA1, /* 161, National number type, IDSN format */
|
||||
PSIL_SMS_TOA_NUMBER_NETWORK_SPECIFIC = 0xB1, /* 177, Network specific number, ISDN format */
|
||||
PSIL_SMS_TOA_NUMBER_DEDICATED = 0xC1, /* 193, Subscriber number, ISDN format */
|
||||
PSIL_SMS_TOA_NUMBER_EXTENSION = 0xF1, /* 241, extension, ISDN format */
|
||||
PSIL_SMS_TOA_NUMBER_INVALID
|
||||
}PsilSmsTypeOfAddress;
|
||||
|
||||
/* Ref to TS-27.005 3.1 Parameter definitions Parameter <mem1>/<mem2>/<mem3> */
|
||||
typedef enum PsilSmsStoreMemType_Enum
|
||||
{
|
||||
PSIL_SMS_STOR_MEM_TYPE_ME = 1, /* ME message storage */
|
||||
PSIL_SMS_STOR_MEM_TYPE_SM = 2, /* (U)SIM message storage */
|
||||
PSIL_SMS_STOR_MEM_TYPE_BM = 3, /* broadcast message storage */
|
||||
PSIL_SMS_STOR_MEM_TYPE_MT = 4, /* Any of the storage associated whit ME */
|
||||
PSIL_SMS_STOR_MEM_TYPE_TA = 5, /* TA message storage */
|
||||
PSIL_SMS_STOR_MEM_TYPE_SR = 6, /* status report storage */
|
||||
PSIL_SMS_STOR_MEM_TYPE_END
|
||||
}PsilSmsStoreMemType;
|
||||
|
||||
typedef enum PsilSmsStoreMemNum_Enum
|
||||
{
|
||||
PSIL_SMS_STOR_MEM_1 = 1, /* typedef <mem1> */
|
||||
PSIL_SMS_STOR_MEM_2 = 2, /* typedef <mem2> */
|
||||
PSIL_SMS_STOR_MEM_3 = 3, /* typedef <mem3> */
|
||||
PSIL_SMS_STOR_MEM_END
|
||||
}PsilSmsStoreMemNum;
|
||||
|
||||
/*
|
||||
* 3GPP TS-23.040 9.2.3.23 Information Element Identifier
|
||||
* Only UDH_IEI_CONCATENATED_SMS_8_BIT is supported
|
||||
*/
|
||||
typedef enum TypeOfUdhIeId_Tag
|
||||
{
|
||||
UDH_IEI_CONCATENATED_SMS_8_BIT = 0,
|
||||
UDH_IEI_SPECIAL_SMS_IND = 1,
|
||||
UDH_IEI_RESERVED = 2,
|
||||
UDH_IEI_VALUE_NOT_USED = 3,
|
||||
UDH_IEI_APPLICATION_PORT_ADDRESSING_SCH_8_BIT = 4,
|
||||
UDH_IEI_APPLICATION_PORT_ADDRESSING_SCH_16_BIT = 5,
|
||||
UDH_IEI_SMSC_CTRL_PARAM = 6,
|
||||
UDH_IEI_UDH_SOURCE_IND = 7,
|
||||
UDH_IEI_CONCATENATED_SMS_16_BIT = 8,
|
||||
UDH_IEI_WIRELESS_CONTROL = 9,
|
||||
UDH_IEI_TEXT_FORMATTING = 0xA
|
||||
}TypeOfUdhIeId;
|
||||
|
||||
typedef enum PsilSmsCharSet_Enum
|
||||
{
|
||||
PSIL_SMS_CHAR_SET_GSM = 0,
|
||||
PSIL_SMS_CHAR_SET_IRA = 1,
|
||||
PSIL_SMS_CHAR_SET_UCS2 = 2,
|
||||
PSIL_SMS_CHAR_SET_END
|
||||
}PsilSmsCharSet;
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* STRUCT
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* SMS send message/command info, used for AT:
|
||||
* 1> AT+CMGS
|
||||
* a) text mode
|
||||
* AT+CMGS=<da>[,<toda>]<CR>
|
||||
* text is entered<ctrl-Z/ESC>
|
||||
* b) PDU mode
|
||||
* +CMGS=<length><CR>
|
||||
* PDU is given<ctrl-Z/ESC>
|
||||
* 2> AT+CMGC
|
||||
* a) text mode
|
||||
* AT+CMGC=<fo>,<ct>[,<pid>[,<mn>[,<da>[,<toda>]]]]<CR>
|
||||
* text is entered<ctrl-Z/ESC>
|
||||
* b) PDU mode
|
||||
* +CMGC=<length><CR>
|
||||
* PDU is given<ctrl-Z/ESC>
|
||||
*
|
||||
* SMS write and save draft message info, used for AT
|
||||
* 2> AT+CMGW
|
||||
* a) text mode
|
||||
* +CMGW[=<oa/da>[,<tooa/toda>[,<stat>]]]<CR>
|
||||
* text is entered<ctrl-Z/ESC>
|
||||
* b) PDU mode
|
||||
* +CMGC=<length>[,<stat>]<CR>
|
||||
* PDU is given<ctrl-Z/ESC>
|
||||
* =====================================
|
||||
* Note:
|
||||
According to 27.005
|
||||
*
|
||||
*
|
||||
*/
|
||||
typedef struct PsilSmsSendInfo_Tag
|
||||
{
|
||||
UINT16 reqHander; /* if set to zero, just means no sending request */
|
||||
|
||||
/*
|
||||
* Used for PDU mode, input of: +CMGS=<length><CR> or +CMGW=<length>[,<stat>]<CR>
|
||||
* <length> must indicate the number of octets coded in the TP layer data unit to be given
|
||||
* (i.e. SMSC address octets are excluded)
|
||||
* If set to 0, just means not set.
|
||||
*
|
||||
*/
|
||||
UINT16 reqPduLen;
|
||||
|
||||
/*
|
||||
* For Text mode,
|
||||
* +CMGS=<da>[,<toda>]<CR>...
|
||||
*
|
||||
* +CMGW[=<oa/da>[,<tooa/toda>[,<stat>]]]<CR>
|
||||
*
|
||||
* example:
|
||||
* DA: "+8613813801380"
|
||||
* daInfo.len = 13
|
||||
* daInfo.digits = "8613813801380\0" => string format
|
||||
*/
|
||||
CmiSmsAddressInfo daInfo; /* If is MO SMS message, it will be destination address. */
|
||||
|
||||
/*
|
||||
* Concatenated SMS
|
||||
* +ECCMGS=<da>[,<toda>][,<msg_ref>,<msg_max>,<msg_seq>]<CR>
|
||||
*
|
||||
*/
|
||||
BOOL udhPresent;
|
||||
UINT8 refNum;
|
||||
UINT8 maxNum;
|
||||
UINT8 seqNum;
|
||||
|
||||
UINT16 inputOffset;
|
||||
BOOL bCommand; /* Whether is AT+CMGC command */
|
||||
UINT8 reserved0;
|
||||
UINT8 input[PSIL_SMS_MAX_TXT_SIZE + 1];
|
||||
}PsilSmsSendInfo;
|
||||
|
||||
/*
|
||||
* SMS send RP-ACK/RP-ERROR info, used for AT:
|
||||
* 1> AT+CNMA
|
||||
* a) PDU mode
|
||||
* +CNMA=<n>,<length><CR>
|
||||
* PDU is given<ctrl-Z/ESC>
|
||||
* =====================================
|
||||
* Note:
|
||||
According to 27.005
|
||||
*
|
||||
*
|
||||
*/
|
||||
typedef struct PsilSmsSendAckInfo_Tag
|
||||
{
|
||||
UINT16 reqHander;
|
||||
UINT8 reply;
|
||||
UINT16 ackPduLen;
|
||||
UINT16 ackPduOffset;
|
||||
UINT8 ackPdu[PSIL_SMS_MAX_PDU_SIZE_OF_DELIVER_REPORT*2+1];
|
||||
}PsilSmsSendAckInfo;
|
||||
|
||||
/* for +CMGW command */
|
||||
typedef struct PsilSmsWriteInfo_Tag
|
||||
{
|
||||
UINT8 smsMsgType; /* SMS message type defined CmiSmsMessageType */
|
||||
UINT8 stat; /* defined CmiSmsRecStorStatus */
|
||||
UINT16 reserved0;
|
||||
CmiSmsOptAddressInfo scaInfo; /* service centre address */
|
||||
PsilSmsSendInfo smsSendInfo;
|
||||
}PsilSmsWriteInfo;
|
||||
|
||||
/* for +CMGR/+CMGL/+CMSS */
|
||||
typedef struct PsilSmsStoreItemInfo_tag
|
||||
{
|
||||
UINT8 smsRecStatus; /* SMS record status. Enum CmiSmsRecStorStatus */
|
||||
UINT8 smsRecMsgType; /* SMS message type, defined type CmiSmsMessageType */
|
||||
BOOL scAddrPresent; /* SC Address info present or not */
|
||||
UINT8 memIndex; /* memory index */
|
||||
CmiSmsAddressInfo scAddrInfo; /* SC address info */
|
||||
CmiSmsPdu smsPduData; /* SMS PDU contents */
|
||||
}PsilSmsStoreItemInfo;
|
||||
|
||||
typedef struct PsilSmsTimeStampInfo_tag
|
||||
{
|
||||
UINT8 year;
|
||||
UINT8 month;
|
||||
UINT8 day;
|
||||
UINT8 hour;
|
||||
UINT8 minute;
|
||||
UINT8 second;
|
||||
UINT8 tz; /* time zone */
|
||||
UINT8 tzSign; /* '+'/'-' */
|
||||
}PsilSmsTimeStampInfo;
|
||||
|
||||
typedef struct PsilSmsDcsInfo_Tag
|
||||
{
|
||||
UINT8 type;
|
||||
UINT8 msgClass;
|
||||
UINT8 alphabet;
|
||||
UINT8 indication;
|
||||
UINT8 dcs;
|
||||
}PsilSmsDcsInfo;
|
||||
|
||||
typedef union
|
||||
{
|
||||
UINT8 vpRelativeFormat; /* Relative Format: 1 octet, TS-23.040 9.23.12.1 */
|
||||
PsilSmsTimeStampInfo vpAbsoluteFormat; /* Absolute Format: as TP-SCTS, TS-23.040 9.23.12.2 */
|
||||
UINT8 vpEnhancedFormat[PSIL_SMS_VP_OCTET_MAX_LENGTH + 1]; /* Enhanced Format: TS-23.040 9.23.12.3 */
|
||||
}PsilSmsValidityPeriodValue;
|
||||
|
||||
typedef struct PsilSmsValidityPeriodInfo_tag
|
||||
{
|
||||
UINT8 vpfType; /* defined PsilSmsValidityPeriodFormat */
|
||||
UINT8 reserved0;
|
||||
UINT16 reserved1;
|
||||
PsilSmsValidityPeriodValue vpValue;
|
||||
}PsilSmsValidityPeriodInfo;
|
||||
|
||||
/* SMS sumbit message structure info for Text mode
|
||||
* Refer to TS-23.040 9.2.2.2 */
|
||||
typedef struct AtecMoSubmitSmsInfo_Tag
|
||||
{
|
||||
UINT8 firstOctet; /* first octet */
|
||||
UINT8 protocolId; /* TP-PD */
|
||||
UINT8 smsMsgRef; /* message reference */
|
||||
UINT8 destAddrType; /* type of mumber for dest address */
|
||||
UINT16 smsLength; /* length of body */
|
||||
UINT16 reserved0;
|
||||
UINT8 destAddr[PSIL_MSG_MAX_ADDR_LEN + 1]; /* TP Destination Address */
|
||||
PsilSmsValidityPeriodInfo validityPreriod; /* TP-VP */
|
||||
PsilSmsDcsInfo dcsInfo; /* TP-DCS */
|
||||
UINT8 cnctRefNum; /* Concatenated short message reference number */
|
||||
UINT8 cnctMaxNum; /* Maximum number of short messages in the concatenated short message */
|
||||
UINT8 cnctSeqNum; /* Sequence number of the current short message */
|
||||
UINT8 smsBuffer[PSIL_SMS_MAX_TXT_SIZE + 1]; /* msg body buffer, Hex string format */
|
||||
}AtecMoSubmitSmsInfo;
|
||||
|
||||
typedef struct AtecMtDeliverSmsInfo_Tag
|
||||
{
|
||||
UINT8 firstOctet; /* first octet */
|
||||
UINT8 protocolId; /* TP-PID */
|
||||
UINT8 srcAddrType; /* type of mumber for originating address */
|
||||
UINT16 smsLength; /* length of body */
|
||||
UINT8 srcAddr[PSIL_MSG_MAX_ADDR_LEN + 1]; /* originating address string */
|
||||
PsilSmsTimeStampInfo timeStamp; /* TP-SCTS */
|
||||
PsilSmsDcsInfo dcsInfo; /* TP-DCS */
|
||||
UINT8 cnctRefNum; /* Concatenated short message reference number */
|
||||
UINT8 cnctMaxNum; /* Maximum number of short messages in the concatenated short message */
|
||||
UINT8 cnctSeqNum; /* Sequence number of the current short message */
|
||||
UINT8 smsBuffer[PSIL_SMS_MAX_TXT_SIZE + 1]; /* message body buffer pdu string */
|
||||
}AtecMtDeliverSmsInfo;
|
||||
|
||||
/* SMS status report structure info for Text mode */
|
||||
typedef struct AtecStatusRptSmsInfo_Tag
|
||||
{
|
||||
UINT8 firstOctet; /* <fo> first octet */
|
||||
UINT8 tpMr; /* <mr> TP-MR */
|
||||
UINT8 reciptAddr[PSIL_MSG_MAX_ADDR_LEN + 1]; /* <ra> TP-Recipient-Address string */
|
||||
UINT8 reciptAddrType; /* <tora> type of mumber for TP-Recipient-Address */
|
||||
PsilSmsTimeStampInfo scTimeStamp; /* <scts> TP-Service-Centre-Time-Stamp */
|
||||
PsilSmsTimeStampInfo destTime; /* <dt> TP-Discharge-Time */
|
||||
UINT8 tpStatus; /* <st> TpStatus */
|
||||
}AtecStatusRptSmsInfo;
|
||||
|
||||
/* SMS submit report structure info for Text mode */
|
||||
typedef struct AtecSubmitRptSmsInfo_Tag
|
||||
{
|
||||
UINT8 firstOctet; /* first octet */
|
||||
UINT8 tpFcs; /* TP-Failure-Cause */
|
||||
UINT8 tpPi; /* TP-Parameter-Indicator */
|
||||
PsilSmsTimeStampInfo scTimeStamp; /* <scts> TP-Service-Centre-Time-Stamp */
|
||||
}AtecSubmitRptSmsInfo;
|
||||
|
||||
/* concatnated SMS 8Bit IE data
|
||||
* Refer to TS-23.040 9.2.3.24.1 */
|
||||
typedef struct UdhIeConcatenatedSms8Bit_Tag
|
||||
{
|
||||
UINT8 refNum; /* Octet 1 Concatenated short message reference number */
|
||||
UINT8 maxNum; /* Octet 2 Maximum number of short messages in the concatenated short message */
|
||||
UINT8 seqNum; /* Octet 3 Sequence number of the current short message */
|
||||
}UdhIeConcatenatedSms8Bit;
|
||||
|
||||
typedef struct UdhIe_Tag
|
||||
{
|
||||
TypeOfUdhIeId ieId;
|
||||
|
||||
union
|
||||
{
|
||||
UdhIeConcatenatedSms8Bit concatenatedSms8Bit; /* UDH_IEI_CONCATENATED_SMS_8_BIT */
|
||||
/* TS-23.040 9.2.3.24 TP-User Data (TP-UD).The support of other Information Element Identifier is not implemented now */
|
||||
}ieData;
|
||||
}UdhIe;
|
||||
|
||||
/* TS-23.038 5 CBS Data Coding Scheme */
|
||||
typedef enum PsilCbsLanguage_Tag
|
||||
{
|
||||
PSIL_SMS_CBS_LANG_GERMAN = 0x00,
|
||||
PSIL_SMS_CBS_LANG_ENGLISH = 0x01,
|
||||
PSIL_SMS_CBS_LANG_ITALIAN = 0x02,
|
||||
PSIL_SMS_CBS_LANG_FRENCH = 0x03,
|
||||
PSIL_SMS_CBS_LANG_SPANISH = 0x04,
|
||||
PSIL_SMS_CBS_LANG_DUTCH = 0x05,
|
||||
PSIL_SMS_CBS_LANG_SWEDISH = 0x06,
|
||||
PSIL_SMS_CBS_LANG_DANISH = 0x07,
|
||||
PSIL_SMS_CBS_LANG_PORTUGUESE = 0x08,
|
||||
PSIL_SMS_CBS_LANG_FINNISH = 0x09,
|
||||
PSIL_SMS_CBS_LANG_NORWEGIAN = 0x0A,
|
||||
PSIL_SMS_CBS_LANG_GREEK = 0x0B,
|
||||
PSIL_SMS_CBS_LANG_TURKISH = 0x0C,
|
||||
PSIL_SMS_CBS_LANG_HUNGARIAN = 0x0D,
|
||||
PSIL_SMS_CBS_LANG_POLISH = 0x0E,
|
||||
PSIL_SMS_CBS_LANG_UNSPECIFIED = 0x0F,
|
||||
PSIL_SMS_CBS_LANG_CZECH = 0x20,
|
||||
PSIL_SMS_CBS_LANG_HEBREW = 0x21,
|
||||
PSIL_SMS_CBS_LANG_ARABIC = 0x22,
|
||||
PSIL_SMS_CBS_LANG_RUSSIAN = 0x23,
|
||||
PSIL_SMS_CBS_LANG_ICELANDIC = 0x24
|
||||
}PsilCbsLanguage;
|
||||
|
||||
typedef struct PsilCbsDcsInfo_Tag
|
||||
{
|
||||
BOOL isCompressed;
|
||||
BOOL isLanguageIncluded;
|
||||
UINT8 cbLanguage; //PsilCbsLanguage
|
||||
UINT8 alphabet;
|
||||
UINT8 cbClass; //CmiSmsMessageClass
|
||||
}PsilCbsDcsInfo;
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* API
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
CmsRetId smsQuerySmsService(UINT32 atHandle);
|
||||
CmsRetId smsGetSmsService(UINT32 atHandle);
|
||||
CmsRetId smsSetSmsService(UINT32 atHandle, const UINT32 service);
|
||||
BOOL smsGetSCAddrFromNvm(CmiSmsAddressInfo *pSmscAddr);
|
||||
CmsRetId smsGetSrvCenterAddr(UINT32 atHandle, CmiSmsAddressInfo *pScAddressinfo);
|
||||
CmsRetId smsSetSrvCenterAddr(UINT32 atHandle, const UINT8 *addressStr, UINT16 addrStrLen, UINT32 toaOctType);
|
||||
void smsResetSrvCenterAddr(void);
|
||||
void smsPduDecodeAddress(UINT8 *pduData, UINT8 *pOffset, UINT8 *pAddressType, UINT8 *pAddress, UINT8 addressSize);
|
||||
void smsPduDecodeDcs(UINT8 *pduData, UINT8 *pOffset, PsilSmsDcsInfo *pDcsInfo);
|
||||
void smsPduDecodeTimeStamp(UINT8 *pduData, UINT8 *pOffset, PsilSmsTimeStampInfo *pTimeStamp);
|
||||
void smsPduDecodeUserData(UINT8 *pUserData,
|
||||
UINT8 pduDataLen,
|
||||
PsilMsgCodingType codingType,
|
||||
BOOL hdrPresent,
|
||||
UINT8 *pOutData,
|
||||
UINT16 *pSmsLength,
|
||||
UINT16 dstBufSize,
|
||||
UdhIe *pUdhIe);
|
||||
|
||||
CmsRetId smsSendSms(UINT8 smsFormat, PsilSmsSendInfo *pSendInfo);
|
||||
CmsRetId smsWriteSms(UINT8 smsFormat, PsilSmsWriteInfo *pWriteInfo, UINT8 smsMemType, UINT8* memIndex);
|
||||
CmsRetId smsSendStoredSms(UINT32 atHandle, BOOL daPresent, CmiSmsAddressInfo *pDestAddrInfo, PsilSmsStoreItemInfo *pSendInfo);
|
||||
CmsRetId smsPduReplaceDestAddress(CmiSmsAddressInfo *pNewDestAddrInfo, CmiSmsPdu *pInSmsPdu, CmiSmsPdu *pOutSmsPdu);
|
||||
CmsRetId smsReadSmsFromNvm(UINT8 memIndex, PsilSmsStoreItemInfo *pReadSmsInfo);
|
||||
|
||||
BOOL SmsSubmitPduToText(AtecMoSubmitSmsInfo *pMoSumbitInfo, CmiSmsPdu *pPduData);
|
||||
BOOL SmsDeliverPduToText(AtecMtDeliverSmsInfo *pMtDeliverInfo, CmiSmsPdu *pPduData);
|
||||
|
||||
UINT16 errorCauseofSendSms(UINT16 rc, UINT8 rpCause, UINT8 tpCause, UINT16 errorCode);
|
||||
void smsSmscToHexStrPdu(CmiSmsAddressInfo *pScaInfo, CHAR *pSmsc, UINT16 *pSmscLen);
|
||||
CmsRetId smsSetMoreMessageMode(UINT32 atHandle, const UINT8 mode);
|
||||
CmsRetId smsGetMoreMessageState(UINT32 atHandle);
|
||||
CmsRetId smsGetCscbSetting(UINT32 atHandle);
|
||||
CmsRetId smsSetCscbSetting(UINT32 atHandle, BOOL mode, CHAR *pMids, CHAR *pDcss);
|
||||
CmsRetId smsGetStoredInSimSmsMsg(UINT32 atHandle, UINT8 readIndex, UINT8 readMode);
|
||||
CmsRetId smsSetStoredInSimSmsMsg(UINT32 atHandle, UINT8 savedMode, UINT8 smsStatus, BOOL scAddrPresent, CmiSmsAddressInfo * pScAddr, CmiSmsPdu * pSavedSmsPdu);
|
||||
CmsRetId smsDelStoredInSimSmsMsg(UINT32 atHandle, UINT8 delIndex, UINT8 delFlag);
|
||||
CmsRetId smsGetPrefMemStorageInfoInSim(UINT32 atHandle, UINT8 listMode);
|
||||
CmsRetId smsListSmsStoredInSimSmsMsg(UINT32 atHandle, UINT8 listStatus);
|
||||
|
||||
BOOL smsStateStrToInt(CHAR *statString, UINT8 *pStat);
|
||||
BOOL smsStateIntToStr(UINT8 stat, CHAR *pStatString);
|
||||
PsilSmsStoreMemType smsGetSmsPrefMsgStorageType(PsilSmsStoreMemNum memDomain);
|
||||
CmsRetId smsReadSmsStoreRecord(UINT32 atHandle, UINT8 memIndex, UINT8 smsMemType, UINT8 readCmd, PsilSmsStoreItemInfo * pReadSmsInfo);
|
||||
CmsRetId smsUpdateSmsToNvm( UINT8 memIndex, PsilSmsStoreItemInfo *pStoreSmsInfo);
|
||||
CmsRetId smsUpdateSmsStoreRecord(UINT8 memIndex, UINT8 smsMemType, PsilSmsStoreItemInfo * pReadSmsInfo);
|
||||
CmsRetId smsDeleteSmsStoreRecord(UINT32 atHandle, CmiSmsOperationMode delOperat, UINT8 smsMemType, UINT8 delIndex, CmiSmsDelFlag delFlag);
|
||||
CmsRetId smsSetSmsp(UINT32 atHandle);
|
||||
CmsRetId smsSendSMMA(UINT32 atHandle);
|
||||
BOOL smsSubmitTpduLen(UINT8 *pTpduLen, CmiSmsPdu *pPduData);
|
||||
BOOL smsDeliverTpduLen(UINT8 *pTpduLen, CmiSmsPdu *pPduData);
|
||||
BOOL SmsStatusRptPduToText(AtecStatusRptSmsInfo *pStatusRptInfo, CmiSmsPdu *pPduData);
|
||||
void smsDecodeCbsData(UINT8 *pPdu, UINT8 pduDataLen, PsilMsgCodingType codingType, UINT8 *pOutData, UINT8 *pOutLength, UINT8 dstBufSize);
|
||||
UINT16 smsAsciiToUcs2(const UINT8 *pAscii, UINT16 iLengh, UINT8 *pUcs2, UINT16 oLengh);
|
||||
UINT16 smsUcs2ToAscii(const UINT8 *pUcs2, UINT16 iLengh, UINT8 *pAscii, UINT16 oLengh);
|
||||
CmsRetId smsSetMemCap(UINT32 atHandle, BOOL isMemCapExceed);
|
||||
BOOL SmsSubmitRptPduToText(AtecSubmitRptSmsInfo *pSubmitRptInfo, CmiSmsPdu *pPduData, BOOL bePositiveAck);
|
||||
void smsPduDecodeCbsDCS(UINT8 *pduData, UINT8 *pOffset, PsilCbsDcsInfo *pDcsInfo);
|
||||
void smsSendNewMsgRsp(UINT32 reqHandle, UINT8 smsId, UINT32 reply, UINT8 tpCause, UINT16 ackPduLen, UINT8 *ackPdu);
|
||||
CmsRetId smsSrvCenterAddrToText(CHAR *smscBuf, UINT8 smscBufLen, CmiSmsAddressInfo *scAddrInfo);
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
#ifndef __PS_STK_BIP_API_H__
|
||||
#define __PS_STK_BIP_API_H__
|
||||
/******************************************************************************
|
||||
******************************************************************************
|
||||
Copyright: - 2017- Copyrights of AirM2M Ltd.
|
||||
File name: - psstk_bip_api.h
|
||||
Description: - API called by psproxy task
|
||||
******************************************************************************
|
||||
******************************************************************************/
|
||||
#include <osasys.h>
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* MARCO
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* ENUM
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
******************************************************************************
|
||||
* External global variable
|
||||
******************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* Functions
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
void psStkBipProcCmiInd(const SignalBuf *indSignalPtr);
|
||||
void psStkBipProcCmiCnf(const SignalBuf *cnfSignalPtr);
|
||||
|
||||
/*
|
||||
* processed the signal send to STK CMS, if processed, return TRUE
|
||||
*/
|
||||
BOOL psStkBipProcSimBipSig(const SignalBuf *pSig);
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,634 @@
|
||||
/******************************************************************************
|
||||
* (C) Copyright 2018 AirM2M International Ltd.
|
||||
* All Rights Reserved
|
||||
*******************************************************************************
|
||||
* Filename: cms_sock_mgr.h
|
||||
*
|
||||
* Description: cms socket manager API header file
|
||||
*
|
||||
* History:create by xwang
|
||||
*
|
||||
* Notes:
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __CMS_SOCK_MGR_H__
|
||||
#define __CMS_SOCK_MGR_H__
|
||||
|
||||
#include "commontypedef.h"
|
||||
#include "cmicomm.h"
|
||||
#include "ip_addr.h"
|
||||
#include "pssys.h"
|
||||
#include "lwip/opt.h"
|
||||
|
||||
#include "apmu_external.h"
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* MARCO
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
#define CMS_LIMIT_DL_BUFFER_OPT
|
||||
|
||||
|
||||
#define CMS_SOCK_MGR_CONTEXT_NUM_MAX 12
|
||||
#define CMS_SOCK_MGR_CLIENT_PORT 60002
|
||||
#define CMS_SOCK_MGR_SERVER_PORT 60003
|
||||
#define CMS_SOCK_MGR_ASYNC_REQUEST_MAGIC 0x1234
|
||||
#define CMS_SOCK_MGR_SYNC_REQUEST_MAGIC 0x4321
|
||||
#define CMS_SOCK_MGR_EVENT_MAGIC 0x1111
|
||||
#define CMS_SOCK_MGR_RESPONSE_LEN_MAX 256 //bytes
|
||||
|
||||
#define CMS_SOCK_MGR_CONNECT_TIMEOUT 31 //seconds
|
||||
|
||||
#define CMS_SOCK_MGR_UL_DATA_SEQUENCE_MAX 255
|
||||
#define CMS_SOCK_MGR_UL_DATA_SEQUENCE_MIN 1
|
||||
|
||||
#define CMS_SOCK_MGR_DNS_RESOLVE_RESULT_REQ_ID 200
|
||||
|
||||
#define CMS_SOCK_MGR_MESSAGE_MAGIC 0xAABB
|
||||
#define CMS_SOCK_MGR_MESSAGE_LENGTH_MAX 124
|
||||
|
||||
#define CMS_SOCK_MGR_CONTEXT_MAGIC 0xABCD
|
||||
#define CMS_SOCK_MGR_TCP_CONTEXT_MAGIC 0xBCDA
|
||||
#define CMS_SOCK_MGR_UDP_CONTEXT_MAGIC 0xCDAB
|
||||
|
||||
#define CMS_SOCK_MGR_HIB_PRIVATE_CONTEXT_MAX_LENGTH 32
|
||||
|
||||
#define CMS_SOCK_MGR_DATA_HEADER_LENGTH_MAX 64
|
||||
|
||||
#define CMS_SOCK_ONE_MGR_DL_LENGTH_MAX 1460
|
||||
|
||||
#ifdef CMS_LIMIT_DL_BUFFER_OPT
|
||||
#define CMS_SOCK_TOTAL_MGR_DL_LENGTH_MAX (12*1024) //max 12K DL PDU buffer
|
||||
#else
|
||||
#define CMS_SOCK_TOTAL_MGR_DL_LENGTH_MAX (20*1024) //max 20K DL PDU buffer
|
||||
#endif
|
||||
|
||||
#define CMS_SOCK_MGR_SELECT_WAIT_TIME_MISECONDS (500) //Microseconds
|
||||
|
||||
#define CMS_SOCK_RECV_RAWDATA_PADDING_LEN (10)
|
||||
#define CMS_SOCK_UL_PENDING_TIMEOUT_SECONDS_MAX (10)
|
||||
|
||||
#define CMSSOCKMGR_CHECK_SOURCE(source) (((source) > (SOCK_SOURCE_MINI)) && ((source) < (SOCK_SOURCE_MAX)))
|
||||
#define CMSSOCKMGR_CHECK_TYPE(type) (((type) == (SOCK_CONN_TYPE_UDP)) || ((type) == (SOCK_CONN_TYPE_TCP)))
|
||||
|
||||
#define CMSSOCKMGR_EXPECT_CLIENT_SOCKET_ID (MEMP_NUM_NETCONN + LWIP_SOCKET_OFFSET - 2)
|
||||
#define CMSSOCKMGR_EXPEXT_SERVER_SOCKET_ID (MEMP_NUM_NETCONN + LWIP_SOCKET_OFFSET - 1)
|
||||
|
||||
|
||||
|
||||
/*this define how long to report close event under connect state*/
|
||||
#define CMS_SOC_REF_SOCK_TIMEOUT_MAX (30)
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* ENUM
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
typedef enum{
|
||||
SOCK_MGR_MESSAGE_TYPE_REQUEST = 1,
|
||||
SOCK_MGR_MESSAGE_TYPE_EVENT = 2,
|
||||
}CmsSockMgrMessageType;
|
||||
|
||||
|
||||
typedef enum{
|
||||
SOCK_CONN_TYPE_UDP = 1,
|
||||
SOCK_CONN_TYPE_TCP = 2,
|
||||
}CmsSockMgrConnType;
|
||||
|
||||
typedef enum{
|
||||
SOCK_MGR_DATA_TYPE_RAW = 1,
|
||||
SOCK_MGR_DATA_TYPE_HEX_STRING = 2,
|
||||
}CmsSockMgrDataType;
|
||||
|
||||
|
||||
typedef enum{
|
||||
SOCK_SOURCE_MINI = 0,
|
||||
SOCK_SOURCE_ATSKT ,
|
||||
SOCK_SOURCE_ECSOC ,
|
||||
SOCK_SOURCE_ATQIREF ,
|
||||
SOCK_SOURCE_SDKAPI ,
|
||||
SOCK_SOURCE_ECSRVSOC ,
|
||||
SOCK_SOURCE_MAX ,
|
||||
}CmsSockMgrSource;
|
||||
|
||||
typedef enum{
|
||||
SOCK_EVENT_CONN_STATUS = 0,
|
||||
SOCK_EVENT_CONN_DL = 1,
|
||||
SOCK_EVENT_CONN_UL_STATUS = 2,
|
||||
SOCK_EVENT_CONN_ERROR = 3,
|
||||
SOCK_EVENT_CONN_TCP_ACCEPT_CLIENT = 4, //for tcp server mode, accept client connection event
|
||||
SOCK_EVENT_CONN_TCP_REFUSE_CLIENT = 5,
|
||||
SOCK_EVENT_CONN_UL_TOTAL_STATUS =6,
|
||||
SOCK_EVENT_PROC_UL_PENDINGLIST =7,
|
||||
|
||||
|
||||
SOCK_EVENT_PROC_CONNECT_TIMEOUT_CLOSE = 8, /* this error is :
|
||||
1> received the error event under connect state
|
||||
2> dl data list has pendding data
|
||||
*/
|
||||
SOCK_EVENT_CONN_MAX = 255,
|
||||
}CmsSockMgrEventType;
|
||||
|
||||
typedef enum{
|
||||
SOCK_CONN_STATUS_CLOSED = 0,
|
||||
SOCK_CONN_STATUS_CREATED = 1,
|
||||
SOCK_CONN_STATUS_CONNECTING = 2,
|
||||
SOCK_CONN_STATUS_CONNECTED = 3,
|
||||
SOCK_CONN_DNS_RESOLVING = 4,
|
||||
SOCK_CONN_STATUS_CLOSING = 5,
|
||||
}CmsSockMgrConnStatus;
|
||||
|
||||
typedef enum{
|
||||
SOCK_MGR_IND_UL_STATUS = 1,
|
||||
SOCK_MGR_IND_UL_TOTAL_LEN_STATUS = 2,
|
||||
}CmsSockMgrInd;
|
||||
|
||||
typedef enum{
|
||||
SOCK_CONN_UL_STATUS_SUCCESS = 0,
|
||||
SOCK_CONN_UL_STATUS_FAIL = 1,
|
||||
}CmsSockMgrConnUlStatus;
|
||||
|
||||
typedef enum{
|
||||
SOCK_MGR_ACTION_OK = 1,
|
||||
SOCK_MGR_ACTION_TIMEOUT = 2,
|
||||
SOCK_MGR_ACTION_FAIL = 3,
|
||||
}CmsSockMgrActionResult;
|
||||
|
||||
typedef enum {
|
||||
SOCK_MGR_UL_SEQUENCE_STATE_DISCARD = 0,
|
||||
SOCK_MGR_UL_SEQUENCE_STATE_SENT = 1,
|
||||
}CmsSockMgrUlStatusResult;
|
||||
|
||||
typedef enum {
|
||||
/*
|
||||
* 401 - 500 are reserved for socket error
|
||||
*/
|
||||
CME_SOCK_MGR_ERROR_BASE = 401,
|
||||
CME_SOCK_MGR_ERROR_PARAM_ERROR, //parameter error
|
||||
CME_SOCK_MGR_ERROR_TOO_MUCH_INST, //too much socket instance
|
||||
CME_SOCK_MGR_ERROR_CREATE_SOCK_ERROR, //create socket error
|
||||
CME_SOCK_MGR_ERROR_OPERATION_NOT_SUPPORT, //operation not support
|
||||
CME_SOCK_MGR_ERROR_NO_FIND_CLIENT, //operation not support
|
||||
CME_SOCK_MGR_ERROR_CONNECT_FAIL, //connect failed
|
||||
CME_SOCK_MGR_ERROR_BIND_FAIL, //bind failed
|
||||
CME_SOCK_MGR_ERROR_SEND_FAIL, //send failed
|
||||
CME_SOCK_MGR_ERROR_NO_CONNECTED, //connect failed
|
||||
CME_SOCK_MGR_ERROR_IS_CONNECTED, //already connected
|
||||
CME_SOCK_MGR_ERROR_INVALID_STATUS,
|
||||
CME_SOCK_MGR_ERROR_CONNECT_TIMEOUT,
|
||||
CME_SOCK_MGR_ERROR_DELETE_FAIL,
|
||||
CME_SOCK_MGR_ERROR_SOCK_ERROR, //socket error
|
||||
CME_SOCK_MGR_ERROR_NO_MEMORY,
|
||||
CME_SOCK_MGR_ERROR_NO_MORE_DL_BUFFER_RESOURCE,
|
||||
CME_SOCK_MGR_ERROR_CONNECT_IS_ONGOING,
|
||||
CME_SOCK_MGR_ERROR_UL_SEQUENCE_INVALID,
|
||||
CME_SOCK_MGR_ERROR_SEND_REQUEST_FAIL,
|
||||
CME_SOCK_MGR_ERROR_SERVER_HASE_CREATED,
|
||||
CME_SOCK_MGR_ERROR_SET_DNS_SERVER_FAIL,
|
||||
CME_SOCK_MGR_ERROR_DNS_RESOLVE_FAIL,
|
||||
CME_SOCK_MGR_ERROR_LISTERN_FAIL,
|
||||
CME_SOCK_MGR_ERROR_SET_OPTION_FAIL,
|
||||
CME_SOCK_MGR_ERROR_PDP_CONTEXT_DEACTIVE,
|
||||
CME_SOCK_MGR_ERROR_PDP_CONTEXT_BIND_FAIL,
|
||||
CME_SOCK_MGR_ERROR_CONNECT_ID_USED,
|
||||
CME_SOCK_MGR_ERROR_UNKNOWN,
|
||||
|
||||
CME_SOCK_MGR_ERROR_MAX = 500
|
||||
}CmsSockMgrErrorCode;
|
||||
|
||||
typedef enum {
|
||||
/*
|
||||
* 0, 550 - 574 are reserved for ref socket error
|
||||
*/
|
||||
CME_REF_SOCK_SUCC = 0, //Operation success
|
||||
CME_REF_SOCK_UNKNOWN_ERROR = 550, //Unknown error
|
||||
CME_REF_SOCK_OPERATION_BLOCKED = 551, //Operation blocked
|
||||
CME_REF_SOCK_INVALID_PARAM = 552, //Invalid parameters
|
||||
CME_REF_SOCK_MEM_NOT_ENOUGH = 553, //Memory not enough
|
||||
CME_REF_SOCK_SOCK_CREATE_FAIL = 554, //Socket creation failed
|
||||
CME_REF_SOCK_OPERATION_NOT_SUPPORT = 555, //Operation not supported
|
||||
CME_REF_SOCK_SOCK_BIND_FAIL = 556, //Socket bind failed
|
||||
CME_REF_SOCK_SOCK_LISTEN_FAIL = 557, //Socket listen failed
|
||||
CME_REF_SOCK_SOCK_WRITE_FAIL = 558, //Socket write failed
|
||||
CME_REF_SOCK_SOCK_READ_FAIL = 559, //Socket read failed
|
||||
CME_REF_SOCK_ACCEPT_FAIL = 560, //Socket accept failed
|
||||
CME_REF_SOCK_PDP_CTX_OPEN_FAIL = 561, //PDP context opening failed
|
||||
CME_REF_SOCK_PDP_CTX_CLOSE_FAIL = 562, //PDP context closure failed
|
||||
CME_REF_SOCK_SOCK_ID_HAS_BEEN_USED = 563, //Socket Identity has been used
|
||||
CME_REF_SOCK_DNS_BUSY = 564, //DNS busy
|
||||
CME_REF_SOCK_DNS_PARSE_FAIL = 565, //DNS parse failed
|
||||
CME_REF_SOCK_SOCK_CONNECT_FAIL = 566, //Socket connect failed
|
||||
CME_REF_SOCK_SOCK_HAS_BEEN_CLOSE = 567, //Socket has been closed
|
||||
CME_REF_SOCK_OPERATION_BUSY = 568, //Operation busy
|
||||
CME_REF_SOCK_OPERATION_TIMEOUT = 569, //Operation timeout
|
||||
CME_REF_SOCK_PDP_CTX_BROKEN_DOWN = 570, //PDP contet broken down
|
||||
CME_REF_SOCK_CANCEL_SENDING = 571, //Cancel sending
|
||||
CME_REF_SOCK_OPERATION_NOT_ALLOWED = 572, //Operation not allowed
|
||||
CME_REF_SOCK_APN_NOT_CONFIGURED = 573, //APN not configured
|
||||
CME_REF_SOCK_PORT_BUSY = 574, //Port busy
|
||||
CME_REF_SOCK_SOCK_OPTION_SET_FAIL = 575, //Port busy
|
||||
|
||||
|
||||
/*here is a internal error for showing URC to applayer*/
|
||||
CME_REF_SOCK_BUFFSIZE_NOT_ENOUGH = 800,
|
||||
CME_REF_SOCK_MGR_ERROR_PARAM_ERROR = 801,
|
||||
|
||||
CME_REF_SOCK_MGR_WRITE_IS_ONGOING = 802, /*in this case the send length is litter than expect length, cms will
|
||||
continue to send the buffer,and NOT directly response SEND CNF until
|
||||
all raw data sent out*/
|
||||
CME_REF_SOCK_ERROR_MAX = 1024,
|
||||
}CmsRefSockErrorCode;
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* structure
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
typedef struct CmsSockDlBufContext_Tag
|
||||
{
|
||||
UINT16 dlLen; //the dl rawdata total len
|
||||
UINT16 remotePort;
|
||||
INT32 sockId;
|
||||
ip_addr_t remoteAddr;
|
||||
void *pData;
|
||||
struct CmsSockDlBufContext_Tag *pNext;
|
||||
}CmsSockDlBufContext;
|
||||
|
||||
typedef struct CmsSockUlPendingPriData_Tag
|
||||
{
|
||||
UINT8 accMode; /*AcceMode: 0,buffer mode;1.direct transfer mode;3. passthrough mode*/
|
||||
|
||||
UINT8 primId; /*requst prim id*/
|
||||
UINT16 offset; /*this flag marks the actural rawData send position when re-transmit */
|
||||
|
||||
UINT32 atHandle; /*at request handle, for response Send CNF*/
|
||||
UINT8 rawData[]; /*the actual send raw data*/
|
||||
|
||||
}CmsSockUlPendingPriData;
|
||||
|
||||
|
||||
typedef struct CmsSockUlPendingList_Tag
|
||||
{
|
||||
INT32 sockId; /*the sockId*/
|
||||
UINT16 leftLen; /*the send raw datalength*/
|
||||
UINT16 remotePort; /*remote port*/
|
||||
ip_addr_t remoteAddr; /*remote address*/
|
||||
|
||||
UINT32 addTicks; /*record the time that raw data adds into pending list*/
|
||||
|
||||
struct CmsSockUlPendingList_Tag *pNext;
|
||||
|
||||
UINT8 pData[];
|
||||
}CmsSockUlPendingList;
|
||||
|
||||
typedef struct CmsSockMgrContext_Tag{
|
||||
INT32 sockId; //the socket connection id
|
||||
|
||||
UINT8 source; //CmsSockMgrSource
|
||||
UINT8 type; //CmsSockMgrConnType
|
||||
BOOL hibEnable; //whether the socketid enable HIB/SLEEP2 option
|
||||
UINT8 status; //the socket connection status
|
||||
|
||||
UINT8 bServer; //the flag indicate whether the connection is or not server connection
|
||||
UINT8 hWaterOccur; //the flag that current this socket whether has reach highwater
|
||||
UINT16 localPort;
|
||||
|
||||
UINT8 domain;
|
||||
UINT8 errorThenCloseFlag:1;
|
||||
UINT8 resv0: 7 ;
|
||||
UINT16 dlCacheCalLen; /*Cal the DL buffer has Malloc but Not send out buffer size*/
|
||||
|
||||
|
||||
ip_addr_t localAddr;
|
||||
UINT32 connectStartTicks;
|
||||
UINT32 dlMaxLen;
|
||||
|
||||
void *eventCallback; //error/dl/ul status event callback
|
||||
CmsSockDlBufContext *pDlBufContext;
|
||||
CmsSockUlPendingList *pUlPendingList;
|
||||
struct CmsSockMgrContext_Tag *next;
|
||||
UINT8 priContext[]; //the sock mgr private context
|
||||
}CmsSockMgrContext;
|
||||
|
||||
/*
|
||||
|
||||
*
|
||||
*-------------------------------------------------------------------
|
||||
|CmsSockMgrDataContext | |
|
||||
*-------------------------------------------------------------------
|
||||
*--------------^ dlPdu data ^
|
||||
* DlPduBlock | | | |
|
||||
*--------------| | | |
|
||||
*^ pPdu--------| | --------
|
||||
*| |
|
||||
*-------------------------|
|
||||
*/
|
||||
typedef struct CmsSockMgrDataContext_Tag{
|
||||
UINT16 type; //data type, CmsSockMgrDataType
|
||||
UINT16 Length; //rcv data lenghth
|
||||
UINT16 totalLen; //dlpdu->length
|
||||
UINT16 offset; // the data point of the pdu,dlPdu->pPdu + offset, init the offset as sizeof(CmsSockMgrDataContext)
|
||||
DlPduBlock *dlPdu;
|
||||
struct CmsSockMgrDataContext_Tag *pNext;
|
||||
CHAR header[CMS_SOCK_MGR_DATA_HEADER_LENGTH_MAX];
|
||||
CHAR data[];
|
||||
}CmsSockMgrDataContext;
|
||||
|
||||
typedef struct CmsSockMgrMessage_Tag{
|
||||
UINT16 magic; //CMS_SOCK_MGR_MESSAGE_MAGIC
|
||||
UINT8 type; //CmsSockMgrMessageType
|
||||
UINT8 rsvd;
|
||||
UINT8 body[CMS_SOCK_MGR_MESSAGE_LENGTH_MAX];
|
||||
}CmsSockMgrMessage;
|
||||
|
||||
typedef struct CmsSockMgrRequest_Tag{
|
||||
UINT16 magic;
|
||||
UINT16 reqId;
|
||||
UINT32 reqTicks;
|
||||
UINT16 timeout;
|
||||
UINT8 source;
|
||||
UINT8 rsvd;
|
||||
void *reqBody; /* heap memory, struct desided by "reqId" */
|
||||
}CmsSockMgrRequest;
|
||||
|
||||
typedef struct CmsSockMgrEvent_Tag{
|
||||
UINT16 magic; //CMS_SOCK_MGR_EVENT_MAGIC
|
||||
UINT16 eventId; //CmsSockMgrInd
|
||||
UINT8 eventBody[CMS_SOCK_MGR_MESSAGE_LENGTH_MAX - 4];
|
||||
}CmsSockMgrEvent;
|
||||
|
||||
typedef struct CmsSockMgrResponse_Tag{
|
||||
UINT8 source;
|
||||
UINT8 reqId;
|
||||
UINT16 bodyLen; // < CMSSOCKMGRRESPONSELEN_MAX
|
||||
UINT8 body[];
|
||||
}CmsSockMgrResponse;
|
||||
|
||||
typedef struct CmsSockMgrConnStatusArg_Tag{
|
||||
UINT8 oldStatus; //CmsSockMgrConnStatus
|
||||
UINT8 newStatus;
|
||||
UINT16 cause;
|
||||
}CmsSockMgrConnStatusArg;
|
||||
|
||||
typedef struct CmsSockMgrConnDlArg_Tag{
|
||||
UINT16 fromPort;
|
||||
UINT16 rsvd;
|
||||
ip_addr_t fromAddr;
|
||||
CmsSockMgrDataContext *dataContext;
|
||||
}CmsSockMgrConnDlArg;
|
||||
|
||||
typedef struct CmsSockMgrConnUlStatusArg_Tag{
|
||||
UINT8 sequence;
|
||||
UINT8 status; //CmsSockMgrConnUlStatus
|
||||
UINT16 rsvd;
|
||||
}CmsSockMgrConnUlStatusArg;
|
||||
|
||||
typedef struct CmsSockMgrConnErrArg_Tag{
|
||||
INT32 errCode;
|
||||
}CmsSockMgrConnErrArg;
|
||||
|
||||
typedef struct CmsSockMgrConnAcceptClientArg_Tag{
|
||||
INT32 serverSocketId;
|
||||
INT32 clientSocketId;
|
||||
UINT16 clientPort;
|
||||
UINT16 rsvd;
|
||||
ip_addr_t clientAddr;
|
||||
}CmsSockMgrConnAcceptClientArg;
|
||||
|
||||
typedef struct CmsSockUlPendingListArg_Tag{
|
||||
UINT8 failCause; /*if failCause is not equal to 0,this is failed*/
|
||||
UINT8 resv0;
|
||||
UINT16 resv1;
|
||||
|
||||
void *pList;
|
||||
|
||||
}CmsSockUlPendingEventArg;
|
||||
|
||||
|
||||
typedef struct CmsSockMgrConnRefuseClientArg_Tag{
|
||||
INT32 serverSocketId;
|
||||
INT32 clientSocketId;
|
||||
UINT16 clientPort;
|
||||
UINT16 cause;
|
||||
ip_addr_t clientAddr;
|
||||
}CmsSockMgrConnRefuseClientArg;
|
||||
|
||||
typedef struct CmsSockMgrConnUlTotalStatusArg_Tag{
|
||||
UINT32 totalLen;
|
||||
}CmsSockMgrConnUlTotalStatusArg;
|
||||
|
||||
|
||||
enum {
|
||||
CMS_SOCK_MGR_UL_SEQUENCE_STATE_DISCARD = 0,
|
||||
CMS_SOCK_MGR_UL_SEQUENCE_STATE_SENT = 1,
|
||||
};
|
||||
|
||||
typedef struct CmsSockMgrUlStatusInd_Tag{
|
||||
INT32 sockId;
|
||||
INT32 ulStatus;//0->success, 1->fail/discard
|
||||
UINT32 sequence_state_bitmap[8];
|
||||
}CmsSockMgrUlStatusInd;
|
||||
|
||||
typedef struct CmsSockMgrUlTotalStatusInd_Tag{
|
||||
INT32 socketId;
|
||||
UINT32 hasSentTotalLent;
|
||||
}CmsSockMgrUlTotalStatusInd;
|
||||
|
||||
|
||||
typedef struct CmsCockMgrDnsResolveResult_tag
|
||||
{
|
||||
UINT8 result;
|
||||
UINT8 rsvd0;
|
||||
UINT16 rsvd1;
|
||||
ip_addr_t addrinfo;
|
||||
CHAR url[DNS_MAX_NAME_LENGTH];
|
||||
}CmsCockMgrDnsResolveResult;
|
||||
|
||||
typedef struct CmsSockMgrConnHibContext_Tag{
|
||||
UINT16 magic;
|
||||
UINT8 source;
|
||||
UINT8 type;
|
||||
INT32 sockId;
|
||||
UINT8 status;
|
||||
UINT8 domain;
|
||||
UINT16 localPort;
|
||||
ip_addr_t localAddr;
|
||||
void *eventCallback;
|
||||
UINT8 priContext[CMS_SOCK_MGR_HIB_PRIVATE_CONTEXT_MAX_LENGTH];
|
||||
}CmsSockMgrConnHibContext; //64 bytes
|
||||
|
||||
typedef struct CmsSockMgrHibContext_Tag{
|
||||
UINT16 magic; //CMS_SOCK_MGR_CONTEXT_MAGIC
|
||||
UINT16 flag;
|
||||
CmsSockMgrConnHibContext tcpContext; //64 bytes
|
||||
CmsSockMgrConnHibContext udpContext; //64 bytes
|
||||
}CmsSockMgrHibContext; // 92 bytes
|
||||
|
||||
|
||||
typedef enum CmsRefSockDataFormat_Tag
|
||||
{
|
||||
REF_SOCK_DATA_FORMAT_TEXT = 0,
|
||||
REF_SOCK_DATA_FORMAT_HEX = 1
|
||||
}CmsRefSockDataFormat;
|
||||
|
||||
typedef enum CmsRefSockViewMode_Tag
|
||||
{
|
||||
REF_SOCK_VIEW_MODE_HEADER_NEWLING_DATA = 0,//data header\r\ndata
|
||||
REF_SOCK_VIEW_MODE_HEADER_COMMA_DATA = 1//data header,data
|
||||
}CmsRefSockViewMode;
|
||||
|
||||
typedef enum CmsRefSockDataTransMode_Tag
|
||||
{
|
||||
REF_SOCK_DATA_TRANS_MODE_DISABLE_BLOCK = 0,//disable block mode
|
||||
REF_SOCK_DATA_TRANS_MODE_ENABLE_STREAM = 1//enable stream mode
|
||||
}CmsRefSockDataTransMode;
|
||||
|
||||
typedef struct CmsRefSockTcpKeepAliveParam_Tag
|
||||
{
|
||||
UINT16 idleTime;//cycle time to trigger keepalive, range value: 1-1800 sec
|
||||
UINT8 intervalTime;//range value:24-100 sec
|
||||
UINT8 probeCnt;//range value: 3-10
|
||||
}CmsRefSockTcpKeepAliveParam;
|
||||
|
||||
|
||||
typedef struct CmsRefSockCfgParam_Tag
|
||||
{
|
||||
UINT16 transPktSize; //transport paket size, range: 1-1460, def 1024 bytes
|
||||
UINT8 transWaitTm; //range: 0-20, def: 2 ms
|
||||
UINT8 rsvd;
|
||||
CmsRefSockDataFormat sendDataFormat;
|
||||
CmsRefSockDataFormat recvDataFormat;
|
||||
CmsRefSockViewMode viewMode;
|
||||
CmsRefSockDataTransMode udpRdMode;//UPD read mode
|
||||
CmsRefSockDataTransMode udpSendMode;//UDP send mode
|
||||
UINT8 bPassiveClose:1;//indicated whether auto disconnect when server close enable or not
|
||||
UINT8 bRecvInd:1;//indicated whether show length in recv URC on cache mode
|
||||
UINT8 bTcpServerAutoAccept:1;//indicated whether TCP auto accept enable or not
|
||||
UINT8 bTcpKeepAlive:1;//indicated whether TCP keep alive enable or not
|
||||
UINT8 bSendEcho:1;//indicated whether echo sent data by AT+QISDE enable or not
|
||||
UINT8 bSendInfoFlag:1 ;/*show QISEND/QISENDEX result 0 : not with URC;1: with +QISEND URC */
|
||||
UINT8 bresv:2;
|
||||
CmsRefSockTcpKeepAliveParam tcpKeepAliveParam;
|
||||
}CmsRefSockCfgParam; // 14 bytes
|
||||
|
||||
typedef void (*CmsSockMgrReqProcess)(CmsSockMgrRequest *Req, ip_addr_t *sourceAddr, UINT16 sourcePort, INT32 rcvRequestFd);
|
||||
|
||||
typedef void (*CmsSockMgrEventCallback)(CmsSockMgrContext *mgrContext, CmsSockMgrEventType eventType, void *eventArg);
|
||||
|
||||
typedef BOOL (*CmsSockMgrCheckHibMode)(CmsSockMgrContext *mgrContext);
|
||||
|
||||
typedef void (*CmsSockMgrStoreConnContext)(CmsSockMgrContext *sockMgrContext, CmsSockMgrConnHibContext *hibContext);
|
||||
typedef void (*CmsSockMgrRecoverConnContext)(CmsSockMgrConnHibContext *hibContext);
|
||||
|
||||
typedef BOOL (*CmsSockMgrTcpServerProcessAcceptClient)(CmsSockMgrContext* gMgrContext, INT32 clientSocketId, ip_addr_t *clientAddr, UINT16 clientPort);
|
||||
|
||||
typedef struct cmsSockMgrHandleDefine_Tag{
|
||||
UINT32 source;
|
||||
CmsSockMgrReqProcess reqProcess;
|
||||
CmsSockMgrCheckHibMode hibCheck;
|
||||
CmsSockMgrStoreConnContext storeHibContext;
|
||||
CmsSockMgrRecoverConnContext recoverHibContext;
|
||||
CmsSockMgrTcpServerProcessAcceptClient tcpServerProcessAcceptClient;
|
||||
}CmsSockMgrHandleDefine;
|
||||
|
||||
typedef struct CmsSockMgrDynamicHandleList_Tag{
|
||||
CmsSockMgrHandleDefine handle;
|
||||
struct CmsSockMgrDynamicHandleList_Tag *next;
|
||||
}CmsSockMgrDynamicHandleList;
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* function
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
//get ticks
|
||||
UINT32 cmsSockMgrGetCurrHibTicks(void);
|
||||
UINT32 cmsSockMgrGetCurrentSysTicks(void);
|
||||
|
||||
//cms sock mgr context related
|
||||
CmsSockMgrContext* cmsSockMgrGetContextList(void);
|
||||
CmsSockMgrContext* cmsSockMgrGetFreeMgrContext(UINT16 priLen);
|
||||
CmsSockMgrContext* cmsSockMgrFindMgrContextById(INT32 id);
|
||||
void cmsSockMgrRemoveContextById(INT32 id);
|
||||
void cmsSockMgrRemoveContext(CmsSockMgrContext *context);
|
||||
|
||||
|
||||
//cms sock related
|
||||
INT32 cmsSockMgrCreateSocket(INT32 domain, INT32 type, INT32 protocol, INT32 expect_fd);
|
||||
INT32 cmsSockMgrBindSocket(INT32 fd, UINT8 domain, UINT16 localPort, ip_addr_t *localAddr);
|
||||
INT32 cmsSockMgrConnectSocket(INT32 fd, UINT8 domain, UINT16 remotePort, ip_addr_t *remoteAddr, BOOL withTimeout);
|
||||
INT32 cmsSockMgrCloseSocket(INT32 fd);
|
||||
INT32 cmsSockMgrCreateTcpSrvSocket(INT32 domain, UINT16 listenPort, ip_addr_t *bindAddr, UINT8 listenNum, INT32 expect_fd);
|
||||
|
||||
CmsSockMgrConnStatus cmsSockMgrRebuildSocket(INT32 fd, ip_addr_t *localAddr, ip_addr_t *remoteAddr, UINT16 *localPort, UINT16 *remotePort, INT32 type);
|
||||
|
||||
CmsSockMgrConnStatus cmsSockMgrReCreateSocket(INT32 fd, INT32 domain, INT32 type);
|
||||
|
||||
//cms sock ul sequence status related
|
||||
BOOL cmsSockMgrGetUlPendingSequenceState(UINT32 bitmap[8], UINT8 sequence);
|
||||
void cmsSockMgrUpdateUlPendingSequenceBitMapState(UINT32 bitmap[8], UINT8 sequence, BOOL bActive);
|
||||
|
||||
//cms sock send request related
|
||||
CmsSockMgrActionResult cmsSockMgrSendAsyncRequest(UINT16 reqId, void *reqBody, CmsSockMgrSource source);
|
||||
CmsSockMgrActionResult cmsSockMgrSendsyncRequest(UINT16 reqId, void *reqBody, CmsSockMgrSource source, CmsSockMgrResponse *response, UINT16 timeout);
|
||||
|
||||
//event callback related
|
||||
void csmsSockMgrCallErrorEventCallback(CmsSockMgrContext* gMgrContext, INT32 errorCode);
|
||||
void cmsSockMgrCallStatusEventCallback(CmsSockMgrContext* gMgrContext, UINT8 oldStatus, UINT8 newStatus, UINT16 cause);
|
||||
void cmsSockMgrCallDlEventCallback(CmsSockMgrContext* gMgrContext, CmsSockMgrDataContext *dataContext, ip_addr_t *remoteAddr, UINT16 remotePort);
|
||||
void cmsSockMgrCallUlStatusEventCallback(CmsSockMgrContext* gMgrContext, UINT8 sequence, UINT8 status);
|
||||
void cmsSockMgrCallProcUlPendingCallBack(CmsSockMgrContext* gMgrContext,CmsSockUlPendingList *pList,UINT8 isTimeOut);
|
||||
CmsSockUlPendingList *cmsSockMgrInitUlPendingList(UINT16 len);
|
||||
|
||||
|
||||
//cms sock hibernate related
|
||||
BOOL cmsSockMgrEnableHibMode(CmsSockMgrContext *context);
|
||||
CmsSockMgrContext* cmsSockMgrGetHibContext(CmsSockMgrConnType type);
|
||||
void cmsSockMgrRecoverHibCallback(CmsSockMgrHibContext *hibContext);
|
||||
void cmsSockMgrEnterHibCallback(void *data, APSleepState state);
|
||||
|
||||
//cms sock mgr init related
|
||||
BOOL cmsSockMgrHandleInit(BOOL bWakeup);
|
||||
|
||||
//cms sock mgr handle register/unregister
|
||||
BOOL cmsSockMgrRegisterHandleDefine(CmsSockMgrHandleDefine *handleDefine);
|
||||
void cmsSockMgrUnregisterHandleDefine(UINT8 source);
|
||||
|
||||
|
||||
void cmsSockMgrSockDlCacheContext(void);
|
||||
void cmsSockMgrCallErrorEventCallback(CmsSockMgrContext* gMgrContext, UINT8 eventType,INT32 errorCode);
|
||||
void cmsSockMgrProcessWriteEvent(CmsSockMgrContext *pMgrContext);
|
||||
|
||||
void cmsSockMgrProcTimeOutEvent(void);
|
||||
void cmsSockMgrProcAcceptClientRequest(CmsSockMgrContext* gMgrContext, INT32 clientSocketId, ip_addr_t *clientAddr, UINT16 clientPort);
|
||||
|
||||
INT32 cmsSockMgrProcessReadEvent(CmsSockMgrContext *pMgrContext);
|
||||
INT32 cmsSockMgrProcDlCacheData(CmsSockDlBufContext *pList);
|
||||
INT32 cmsSockMgrSockRead(CmsSockMgrContext *pMgrContext);
|
||||
void cmsSockMgrProcessErrorEvent(CmsSockMgrContext *pMgrContext);
|
||||
void cmsSockMgrSockReCalHwater(void);
|
||||
BOOL cmsSockMgrProcDlCacheListBuffer(CmsSockMgrContext *pMgrContext);
|
||||
|
||||
|
||||
BOOL cmsSockMgrCheckPendingNodeIsTimeOut(CmsSockUlPendingList *pUlList);
|
||||
|
||||
INT32 cmsSockMgrAddUlNodeToPendingList(CmsSockMgrContext *pSockMgrContext,CmsSockUlPendingList *pAddist);
|
||||
|
||||
BOOL cmsSockMgrRemvUlPendingNode(CmsSockMgrContext *pSockMgrContext,CmsSockUlPendingList *pRemoveList);
|
||||
|
||||
INT32 cmsSockMgrRemvUlAllPendingList(CmsSockMgrContext *pSockMgrContext);
|
||||
|
||||
INT32 cmsSockMgrProcUlPendingList(void);
|
||||
|
||||
UINT32 cmsSockMgrQueryDlfcDefinedSize(void);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,387 @@
|
||||
#ifndef __MW_AON_INFO_H__
|
||||
#define __MW_AON_INFO_H__
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copy right: 2017-, Copyrigths of AirM2M Ltd.
|
||||
* File name: mw_aon_info.h
|
||||
* Description:
|
||||
* History: Rev1.0
|
||||
*
|
||||
****************************************************************************/
|
||||
#include "commontypedef.h"
|
||||
#include "mw_common.h"
|
||||
#include "cms_sock_mgr.h"
|
||||
#include "psdial.h"
|
||||
|
||||
/*
|
||||
* Differences between these MW config/AON files:
|
||||
* 1> mw_nvm_config.h
|
||||
* a) parameter value is still VALID, after reboot.
|
||||
* b) parameter value is still VALID, after FOTA (SW upgrading) if not erase the NVM in flash.
|
||||
* c) if not configed in NVM/flash, use the default value.
|
||||
* 2> mw_nvm_info.h
|
||||
* a) parameter value is still VALID, after reboot.
|
||||
* b) parameter value is not VALID (reset to default value), after FOTA (SW upgrading), if:
|
||||
* i> NVM in flash is erased, or
|
||||
* ii> NVM info structure size is changed, or
|
||||
* ii> NVM file version is changed.
|
||||
* c) if not configed in NVM/flash, use the default value.
|
||||
* 3> mw_aon_info.h
|
||||
* a) parameter value is still VALID, after wakeup from deep sleep
|
||||
* b) parameter value is not VALID, after reboot
|
||||
* 4> mw_common.h
|
||||
* a) middleware common header file, which included by "mw_nvm_config.h"&"mw_nvm_info.h"&"mw_aon_info.h"
|
||||
* b) As customers maybe have different requirements about how to maintain the config,
|
||||
* here could set the common structure in this file
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* MARCO/ENUM
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
#define MID_WARE_AON_MAGIC_WORDS 0xA3B5C7D9
|
||||
#define MID_WARE_AON_DNS_CFG_MAGIC 0xAB
|
||||
|
||||
/*
|
||||
* option param for netdevctl
|
||||
*/
|
||||
typedef enum MWAonNetDevCtlOp_Tag
|
||||
{
|
||||
MW_AON_NET_DEV_CTL_OP_BIND_CID_CANCEL = 0, //cancel cid band for lwip
|
||||
MW_AON_NET_DEV_CTL_OP_BIND_CID_ONCE = 1, //bind cid once for lwip, no retry after pdn deactivated/re-activated
|
||||
MW_AON_NET_DEV_CTL_OP_BIND_CID_REPEAT = 2, //bind cid repeat for lwip if pdn deactivated/re-activated
|
||||
MW_AON_NET_DEV_CTL_OP_BIND_CID_AUTO = 3, //auto dial to activate PDN with cid and bind it for lwip
|
||||
MW_AON_NET_DEV_CTL_OP_BIND_CID_UNKNOWN = 15 //unknown
|
||||
}MWAonNetDevCtlOp;
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* STRUCT
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
typedef struct MidWareSockAonInfo_Tag
|
||||
{
|
||||
CmsSockMgrHibContext sockContext;
|
||||
#ifdef FEATURE_REF_AT_ENABLE
|
||||
CmsRefSockCfgParam refSockConfig;
|
||||
UINT32 refSockErr;//CmsRefSockErrorCode
|
||||
#endif
|
||||
}MidWareSockAonInfo;
|
||||
|
||||
typedef struct MidWareSimSmsAddress_Tag
|
||||
{
|
||||
UINT8 typeOfNumber;
|
||||
UINT8 numberPlanId;
|
||||
UINT8 reserved;
|
||||
UINT8 length;
|
||||
UINT8 addressDigits[MID_WARE_SMS_SCA_LEN];
|
||||
}
|
||||
MidWareSimSmsAddress;
|
||||
|
||||
/*
|
||||
* SIM SMS parameters read from SIM or set by +CSCA/+CSMP
|
||||
*/
|
||||
typedef struct MidWareSimSmsParamsAonInfo_Tag
|
||||
{
|
||||
UINT8 bDestAddrPresent:1;
|
||||
UINT8 bScAddrPresent:1;
|
||||
UINT8 bProtocolIdPresent:1;
|
||||
UINT8 bCodingSchemePresent:1;
|
||||
UINT8 bValidityPeriodPresent:1;
|
||||
UINT8 reserved:3;
|
||||
UINT8 smsProtocolId;
|
||||
UINT8 smsDataCodingScheme;
|
||||
UINT8 validityPeriod;
|
||||
MidWareSimSmsAddress destAddr;
|
||||
MidWareSimSmsAddress scAddr;
|
||||
}MidWareSimSmsParamsAonInfo; // 92 bytes
|
||||
|
||||
typedef struct MidWareDefaultAonDnsCfg_Tag
|
||||
{
|
||||
UINT8 cid;
|
||||
UINT8 bValid;
|
||||
UINT8 magic; //MID_WARE_AON_DNS_CFG_MAGIC
|
||||
ip4_addr_t ipv4Dns[MID_WARE_DEFAULT_DNS_NUM];
|
||||
ip6_addr_t ipv6Dns[MID_WARE_DEFAULT_DNS_NUM];
|
||||
}MidWareDefaultAonDnsCfg; //48 bytes
|
||||
|
||||
|
||||
typedef MWCfgAtChanConfig MWAonAtChanConfig;
|
||||
|
||||
typedef struct MWAonNetParamCfg_Tag
|
||||
{
|
||||
UINT32 netDevCtlOp :4; //MWAonNetDevCtlOp
|
||||
UINT32 bNetDevCtlUrc :1; //whether report netdevctl urc or not
|
||||
UINT32 bNatEnable :1; //whether enable NAT(network address translation) or not, host uses local address if nat enable, or else use global address
|
||||
UINT32 bBindStateSucc :1; //whenter the state of bind cid for lwip is success or not
|
||||
UINT32 bBindStateReported :1; //whether the bind state urc reported or not
|
||||
|
||||
UINT32 cid :8; /* RNDIS/ECM bind CID */
|
||||
UINT32 resvd2 :16;
|
||||
|
||||
UINT8 localHostAddr[MID_WARE_IPV4_ADDR_LEN];
|
||||
}MWAonNetParamCfg; // 8 bytes
|
||||
|
||||
|
||||
/*
|
||||
* ppp link state
|
||||
*/
|
||||
typedef enum MWAonPppLinkState_Tag
|
||||
{
|
||||
MW_AON_PPP_LINK_STATE_NO_CARRIER = 0, // ppp link is no carrier.
|
||||
MW_AON_PPP_LINK_STATE_CONNECTING = 1, // ppp link is connecting.
|
||||
MW_AON_PPP_LINK_STATE_CONNECTED = 2, // ppp link is connected.
|
||||
}MWAonPppLinkState;
|
||||
|
||||
typedef struct MWAonPppParamCfg_Tag
|
||||
{
|
||||
UINT8 reqCid; // cid: 1- 15 or 0xFF
|
||||
UINT8 pppLinkState; // MWAonPppLinkState
|
||||
UINT16 atHandle;
|
||||
UINT32 bPppNeedActBearer : 1; // records whether ppp need to active the bearer.
|
||||
UINT32 rsvd : 31;
|
||||
}MWAonPppParamCfg; // 4 bytes
|
||||
|
||||
|
||||
typedef struct MWAonUrcCacheParamCfg_Tag
|
||||
{
|
||||
/* Wehther URC need to be suspended/cached. If enable, all URC should be cached in URC FIFO list and RI should be cached. */
|
||||
UINT8 urcCacheEnableFlag[MID_WARE_USED_AT_CHAN_NUM];
|
||||
}MWAonUrcCacheParamCfg; // 4 bytes
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Middleware info stored in AON memory, limited size: PMU_AON_MID_WARE_MEM_SIZE
|
||||
*
|
||||
******************************************************************************/
|
||||
typedef struct MidWareAonInfo_Tag
|
||||
{
|
||||
UINT32 bUtcTimeSync : 1; /* set 1 when time sync trigger after power on(by NITZ or SNTP) */
|
||||
UINT32 rsvd : 31;
|
||||
|
||||
/*
|
||||
* AT channel Aon config, ParamId: MW_CFG_AT_CHAN_1_CONFIG/...
|
||||
*/
|
||||
MWAonAtChanConfig atChanConfig[MID_WARE_USED_AT_CHAN_NUM]; //8*4 bytes
|
||||
|
||||
/*
|
||||
* PS DIAL AON Info
|
||||
*/
|
||||
PsDialAonInfo psDialAonInfo;
|
||||
|
||||
/*
|
||||
* socket aon info
|
||||
*/
|
||||
MidWareSockAonInfo mwSockAonInfo;
|
||||
|
||||
/*
|
||||
* SIM SMS parameters aon info
|
||||
*/
|
||||
MidWareSimSmsParamsAonInfo mwSimSmspAonInfo;
|
||||
|
||||
/*
|
||||
* mw aon dns server
|
||||
*/
|
||||
MidWareDefaultAonDnsCfg mwDefaultAonDns[MID_WARE_AON_DNS_CID_NUM]; //152 bytes
|
||||
|
||||
/*
|
||||
* mw net cfg param
|
||||
*/
|
||||
MWAonNetParamCfg mwNetParamCfgAonInfo;
|
||||
|
||||
|
||||
/*
|
||||
* mw aon ppp param cfg
|
||||
*/
|
||||
MWAonPppParamCfg mwPppParamCfgAonInfo;
|
||||
|
||||
/*
|
||||
* mw aon urc cache param cfg
|
||||
*/
|
||||
MWAonUrcCacheParamCfg mwUrcCacheParamCfgAonInfo;
|
||||
|
||||
}MidWareAonInfo;
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* API
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* INIT
|
||||
*/
|
||||
void mwAonInfoInit(void);
|
||||
|
||||
void mwAonSaveConfig(void);
|
||||
|
||||
/*
|
||||
* used for SOCK task
|
||||
*/
|
||||
MidWareSockAonInfo* mwGetSockAonInfo(void);
|
||||
void mwSetSockAonInfo(MidWareSockAonInfo *pSockAonInfo);
|
||||
void mwAonSockInfoChanged(void);
|
||||
|
||||
/**
|
||||
\fn void mwAonTaskRecovery(void)
|
||||
\brief Need recovery some middle ware task, after wakeup from HIB/Sleep2
|
||||
\param[in] void
|
||||
\returns void
|
||||
\ Called in CMS task, when task wakeup from deep sleep
|
||||
*/
|
||||
void mwAonTaskRecovery(void);
|
||||
|
||||
/**
|
||||
\fn BOOL mwAonBeUtcTimeSync(void)
|
||||
\brief Whether UTC time already synced/set
|
||||
\param[in] void
|
||||
\returns BOOL
|
||||
\ Note: Only could be called after CMS task start up
|
||||
*/
|
||||
BOOL mwAonBeUtcTimeSync(void);
|
||||
|
||||
|
||||
/**
|
||||
\fn void mwAonSetUtcTimeSyncFlag(BOOL bSync)
|
||||
\brief Set UTC time sync flag, be syned or not
|
||||
\param[in] bSync BOOL
|
||||
\returns void
|
||||
\ Note: Only could be called after CMS task start up
|
||||
*/
|
||||
void mwAonSetUtcTimeSyncFlag(BOOL bSync);
|
||||
|
||||
|
||||
/**
|
||||
\fn void mwAonPsDialInfoChanged(void)
|
||||
\brief PS DAIL AON info changed, need to write to flash
|
||||
\returns void
|
||||
*/
|
||||
void mwAonPsDialInfoChanged(void);
|
||||
|
||||
/**
|
||||
\fn mwGetSimSmspAonInfo
|
||||
\brief Get middle ware SIM smsp AON info
|
||||
\param[out] MidWareSimSmsParamsAonInfo *pSimSmspAonInfo
|
||||
\returns void *
|
||||
*/
|
||||
void mwGetSimSmspAonInfo(MidWareSimSmsParamsAonInfo *pSimSmspAonInfo);
|
||||
|
||||
/**
|
||||
\fn mwSetSimSmspAonInfo
|
||||
\brief Set middle ware SIM smsp AON info
|
||||
\param[in] MidWareSimSmsParamsAonInfo *pSimSmspAonInfo
|
||||
\returns void
|
||||
*/
|
||||
void mwSetSimSmspAonInfo(MidWareSimSmsParamsAonInfo *pSimSmspAonInfo);
|
||||
|
||||
|
||||
/**
|
||||
\fn void mwAonSetDefaultAonDnsCfgAndSave((MidWareDefaultAonDnsCfg *mwDefaultAonDnsCfg))
|
||||
\brief Set default AON dns cfg
|
||||
\param[in] mwDefaultAonDnsCfg default AON dns cfg
|
||||
\returns void
|
||||
*/
|
||||
void mwAonSetDefaultAonDnsCfgAndSave(MidWareDefaultAonDnsCfg *mwDefaultAonDnsCfg);
|
||||
|
||||
/**
|
||||
\fn void mwAonGetDefaultAonDnsCfg(UINT8 cid, MidWareDefaultAonDnsCfg *mwDefaultAonDnsCfg)
|
||||
\brief get default AON dns cfg by cid
|
||||
\param[in] mwDefaultAonDnsCfg default AON dns cfg
|
||||
\returns void
|
||||
*/
|
||||
void mwAonGetDefaultAonDnsCfg(UINT8 cid, MidWareDefaultAonDnsCfg *mwDefaultAonDnsCfg);
|
||||
|
||||
/**
|
||||
\fn void mwAonGetAllAtChanConfig(MWAonAtChanConfig *pAtChanConfig)
|
||||
\brief get AON atChanConfig
|
||||
\param[out] MWAonAtChanConfig *pAtChanConfig
|
||||
\returns void
|
||||
*/
|
||||
void mwAonGetAllAtChanConfig(MWAonAtChanConfig *pAtChanConfig);
|
||||
|
||||
/**
|
||||
\fn void mwAonSetAndSaveAtChanConfig(MWAonAtChanConfig *pAtChanConfig)
|
||||
\brief Set and save atChanConfig
|
||||
\param[in] MWAonAtChanConfig *pAtChanConfig
|
||||
\Return void
|
||||
*/
|
||||
void mwAonSetAndSaveAllAtChanConfig(MWAonAtChanConfig *pAtChanConfig);
|
||||
|
||||
/*
|
||||
* get one AT channel config item value
|
||||
*/
|
||||
UINT32 mwAonGetAtChanConfigItemValue(UINT8 chanId, MidWareATChanCfgEnum cfgEnum);
|
||||
|
||||
/*
|
||||
* set and save one AT channel config item value
|
||||
*/
|
||||
void mwAonSetAndSaveAtChanConfigItemValue(UINT8 chanId, MidWareATChanCfgEnum cfgEnum, UINT32 value);
|
||||
|
||||
/*
|
||||
* set one AT channel config item value, need call API: mwAonSaveConfig()
|
||||
*/
|
||||
void mwAonSetAtChanConfigItemValue(UINT8 chanId, MidWareATChanCfgEnum cfgEnum, UINT32 value, BOOL *bChanged);
|
||||
|
||||
/**
|
||||
\fn void mwAonSetNetParamCfgAndSave((MWAonNetParamCfg *mwAonNetParamCfg))
|
||||
\brief Set AON net param cfg
|
||||
\param[in] MWAonNetParamCfg AON net param cfg
|
||||
\returns void
|
||||
*/
|
||||
void mwAonSetNetParamCfgAndSave(MWAonNetParamCfg *pMwAonNetParamCfg);
|
||||
|
||||
/**
|
||||
\fn MWAonNetParamCfg * mwAonGetNetParamCfg(void)
|
||||
\brief get net param cfg
|
||||
\param[in] MWAonNetParamCfg AON net param cfg
|
||||
\returns void
|
||||
*/
|
||||
void mwAonGetNetParamCfg(MWAonNetParamCfg *pMwAonNetParamCfg);
|
||||
|
||||
/**
|
||||
\fn MWAonPppParamCfg * mwAonGetPppParamCfg(void)
|
||||
\brief get Ppp param cfg
|
||||
\param[in] MWAonPppParamCfg AON Ppp param cfg
|
||||
\returns void
|
||||
*/
|
||||
void mwAonGetPppParamCfg(MWAonPppParamCfg *pMwAonPppParamCfg);
|
||||
|
||||
/**
|
||||
\fn void mwAonSetPppParamCfgAndSave((MWAonPppParamCfg *pMwAonPppParamCfg))
|
||||
\brief Set AON Ppp param cfg
|
||||
\param[in] MWAonPppParamCfg AON net param cfg
|
||||
\returns void
|
||||
*/
|
||||
void mwAonSetPppParamCfgAndSave(MWAonPppParamCfg *pMwAonPppParamCfg);
|
||||
|
||||
/**
|
||||
\fn void mwAonGetUrcCacheEnableItemValue(UINT8 *val)
|
||||
\brief get the AON urcCache Enable configuration value
|
||||
\param[in] UINT8 *val : the get aon cache enable pointer
|
||||
\returns void
|
||||
*/
|
||||
void mwAonGetUrcCacheEnableItemValue(UINT8 *val);
|
||||
|
||||
/**
|
||||
\fn void mwAonSetUrcCacheEnableItemValue(UINT8 val)
|
||||
\brief set the AON urcCache Enable value
|
||||
\param[in] UINT8 val : the setting urcCache Enable value
|
||||
\returns void
|
||||
*/
|
||||
void mwAonSetUrcCacheEnableItemValue(UINT8 val);
|
||||
|
||||
UINT8 mwAonGetUrcCacheParamCfg(UINT8 chanId);
|
||||
|
||||
void mwAonSetUrcCacheParamCfgAndSave(UINT8 chanId, UINT8 urcCacheEnableFlag);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,186 @@
|
||||
#ifndef __MW_COMMON_H__
|
||||
#define __MW_COMMON_H__
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copy right: 2017-, Copyrigths of AirM2M Ltd.
|
||||
* File name: mw_common.h
|
||||
* Description: middleware common configuration header file
|
||||
* History: Rev1.0 2019-04-10
|
||||
*
|
||||
****************************************************************************/
|
||||
#include "osasys.h"
|
||||
#include "cms_def.h"
|
||||
|
||||
/*
|
||||
* Differences between these MW config/AON files:
|
||||
* 1> mw_nvm_config.h
|
||||
* a) parameter value is still VALID, after reboot.
|
||||
* b) parameter value is still VALID, after FOTA (SW upgrading) if not erase the NVM in flash.
|
||||
* c) if not configed in NVM/flash, use the default value.
|
||||
* 2> mw_nvm_info.h
|
||||
* a) parameter value is still VALID, after reboot.
|
||||
* b) parameter value is not VALID (reset to default value), after FOTA (SW upgrading), if:
|
||||
* i> NVM in flash is erased, or
|
||||
* ii> NVM info structure size is changed, or
|
||||
* ii> NVM file version is changed.
|
||||
* c) if not configed in NVM/flash, use the default value.
|
||||
* 3> mw_aon_info.h
|
||||
* a) parameter value is still VALID, after wakeup from deep sleep
|
||||
* b) parameter value is not VALID, after reboot
|
||||
* 4> mw_common.h
|
||||
* a) middleware common header file, which included by "mw_nvm_config.h"&"mw_nvm_info.h"&"mw_aon_info.h"
|
||||
* b) As customers maybe have different requirements about how to maintain the config,
|
||||
* here could set the common structure in this file
|
||||
*/
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* MARCO/MARCO
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* CMS/AT channel 0 is reserved for internal
|
||||
*/
|
||||
|
||||
#define MID_WARE_DM_APPKEY_LEN 11 /*for cmcc dm model*/
|
||||
#define MID_WARE_DM_SECRET_LEN 33 /*for cmcc dm model*/
|
||||
#define MID_WARE_DM_LOCATION_LEN 15 /*for cmcc dm model*/
|
||||
|
||||
#define MID_WARE_AON_DNS_CID_NUM 3
|
||||
#define MID_WARE_DEFAULT_DNS_NUM 2
|
||||
#define MID_WARE_IPV4_ADDR_LEN 4
|
||||
#define MID_WARE_IPV6_ADDR_LEN 16
|
||||
|
||||
#define MID_WARE_DM_SIM_CCID_LEN 24 /*for dm model*/
|
||||
#define MID_WARE_DM_SIM_IMSI_LEN 18 /*for dm model*/
|
||||
#define MID_WARE_DM_IMEI_LEN 18 /*for dm model*/
|
||||
|
||||
#define MID_WARE_DM_MODEL_LEN 24 /*for ctcc dm model*/
|
||||
#define MID_WARE_DM_SWVER_LEN 64 /*for dm swver*/
|
||||
#define MID_WARE_DM_HWVER_LEN 64 /*for dm swver*/
|
||||
|
||||
#define MID_WARE_DM_PRODUCT_KEY_LEN (20) /*for cucc dm mqtt product key*/
|
||||
#define MID_WARE_DM_PRODUCT_SECRET_LEN (36) /*for cucc dm mqtt product secret*/
|
||||
#define MID_WARE_DM_DEVICE_KEY_LEN (36) /*for cucc dm mqtt device key*/
|
||||
#define MID_WARE_DM_DEVICE_SECRET_LEN (100) /*for cucc dm mqtt device secret*/
|
||||
|
||||
#define MID_WARE_DM_MANUFACTURE_LEN (16) /*for cucc dm mqtt product key*/
|
||||
#define MID_WARE_DM_MODULE_TYPE_LEN (24) /*for cucc dm mqtt product key*/
|
||||
#define MID_WARE_DM_MODULE_SW_LEN (32) /*for cucc dm mqtt product key*/
|
||||
#define MID_WARE_DM_MODULE_HW_LEN (32) /*for cucc dm mqtt product key*/
|
||||
|
||||
#define MID_WARE_SMS_SCA_LEN 40 /*for SMS service centre address length*/
|
||||
#define MID_WARE_SMS_VP_MAX_LEN 7 /*for SMS Validity-Period length*/
|
||||
|
||||
#define MID_WARE_CSCS_MAX_LEN 10 /*for CSCS character set*/
|
||||
|
||||
#define MID_WARE_CTW_SOFTVERSION_LEN 24 /*for ctwing materkey*/
|
||||
#define MID_WARE_CTW_MODULE_LEN 24 /*for ctwing deviceid*/
|
||||
#define MID_WARE_CTW_CHIPTYPR_LEN 24 /*for ctwing password*/
|
||||
|
||||
#define MID_WARE_CTW_MASTERKEY_LEN 32 /*for ctwing materkey*/
|
||||
#define MID_WARE_CTW_DEVICEID_LEN 72 /*for ctwing deviceid*/
|
||||
#define MID_WARE_CTW_PASSWD_LEN 43 /*for ctwing password*/
|
||||
|
||||
#define MID_WARE_CTW_MQTT_URI_LEN 128 /*for ctwing mqtt uri*/
|
||||
#define MID_WARE_CTW_MQTT_CLIENT_ID_LEN 64 /*for ctwing mqtt client id*/
|
||||
#define MID_WARE_CTW_MQTT_USER_NAME_LEN 72 /*for ctwing mqtt user name*/
|
||||
#define MID_WARE_CTW_MQTT_PASSWD_LEN 72 /*for ctwing mqtt password*/
|
||||
|
||||
|
||||
typedef enum MidWareATChanCfgEnum_Tag
|
||||
{
|
||||
MID_WARE_AT_CHAN_ECHO_CFG, //ATE0/ATE1
|
||||
MID_WARE_AT_CHAN_SUPPRESS_CFG, //ATQ0/ATQ1
|
||||
MID_WARE_AT_CHAN_CREG_RPT_CFG, //CmiMmCregModeEnum
|
||||
MID_WARE_AT_CHAN_CEREG_RPT_CFG, //CmiPsCeregModeEnum
|
||||
MID_WARE_AT_CHAN_EDRX_RPT_CFG, //TRUE/FALSE
|
||||
MID_WARE_AT_CHAN_CIOT_OPT_RPT_CFG, //CmiMmCiotReportModeEnum
|
||||
MID_WARE_AT_CHAN_CSCON_RPT_CFG, //CSCON
|
||||
MID_WARE_AT_CHAN_SMS_MODE_CFG, //PDU mode/TEXT mode
|
||||
MID_WARE_AT_CHAN_TIME_ZONE_REP_CFG, //CTZR
|
||||
MID_WARE_AT_CHAN_TIME_ZONE_UPD_CFG, //CTZU
|
||||
MID_WARE_AT_CHAN_CMEE_CFG, //CMEE
|
||||
MID_WARE_AT_CHAN_ECCESQ_RPT_CFG, //ECCESQ
|
||||
MID_WARE_AT_CHAN_CGEREP_MODE_CFG, //CGEREP
|
||||
MID_WARE_AT_CHAN_PSM_RPT_CFG, //ECPSMR
|
||||
MID_WARE_AT_CHAN_EMM_TIME_RPT_CFG, //ECEMMTIME
|
||||
MID_WARE_AT_CHAN_PTW_EDRX_RPT_CFG, //ECPTWEDRXP
|
||||
MID_WARE_AT_CHAN_ECPIN_STATE_RPT_CFG, //ECPIN
|
||||
MID_WARE_AT_CHAN_ECPADDR_RPT_CFG, //ECPADDR
|
||||
MID_WARE_AT_CHAN_ECPCFUN_RPT_CFG, //ECPCFUN
|
||||
MID_WARE_AT_CHAN_ECLED_MODE_CFG, //ECLEDMODE
|
||||
MID_WARE_AT_CHAN_ECPURC_HIB_RPT_CFG, //ECPURC HIB report
|
||||
MID_WARE_AT_CHAN_SMS_SERVICE_CFG, //SMS select message service, for +CSMS
|
||||
MID_WARE_AT_CHAN_SMS_TEXT_SHOW_CFG, //SMS whether header info in show in text mode result ode =-, for +CSMS
|
||||
MID_WARE_AT_CHAN_ECPURC_SLP2_RPT_CFG, //ECPURC SLP2 report
|
||||
MID_WARE_AT_CHAN_ECPURC_SLP1_RPT_CFG, //ECPURC SLP1 report
|
||||
MID_WARE_AT_CHAN_SMS_MEM_CAP_CFG, //SMS Memory Capacity Exceeded flag
|
||||
MID_WARE_AT_CHAN_DCD_MODE_CFG, //AT&C[value] DCD mode
|
||||
MID_WARE_AT_CHAN_DTR_MODE_CFG, //AT&D[value] DTR mode
|
||||
MID_WARE_AT_CHAN_ECSMSFULL_RPT_CFG, //ECSMSFULL
|
||||
|
||||
MID_WARE_AT_CHAN_CFG_MAX
|
||||
}MidWareATChanCfgEnum;
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* STRUCT
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
/*
|
||||
* AT CMD channel config
|
||||
* paramId: MW_CFG_AT_CHAN_1_CONFIG/...
|
||||
*/
|
||||
typedef struct _SIG_EPAT_MW_CFG_AT_CHAN_1_CONFIG
|
||||
{
|
||||
UINT32 chanId : 4; //PSDecoderChann, currently, only one channel used for ATCMD: PS_CHANNEL_MODEM
|
||||
UINT32 echoValue : 1; //ATE0/ATE1, set whether need to echo each AT CMD REQ
|
||||
UINT32 suppressionValue : 1; //ATQ0/ATQ1, whether suppress result code
|
||||
UINT32 cregRptMode : 2; //CmiMmCregModeEnum
|
||||
|
||||
UINT32 ceregRptMode : 3; //CmiPsCeregModeEnum
|
||||
UINT32 needEdrxRpt : 1; //AT+CEDRXS, whether need to report EDRX value, when EDRX value changes
|
||||
UINT32 needCiotOptRpt : 3; //CmiMmCiotReportModeEnum
|
||||
UINT32 smsSendMode : 1; //+CMGF=[<n>] Pdu/Text mode, PsilSmsFormatMode
|
||||
|
||||
UINT32 csconRptMode : 2; //+CSCON=[<n>], AtcCSCONRptLevel
|
||||
UINT32 cmeeMode : 2; //+CMEE, AtcCMEERetType
|
||||
UINT32 timeZoneRptMode : 2; //+CTZR, AtcCTZRRptValue
|
||||
UINT32 timeZoneUpdMode : 1; //+CTZU, AtcCTZUUpdateValue
|
||||
UINT32 cgerepMode : 1; //+CGEREP, AtcCGEREPMode
|
||||
|
||||
UINT32 eccesqRptMode : 2; //+ECCESQ, AtcECCESQRptValue
|
||||
UINT32 ecpsmRptMode : 1; //+ECPSMR, AtcECPSMRValue
|
||||
UINT32 ecemmtimeRptMode : 3; //+ECEMMTIME
|
||||
UINT32 ecPtwEdrxRpt : 1; //AT+ECPTWEDRXS, whether need to report PTW/EDRX value, when PTW/EDRX value changes
|
||||
UINT32 ecpinRptMode : 1; //+ECPIN,
|
||||
|
||||
UINT32 ecpaddrRptMode : 1; //+ECPADDR
|
||||
UINT32 ecpcfunRptMode : 1; //+ECPCFUN
|
||||
UINT32 ecledMode : 1; //+ECLEDMODE
|
||||
UINT32 ecHibRptMode : 1; //+ECPURC=Hibnate,enable
|
||||
UINT32 smsService : 1; //+CSMS=<Service>, value is 0 or 1, and 128 not support currently.
|
||||
UINT32 smsShowMode : 1; //+CSDH 0, do not show header value, show header info in text mode result codes.
|
||||
UINT32 ecSlp2RptMode : 1; //+ECPURC=SLEEP2,enable
|
||||
UINT32 ecSlp1RptMode : 1; //+ECPURC=SLEEP1,enable
|
||||
|
||||
UINT32 smsMemCapExceed : 1; //SMS Memory Capacity Exceeded flag
|
||||
UINT32 dcdMode : 1; //AT&C[value] Circuit 109 (Received line signal detector) behaviour
|
||||
UINT32 dtrMode : 2; //AT&D[value] Circuit 108 (Data terminal ready) behaviour
|
||||
UINT32 ecsmsfullRptMode : 1; //+ECSMSFULL, 0: not report; 1: report when SMS memfull after bootup/+CMGW/+CMTI
|
||||
UINT32 rsvd0 : 19; //VALUE is 0
|
||||
}MWCfgAtChanConfig; // 8 bytes
|
||||
|
||||
/******************************************************************************
|
||||
*****************************************************************************
|
||||
* API
|
||||
*****************************************************************************
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
#ifndef _MW_INIT_H_
|
||||
#define _MW_INIT_H_
|
||||
|
||||
void middleware_init(void);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user