WXK
2025-05-22 e7101a7064d3e6da5a946d64bb0e43a77377e2f0
keil/include/components/internet/src/Socket.c
@@ -18,8 +18,8 @@
 *                                  Macro                                      *
 *******************************************************************************/
/* SOICKET相关 */
#define SOCKET_SEND_QUEUE_BUF_SIZE                    (512)
#define SOCKET_RECV_QUEUE_BUF_SIZE                    (512)
#define SOCKET_SEND_QUEUE_BUF_SIZE                    (1024)
#define SOCKET_RECV_QUEUE_BUF_SIZE                    (2000)
#define SOCKET_SEND_QUEUE_MEMBER_CNT                  16
#define SOCKET_RECV_QUEUE_MEMBER_CNT                  16
@@ -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;
/*******************************************************************************
@@ -378,6 +382,7 @@
    pstSocketData->m_eState = SOCKET_STATE_CONNECTED;
    /* 重置队列 */
#if 0
    HIDO_VLQInit(&pstSocketData->m_stSendQueue, pstSocketData->l_au8SendQueueBuf,
            SOCKET_SEND_QUEUE_BUF_SIZE, SOCKET_SEND_QUEUE_MEMBER_CNT);
    if(SOCKET_TYPE_TCP == pstSocketData->m_eType)
@@ -390,7 +395,8 @@
        HIDO_VLQInit(&pstSocketData->m_stRecvQueue, pstSocketData->l_au8RecvQueueBuf,
                SOCKET_RECV_QUEUE_BUF_SIZE, SOCKET_RECV_QUEUE_MEMBER_CNT);
    }
#endif
    /* 通知上层 */
    if(pstSocketData->m_fnEventProc != HIDO_NULL)
    {
@@ -690,7 +696,7 @@
    if(HIDO_NULL == pstMember)
    {
        HIDO_Debug("socket[%d] send buf full\r\n", _i32SockID);
//        AIR780E_Reset();
        return HIDO_ERR;
    }
@@ -762,6 +768,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描述符