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

📄 msg_dispatch.c

📁 ucos平台下的can网络源代码
💻 C
字号:
/*
 * COPYRIGHT (c) Notifier 1993-2004, All Rights Reserved
 *
 * 描述: NIC CAN通讯信息分派任务 
 *       
 *
 * 版本历史:
 *
 * 版本     作者        日期        修改内容
 * 1.0      阙昊        2006-07-25  建立  
 * 1.01     阙昊        2006-09-01  包含文件名变化
 * 1.1      阙昊        2006-09-13  根据新的协议进行修改
 * 1.11     阙昊        2006-10-20  小修改
 * 1.20      阙昊        2007-07-12  重写
 *
 */
 
//==============================================================================
// 包含的头文件
//==============================================================================

// 标准库文件
#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 "msg_dispatch.h" 
//==============================================================================
// 本地宏及类型定义
//==============================================================================
#define MODULE	"NET_DISPATCH"

//==============================================================================
// 内部变量定义
//==============================================================================
LogDesc g_logDescDispatch = 
    {
        MODULE,
        LOG_LEVEL_ALL_ON,
    };
    
static LogDesc *sg_pLogDesc = &g_logDescDispatch;

INT8U GetMsgCtrl( 
    NWCAN_MSG *a_pCanMsg )
{
    return (INT8U)(((a_pCanMsg -> MsgID) & MSG_CTRL_MASK) >> MSG_CTRL_OFFSET);
}

INT8U GetMsgPackageCnt( 
    NWCAN_MSG *a_pCanMsg )
{
    return (INT8U)(((a_pCanMsg -> MsgID) & MSG_PACKAGE_CNT_MASK) >> MSG_PACKAGE_CNT_OFFSET);
}

INT8U GetMsgTxAddr( 
    NWCAN_MSG *a_pCanMsg )
{
    return (INT8U)(((a_pCanMsg -> MsgID) & MSG_TX_ADDRESS_MASK) >> MSG_TX_ADDRESS_OFFSET);
}

INT8U GetMsgSrcAddr( 
    NWCAN_MSG *a_pCanMsg )
{
    return (INT8U)(((a_pCanMsg -> MsgID) & MSG_SRC_ADDRESS_MASK) >> MSG_SRC_ADDRESS_OFFSET);
}
    
void SetMsgCtrl( 
    INT32U *a_canId,
    INT8U a_MsgCtrl )
{
    *a_canId = ((*a_canId) & ~(MSG_CTRL_MASK))|( (a_MsgCtrl << MSG_CTRL_OFFSET) & MSG_CTRL_MASK );
    return;
}

void SetMsgPackageCnt( 
    INT32U *a_canId,
    INT8U a_msgCnt )
{
    *a_canId = ((*a_canId) & ~(MSG_PACKAGE_CNT_MASK))|( (a_msgCnt << MSG_PACKAGE_CNT_OFFSET) & MSG_PACKAGE_CNT_MASK );
    return;
}

void SetMsgTxAddr( 
    INT32U *a_canId,
    INT8U a_TxAddr )
{
    *a_canId = ((*a_canId) & ~(MSG_TX_ADDRESS_MASK))|( (a_TxAddr << MSG_TX_ADDRESS_OFFSET) & MSG_TX_ADDRESS_MASK );
    return;
}

void SetMsgSrcAddr( 
    INT32U *a_canId,
    INT8U a_SrcAddr )
{
    *a_canId = (*a_canId & ~(MSG_SRC_ADDRESS_MASK))|( (a_SrcAddr << MSG_SRC_ADDRESS_OFFSET) & MSG_SRC_ADDRESS_MASK );
    return;
}

⌨️ 快捷键说明

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