📄 common.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 + -