⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 net_buffer.c

📁 ucos平台下的can网络源代码
💻 C
字号:
/*
 * COPYRIGHT (c) Notifier 1993-2004, All Rights Reserved
 *
 * 描述: NIC 通讯信息缓冲区
 *       
 *
 * 版本历史:
 *
 * 版本     作者        日期        修改内容
 * 1.0      阙昊        2006-07-26  建立  
 * 1.01     阙昊        2006-09-01  包含文件名变化
 * 1.02     阙昊        2006-09-13  包含文件目录变化
 *
 */
 
//==============================================================================
// 包含的头文件
//==============================================================================

// 标准库文件
#include <assert.h>

// 系统头文件

#include "system\sys_types.h"

#include "driver\drv_chn_lpc2xxx_can.h"

#include "library\lib_shell.h"
#include "library\lib_log.h"

#include "net_buffer.h" 

//==============================================================================
// 本地宏及类型定义
//==============================================================================
#define MODULE	"NET_BUFFER"

//==============================================================================
// 内部变量定义
//==============================================================================
static NET_BUFFER s_NetBuffer;

//==============================================================================
// 全局变量定义
//==============================================================================
LogDesc g_logDescNetBuffer = 
    {
        MODULE,
        LOG_LEVEL_ALL_ON,
    };

static LogDesc *sg_pLogDesc = &g_logDescNetBuffer;

NET_BUFFER *NB_GetBufferHandler(void)
{
    s_NetBuffer.pMsgTail = &(s_NetBuffer.msgBuf[0]);
    s_NetBuffer.pMsgHead = &(s_NetBuffer.msgBuf[0]);
    s_NetBuffer.pMsgPull = &(s_NetBuffer.msgBuf[0]);
    s_NetBuffer.freeBytes = NIC_CLIENT_COM_BUFFER_SIZE;
    
    return (&s_NetBuffer);
}

INT32U NB_PutMsg
    ( NET_BUFFER *a_pBufHandler,
      INT8U *a_pMsgBuf,
      INT32U a_MsgLen
    )
{
    INT32U msgCnt;
    
    if( a_MsgLen > (a_pBufHandler -> freeBytes) )
    { return 0; }
    
    for( msgCnt = 0; msgCnt < a_MsgLen; ++msgCnt )
    {
        *(a_pBufHandler -> pMsgTail) = *a_pMsgBuf;
        ++(a_pBufHandler -> pMsgTail);
        ++a_pMsgBuf;
        --(a_pBufHandler -> freeBytes);
    }
    return msgCnt;
}

INT32U NB_GetMsg
    ( NET_BUFFER *a_pBufHandler,
      INT8U *a_pMsgBuf,
      INT32U a_MsgLen    
    )
{
    INT32U msgCnt;
    
    if( a_MsgLen > (a_pBufHandler -> freeBytes) )
    { return 0; }
    
    for( msgCnt = 0; msgCnt < a_MsgLen; ++msgCnt )
    {
        *(a_pBufHandler -> pMsgTail) = *a_pMsgBuf;
        ++(a_pBufHandler -> pMsgTail);
        ++a_pMsgBuf;
        --(a_pBufHandler -> freeBytes);
    }
    return msgCnt;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -