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