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

📄 ican_define.h

📁 可自行修改移植的CAN应用层协议栈
💻 H
字号:
#ifndef __ICAN_Define_H
#define __ICAN_Define_H


#include "config.h"


/**********iCAN  Rev 1.01 命令定义******************
作者:张森
日期:2008年3月31日
*****************************************************/

/****************FuncID(功能码)***********************/
#define		write_port 					0x01	//写资源
#define		read_port  					0x02	//读资源
#define		slv_to_mas_trigger			0x03	//丛机主动发送数据
#define		creat_cnet					0x04	//建立连接
#define		del_cnet					0x05	//删除连接
#define		reset_sla					0x06	//复位从站
#define		check_ID					0x07	//检测MACID
#define		err_cnet					0x0f	//错误响应

/******************ACK(响应表示位)*******************/
#define     iCAN_ACK_enable             0		//需要应答
#define     iCAN_ACK_disable            1		//不需要应答


/*******************ErrID(异常响应码)***************/
#define		funcID_unexist				0x01	//功能码不存在
#define		res_unfound					0x02	//资源不存在
#define		cmd_unsupport    			0x03	//命令不支持
#define		funcID_parameter_unsupport	0x04	//功能码非法
#define		cnet_unexist				0x05	//连接不存在
#define		operate_impact				0x06	//操作无效
#define		flag_err					0x07	//分段传输错误

#define ICAN_SLV_NUM 	7        //定义从机数量
//#define ican_sla_Qsize  10		//
#define ican_sla_buf	70
/************************iCAN从站列表结构体*******************************
 作者:张森
 日期:2008年4月2日
**************************************************************************/
typedef struct tagiCANSLV
{	
	INT8U SlvID;	//从站MacId
	INT8U CycTime;	//访问间隔(10ms)
	INT8U sla_status;//从机状态 0未连接,当主机扫描首先连接,1连接正常,2从机方离线主机空间没有释放,3主机扫描时忽略此站,释放资源

	INT8U sla_timeover_cont; //超时计数器
	INT8U DILen,*P_DILen;	//从站数字量输入长度(byte)
	INT8U DOLen,*P_DOLen;	//从站数字量输出长度(byte)
	INT8U AILen,*P_AILen;	//从站模拟量输入长度(byte)
	INT8U AOLen,*P_AOLen;	//从站模拟量输出长度(byte)
	INT8U BUF[ican_sla_buf];	//从站数据缓冲(byte)
}iCANSLV;


/************************iCAN设备描述信息********************************
 作者:张森
 日期:2008年3月31日
**************************************************************************/


typedef	union	ICAN_MESS_ID
{
	INT32U		ICAN_ID_32b;			//字操作定义
		
		struct	_ICAN_
		{
		INT32U	SourceID 	:8;			//资源地址
		INT32U	FuncID 		:4;			//功能码
		INT32U	ACK 		:1;			//响应请求
		INT32U	DestMACID 	:8;			//目标ID
		INT32U	SrcMACID 	:8;			//源ID
		INT32U	RSV_BIT3 	:3;
		}stcICAN;
		
}ICANmes,*P_ICANmes;

/************************iCAN从站结构体*******************************
 作者:张森
 日期:2008年4月8日
**************************************************************************/
typedef struct tagDEVICERCSR
{
	INT8U DILen;
	INT8U DOLen;
	INT8U AILen;
	INT8U AOLen;
	INT8U U0Len;
	INT8U U1Len;
	INT8U RsvLen;
	INT8U CfgLen;
	INT8U *pDIData;
	INT8U *pDOData;
	INT8U *pAIData;
	INT8U *pAOData;
	INT8U *pU0Data;
	INT8U *pU1Data;
	INT8U *pRsvData;
	INT8U *pCfgData;
}DEVICERCSR;

/*******************响应标志**********
 作者:张森
 日期:2008年4月8日
**************************************/
#define ican_read_OK  (1)//读ok
#define ican_write_OK  (1<<1)//写ok
#define ican_crt_cnet_ok (1<<2) //建立连接ok
#define ican_del_cnet_ok (1<<3)//删除连接ok
#define ican_err_funID_unfound (1<<4)//1功能码不支持 0x01
#define ican_err_sourID_unfound (1<<5)//2资源不存在 2
#define ican_err_cmd_unsupply (1<<6)//3命令不支持:从站在连接状态,只读时写数据 3
#define ican_err_funID_err (1<<7)//4功能码参数非法,格式不对,资源超出范围  4
#define ican_err_cent_unfound (1<<8)//5连接不存在
#define ican_err_operate_impact	(1<<9)//6操作无效(对于串口数据)
#define ican_err_flag_err (1<<10)//7分段错误
#define ican_id_exiet (1<<11)//id重复

#endif

⌨️ 快捷键说明

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