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

📄 common.h

📁 一个关于PCI CAN开发板的windows下的驱动程序,用DDK做的,希望对做PCI CAN板的朋友有用
💻 H
字号:
//***************************************************************************************
//*	IOCTRL CanDriver Common Header
//*
//*		Common data for the IoCtrl can driver and application
//*
//*	Mar	2008 - DriverEntry 
//*     Created by linbirg 2008-03-20, based a sample driver Common.h
//***************************************************************************************
//* Software is provided "as is", without warranty or guarantee of any kind. The use of 
//* this software is at your own risk. We take no responsibly for any damage that may be 
//* caused through its use. DriverEntry source code may not be used in any product without 
//* written consent. DriverEntry source code or software may not distributed in any form 
//* without written consent. All enquiries should be made to info@driverenrty.com. 
//*
//*	THE ENTIRE RISK FROM THE USE OF THIS SOFTWARE REMAINS WITH YOU			
//***************************************************************************************

#pragma once 

#ifndef _COMMON_H
#define _COMMON_H

#define SYMBOLIC_LINK_NAME	L"\\DosDevices\\CanDriver"
#define DEVICE_NAME			L"\\Device\\CanDriver"
#define WIN32_LINK_NAME		"\\\\.\\CanDriver"

#define CAN_FRAME_LEN		13							// txdata and rxdata length
#define CAN_ACK_LEN         4							// ACK len

// 设备类型定义
// 0-32767被Microsoft占用,用户自定义可用32768-65535
#define FILE_DEVICE_CAN    0x0000f000

// I/O控制码定义
// 0-2047被Microsoft占用,用户自定义可用2048-4095 
#define CAN_IOCTL_BASE 0xf00

//
// Device IO Control Codes 
// CAN Driver IO Control Codes——by linbirg
// 接口仍然保留,但是功能可能改变
#define IOCTRL_INIT_CAN 	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+4,METHOD_BUFFERED,FILE_ANY_ACCESS)
// int can_init(UINT8_T channel);

#define IOCTRL_CAN_TRANS	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+7,METHOD_BUFFERED,FILE_ANY_ACCESS)
// void can_transmit(UINT8_T channel, char *txdata);

#define IOCTRL_CAN_REV	        CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+8,METHOD_BUFFERED,FILE_ANY_ACCESS)
// int can_receive(UINT8_T channel, char *rxdata);

#define IOCTRL_CAN_RST		CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+11,METHOD_BUFFERED,FILE_ANY_ACCESS)
// int can_rst(UINT8_T channel);

#define IOCTRL_CAN_STATUS	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+16,METHOD_BUFFERED,FILE_ANY_ACCESS)
// UINT8_T can_st(UINT8_T channel);

#define IOCTRL_CAN_RCV_LEN	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+19,METHOD_BUFFERED,FILE_ANY_ACCESS)
// UINT32_T can_RcvLngth(UINT8_T channel);

#define IOCTRL_CAN_TRANS_LEN	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+20,METHOD_BUFFERED,FILE_ANY_ACCESS)
// UINT32_T can_TrsmtLngth(UINT8_T channel);

#define IOCTRL_CAN_REG_READ	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+22,METHOD_BUFFERED,FILE_ANY_ACCESS)
// UINT8_T rd_reg(UINT8_T channel, UINT8_T sja_reg);

#define IOCTRL_CAN_REG_WRITE	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+23,METHOD_BUFFERED,FILE_ANY_ACCESS)
// void wrt_reg(UINT8_T channel, UINT8_T sja_reg, char data);

#define IOCTRL_CAN_READ_TRNSMEM	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+24,METHOD_BUFFERED,FILE_ANY_ACCESS)
// int can_rd_trn(UINT8_T channel, char *rxdata);

#define IOCTRL_CAN_WRITE_RECVMEM	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+25,METHOD_BUFFERED,FILE_ANY_ACCESS)
// void can_wrt_recv(UINT8_T channel, char *txdata);

// 新增功能
#define IOCTRL_CAN_SET_URG	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+26,METHOD_BUFFERED,FILE_ANY_ACCESS)
//void can_set_urg(UINT8_T channel, char *ACK);

#define IOCTRL_CAN_TRANS_URG	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+27,METHOD_BUFFERED,FILE_ANY_ACCESS)	
//void can_TrnUrg(UINT8_T channel, char *txdata);

#define IOCTRL_CAN_REGSTR_FUN	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+28,METHOD_BUFFERED,FILE_ANY_ACCESS)
//void registerFunc(PFUNC func);

// 以下接口已经
//#define IOCTRL_INIT_CAN_W	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+3,METHOD_BUFFERED,FILE_ANY_ACCESS)

//#define IOCTRL_CAN_SET_ARX	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+21,METHOD_BUFFERED,FILE_ANY_ACCESS)

//#define IOCTRL_CAN_REV_URG	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+5,METHOD_BUFFERED,FILE_ANY_ACCESS)

//#define IOCTRL_CAN_REV_URG1	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+6,METHOD_BUFFERED,FILE_ANY_ACCESS)

//#define IOCTRL_ABORT_CAN	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+9,METHOD_BUFFERED,FILE_ANY_ACCESS)

//#define IOCTRL_CAN_CHNL_RST	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+10,METHOD_BUFFERED,FILE_ANY_ACCESS)

//#define IOCTRL_CAN_CHK_CHNL	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+12,METHOD_BUFFERED,FILE_ANY_ACCESS)

//#define IOCTRL_CAN_CHK_HW	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+13,METHOD_BUFFERED,FILE_ANY_ACCESS)

//#define IOCTRL_CAN_READ		CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+14,METHOD_BUFFERED,FILE_ANY_ACCESS)

//#define IOCTRL_CAN_WRITE	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+15,METHOD_BUFFERED,FILE_ANY_ACCESS)

//#define IOCTRL_CAN_RECV_MEM	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+17,METHOD_BUFFERED,FILE_ANY_ACCESS)

//#define IOCTRL_CAN_TRANS_MEM	CTL_CODE(FILE_DEVICE_CAN,CAN_IOCTL_BASE+18,METHOD_BUFFERED,FILE_ANY_ACCESS)

#endif

⌨️ 快捷键说明

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