From 15b206e26c18916b34578ae1521cc13274fb8340 Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期五, 27 六月 2025 18:49:04 +0800 Subject: [PATCH] 加入delay去掉进入休眠打印(会导致无法休眠),lora加mk进入休眠功耗16ua左右 --- keil/include/components/internet/src/AIR780EDriver.c | 637 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 637 insertions(+), 0 deletions(-) diff --git a/keil/include/components/internet/src/AIR780EDriver.c b/keil/include/components/internet/src/AIR780EDriver.c new file mode 100644 index 0000000..369b190 --- /dev/null +++ b/keil/include/components/internet/src/AIR780EDriver.c @@ -0,0 +1,637 @@ +/******************************************************************************* + * File Name : AIR780EDriver.c + * Description : + * Created on : 2018年5月22日 + * Author : 杜键 + *******************************************************************************/ + +/******************************************************************************* + * Include Files * + *******************************************************************************/ +#include "AIR780EDriver.h" + +#include "AIR780EFSM.h" +#include "string.h" +#include "stdarg.h" +#include "mk_gpio.h" +#include "UART.h" +#include "HIDO_Timer.h" +#include "HIDO_Util.h" +#include "HIDO_Debug.h" +#include "HIDO_Log.h" + +/******************************************************************************* + * Macro * + *******************************************************************************/ +/* 串口相关 */ +#define AIR780E_UART_TX_BUF_SIZE (100) /* 串口未使用DMA模式,不需要buff */ +#define AIR780E_UART_RX_BUF_SIZE (1024) +#define AIR780E_UART_TX_QUEUE_MEMBER_CNT 8 /* 串口未使用DMA模式,不需要 */ + +/* AT相关 */ +#define AIR780E_AT_SEND_BUF_SIZE (128) /* 发送的单条AT指令的最大长度 */ +#define AIR780E_AT_RECV_BUF_SIZE (128) /* 单挑AT指令 */ + +/******************************************************************************* + * Type Definition * + *******************************************************************************/ + +/******************************************************************************* + * Local Variable * + *******************************************************************************/ +static HIDO_UINT8 l_au8AIR780EUartRxBuf[AIR780E_UART_RX_BUF_SIZE]; +static HIDO_UINT8 l_au8AIR780EUartTxBuf[AIR780E_UART_TX_BUF_SIZE]; + +static HIDO_UINT8 l_au8ATSendBuf[AIR780E_AT_SEND_BUF_SIZE]; +static HIDO_UINT8 l_au8ATRecvBuf[AIR780E_AT_RECV_BUF_SIZE]; + +static ST_AIR780EDriverData l_stDriverData; +static HIDO_ATLiteDeviceStruct l_stAIR780EDevice; +static HIDO_UINT32 l_u32ConnectLen = 0; + +static const HIDO_ATLiteCmdSetStruct l_astATCmdSetList[] = +{ + { "OK", HIDO_AT_EVENT_OK }, + { "SHUT OK", HIDO_AT_EVENT_OK }, + { "+CME ERROR:", HIDO_AT_EVENT_ERROR }, + { "ERROR", HIDO_AT_EVENT_ERROR }, + { "+CREG:", AIR780E_EVENT_CREG }, + { "+CGREG:", AIR780E_EVENT_CGREG }, + { "+CGATT:", AIR780E_EVENT_CGATT }, + { "+CSQ:", AIR780E_EVENT_CSQ }, + { "+CIPGSMLOC:", AIR780E_EVENT_LBS_LOCATION }, + { "+CPIN:", AIR780E_EVENT_CPIN }, + { ">", AIR780E_EVENT_ACK }, + { "+CMTI:", AIR780E_EVENT_NEW_SMS }, + { "+CMGR:", AIR780E_EVENT_READ_SMS }, + { "SEND OK", AIR780E_EVENT_SEND_OK }, + { "SEND FAIL", AIR780E_EVENT_SEND_FAIL }, + + { "+QIOPEN:", AIR780E_EVENT_OPEN }, + { "+QIURC: \"recv\",", AIR780E_EVENT_NEW_IP_DATA }, + { "+QIURC: \"closed\",", AIR780E_EVENT_CLOSE }, + { "+QISEND:", AIR780E_EVENT_SEND }, + { "+QIRD:", AIR780E_EVENT_READ }, + { "CONNECT", AIR780E_EVENT_CONNECT }, + { "+QFLST:", AIR780E_EVENT_QFLST }, + { "+QFOPEN:", AIR780E_EVENT_QFOPEN }, + { "+QHTTPGET:", AIR780E_EVENT_QHTTPGET }, + { "+QHTTPPOST:", AIR780E_EVENT_QHTTPPOST }, + { "+QHTTPREAD:", AIR780E_EVENT_QHTTPREAD }, + { "+QHTTPREADFILE:", AIR780E_EVENT_QHTTPREADFILE }, + { "+QHTTPPOSTFILE:", AIR780E_EVENT_QHTTPPOSTFILE }, + { "+QGPSLOC:", AIR780E_EVENT_QGPSLOC }, + { "+CCLK:", AIR780E_EVENT_CCLK }, + { "+QGPSXTRADATA:", AIR780E_EVENT_QGPSXTRADATA }, + { "+QIURC: \"pdpdeact\"", AIR780E_EVENT_PDPDEACT }, + { "+QMTOPEN:", AIR780E_EVENT_QMTOPEN }, + { "+QMTCLOSE:", AIR780E_EVENT_QMTCLOSE }, + { "+QMTCONN:", AIR780E_EVENT_QMTCONN }, + { "+QMTDISC:", AIR780E_EVENT_QMTDISC }, + { "+QMTSUB:", AIR780E_EVENT_QMTSUB }, + { "+QMTUNS:", AIR780E_EVENT_QMTUNS }, + { "+QMTPUBEX:", AIR780E_EVENT_QMTPUBEX }, + { "+QMTRECV:", AIR780E_EVENT_QMTRECV }, + { "+QMTPING:", AIR780E_EVENT_QMTPING }, + { "+QMTSTAT:", AIR780E_EVENT_QMTSTAT }, + { "+CCID:", AIR780E_EVENT_CCID }, + { "RDY", AIR780E_EVENT_RDY }, + { "+CTTS:", AIR780E_EVENT_QTTS }, + { "+QLTONE:", AIR780E_EVENT_QLTONE }, + { "+RECEIVE,", AIR780E_EVENT_RECEIVE }, + + { "0", AIR780E_EVENT_NUM_0 }, + { "1", AIR780E_EVENT_NUM_1 }, + { "2", AIR780E_EVENT_NUM_2 }, + { "3", AIR780E_EVENT_NUM_3 }, + { "4", AIR780E_EVENT_NUM_4 }, + { "5", AIR780E_EVENT_NUM_5 }, + { "6", AIR780E_EVENT_NUM_6 }, + { "7", AIR780E_EVENT_NUM_7 }, + { "8", AIR780E_EVENT_NUM_8 }, + { "9", AIR780E_EVENT_NUM_9 }, +}; + +static const HIDO_CHAR * const l_apcEventName[AIR780E_EVENT_LAST]={ + HIDO_EVENT_ENTRY_NAME, + HIDO_EVENT_EXIT_NAME, + "HIDO_AT_EVENT_OK", + "HIDO_AT_EVENT_ERROR", + "HIDO_AT_EVENT_TIMEOUT", + "HIDO_AT_EVENT_SEND_ERROR", + "AIR780E_EVENT_OK", + "AIR780E_EVENT_CREG", + "AIR780E_EVENT_CGREG", + "AIR780E_EVENT_CGATT", + "AIR780E_EVENT_CSQ", + "AIR780E_EVENT_LBS_LOCATION", + "AIR780E_EVENT_CPIN", + "AIR780E_EVENT_INIT_TIMEOUT", + + "AIR780E_EVENT_DELAY", + "-AIR780E_EVENT_POLL", + "AIR780E_EVENT_ACK", + "AIR780E_EVENT_NEW_SMS", + "AIR780E_EVENT_READ_SMS", + "AIR780E_EVENT_SMS_DATA", + "AIR780E_EVENT_NEW_IP_DATA", + + "AIR780E_EVENT_CCID", + "AIR780E_EVENT_OPEN", + "AIR780E_EVENT_SEND", + "AIR780E_EVENT_SEND_OK", + "AIR780E_EVENT_SEND_FAIL", + "AIR780E_EVENT_CLOSE", + "AIR780E_EVENT_READ", + "AIR780E_EVENT_CONNECT", + "AIR780E_EVENT_QFLST", + "AIR780E_EVENT_QFOPEN", + "AIR780E_EVENT_QHTTPGET", + "AIR780E_EVENT_QHTTPPOST", + "AIR780E_EVENT_QHTTPREAD", + "AIR780E_EVENT_QHTTPREADFILE", + "AIR780E_EVENT_QHTTPPOSTFILE", + "AIR780E_EVENT_QGPSLOC", + "AIR780E_EVENT_CCLK", + "AIR780E_EVENT_QGPSXTRADATA", + "AIR780E_EVENT_PDPDEACT", + "AIR780E_EVENT_QMTOPEN", + "AIR780E_EVENT_QMTCLOSE", + "AIR780E_EVENT_QMTCONN", + "AIR780E_EVENT_QMTDISC", + "AIR780E_EVENT_QMTSUB", + "AIR780E_EVENT_QMTUNS", + "AIR780E_EVENT_QMTPUBEX", + "AIR780E_EVENT_QMTRECV", + "AIR780E_EVENT_QMTPING", + "AIR780E_EVENT_QMTSTAT", + + "AIR780E_EVENT_RDY", + "AIR780E_EVENT_QTTS", + "AIR780E_EVENT_QLTONE", + "AIR780E_EVENT_RECEIVE", + + "AIR780E_EVENT_NUM_0", + "AIR780E_EVENT_NUM_1", + "AIR780E_EVENT_NUM_2", + "AIR780E_EVENT_NUM_3", + "AIR780E_EVENT_NUM_4", + "AIR780E_EVENT_NUM_5", + "AIR780E_EVENT_NUM_6", + "AIR780E_EVENT_NUM_7", + "AIR780E_EVENT_NUM_8", + "AIR780E_EVENT_NUM_9", +}; + +static enum IO_PIN_T l_stAIR780EPin[AIR780E_PIN_LAST]; + +/******************************************************************************* + * Local Function Declaration * + *******************************************************************************/ + +/******************************************************************************* + * Local Function * + *******************************************************************************/ +/******************************************************************************* + * Function Name : AIR780E_GetChar + * Description : + * Input : + * Output : + * Return : + * Author : 杜键 + * Modified Date: : 2018年5月22日 + *******************************************************************************/ +static HIDO_INT32 AIR780E_GetChar(HIDO_ATLiteDeviceStruct *_pstATDevice, HIDO_CHAR *_pcRecvChar) +{ + return Uart_GetChar(UART_ID_4G, (HIDO_UINT8 *) _pcRecvChar); +} + +/******************************************************************************* + * Function Name : AIR780E_ReadLine + * Description : + * Input : + * Output : + * Return : + * Author : 杜键 + * Modified Date: : 2018年5月22日 + *******************************************************************************/ +uint8_t log_4g_enable_flag; +static HIDO_INT32 AIR780E_ReadLine(HIDO_ATLiteDeviceStruct *_pstATDevice) +{ + static HIDO_UINT8 l_u8Mode = 0; + static HIDO_UINT32 l_u32ExpectedLen = 0; + static HIDO_UINT32 l_u32LastTick = 0; + HIDO_CHAR cCh = 0; + + if ((HIDO_NULL == _pstATDevice) || (HIDO_NULL == _pstATDevice->m_fnGetc) + || (HIDO_NULL == _pstATDevice->m_pcLineBuf) || (0 == _pstATDevice->m_u32LineBufSize)) + { + return HIDO_ERR; + } + + while (_pstATDevice->m_u32LineLen < _pstATDevice->m_u32LineBufSize - 1) + { + if (_pstATDevice->m_fnGetc(_pstATDevice, &cCh) != HIDO_OK) + { + return HIDO_ERR; + } + + _pstATDevice->m_pcLineBuf[_pstATDevice->m_u32LineLen++] = cCh; + _pstATDevice->m_pcLineBuf[_pstATDevice->m_u32LineLen] = '\0'; + + /* +RECEIVE, */ + if (9 == _pstATDevice->m_u32LineLen && memcmp("+RECEIVE,", _pstATDevice->m_pcLineBuf, 9) == 0) + { + l_u8Mode = 1; + l_u32LastTick = HIDO_TimerGetTick(); + } + + /* 超时检查,防止长时间处于IPDATA的状态 */ + if(((l_u8Mode == 1) || (l_u8Mode == 2) || (l_u8Mode == 3)) && (HIDO_TimerGetTick() - l_u32LastTick) > 1500) + { + break; + } + + if(1 == l_u8Mode) + { + HIDO_CHAR *pcTmp = strstr(_pstATDevice->m_pcLineBuf, ":"); + + if(pcTmp != HIDO_NULL) + { + HIDO_UINT32 u32ReqLen = 0; + + /* 获取真实需要接收的长度 */ + if (HIDO_UtilParseFormat((HIDO_UINT8 *) _pstATDevice->m_pcLineBuf, _pstATDevice->m_u32LineLen, "+RECEIVE,%*,%d:", + &u32ReqLen) != 2) + { + break; + } + + if(0 == u32ReqLen) + { + break; + } + + l_u32ExpectedLen = pcTmp - _pstATDevice->m_pcLineBuf + 3 + u32ReqLen; + l_u8Mode = 10; + } + } + else if(10 == l_u8Mode) + { + if(_pstATDevice->m_u32LineLen == l_u32ExpectedLen) + { + break; + } + } + else + { + /* 检查CR */ + if (AT_READ_CHAR_CR == cCh) + { + _pstATDevice->m_eLineReadFlag = AT_RAED_FLAG_GET_CR; + } + /* 检查LF */ + else if (AT_READ_CHAR_LF == cCh) + { + if (AT_RAED_FLAG_GET_CR == _pstATDevice->m_eLineReadFlag) + { + _pstATDevice->m_eLineReadFlag = AT_RAED_FLAG_GET_LF; + } + } + + if (AT_RAED_FLAG_GET_LF == _pstATDevice->m_eLineReadFlag) + { + if (2 == _pstATDevice->m_u32LineLen) + { + _pstATDevice->m_u32LineLen = 0; + _pstATDevice->m_eLineReadFlag = AT_RAED_FLAG_NONE; + } + else + { + _pstATDevice->m_eLineReadFlag = AT_RAED_FLAG_NONE; + + if(l_u8Mode == 10) + { + l_u8Mode = 0; + _pstATDevice->m_u32LineLen = 0; + _pstATDevice->m_eLineReadFlag = AT_RAED_FLAG_NONE; + } + else + { + break; + } + } + } + + if (1 == _pstATDevice->m_u32LineLen && '>' == _pstATDevice->m_pcLineBuf[0]) + { + break; + } + } + } + + if(HIDO_UtilIsAsciiString((HIDO_UINT8 *)_pstATDevice->m_pcLineBuf, _pstATDevice->m_u32LineLen) == HIDO_TRUE) + { + if((_pstATDevice->m_u32LineLen > 0) && (_pstATDevice->m_pcLineBuf[_pstATDevice->m_u32LineLen - 1] == '\n')) + { + if(log_4g_enable_flag) + LOG_INFO(TRACE_MODULE_APP, "[AT Recv] %s", _pstATDevice->m_pcLineBuf);//修改4G + //HIDO_Debug( "[AT Recv] %s", _pstATDevice->m_pcLineBuf); + } + else + { + if(log_4g_enable_flag) + LOG_INFO(TRACE_MODULE_APP, "[AT Recv] %s\r\n", _pstATDevice->m_pcLineBuf);//修改4G + //HIDO_Debug("[AT Recv] %s\r\n", _pstATDevice->m_pcLineBuf); + } + } + + l_u8Mode = 0; + + return HIDO_OK; +} + +/******************************************************************************* + * Function Name : AIR780E_Output + * Description : + * Input : + * Output : + * Return : + * Author : 杜键 + * Modified Date: : 2018年5月22日 + *******************************************************************************/ +static HIDO_INT32 AIR780E_Output(HIDO_ATLiteDeviceStruct *_pstATDevice, HIDO_UINT8 *_pu8Data, + HIDO_UINT32 _u32Len) +{ + if(HIDO_UtilIsAsciiString(_pu8Data, _u32Len) == HIDO_TRUE) + { + if(_pu8Data[_u32Len] == '\0') + { + if((_u32Len > 0) && (_pu8Data[_u32Len - 1] == '\n')) + { + // HIDO_Debug("[AT Send] %s", _pu8Data); + if(log_4g_enable_flag) + LOG_INFO(TRACE_MODULE_APP, "[AT Send] %s", _pu8Data);//修改4G + } + else + { + // HIDO_Debug("[AT Send] %s\r\n", _pu8Data); + if(log_4g_enable_flag) + LOG_INFO(TRACE_MODULE_APP, "[AT Send] %s", _pu8Data);//修改4G + } + } + } + + return Uart_Send(UART_ID_4G, _pu8Data, _u32Len); +} + +/******************************************************************************* + * Global Function * + *******************************************************************************/ + +/******************************************************************************* + * Function Name : AIR780E_PinRegister + * Description : + * Input : + * Output : + * Return : + * Author : 杜键 + * Modified Date: : 2018年5月22日 + *******************************************************************************/ +HIDO_INT32 AIR780EDriver_PinRegister(E_AIR780EPin _ePin, HIDO_UINT16 _u16Pin) +{ + l_stAIR780EPin[_ePin] = _u16Pin; + + return HIDO_OK; +} + +/******************************************************************************* + * Function Name : AIR780E_PowerOn + * Description : + * Input : + * Output : + * Return : + * Author : 杜键 + * Modified Date: : 2018年5月22日 + *******************************************************************************/ +HIDO_INT32 AIR780EDriver_PowerOn(void) +{ + AIR780E_Reset(); + return HIDO_OK; +} + +/******************************************************************************* + * Function Name : AIR780E_PowerOff + * Description : + * Input : + * Output : + * Return : + * Author : 杜键 + * Modified Date: : 2018年5月22日 + *******************************************************************************/ +HIDO_INT32 AIR780EDriver_PowerOff(void) +{ +// update_led_power_state(); + return HIDO_OK; +} + +/******************************************************************************* + * Function Name : AIR780EDriver_PowerEnable + * Description : + * Input : + * Output : + * Return : + * Author : 杜键 + * Modified Date: : 2018年5月22日 + *******************************************************************************/ +HIDO_INT32 AIR780EDriver_PWRKEYSet(void) +{ + gpio_pin_clr(l_stAIR780EPin[AIR780E_PIN_PWRKEY]); + + return HIDO_OK; +} + +/******************************************************************************* + * Function Name : AIR780EDriver_PowerEnable + * Description : + * Input : + * Output : + * Return : + * Author : 杜键 + * Modified Date: : 2018年5月22日 + *******************************************************************************/ +HIDO_INT32 AIR780EDriver_PWRKEYReset(void) +{ + gpio_pin_set(l_stAIR780EPin[AIR780E_PIN_PWRKEY]); + + return HIDO_OK; +} + +/******************************************************************************* + * Function Name : AIR780EDriver_DebugOn + * Description : + * Input : + * Output : + * Return : + * Author : 杜键 + * Modified Date: : 2018年5月22日 + *******************************************************************************/ +HIDO_INT32 AIR780EDriver_DebugOn(void) +{ + HIDO_FSM(AIR780E)->m_u16DbgFlag = HIDO_FSM_DBG_FLAG_ON; + + return HIDO_OK; +} + +/******************************************************************************* + * Function Name : AIR780EDriver_DebugOff + * Description : + * Input : + * Output : + * Return : + * Author : 杜键 + * Modified Date: : 2018年5月22日 + *******************************************************************************/ +HIDO_INT32 AIR780EDriver_DebugOff(void) +{ + HIDO_FSM(AIR780E)->m_u16DbgFlag = HIDO_FSM_DBG_FLAG_OFF; + + return HIDO_OK; +} + +/******************************************************************************* + * Function Name : AIR780EDriver_SetConnectLen + * Description : + * Input : + * Output : + * Return : + * Author : 杜键 + * Modified Date: : 2018年5月22日 + *******************************************************************************/ +HIDO_INT32 AIR780EDriver_SetConnectLen(HIDO_UINT32 _u32ConnectLen) +{ + l_u32ConnectLen = _u32ConnectLen; + + return HIDO_OK; +} + +/******************************************************************************* + * Function Name : AIR780EDriver_FSMDebug + * Description : + * Input : + * Output : + * Return : + * Author : 杜键 + * Modified Date: : 2018年5月22日 + *******************************************************************************/ +extern uint8_t log_4g_enable_flag; +HIDO_INT32 AIR780EDriver_FSMDebug(HIDO_FSMStruct *_pstStateMachine, HIDO_INT32 _i32Level, HIDO_CHAR *_pcFmt, va_list _ap) +{ + HIDO_CHAR acBuff[384]; + + vsnprintf(acBuff, sizeof(acBuff), _pcFmt, _ap); + + // HIDO_Log(HIDO_LOG_LEVEL_DEBUG, "%s", acBuff); + //HIDO_Debug(acBuff); +if(log_4g_enable_flag) + LOG_INFO(TRACE_MODULE_APP, acBuff);//修改4G + + return HIDO_OK; +} + +/******************************************************************************* + * Function Name : AIR780EDriver_Reset + * Description : + * Input : + * Output : + * Return : + * Author : 杜键 + * Modified Date: : 2018年5月22日 + *******************************************************************************/ +HIDO_INT32 AIR780EDriver_Reset(void) +{ + HIDO_FSMEventExecute(HIDO_FSM(AIR780E), HIDO_AT_EVENT_TIMEOUT, HIDO_NULL); + + return HIDO_OK; +} + +/******************************************************************************* + * Function Name : AIR780EDriver_Init + * Description : + * Input : + * Output : + * Return : + * Author : 杜键 + * Modified Date: : 2018年5月22日 + *******************************************************************************/ +void AIR780EUartInit(void) +{ + ST_UartInit stUartInit; + + /* 串口初始化 */ + stUartInit.m_eRxMode = UART_RX_MODE_INT; + stUartInit.m_eTxMode = UART_TX_MODE_POLL; + stUartInit.m_pu8RxBuf = l_au8AIR780EUartRxBuf; + stUartInit.m_u32RxBufSize = AIR780E_UART_RX_BUF_SIZE; + stUartInit.m_pu8TxBuf = l_au8AIR780EUartTxBuf; + stUartInit.m_u32TxBufSize = AIR780E_UART_TX_BUF_SIZE; + stUartInit.m_u32TxQueueMemberCnt = AIR780E_UART_TX_QUEUE_MEMBER_CNT; + stUartInit.m_u32BaudRate = 9600; + if(Uart_Init(UART_ID_4G, &stUartInit) != HIDO_OK) + { + + } +} +HIDO_INT32 AIR780EDriver_Init(void) +{ + ST_UartInit stUartInit; + + /* 串口初始化 */ + stUartInit.m_eRxMode = UART_RX_MODE_INT; + stUartInit.m_eTxMode = UART_TX_MODE_POLL; + stUartInit.m_pu8RxBuf = l_au8AIR780EUartRxBuf; + stUartInit.m_u32RxBufSize = AIR780E_UART_RX_BUF_SIZE; + stUartInit.m_pu8TxBuf = l_au8AIR780EUartTxBuf; + stUartInit.m_u32TxBufSize = AIR780E_UART_TX_BUF_SIZE; + stUartInit.m_u32TxQueueMemberCnt = AIR780E_UART_TX_QUEUE_MEMBER_CNT; + stUartInit.m_u32BaudRate = 9600; + if(Uart_Init(UART_ID_4G, &stUartInit) != HIDO_OK) + { + return HIDO_ERR; + } + + /* 定时器初始化 */ + if (HIDO_TimerCreate(&l_stDriverData.m_u32FSMTimerID) != HIDO_OK) + { + return HIDO_ERR; + } + + /* AT驱动初始化 */ + HIDO_ATLiteDeviceInitStruct stATInit; + + stATInit.m_pstFSM = HIDO_FSM(AIR780E); + stATInit.m_pstAtSets = l_astATCmdSetList; + stATInit.m_u32AtSetsCount = HIDO_ARRARY_COUNT(l_astATCmdSetList); + stATInit.m_fnGetc = AIR780E_GetChar; + stATInit.m_fnReadLine = AIR780E_ReadLine; + stATInit.m_fnOutput = AIR780E_Output; + stATInit.m_pcSendBuf = (HIDO_CHAR *) l_au8ATSendBuf; + stATInit.m_u32SendBufSize = HIDO_ARRARY_COUNT(l_au8ATSendBuf); + stATInit.m_pcLineBuf = (HIDO_CHAR *) l_au8ATRecvBuf; + stATInit.m_u32LineBufSize = HIDO_ARRARY_COUNT(l_au8ATRecvBuf); + stATInit.m_pUserData = &l_stDriverData; + + /* AT设备初始化 */ + if (HIDO_ATLiteDeviceInit(&l_stAIR780EDevice, &stATInit) != HIDO_OK) + { + return HIDO_ERR; + } + + /* 状态机初始化 */ + HIDO_FSMRegister(HIDO_FSM(AIR780E), HIDO_FSM_STATE(AIR780E), "AIR780E", l_apcEventName, &l_stAIR780EDevice, + HIDO_FSM_DBG_FLAG_ON); + + HIDO_FSMRegisterDebugFunc(HIDO_FSM(AIR780E), AIR780EDriver_FSMDebug); + + return HIDO_OK; +} -- Gitblit v1.9.3