| | |
| | | HIDO_FSM_STATE_FULL_DECLARE(AIR780EIPReady, AIR780ESocketClose) /* SOCKET关闭状态 */ |
| | | HIDO_FSM_STATE_FULL_DECLARE(AIR780EIPReady, AIR780ESocketSendData) /* SOCKET发送数据状态 */ |
| | | HIDO_FSM_STATE_FULL_DECLARE(AIR780EIPReady, AIR780ESocketSendAck) |
| | | HIDO_FSM_STATE_FULL_DECLARE(AIR780EIPReady, AIR780ESocketHeartConfig) |
| | | HIDO_FSM_STATE_FULL_DECLARE(AIR780EIPReady, AIR780ESocketHeartbeat) |
| | | |
| | | static HIDO_BOOL l_abSocketUnAck[SOCKET_NUM]; |
| | | static HIDO_UINT32 l_au32SocketUnAckTick[SOCKET_NUM]; |
| | |
| | | *******************************************************************************/ |
| | | |
| | | /******************************************************************************* |
| | | * State Name : AIR780ESocketHeartConfig |
| | | * Parent State : AIR780E |
| | | * Description : |
| | | * Author : 杜键 |
| | | * Modified Date: : 2018-05-01 |
| | | *******************************************************************************/ |
| | | HIDO_FSM_STATE_IMPLEMENT(AIR780ESocketHeartConfig, HIDO_FSM_STATE(AIR780EIPReady), HIDO_NULL) |
| | | { |
| | | HIDO_ATLiteDeviceStruct *pstATDevice = (HIDO_ATLiteDeviceStruct *) _pstFSM->m_pPrivateData; |
| | | static HIDO_INT32 l_i32SocketID = 0; |
| | | |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | l_i32SocketID = (HIDO_INT32) _pArg; |
| | | HIDO_ATLiteCmdSend(pstATDevice, HIDO_TIMER_TICK_S(30), "AT^HEARTCONFIG=1,%d,%u\r\n", l_i32SocketID, Socket_GetHeartbeatFreq(l_i32SocketID)); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_ERROR: |
| | | case HIDO_AT_EVENT_OK: |
| | | { |
| | | |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780ESocketHeartbeat), HIDO_NULL); |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | | } |
| | | |
| | | /******************************************************************************* |
| | | * State Name : AIR780ESocketHeartbeat |
| | | * Parent State : AIR780E |
| | | * Description : |
| | | * Author : 杜键 |
| | | * Modified Date: : 2018-05-01 |
| | | *******************************************************************************/ |
| | | HIDO_FSM_STATE_IMPLEMENT(AIR780ESocketHeartbeat, HIDO_FSM_STATE(AIR780EIPReady), HIDO_NULL) |
| | | { |
| | | HIDO_ATLiteDeviceStruct *pstATDevice = (HIDO_ATLiteDeviceStruct *) _pstFSM->m_pPrivateData; |
| | | static HIDO_INT32 l_i32SocketID = 0; |
| | | |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | l_i32SocketID = (HIDO_INT32) _pArg; |
| | | HIDO_ATLiteCmdSend(pstATDevice, HIDO_TIMER_TICK_S(30), "AT^HEARTBEATHEX=%d,%u,%s\r\n", l_i32SocketID, |
| | | strlen(Socket_GetHeartbeatData(l_i32SocketID)) / 2, Socket_GetHeartbeatData(l_i32SocketID)); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_ERROR: |
| | | case HIDO_AT_EVENT_OK: |
| | | { |
| | | |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL); |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | | } |
| | | |
| | | /******************************************************************************* |
| | | * State Name : AIR780ESocketConnect |
| | | * Parent State : AIR780E |
| | | * Description : |
| | | * Author : 杜键 |
| | | * Modified Date: : 2018-05-01 |
| | | *******************************************************************************/ |
| | | //extern uint8_t TCPfail_flag; |
| | | //extern uint32_t TCPfailetimer; |
| | | HIDO_FSM_STATE_IMPLEMENT(AIR780ESocketConnect, HIDO_FSM_STATE(AIR780EIPReady), HIDO_NULL) |
| | | { |
| | | static HIDO_INT32 l_i32SocketID = 0; |
| | |
| | | |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | l_i32SocketID = (HIDO_INT32) _pArg; |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CIPSTART=%d,\"%s\",\"%s\",%u\r\n", l_i32SocketID, |
| | | Socket_GetType(l_i32SocketID) == SOCKET_TYPE_TCP ? "TCP" : "UDP", |
| | | Socket_GetRemoteAddr(l_i32SocketID), Socket_GetRemotePort(l_i32SocketID)); |
| | | |
| | | HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(180), _pstFSM, AIR780E_EVENT_DELAY); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | HIDO_TimerCancel(u32FSMTimerID); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_ERROR: |
| | | { |
| | | Socket_OnConnectFailed(l_i32SocketID); |
| | | |
| | | l_u32FailedCnt++; |
| | | if(l_u32FailedCnt >= 3) |
| | | { |
| | | l_i32SocketID = (HIDO_INT32) _pArg; |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CIPSTART=%d,\"%s\",\"%s\",%u\r\n", l_i32SocketID, |
| | | Socket_GetType(l_i32SocketID) == SOCKET_TYPE_TCP ? "TCP" : "UDP", |
| | | Socket_GetRemoteAddr(l_i32SocketID), Socket_GetRemotePort(l_i32SocketID)); |
| | | |
| | | HIDO_FSMStartTimer(u32FSMTimerID, HIDO_TIMER_TYPE_ONCE, HIDO_TIMER_TICK_S(180), _pstFSM, AIR780E_EVENT_DELAY); |
| | | break; |
| | | l_u32FailedCnt = 0; |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780E), HIDO_NULL); |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | HIDO_TimerCancel(u32FSMTimerID); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | { |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_ERROR: |
| | | { |
| | | Socket_OnConnectFailed(l_i32SocketID); |
| | | |
| | | l_u32FailedCnt++; |
| | | if(l_u32FailedCnt >= 3) |
| | | { |
| | | l_u32FailedCnt = 0; |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780E), HIDO_NULL); |
| | | } |
| | | else |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL); |
| | | } |
| | | 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 (l_i32SocketID == u32ConnectID) |
| | | { |
| | | if (strncmp(stEvent.m_pData, "ALREADY CONNECT", stEvent.m_u32Len) == 0 |
| | | || strncmp(stEvent.m_pData, "CONNECT OK", stEvent.m_u32Len) == 0) |
| | | { |
| | | l_u32FailedCnt = 0; |
| | | Socket_OnConnected(l_i32SocketID); |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL); |
| | | } |
| | | else if (strncmp(stEvent.m_pData, "CONNECT FAIL", stEvent.m_u32Len) == 0) |
| | | { |
| | | Socket_OnConnectFailed(l_i32SocketID); |
| | | |
| | | l_u32FailedCnt++; |
| | | if (l_u32FailedCnt >= 3) |
| | | { |
| | | l_u32FailedCnt = 3; |
| | | //TCPfail_flag = 1; |
| | | Socket_Destroy(l_i32SocketID); |
| | | //TCPfailetimer = HIDO_TimerGetTick(); |
| | | // HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780E), HIDO_NULL); |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL); |
| | | } |
| | | else |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL); |
| | | } |
| | | } |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_DELAY: |
| | | else |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL); |
| | | } |
| | | 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; |
| | | } |
| | | default: |
| | | |
| | | if (l_i32SocketID == u32ConnectID) |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | if (strncmp(stEvent.m_pData, "ALREADY CONNECT", stEvent.m_u32Len) == 0 |
| | | || strncmp(stEvent.m_pData, "CONNECT OK", stEvent.m_u32Len) == 0) |
| | | { |
| | | l_u32FailedCnt = 0; |
| | | Socket_OnConnected(l_i32SocketID); |
| | | |
| | | if(Socket_UseHeartbeat(l_i32SocketID)) |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780ESocketHeartConfig), HIDO_NULL); |
| | | |
| | | } |
| | | else |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL); |
| | | } |
| | | |
| | | break; |
| | | } |
| | | else if (strncmp(stEvent.m_pData, "CONNECT FAIL", stEvent.m_u32Len) == 0) |
| | | { |
| | | Socket_OnConnectFailed(l_i32SocketID); |
| | | |
| | | l_u32FailedCnt++; |
| | | if (l_u32FailedCnt >= 3) |
| | | { |
| | | l_u32FailedCnt = 3; |
| | | Socket_Destroy(l_i32SocketID); |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL); |
| | | } |
| | | else |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL); |
| | | } |
| | | } |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_DELAY: |
| | | { |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL); |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | |
| | | |
| | | switch (_u32Event) |
| | | { |
| | | case HIDO_EVENT_ENTRY: |
| | | case HIDO_EVENT_ENTRY: |
| | | { |
| | | l_i32SocketID = (HIDO_INT32) _pArg; |
| | | HIDO_ATLiteCmdSend(pstATDevice, HIDO_TIMER_TICK_S(30), "AT+CIPCLOSE=%d\r\n", l_i32SocketID); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_ERROR: |
| | | case HIDO_AT_EVENT_OK: |
| | | case HIDO_AT_EVENT_TIMEOUT: |
| | | { |
| | | Socket_OnClosed(l_i32SocketID); |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL); |
| | | 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) |
| | | { |
| | | l_i32SocketID = (HIDO_INT32) _pArg; |
| | | HIDO_ATLiteCmdSend(pstATDevice, HIDO_TIMER_TICK_S(30), "AT+CIPCLOSE=%d\r\n", l_i32SocketID); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_ERROR: |
| | | case HIDO_AT_EVENT_OK: |
| | | |
| | | if (strncmp(stEvent.m_pData, "CLOSE OK", stEvent.m_u32Len) == 0) |
| | | { |
| | | Socket_OnClosed(l_i32SocketID); |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL); |
| | | 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, "CLOSE OK", stEvent.m_u32Len) == 0) |
| | | { |
| | | Socket_OnClosed(l_i32SocketID); |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL); |
| | | break; |
| | | } |
| | | |
| | | 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_i32SocketID = (HIDO_INT32) _pArg; |
| | | |
| | | pstSendQueue = Socket_GetSocketSendQueue(l_i32SocketID); |
| | | if(HIDO_NULL == pstSendQueue) |
| | | { |
| | | l_i32SocketID = (HIDO_INT32) _pArg; |
| | | |
| | | pstSendQueue = Socket_GetSocketSendQueue(l_i32SocketID); |
| | | if(HIDO_NULL == pstSendQueue) |
| | | { |
| | | break; |
| | | } |
| | | |
| | | l_pstMember = HIDO_VLQGetDequeueMember(pstSendQueue); |
| | | if(HIDO_NULL == l_pstMember) |
| | | { |
| | | break; |
| | | } |
| | | |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CIPSEND=%d,%u\r\n", l_i32SocketID, l_pstMember->m_u32DataLen); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | l_pstMember = HIDO_NULL; |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | { |
| | | //HIDO_Debug("OK\r\n"); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_ERROR: |
| | | { |
| | | Socket_OnClosed(l_i32SocketID); |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL); |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_ACK: |
| | | { |
| | | if(HIDO_ATLiteGetDebugFlag() == HIDO_TRUE) |
| | | { |
| | | HIDO_DebugHex((HIDO_UINT8 *)l_pstMember->m_pDataAddr, l_pstMember->m_u32DataLen); |
| | | } |
| | | |
| | | HIDO_ATLiteDataSend(pstATDevice, 20000, (HIDO_UINT8 *)l_pstMember->m_pDataAddr, l_pstMember->m_u32DataLen); |
| | | l_pstMember = HIDO_VLQGetDequeueMember(pstSendQueue); |
| | | if(HIDO_NULL == l_pstMember) |
| | | { |
| | | 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; |
| | | } |
| | | HIDO_ATLiteCmdSend(pstATDevice, AT_GENERAL_TIMEOUT_TIME, "AT+CIPSEND=%d,%u\r\n", l_i32SocketID, l_pstMember->m_u32DataLen); |
| | | break; |
| | | } |
| | | case HIDO_EVENT_EXIT: |
| | | { |
| | | l_pstMember = HIDO_NULL; |
| | | HIDO_ATLiteCmdSendOver(pstATDevice); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_OK: |
| | | { |
| | | //HIDO_Debug("OK\r\n"); |
| | | break; |
| | | } |
| | | case HIDO_AT_EVENT_ERROR: |
| | | { |
| | | Socket_OnClosed(l_i32SocketID); |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), HIDO_NULL); |
| | | break; |
| | | } |
| | | case AIR780E_EVENT_ACK: |
| | | { |
| | | if(HIDO_ATLiteGetDebugFlag() == HIDO_TRUE) |
| | | { |
| | | HIDO_DebugHex((HIDO_UINT8 *)l_pstMember->m_pDataAddr, l_pstMember->m_u32DataLen); |
| | | } |
| | | |
| | | if (l_i32SocketID == u32ConnectID) |
| | | HIDO_ATLiteDataSend(pstATDevice, 20000, (HIDO_UINT8 *)l_pstMember->m_pDataAddr, l_pstMember->m_u32DataLen); |
| | | 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 (l_i32SocketID == u32ConnectID) |
| | | { |
| | | if (strncmp(stEvent.m_pData, "SEND OK", stEvent.m_u32Len) == 0) |
| | | { |
| | | if (strncmp(stEvent.m_pData, "SEND OK", stEvent.m_u32Len) == 0) |
| | | pstSendQueue = Socket_GetSocketSendQueue(l_i32SocketID); |
| | | if (NULL == pstSendQueue) |
| | | { |
| | | pstSendQueue = Socket_GetSocketSendQueue(l_i32SocketID); |
| | | if (NULL == pstSendQueue) |
| | | { |
| | | break; |
| | | } |
| | | break; |
| | | } |
| | | |
| | | HIDO_VLQDequeue(pstSendQueue, l_pstMember); |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), NULL); |
| | | } |
| | | else if (strncmp(stEvent.m_pData, "SEND FAIL", stEvent.m_u32Len) == 0) |
| | | { |
| | | Socket_OnClosed(l_i32SocketID); |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), NULL); |
| | | } |
| | | HIDO_VLQDequeue(pstSendQueue, l_pstMember); |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EIPPoll), NULL); |
| | | } |
| | | else if (strncmp(stEvent.m_pData, "SEND FAIL", stEvent.m_u32Len) == 0) |
| | | { |
| | | Socket_OnClosed(l_i32SocketID); |
| | | HIDO_FSMStateChange(_pstFSM, HIDO_FSM_STATE(AIR780EInit), NULL); |
| | | } |
| | | } |
| | | |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | return HIDO_EVENT_NO_PROC; |
| | | } |
| | | } |
| | | |
| | | return HIDO_EVENT_OK; |
| | |
| | | else if (SOCKET_STATE_CLOSE == Socket_GetSocketState(i32SocketIndex)) |
| | | { |
| | | HIDO_FSMStateChange(_pstATDevice->m_pstFSM, HIDO_FSM_STATE(AIR780ESocketClose), |
| | | (HIDO_VOID *) (HIDO_UINT32) i32SocketIndex); |
| | | (HIDO_VOID *) (HIDO_UINT32) i32SocketIndex); |
| | | return HIDO_OK; |
| | | } |
| | | |