| | |
| | | { |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_TIMEOUT: |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL); |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_RECEIVE: |
| | | { |
| | | HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; |
| | | HIDO_UINT32 u32ID = 0; |
| | | HIDO_UINT8 *pu8Data = HIDO_NULL; |
| | | HIDO_UINT32 u32Len = 0; |
| | | |
| | | if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+RECEIVE,%d,%d:\r\n%e", &u32ID, &u32Len, &pu8Data) |
| | | != 3) |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | |
| | | Socket_RecvData(u32ID, pu8Data, u32Len); |
| | | Socket_OnRecv(u32ID); |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_NUM_0: |
| | | case AIR780E_EVENT_NUM_1: |
| | | case AIR780E_EVENT_NUM_2: |
| | | case AIR780E_EVENT_NUM_3: |
| | | case AIR780E_EVENT_NUM_4: |
| | | case AIR780E_EVENT_NUM_5: |
| | | { |
| | | HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; |
| | | HIDO_UINT32 u32ConnectID = 0; |
| | | HIDO_DataStruct stEvent; |
| | | |
| | | if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "%d, %p\r\n", |
| | | &u32ConnectID, &stEvent) != 2) |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_TIMEOUT: |
| | | |
| | | if (strncmp(stEvent.m_pData, "CLOSED", stEvent.m_u32Len) == 0) |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL); |
| | | break; |
| | | Socket_OnClosed(u32ConnectID); |
| | | } |
| | | case AIR780E_EVENT_RECEIVE: |
| | | { |
| | | HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; |
| | | HIDO_UINT32 u32ID = 0; |
| | | HIDO_UINT8 *pu8Data = HIDO_NULL; |
| | | HIDO_UINT32 u32Len = 0; |
| | | |
| | | if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+RECEIVE,%d,%d:\r\n%e", &u32ID, &u32Len, &pu8Data) |
| | | != 3) |
| | | { |
| | | break; |
| | | } |
| | | |
| | | Socket_RecvData(u32ID, pu8Data, u32Len); |
| | | Socket_OnRecv(u32ID); |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_NUM_0: |
| | | case AIR780E_EVENT_NUM_1: |
| | | case AIR780E_EVENT_NUM_2: |
| | | case AIR780E_EVENT_NUM_3: |
| | | case AIR780E_EVENT_NUM_4: |
| | | case AIR780E_EVENT_NUM_5: |
| | | { |
| | | HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; |
| | | HIDO_UINT32 u32ConnectID = 0; |
| | | HIDO_DataStruct stEvent; |
| | | |
| | | if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "%d, %p\r\n", |
| | | &u32ConnectID, &stEvent) != 2) |
| | | { |
| | | break; |
| | | } |
| | | |
| | | if (strncmp(stEvent.m_pData, "CLOSED", stEvent.m_u32Len) == 0) |
| | | { |
| | | Socket_OnClosed(u32ConnectID); |
| | | } |
| | | |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | |
| | | { |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_TIMEOUT: |
| | | { |
| | | /* AT命令相应超时,重新初始化 */ |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL); |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_TIMEOUT: |
| | | { |
| | | /* AT命令相应超时,重新初始化 */ |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL); |
| | | |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | |
| | | { |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | AIR780EDriver_PowerOff(); |
| | | Module_PowerEvent(MODULE_MAIN, MODULE_STATE_POWER_OFF); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_POLL: |
| | | { |
| | | if(Module_NeedPowerOff(MODULE_MAIN) == HIDO_TRUE) |
| | | { |
| | | AIR780EDriver_PowerOff(); |
| | | Module_PowerEvent(MODULE_MAIN, MODULE_STATE_POWER_OFF); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_POLL: |
| | | { |
| | | if(Module_NeedPowerOff(MODULE_MAIN) == HIDO_TRUE) |
| | | { |
| | | Module_PowerEvent(MODULE_MAIN, MODULE_STATE_POWER_OFF); |
| | | } |
| | | |
| | | if(Module_NeedPowerOn(MODULE_MAIN) == HIDO_TRUE) |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EPowerOn), HIDO_NULL); |
| | | } |
| | | |
| | | break; |
| | | } |
| | | default: |
| | | if(Module_NeedPowerOn(MODULE_MAIN) == HIDO_TRUE) |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EPowerOn), HIDO_NULL); |
| | | } |
| | | |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | |
| | | |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | pstATDevice->m_u32LineLen = 0; |
| | | while (pstATDevice->m_fnReadLine(pstATDevice) == HIDO_OK) |
| | | { |
| | | pstATDevice->m_u32LineLen = 0; |
| | | while (pstATDevice->m_fnReadLine(pstATDevice) == HIDO_OK) |
| | | { |
| | | ; |
| | | } |
| | | pstATDevice->m_u32LineLen = 0; |
| | | ; |
| | | } |
| | | pstATDevice->m_u32LineLen = 0; |
| | | |
| | | l_eAIR780ESubState = AIR780E_SUB_STATE_POWER_OFF; |
| | | AIR780EDriver_PowerOff(); |
| | | HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(1), _pstFSM, AIR780E_EVENT_DELAY); |
| | | l_eAIR780ESubState = AIR780E_SUB_STATE_POWER_OFF; |
| | | AIR780EDriver_PowerOff(); |
| | | HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(1), _pstFSM, AIR780E_EVENT_DELAY); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | /* 退出初始化 */ |
| | | HIDO_TimerCancel(u32FSMTimerID); |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_DELAY: |
| | | { |
| | | switch(l_eAIR780ESubState) |
| | | { |
| | | case AIR780E_SUB_STATE_POWER_OFF: |
| | | { |
| | | l_eAIR780ESubState = AIR780E_SUB_STATE_POWER_ON; |
| | | AIR780EDriver_PowerOn(); |
| | | HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(5), _pstFSM, AIR780E_EVENT_DELAY); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | /* 退出初始化 */ |
| | | HIDO_TimerCancel(u32FSMTimerID); |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_DELAY: |
| | | { |
| | | switch(l_eAIR780ESubState) |
| | | { |
| | | case AIR780E_SUB_STATE_POWER_OFF: |
| | | { |
| | | l_eAIR780ESubState = AIR780E_SUB_STATE_POWER_ON; |
| | | AIR780EDriver_PowerOn(); |
| | | HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(5), _pstFSM, AIR780E_EVENT_DELAY); |
| | | break; |
| | | } |
| | | case AIR780E_SUB_STATE_POWER_ON: |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EATCmdTest), HIDO_NULL); |
| | | //Uart_ReConfigBaudRate(UART_ID_4G, 115200); |
| | | //HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+IPR=9600;&W\r\n"); |
| | | //Uart_ReConfigBaudRate(UART_ID_4G, 9600); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_RDY: |
| | | case AIR780E_SUB_STATE_POWER_ON: |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EATCmdTest), HIDO_NULL); |
| | | //Uart_ReConfigBaudRate(UART_ID_4G, 115200); |
| | | //HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+IPR=9600;&W\r\n"); |
| | | //Uart_ReConfigBaudRate(UART_ID_4G, 9600); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | case HIDO_AT_EVENT_ERROR: |
| | | case HIDO_AT_EVENT_TIMEOUT: |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EATCmdTest), HIDO_NULL); |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_RDY: |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EATCmdTest), HIDO_NULL); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | case HIDO_AT_EVENT_ERROR: |
| | | case HIDO_AT_EVENT_TIMEOUT: |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EATCmdTest), HIDO_NULL); |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | |
| | | *******************************************************************************/ |
| | | HIDO_FSM_STATE_IMPLEMENT(AIR780EATCmdTest, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL) |
| | | { |
| | | static HIDO_UINT32 l_u32TimeoutCnt = 0; |
| | | static HIDO_UINT32 l_u32TimeoutCnt = 0; |
| | | HIDO_ATLiteDeviceStruct *pstATDevice = (HIDO_ATLiteDeviceStruct *) _pstFSM->m_pPrivateData; |
| | | |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "ATE0\r\n"); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | { |
| | | /* 上电成功 */ |
| | | Module_PowerEvent(MODULE_MAIN, MODULE_STATE_POWER_ON); |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EWaitSimCardReady), HIDO_NULL); |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "ATE0\r\n"); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | { |
| | | /* 上电成功 */ |
| | | Module_PowerEvent(MODULE_MAIN, MODULE_STATE_POWER_ON); |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EWaitSimCardReady), HIDO_NULL); |
| | | |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_ERROR: |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_ERROR: |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_TIMEOUT: |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EPowerOn), HIDO_NULL); |
| | | l_u32TimeoutCnt++; |
| | | if (3 == l_u32TimeoutCnt) |
| | | { |
| | | break; |
| | | AIR780E_Reset_usart(); |
| | | } |
| | | case HIDO_AT_EVENT_TIMEOUT: |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EPowerOn), HIDO_NULL); |
| | | l_u32TimeoutCnt++; |
| | | if (3 == l_u32TimeoutCnt) |
| | | { |
| | | AIR780E_Reset_usart(); |
| | | } |
| | | |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | |
| | | |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | u32RetryCnt = 0; |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CPIN?\r\n"); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | HIDO_TimerCancel(u32FSMTimerID); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EATCmdInit), HIDO_NULL); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_ERROR: |
| | | { |
| | | HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(1), |
| | | _pstFSM, AIR780E_EVENT_DELAY); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_TIMEOUT: |
| | | { |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_DELAY: |
| | | { |
| | | if(u32RetryCnt < 10) |
| | | { |
| | | u32RetryCnt = 0; |
| | | u32RetryCnt++; |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CPIN?\r\n"); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | else |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | HIDO_TimerCancel(u32FSMTimerID); |
| | | break; |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIdle), HIDO_NULL); |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_POLL: |
| | | { |
| | | if(Module_NeedPowerOff(MODULE_MAIN) == HIDO_TRUE) |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EATCmdInit), HIDO_NULL); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_ERROR: |
| | | { |
| | | HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(1), |
| | | _pstFSM, AIR780E_EVENT_DELAY); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_TIMEOUT: |
| | | { |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_DELAY: |
| | | { |
| | | if(u32RetryCnt < 10) |
| | | { |
| | | u32RetryCnt++; |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CPIN?\r\n"); |
| | | } |
| | | else |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIdle), HIDO_NULL); |
| | | } |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_POLL: |
| | | { |
| | | if(Module_NeedPowerOff(MODULE_MAIN) == HIDO_TRUE) |
| | | { |
| | | HIDO_FSMStateChange(HIDO_FSM(AIR780E), HIDO_FSM_STATE(AIR780EPowerOff), HIDO_NULL); |
| | | |
| | | break; |
| | | } |
| | | HIDO_FSMStateChange(HIDO_FSM(AIR780E), HIDO_FSM_STATE(AIR780EPowerOff), HIDO_NULL); |
| | | |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | |
| | | { "AT+CIMI\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK }, |
| | | { "AT+CCID\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK }, |
| | | { "ATI\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK }, |
| | | { "AT+CFGRI=1\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK }, |
| | | { "AT+CFGRI=1\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK }, |
| | | // { "AT+CTTSPARAM=100,0,50,50,0,2,25,1500,150,1,0,1\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK }, |
| | | }; |
| | | |
| | |
| | | |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | l_u32CmdIndex = 0; |
| | | l_u32RetryCnt = 0; |
| | | HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd); |
| | | l_u32RetryCnt++; |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | l_u32CmdIndex = 0; |
| | | l_u32RetryCnt = 0; |
| | | HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd); |
| | | l_u32RetryCnt++; |
| | | |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | HIDO_TimerCancel(u32FSMTimerID); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | case HIDO_AT_EVENT_ERROR: |
| | | case HIDO_AT_EVENT_TIMEOUT: |
| | | { |
| | | if(HIDO_AT_EVENT_TIMEOUT == _u32Event) |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | HIDO_TimerCancel(u32FSMTimerID); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | case HIDO_AT_EVENT_ERROR: |
| | | case HIDO_AT_EVENT_TIMEOUT: |
| | | { |
| | | if(HIDO_AT_EVENT_TIMEOUT == _u32Event) |
| | | { |
| | | if(astInitCmdList[l_u32CmdIndex].m_u32Result & AT_CMD_RESULT_TIMEOUT) |
| | | { |
| | | l_u32RetryCnt = 0; |
| | | l_u32CmdIndex++; |
| | | if (l_u32CmdIndex >= HIDO_ARRARY_COUNT(astInitCmdList)) |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EReady), HIDO_NULL); |
| | | } |
| | | else |
| | | { |
| | | HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd); |
| | | } |
| | | |
| | | break; |
| | | } |
| | | else |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | if (astInitCmdList[l_u32CmdIndex].m_u32Result |
| | | & (HIDO_AT_EVENT_OK == _u32Event ? AT_CMD_RESULT_OK : AT_CMD_RESULT_ERROR)) |
| | | if(astInitCmdList[l_u32CmdIndex].m_u32Result & AT_CMD_RESULT_TIMEOUT) |
| | | { |
| | | l_u32RetryCnt = 0; |
| | | l_u32CmdIndex++; |
| | |
| | | { |
| | | HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | l_u32RetryCnt++; |
| | | if (l_u32RetryCnt >= 3) |
| | | { |
| | | /* 重试超限 */ |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EPowerOn), HIDO_NULL); |
| | | } |
| | | else |
| | | { |
| | | /* 不是期待的结果,10后再次尝试 */ |
| | | HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(10), _pstFSM, |
| | | AIR780E_EVENT_DELAY); |
| | | } |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_DELAY: |
| | | { |
| | | HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd); |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_NUM_0: |
| | | case AIR780E_EVENT_NUM_1: |
| | | case AIR780E_EVENT_NUM_2: |
| | | case AIR780E_EVENT_NUM_3: |
| | | case AIR780E_EVENT_NUM_4: |
| | | case AIR780E_EVENT_NUM_5: |
| | | case AIR780E_EVENT_NUM_6: |
| | | case AIR780E_EVENT_NUM_7: |
| | | case AIR780E_EVENT_NUM_8: |
| | | case AIR780E_EVENT_NUM_9: |
| | | { |
| | | HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; |
| | | |
| | | switch(l_u32CmdIndex) |
| | | { |
| | | case 0: |
| | | { |
| | | Module_SetIMEI((HIDO_CHAR *)pstData->m_pData, pstData->m_u32Len); |
| | | break; |
| | | } |
| | | case 1: |
| | | { |
| | | Module_SetIMSI((HIDO_CHAR *)pstData->m_pData, pstData->m_u32Len); |
| | | break; |
| | | } |
| | | case 2: |
| | | { |
| | | Module_SetCCID((HIDO_CHAR *)pstData->m_pData, pstData->m_u32Len); |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_POLL: |
| | | { |
| | | if(Module_NeedPowerOff(MODULE_MAIN) == HIDO_TRUE) |
| | | { |
| | | HIDO_FSMStateChange(HIDO_FSM(AIR780E), HIDO_FSM_STATE(AIR780EPowerOff), HIDO_NULL); |
| | | |
| | | break; |
| | | } |
| | | else |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | if (astInitCmdList[l_u32CmdIndex].m_u32Result |
| | | & (HIDO_AT_EVENT_OK == _u32Event ? AT_CMD_RESULT_OK : AT_CMD_RESULT_ERROR)) |
| | | { |
| | | l_u32RetryCnt = 0; |
| | | l_u32CmdIndex++; |
| | | if (l_u32CmdIndex >= HIDO_ARRARY_COUNT(astInitCmdList)) |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EReady), HIDO_NULL); |
| | | } |
| | | else |
| | | { |
| | | HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | l_u32RetryCnt++; |
| | | if (l_u32RetryCnt >= 3) |
| | | { |
| | | /* 重试超限 */ |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EPowerOn), HIDO_NULL); |
| | | } |
| | | else |
| | | { |
| | | /* 不是期待的结果,10后再次尝试 */ |
| | | HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(10), _pstFSM, |
| | | AIR780E_EVENT_DELAY); |
| | | } |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_DELAY: |
| | | { |
| | | HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd); |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_NUM_0: |
| | | case AIR780E_EVENT_NUM_1: |
| | | case AIR780E_EVENT_NUM_2: |
| | | case AIR780E_EVENT_NUM_3: |
| | | case AIR780E_EVENT_NUM_4: |
| | | case AIR780E_EVENT_NUM_5: |
| | | case AIR780E_EVENT_NUM_6: |
| | | case AIR780E_EVENT_NUM_7: |
| | | case AIR780E_EVENT_NUM_8: |
| | | case AIR780E_EVENT_NUM_9: |
| | | { |
| | | HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; |
| | | |
| | | switch(l_u32CmdIndex) |
| | | { |
| | | case 0: |
| | | { |
| | | Module_SetIMEI((HIDO_CHAR *)pstData->m_pData, pstData->m_u32Len); |
| | | break; |
| | | } |
| | | case 1: |
| | | { |
| | | Module_SetIMSI((HIDO_CHAR *)pstData->m_pData, pstData->m_u32Len); |
| | | break; |
| | | } |
| | | case 2: |
| | | { |
| | | Module_SetCCID((HIDO_CHAR *)pstData->m_pData, pstData->m_u32Len); |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_POLL: |
| | | { |
| | | if(Module_NeedPowerOff(MODULE_MAIN) == HIDO_TRUE) |
| | | { |
| | | HIDO_FSMStateChange(HIDO_FSM(AIR780E), HIDO_FSM_STATE(AIR780EPowerOff), HIDO_NULL); |
| | | |
| | | break; |
| | | } |
| | | |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | |
| | | |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_POLL: |
| | | { |
| | | AIR780E_Poll(pstATDevice); |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_POLL: |
| | | { |
| | | AIR780E_Poll(pstATDevice); |
| | | |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | |
| | | { |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | |
| | | |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | l_eAIR780ESubState = AIR780E_SUB_STATE_CGREG; |
| | | l_u32Cnt = 0; |
| | | l_u32RespCode = 0; |
| | | l_bATBusy = HIDO_TRUE; |
| | | |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CGREG?\r\n"); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | HIDO_TimerCancel(u32FSMTimerID); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | { |
| | | if (AIR780E_SUB_STATE_CREG == l_eAIR780ESubState) |
| | | { |
| | | l_eAIR780ESubState = AIR780E_SUB_STATE_CGREG; |
| | | l_u32Cnt = 0; |
| | | l_u32RespCode = 0; |
| | | l_bATBusy = HIDO_TRUE; |
| | | |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CGREG?\r\n"); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | HIDO_TimerCancel(u32FSMTimerID); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | { |
| | | if (AIR780E_SUB_STATE_CREG == l_eAIR780ESubState) |
| | | l_bATBusy = HIDO_FALSE; |
| | | |
| | | if (1 == l_u32RespCode || 5 == l_u32RespCode) |
| | | { |
| | | l_bATBusy = HIDO_FALSE; |
| | | |
| | | if (1 == l_u32RespCode || 5 == l_u32RespCode) |
| | | { |
| | | l_eAIR780ESubState = AIR780E_SUB_STATE_CGREG; |
| | | l_u32Cnt = 0; |
| | | l_u32RespCode = 0; |
| | | l_bATBusy = HIDO_TRUE; |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CGREG?\r\n"); |
| | | } |
| | | else |
| | | { |
| | | l_u32Cnt++; |
| | | |
| | | if (l_u32Cnt > 100) |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL); |
| | | break; |
| | | } |
| | | else |
| | | { |
| | | HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(2), _pstFSM, |
| | | AIR780E_EVENT_DELAY); |
| | | } |
| | | } |
| | | } |
| | | else if (AIR780E_SUB_STATE_CGREG == l_eAIR780ESubState) |
| | | { |
| | | l_bATBusy = HIDO_FALSE; |
| | | |
| | | if (1 == l_u32RespCode || 5 == l_u32RespCode) |
| | | { |
| | | l_u32ReadyCnt++; |
| | | } |
| | | else |
| | | { |
| | | l_u32ReadyCnt = 0; |
| | | l_u32Cnt++; |
| | | } |
| | | |
| | | if (l_u32ReadyCnt >= 1) |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPInit), HIDO_NULL); |
| | | } |
| | | else |
| | | { |
| | | HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(2), _pstFSM, |
| | | AIR780E_EVENT_DELAY); |
| | | } |
| | | |
| | | if (l_u32Cnt > 100) |
| | | { |
| | | /* TODO网络出错 */ |
| | | } |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_CREG: |
| | | { |
| | | HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; |
| | | |
| | | if (AIR780E_SUB_STATE_CREG == l_eAIR780ESubState) |
| | | { |
| | | if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+CREG: %*,%d", |
| | | &l_u32RespCode) != 2) |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_CGREG: |
| | | { |
| | | HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; |
| | | |
| | | if (AIR780E_SUB_STATE_CGREG == l_eAIR780ESubState) |
| | | { |
| | | if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+CGREG: %*,%d", |
| | | &l_u32RespCode) != 2) |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_DELAY: |
| | | { |
| | | if (AIR780E_SUB_STATE_CREG == l_eAIR780ESubState) |
| | | { |
| | | l_u32RespCode = 0; |
| | | l_bATBusy = HIDO_TRUE; |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CREG?\r\n"); |
| | | } |
| | | else if (AIR780E_SUB_STATE_CGREG == l_eAIR780ESubState) |
| | | { |
| | | l_eAIR780ESubState = AIR780E_SUB_STATE_CGREG; |
| | | l_u32Cnt = 0; |
| | | l_u32RespCode = 0; |
| | | l_bATBusy = HIDO_TRUE; |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CGREG?\r\n"); |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_POLL: |
| | | { |
| | | if (HIDO_FALSE == l_bATBusy) |
| | | else |
| | | { |
| | | AIR780E_Poll(pstATDevice); |
| | | l_u32Cnt++; |
| | | |
| | | if (l_u32Cnt > 100) |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL); |
| | | break; |
| | | } |
| | | else |
| | | { |
| | | HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(2), _pstFSM, |
| | | AIR780E_EVENT_DELAY); |
| | | } |
| | | } |
| | | } |
| | | else if (AIR780E_SUB_STATE_CGREG == l_eAIR780ESubState) |
| | | { |
| | | l_bATBusy = HIDO_FALSE; |
| | | |
| | | if (1 == l_u32RespCode || 5 == l_u32RespCode) |
| | | { |
| | | l_u32ReadyCnt++; |
| | | } |
| | | else |
| | | { |
| | | l_u32ReadyCnt = 0; |
| | | l_u32Cnt++; |
| | | } |
| | | |
| | | break; |
| | | if (l_u32ReadyCnt >= 1) |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPInit), HIDO_NULL); |
| | | } |
| | | else |
| | | { |
| | | HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(2), _pstFSM, |
| | | AIR780E_EVENT_DELAY); |
| | | } |
| | | |
| | | if (l_u32Cnt > 100) |
| | | { |
| | | /* TODO网络出错 */ |
| | | } |
| | | } |
| | | default: |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_CREG: |
| | | { |
| | | HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; |
| | | |
| | | if (AIR780E_SUB_STATE_CREG == l_eAIR780ESubState) |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+CREG: %*,%d", |
| | | &l_u32RespCode) != 2) |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_CGREG: |
| | | { |
| | | HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; |
| | | |
| | | if (AIR780E_SUB_STATE_CGREG == l_eAIR780ESubState) |
| | | { |
| | | if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+CGREG: %*,%d", |
| | | &l_u32RespCode) != 2) |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_DELAY: |
| | | { |
| | | if (AIR780E_SUB_STATE_CREG == l_eAIR780ESubState) |
| | | { |
| | | l_u32RespCode = 0; |
| | | l_bATBusy = HIDO_TRUE; |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CREG?\r\n"); |
| | | } |
| | | else if (AIR780E_SUB_STATE_CGREG == l_eAIR780ESubState) |
| | | { |
| | | l_u32RespCode = 0; |
| | | l_bATBusy = HIDO_TRUE; |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CGREG?\r\n"); |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_POLL: |
| | | { |
| | | if (HIDO_FALSE == l_bATBusy) |
| | | { |
| | | AIR780E_Poll(pstATDevice); |
| | | } |
| | | |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | |
| | | |
| | | const ST_ATCmd astInitCmdList[] = |
| | | { |
| | | { "AT+CIPRXF=1\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK }, |
| | | { "AT+CIPMUX=1\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK }, |
| | | { "AT*I\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK }, |
| | | { "AT+CIPRXF=1\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK }, |
| | | { "AT+CIPMUX=1\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK }, |
| | | { "AT*I\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK }, |
| | | // { "AT+CSTT=\"%s\",\"\",\"\"\r\n", 60000, AT_CMD_RESULT_OK | AT_CMD_RESULT_ERROR }, |
| | | // { "AT+CIICR\r\n", 60000, AT_CMD_RESULT_OK | AT_CMD_RESULT_ERROR }, |
| | | // { "AT+CIFSR\r\n", 1000, AT_CMD_RESULT_OK | AT_CMD_RESULT_TIMEOUT }, |
| | | #ifdef _4G_115200 |
| | | |
| | | #else |
| | | { "AT+POWERMODE=\"PRO\"\r\n", 5000, AT_CMD_RESULT_OK | AT_CMD_RESULT_TIMEOUT }, |
| | | { "AT+POWERMODE?\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK }, |
| | | #endif |
| | | #else |
| | | { "AT+POWERMODE=\"PRO\"\r\n", 5000, AT_CMD_RESULT_OK | AT_CMD_RESULT_TIMEOUT }, |
| | | { "AT+POWERMODE?\r\n", AT_GENERAL_TIMEOUT_TIME, AT_CMD_RESULT_OK }, |
| | | #endif |
| | | }; |
| | | |
| | | pcIMSI = Module_GetIMSI(); |
| | |
| | | |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | l_u32CmdIndex = 0; |
| | | l_u32RetryCnt = 0; |
| | | HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd); |
| | | l_u32RetryCnt++; |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | l_u32CmdIndex = 0; |
| | | l_u32RetryCnt = 0; |
| | | HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd); |
| | | l_u32RetryCnt++; |
| | | |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | HIDO_TimerCancel(u32FSMTimerID); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | case HIDO_AT_EVENT_ERROR: |
| | | case HIDO_AT_EVENT_TIMEOUT: |
| | | { |
| | | if(HIDO_AT_EVENT_TIMEOUT == _u32Event) |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | HIDO_TimerCancel(u32FSMTimerID); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | case HIDO_AT_EVENT_ERROR: |
| | | case HIDO_AT_EVENT_TIMEOUT: |
| | | { |
| | | if(HIDO_AT_EVENT_TIMEOUT == _u32Event) |
| | | { |
| | | if(astInitCmdList[l_u32CmdIndex].m_u32Result & AT_CMD_RESULT_TIMEOUT) |
| | | { |
| | | l_u32RetryCnt = 0; |
| | | l_u32CmdIndex++; |
| | | if (l_u32CmdIndex >= HIDO_ARRARY_COUNT(astInitCmdList)) |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPReady), HIDO_NULL); |
| | | } |
| | | else |
| | | { |
| | | HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd, acAPN); |
| | | } |
| | | |
| | | break; |
| | | } |
| | | else |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | ok: |
| | | if((HIDO_AT_EVENT_OK == _u32Event && (astInitCmdList[l_u32CmdIndex].m_u32Result & AT_CMD_RESULT_OK)) |
| | | || (HIDO_AT_EVENT_ERROR == _u32Event && (astInitCmdList[l_u32CmdIndex].m_u32Result & AT_CMD_RESULT_ERROR))) |
| | | if(astInitCmdList[l_u32CmdIndex].m_u32Result & AT_CMD_RESULT_TIMEOUT) |
| | | { |
| | | l_u32RetryCnt = 0; |
| | | l_u32CmdIndex++; |
| | |
| | | { |
| | | HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd, acAPN); |
| | | } |
| | | |
| | | break; |
| | | } |
| | | else |
| | | { |
| | | l_u32RetryCnt++; |
| | | if (l_u32RetryCnt >= 3) |
| | | { |
| | | /* 重试超限 */ |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780E), HIDO_NULL); |
| | | } |
| | | else |
| | | { |
| | | /* 不是期待的结果,10后再次尝试 */ |
| | | HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(10), _pstFSM, |
| | | AIR780E_EVENT_DELAY); |
| | | } |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_DELAY: |
| | | ok: |
| | | if((HIDO_AT_EVENT_OK == _u32Event && (astInitCmdList[l_u32CmdIndex].m_u32Result & AT_CMD_RESULT_OK)) |
| | | || (HIDO_AT_EVENT_ERROR == _u32Event && (astInitCmdList[l_u32CmdIndex].m_u32Result & AT_CMD_RESULT_ERROR))) |
| | | { |
| | | HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd, acAPN); |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_POLL: |
| | | { |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_NUM_0: |
| | | case AIR780E_EVENT_NUM_1: |
| | | case AIR780E_EVENT_NUM_2: |
| | | case AIR780E_EVENT_NUM_3: |
| | | case AIR780E_EVENT_NUM_4: |
| | | case AIR780E_EVENT_NUM_5: |
| | | case AIR780E_EVENT_NUM_6: |
| | | case AIR780E_EVENT_NUM_7: |
| | | case AIR780E_EVENT_NUM_8: |
| | | case AIR780E_EVENT_NUM_9: |
| | | { |
| | | if(l_u32CmdIndex == 4) |
| | | l_u32RetryCnt = 0; |
| | | l_u32CmdIndex++; |
| | | if (l_u32CmdIndex >= HIDO_ARRARY_COUNT(astInitCmdList)) |
| | | { |
| | | _u32Event = HIDO_AT_EVENT_OK; |
| | | goto ok; |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPReady), HIDO_NULL); |
| | | } |
| | | break; |
| | | else |
| | | { |
| | | HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd, acAPN); |
| | | } |
| | | } |
| | | default: |
| | | else |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | l_u32RetryCnt++; |
| | | if (l_u32RetryCnt >= 3) |
| | | { |
| | | /* 重试超限 */ |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780E), HIDO_NULL); |
| | | } |
| | | else |
| | | { |
| | | /* 不是期待的结果,10后再次尝试 */ |
| | | HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(10), _pstFSM, |
| | | AIR780E_EVENT_DELAY); |
| | | } |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_DELAY: |
| | | { |
| | | HIDO_ATLiteCmdSend(pstATDevice, astInitCmdList[l_u32CmdIndex].m_u32TimeOut, astInitCmdList[l_u32CmdIndex].m_pcATCmd, acAPN); |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_POLL: |
| | | { |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_NUM_0: |
| | | case AIR780E_EVENT_NUM_1: |
| | | case AIR780E_EVENT_NUM_2: |
| | | case AIR780E_EVENT_NUM_3: |
| | | case AIR780E_EVENT_NUM_4: |
| | | case AIR780E_EVENT_NUM_5: |
| | | case AIR780E_EVENT_NUM_6: |
| | | case AIR780E_EVENT_NUM_7: |
| | | case AIR780E_EVENT_NUM_8: |
| | | case AIR780E_EVENT_NUM_9: |
| | | { |
| | | if(l_u32CmdIndex == 4) |
| | | { |
| | | _u32Event = HIDO_AT_EVENT_OK; |
| | | goto ok; |
| | | } |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | |
| | | { |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | Socket_ClosedAll(); |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | Socket_ClosedAll(); |
| | | #ifdef __AIR780E_MQTT__ |
| | | MQTT_ClosedAll(); |
| | | MQTT_ClosedAll(); |
| | | #endif |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_POLL: |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_TIMEOUT: |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL); |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_CLOSE: |
| | | { |
| | | HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; |
| | | HIDO_UINT32 u32ID = 0; |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_POLL: |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_TIMEOUT: |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EInit), HIDO_NULL); |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_CLOSE: |
| | | { |
| | | HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; |
| | | HIDO_UINT32 u32ID = 0; |
| | | |
| | | if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+QIURC: \"closed\",%d\r\n", &u32ID) != 1) |
| | | { |
| | | break; |
| | | } |
| | | |
| | | Socket_OnClosed(u32ID); |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_PDPDEACT: |
| | | if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+QIURC: \"closed\",%d\r\n", &u32ID) != 1) |
| | | { |
| | | l_bDeact = HIDO_TRUE; |
| | | break; |
| | | } |
| | | |
| | | Socket_OnClosed(u32ID); |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_PDPDEACT: |
| | | { |
| | | l_bDeact = HIDO_TRUE; |
| | | break; |
| | | } |
| | | #ifdef __AIR780E_MQTT__ |
| | | case AIR780E_EVENT_QMTSTAT: |
| | | case AIR780E_EVENT_QMTSTAT: |
| | | { |
| | | HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; |
| | | HIDO_UINT32 u32Err = 0; |
| | | HIDO_UINT32 u32ClientID = 0; |
| | | |
| | | if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+QMTSTAT: %d,%d\r\n", |
| | | &u32ClientID, &u32Err) != 2) |
| | | { |
| | | HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; |
| | | HIDO_UINT32 u32Err = 0; |
| | | HIDO_UINT32 u32ClientID = 0; |
| | | |
| | | if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+QMTSTAT: %d,%d\r\n", |
| | | &u32ClientID, &u32Err) != 2) |
| | | { |
| | | break; |
| | | } |
| | | |
| | | if(u32Err != 0) |
| | | { |
| | | MQTT_OnClosed(u32ClientID); |
| | | |
| | | break; |
| | | } |
| | | |
| | | break; |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_QMTPUBEX: |
| | | |
| | | if(u32Err != 0) |
| | | { |
| | | AIR780EMQTT_SendAck((HIDO_DataStruct *) _pArg); |
| | | MQTT_OnClosed(u32ClientID); |
| | | |
| | | break; |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_QMTPUBEX: |
| | | { |
| | | AIR780EMQTT_SendAck((HIDO_DataStruct *) _pArg); |
| | | |
| | | break; |
| | | } |
| | | #endif |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | |
| | | |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_POLL: |
| | | { |
| | | if (HIDO_TRUE == l_bDeact) |
| | | { |
| | | l_bDeact = HIDO_FALSE; |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EReady), HIDO_NULL); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_POLL: |
| | | { |
| | | if (HIDO_TRUE == l_bDeact) |
| | | { |
| | | l_bDeact = HIDO_FALSE; |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EReady), HIDO_NULL); |
| | | break; |
| | | } |
| | | |
| | | if(AIR780E_PollOnIPReady(pstATDevice) == HIDO_OK) |
| | | { |
| | | break; |
| | | } |
| | | |
| | | if(AIR780E_PollOnIPReady(pstATDevice) == HIDO_OK) |
| | | { |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | |
| | | |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | l_u32CGATT = 0; |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CGATT?\r\n"); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | { |
| | | if (1 == l_u32CGATT) |
| | | { |
| | | l_u32CGATT = 0; |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CGATT?\r\n"); |
| | | break; |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL); |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | else |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | break; |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EReady), HIDO_NULL); |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | { |
| | | if (1 == l_u32CGATT) |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL); |
| | | } |
| | | else |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EReady), HIDO_NULL); |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_CGATT: |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_CGATT: |
| | | { |
| | | HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; |
| | | |
| | | if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+CGATT: %d", &l_u32CGATT) == 1) |
| | | { |
| | | HIDO_DataStruct *pstData = (HIDO_DataStruct *) _pArg; |
| | | |
| | | if (HIDO_UtilParseFormat((HIDO_UINT8 *) pstData->m_pData, pstData->m_u32Len, "+CGATT: %d", &l_u32CGATT) == 1) |
| | | { |
| | | |
| | | } |
| | | |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | |
| | | |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "%s\r\n", Module_GetRunATCmd()); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | case HIDO_AT_EVENT_ERROR: |
| | | case HIDO_AT_EVENT_TIMEOUT: |
| | | { |
| | | Module_RunATCmdResult((HIDO_DataStruct *)_pArg); |
| | | HIDO_FSMStateChange(_pstFSM, l_stStateArg.m_pstAfterState, HIDO_NULL); |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "%s\r\n", Module_GetRunATCmd()); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | case HIDO_AT_EVENT_ERROR: |
| | | case HIDO_AT_EVENT_TIMEOUT: |
| | | { |
| | | Module_RunATCmdResult((HIDO_DataStruct *)_pArg); |
| | | HIDO_FSMStateChange(_pstFSM, l_stStateArg.m_pstAfterState, HIDO_NULL); |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | |
| | | |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CFUN=0\r\n"); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | case HIDO_AT_EVENT_ERROR: |
| | | { |
| | | Module_PowerEvent(MODULE_GSM, MODULE_STATE_POWER_OFF); |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIdle), HIDO_NULL); |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CFUN=0\r\n"); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | case HIDO_AT_EVENT_ERROR: |
| | | { |
| | | Module_PowerEvent(MODULE_GSM, MODULE_STATE_POWER_OFF); |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIdle), HIDO_NULL); |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | |
| | | |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CFUN=1\r\n"); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | case HIDO_AT_EVENT_ERROR: |
| | | { |
| | | Module_PowerEvent(MODULE_GSM, MODULE_STATE_POWER_ON); |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EReady), HIDO_NULL); |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CFUN=1\r\n"); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | case HIDO_AT_EVENT_ERROR: |
| | | { |
| | | Module_PowerEvent(MODULE_GSM, MODULE_STATE_POWER_ON); |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EReady), HIDO_NULL); |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | |
| | | *******************************************************************************/ |
| | | static HIDO_INT32 AIR780E_RunATCmdPoll(HIDO_ATLiteDeviceStruct *_pstATDevice) |
| | | { |
| | | if(Module_RunATCmdEnable() == HIDO_TRUE) |
| | | { |
| | | l_stStateArg.m_pArg = HIDO_NULL; |
| | | l_stStateArg.m_pstAfterState = _pstATDevice->m_pstFSM->m_pstCurrentState; |
| | | HIDO_FSM_DETACHED_STATE_SETTLE(AIR780ERunATCmd, _pstATDevice->m_pstFSM->m_pstCurrentState->m_pstParent, HIDO_NULL); |
| | | HIDO_FSMStateChange(_pstATDevice->m_pstFSM, HIDO_FSM_STATE(AIR780ERunATCmd), HIDO_NULL); |
| | | if(Module_RunATCmdEnable() == HIDO_TRUE) |
| | | { |
| | | l_stStateArg.m_pArg = HIDO_NULL; |
| | | l_stStateArg.m_pstAfterState = _pstATDevice->m_pstFSM->m_pstCurrentState; |
| | | HIDO_FSM_DETACHED_STATE_SETTLE(AIR780ERunATCmd, _pstATDevice->m_pstFSM->m_pstCurrentState->m_pstParent, HIDO_NULL); |
| | | HIDO_FSMStateChange(_pstATDevice->m_pstFSM, HIDO_FSM_STATE(AIR780ERunATCmd), HIDO_NULL); |
| | | |
| | | return HIDO_OK; |
| | | } |
| | | return HIDO_OK; |
| | | } |
| | | |
| | | return HIDO_ERR; |
| | | return HIDO_ERR; |
| | | } |
| | | |
| | | /******************************************************************************* |
| | |
| | | *******************************************************************************/ |
| | | static HIDO_INT32 AIR780E_CloseWirelessPoll(HIDO_ATLiteDeviceStruct *_pstATDevice) |
| | | { |
| | | if(Module_NeedPowerOff(MODULE_GSM) == HIDO_TRUE) |
| | | { |
| | | l_stStateArg.m_pArg = HIDO_NULL; |
| | | l_stStateArg.m_pstAfterState = _pstATDevice->m_pstFSM->m_pstCurrentState; |
| | | HIDO_FSM_DETACHED_STATE_SETTLE(AIR780ECloseWireless, _pstATDevice->m_pstFSM->m_pstCurrentState->m_pstParent, HIDO_NULL); |
| | | HIDO_FSMStateChange(_pstATDevice->m_pstFSM, HIDO_FSM_STATE(AIR780ECloseWireless), HIDO_NULL); |
| | | if(Module_NeedPowerOff(MODULE_GSM) == HIDO_TRUE) |
| | | { |
| | | l_stStateArg.m_pArg = HIDO_NULL; |
| | | l_stStateArg.m_pstAfterState = _pstATDevice->m_pstFSM->m_pstCurrentState; |
| | | HIDO_FSM_DETACHED_STATE_SETTLE(AIR780ECloseWireless, _pstATDevice->m_pstFSM->m_pstCurrentState->m_pstParent, HIDO_NULL); |
| | | HIDO_FSMStateChange(_pstATDevice->m_pstFSM, HIDO_FSM_STATE(AIR780ECloseWireless), HIDO_NULL); |
| | | |
| | | return HIDO_OK; |
| | | } |
| | | return HIDO_OK; |
| | | } |
| | | |
| | | return HIDO_ERR; |
| | | return HIDO_ERR; |
| | | } |
| | | |
| | | /******************************************************************************* |
| | |
| | | *******************************************************************************/ |
| | | static HIDO_INT32 AIR780E_OpenWirelessPoll(HIDO_ATLiteDeviceStruct *_pstATDevice) |
| | | { |
| | | if(Module_NeedPowerOn(MODULE_GSM) == HIDO_TRUE) |
| | | { |
| | | l_stStateArg.m_pArg = HIDO_NULL; |
| | | l_stStateArg.m_pstAfterState = _pstATDevice->m_pstFSM->m_pstCurrentState; |
| | | HIDO_FSM_DETACHED_STATE_SETTLE(AIR780EOpenWireless, _pstATDevice->m_pstFSM->m_pstCurrentState->m_pstParent, HIDO_NULL); |
| | | HIDO_FSMStateChange(_pstATDevice->m_pstFSM, HIDO_FSM_STATE(AIR780EOpenWireless), HIDO_NULL); |
| | | if(Module_NeedPowerOn(MODULE_GSM) == HIDO_TRUE) |
| | | { |
| | | l_stStateArg.m_pArg = HIDO_NULL; |
| | | l_stStateArg.m_pstAfterState = _pstATDevice->m_pstFSM->m_pstCurrentState; |
| | | HIDO_FSM_DETACHED_STATE_SETTLE(AIR780EOpenWireless, _pstATDevice->m_pstFSM->m_pstCurrentState->m_pstParent, HIDO_NULL); |
| | | HIDO_FSMStateChange(_pstATDevice->m_pstFSM, HIDO_FSM_STATE(AIR780EOpenWireless), HIDO_NULL); |
| | | |
| | | return HIDO_OK; |
| | | } |
| | | return HIDO_OK; |
| | | } |
| | | |
| | | return HIDO_ERR; |
| | | return HIDO_ERR; |
| | | } |
| | | |
| | | /******************************************************************************* |
| | |
| | | return HIDO_OK; |
| | | } |
| | | #endif |
| | | |
| | | |
| | | /* CSQ */ |
| | | if (AIR780ECSQ_Poll(_pstATDevice) == HIDO_OK) |
| | | { |
| | |
| | | } |
| | | |
| | | #ifdef __AIR780E_GNSS__ |
| | | /* GNSS */ |
| | | /* GNSS */ |
| | | if(AIR780EGNSS_Poll(_pstATDevice) == HIDO_OK) |
| | | { |
| | | return HIDO_OK; |
| | |
| | | return HIDO_OK; |
| | | } |
| | | #endif |
| | | |
| | | |
| | | /* Socket */ |
| | | if (AIR780ESocket_Poll(_pstATDevice) == HIDO_OK) |
| | | { |
| | |
| | | return HIDO_OK; |
| | | } |
| | | #endif |
| | | |
| | | |
| | | /* RunATCmd */ |
| | | if (AIR780E_RunATCmdPoll(_pstATDevice) == HIDO_OK) |
| | | { |
| | |
| | | { |
| | | return HIDO_OK; |
| | | } |
| | | |
| | | |
| | | #ifdef __AIR780E_FILE__ |
| | | if (AIR780EFile_Poll(_pstATDevice) == HIDO_OK) |
| | | { |