¶Ô±ÈÐÂÎļþ |
| | |
| | | /******************************************************************************* |
| | | * File Name : AIR780ELBS.c |
| | | * Description : |
| | | * Created on : 2018å¹´5æ23æ¥ |
| | | * Author : æé® |
| | | *******************************************************************************/ |
| | | |
| | | /******************************************************************************* |
| | | * Include Files * |
| | | *******************************************************************************/ |
| | | #include "AIR780ECSQ.h" |
| | | |
| | | #include "string.h" |
| | | #include "stdlib.h" |
| | | #include "Module.h" |
| | | #include "Module.h" |
| | | #include "AIR780EDriver.h" |
| | | #include "AIR780EFSM.h" |
| | | #include "HIDO_Util.h" |
| | | #include "HIDO_FSM.h" |
| | | #include "HIDO_Timer.h" |
| | | #include "HIDO_ATLite.h" |
| | | #include "HIDO_Debug.h" |
| | | #include "ATConfig.h" |
| | | |
| | | /******************************************************************************* |
| | | * Macro * |
| | | *******************************************************************************/ |
| | | |
| | | /******************************************************************************* |
| | | * Type Definition * |
| | | *******************************************************************************/ |
| | | |
| | | /******************************************************************************* |
| | | * Local Variable * |
| | | *******************************************************************************/ |
| | | HIDO_FSM_DETACHED_STATE(AIR780ECSQ) |
| | | |
| | | /******************************************************************************* |
| | | * Local Function Declaration * |
| | | *******************************************************************************/ |
| | | |
| | | /******************************************************************************* |
| | | * Local Function * |
| | | *******************************************************************************/ |
| | | /******************************************************************************* |
| | | * State Name : AIR780ECSQ |
| | | * Parent State : |
| | | * Description : |
| | | * Author : æé® |
| | | * Modified Date: : 2018-05-01 |
| | | *******************************************************************************/ |
| | | HIDO_FSM_DETACHED_STATE_IMPLEMENT(AIR780ECSQ, HIDO_NULL, HIDO_NULL) |
| | | { |
| | | static const HIDO_StateStruct *l_pstAfterState = HIDO_NULL; |
| | | HIDO_ATLiteDeviceStruct *_pstATDevice = (HIDO_ATLiteDeviceStruct *) _pstFSM->m_pPrivateData; |
| | | |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | HIDO_StateArgStruct *pstStateArg = (HIDO_StateArgStruct *)_pArg; |
| | | |
| | | l_pstAfterState = pstStateArg->m_pstAfterState; |
| | | |
| | | HIDO_ATLiteCmdSend(_pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CSQ\r\n"); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(_pstATDevice); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | case HIDO_AT_EVENT_ERROR: |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, l_pstAfterState, HIDO_NULL); |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_CSQ: |
| | | { |
| | | /* +CSQ: 0,31 */ |
| | | HIDO_UINT32 u32CSQResult = 0; |
| | | HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; |
| | | |
| | | if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+CSQ: %d,%*\r\n", |
| | | &u32CSQResult)!= 2) |
| | | { |
| | | break; |
| | | } |
| | | |
| | | Module_SignalIntensityResult(u32CSQResult); |
| | | |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | | } |
| | | |
| | | /******************************************************************************* |
| | | * Global Function * |
| | | *******************************************************************************/ |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : AIR780ECSQ_Poll |
| | | * Description : |
| | | * Input : |
| | | * Output : |
| | | * Return : |
| | | * Author : æé® |
| | | * Modified Date: : 2018å¹´5æ22æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 AIR780ECSQ_Poll(HIDO_ATLiteDeviceStruct *_pstATDevice) |
| | | { |
| | | if (Module_SignalIntensityNeedRequest() == HIDO_TRUE) |
| | | { |
| | | AIR780ECSQ_Get(_pstATDevice); |
| | | return HIDO_OK; |
| | | } |
| | | |
| | | return HIDO_ERR; |
| | | } |
| | | |
| | | /******************************************************************************* |
| | | * Function Name : AIR780ECSQ_Poll |
| | | * Description : |
| | | * Input : |
| | | * Output : |
| | | * Return : |
| | | * Author : æé® |
| | | * Modified Date: : 2018å¹´5æ22æ¥ |
| | | *******************************************************************************/ |
| | | HIDO_INT32 AIR780ECSQ_Get(HIDO_ATLiteDeviceStruct *_pstATDevice) |
| | | { |
| | | HIDO_StateArgStruct stStateArg; |
| | | |
| | | stStateArg.m_pArg = HIDO_NULL; |
| | | stStateArg.m_pstAfterState = _pstATDevice->m_pstFSM->m_pstCurrentState; |
| | | HIDO_FSM_DETACHED_STATE_SETTLE(AIR780ECSQ, _pstATDevice->m_pstFSM->m_pstCurrentState->m_pstParent, HIDO_NULL); |
| | | HIDO_FSMStateChange(_pstATDevice->m_pstFSM, HIDO_FSM_STATE(AIR780ECSQ), &stStateArg); |
| | | |
| | | return HIDO_OK; |
| | | } |