¶Ô±ÈÐÂÎļþ |
| | |
| | | /******************************************************************************* |
| | | * 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; |
| | | } |