yincheng.zhong
2024-08-26 6a54fd6dd7b40c274b68b0f27bedb7b71b7a21c5
keil/include/components/internet/src/Socket.c
@@ -46,6 +46,10 @@
    HIDO_UINT8 l_au8SendQueueBuf[SOCKET_SEND_QUEUE_BUF_SIZE];
    HIDO_UINT8 l_au8RecvQueueBuf[SOCKET_RECV_QUEUE_BUF_SIZE];
    HIDO_BOOL m_bUseHeartbeat;
    HIDO_UINT32 m_u32HeartbeatFreq;
    HIDO_CHAR m_acHeartbeatData[128];
}ST_SocketData;
/*******************************************************************************
@@ -762,6 +766,70 @@
}
/*******************************************************************************
 * Function Name     : Socket_UseHeartbeat
 *******************************************************************************/
HIDO_BOOL Socket_UseHeartbeat(HIDO_INT32 _i32SockID)
{
    ST_SocketData *pstSocketData = &l_astSocketData[_i32SockID];
    if(_i32SockID < 0 || _i32SockID >= SOCKET_NUM)
    {
        return HIDO_FALSE;
    }
    return pstSocketData->m_bUseHeartbeat;
}
/*******************************************************************************
 * Function Name     : Socket_SetHeartbeatData
 *******************************************************************************/
HIDO_INT32 Socket_HeartbeatConfig(HIDO_INT32 _i32SockID, HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32Len, HIDO_UINT32 _u32HeartbeatFreq)
{
    ST_SocketData *pstSocketData = &l_astSocketData[_i32SockID];
    if(_i32SockID < 0 || _i32SockID >= SOCKET_NUM)
    {
        return HIDO_ERR;
    }
    pstSocketData->m_bUseHeartbeat = HIDO_TRUE;
    pstSocketData->m_u32HeartbeatFreq = _u32HeartbeatFreq;
    HIDO_UtilByteArrayToHexString(_pu8Data, _u32Len, pstSocketData->m_acHeartbeatData, sizeof(pstSocketData->m_acHeartbeatData), HIDO_FALSE);
    return HIDO_OK;
}
/*******************************************************************************
 * Function Name     : Socket_GetHeartbeatFreq
 *******************************************************************************/
HIDO_UINT32 Socket_GetHeartbeatFreq(HIDO_INT32 _i32SockID)
{
    ST_SocketData *pstSocketData = &l_astSocketData[_i32SockID];
    if(_i32SockID < 0 || _i32SockID >= SOCKET_NUM)
    {
        return 300;
    }
    return pstSocketData->m_u32HeartbeatFreq;
}
/*******************************************************************************
 * Function Name     : Socket_GetHeartbeatFreq
 *******************************************************************************/
HIDO_CHAR *Socket_GetHeartbeatData(HIDO_INT32 _i32SockID)
{
    ST_SocketData *pstSocketData = &l_astSocketData[_i32SockID];
    if(_i32SockID < 0 || _i32SockID >= SOCKET_NUM)
    {
        return 300;
    }
    return pstSocketData->m_acHeartbeatData;
}
/*******************************************************************************
 * Function Name     : Socket_Recv
 * Description       : 从Socket接收队列中读取数据
 * Input             : _i32Sock Socket描述符