can 驱动头文件

来源:互联网 发布:外贸email软件 编辑:程序博客网 时间:2024/06/07 12:11
#ifndef _CAN_H#define _CAN_Henum BAUD_RATE{BAUD_5K = 0, BAUD_10K = 1, BAUD_20K = 2,BAUD_40K = 3,BAUD_50K = 4,BAUD_80K = 5,BAUD_100K = 6,BAUD_125K = 7,BAUD_200K = 8,BAUD_250K = 9,BAUD_400K = 10,BAUD_500K = 11,BAUD_666K = 12,BAUD_800K = 13,BAUD_1000K = 14};typedef struct _BOARD_INFO { //设备信息USHORT  hw_Version;//硬件版本号,用16进制表示USHORT  fw_Version;//固件版本号,用16进制表示USHORT  dr_Version;//驱动程序版本号,用16进制表示USHORT  in_Version;//接口库版本号,用16进制表示BYTE    can_Num;//表示有几路CAN通道CHAR    str_Serial_Num[20]; //此板卡的序列号CHAR    str_hw_Type[40];//硬件类型USHORT  Reserved[4];//系统保留} BOARD_INFO, *PBOARD_INFO; typedef struct _CAN_OBJ {//can信息帧UINT    ID;//报文IDUINT    TimeStamp;//接收到信息帧时的时间标识,从CAN控制器初始化开始计时BYTE    TimeFlag;//是否使用时间标识,为1 时TimeStamp 有效,TimeFlag 和TimeStamp 只在此帧为接收帧时有意义BYTE    SendType;//发送帧类型,=0时为正常发送,=1时为单次发送,=2时为自发自收,=3时为单次自发自收,只在此帧为发送帧时有意义BYTE    RemoteFlag;//是否是远程帧BYTE    ExternFlag;//是否是扩展帧BYTE    DataLen;//数据长度(<=8),即Data 的长度BYTE    Data[8];//报文的数据BYTE    Reserved[3];//系统保留} CAN_OBJ, *PCAN_OBJ;typedef struct _CAN_STATUS {//Can控制器状态信息UCHAR   ErrInterrupt;//中断记录,读操作会清除UCHAR   regMode;//CAN控制器模式寄存器UCHAR   regStatus;//CAN控制器状态寄存器UCHAR   regALCapture;//CAN控制器仲裁丢失寄存器UCHAR   regECCapture;//CAN控制器错误寄存器UCHAR   regEWLimit;//CAN控制器错误警告限制寄存器UCHAR   regRECounter;//CAN控制器接收错误寄存器UCHAR   regTECounter;//CAN控制器发送错误寄存器DWORD   Reserved;//系统保留} CAN_STATUS, *PCAN_STATUS;typedef struct _ERR_INFO {//运行时的错误信息UINT ErrCode;//错误码BYTE Passive_ErrData[3];//当产生的错误中有消极错误时表示为消极错误的错误标识数据BYTE ArLost_ErrData;//当产生的错误中有仲裁丢失错误时表示为仲裁丢失错误的错误标识数据} ERR_INFO, *PERR_INFO; typedef struct _INIT_CONFIG {//Can的初始化配置DWORD   AccCode;//验收码DWORD   AccMask;//屏蔽码DWORD   Reserved;//保留UCHAR   Filter;//滤波方式BAUD_RATE Rate;//波特率UCHAR   Mode;//模式} INIT_CONFIG, *PINIT_CONFIG;typedef struct _tagChgDesIPAndPort { //目标ip和端口的必要信息char szpwd[10];//更改目标IP 和端口所需要的密码,长度小于10,比如为“11223344 ”char szdesip[20];//所要更改的目标IP ,比如为“192.168.0.111 ”int desport;//所要更改的目标端口,比如为4000BYTE blisten;//所要更改的工作模式,0 表示正常模式,1 表示只听模式} CHGDESIPANDPORT;/* *描述:此函数打开设备。 *参数: *DevType :设备类型号。  *DevIndex :设备索引号。   *Reserved : *返回值:为1表示操作成功,0 表示操作失败。 */DWORD __stdcall OpenDevice(DWORD DevType, DWORD DevIndex, DWORD Reserved);/* *描述:此函数关闭设备。 *参数: *DevType :设备类型号。  *DevIndex :设备索引号。 *返回值:为1表示操作成功,0 表示操作失败。 */DWORD __stdcall CloseDevice(DWORD DevType, DWORD DevIndex);/* *描述:此函数初始化指定的CAN。 *参数: *DevType :设备类型号。  *DevIndex :设备索引号。   *CANIndex :第几路CAN。 *pInitConfig :初始化参数结构。 *返回值:为1表示操作成功,0 表示操作失败。 */DWORD __stdcall InitCan(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PINIT_CONFIG pInitConfig); /* *描述:此函数获取设备信息。 *参数: *DevType :设备类型号。  *DevIndex :设备索引号。   *CANIndex :第几路CAN。 *pInitConfig :初始化参数结构。 *返回值:为1表示操作成功,0 表示操作失败。 */DWORD __stdcall ReadBoardInfo(DWORD DevType, DWORD DevIndex, PBOARD_INFO pInfo); /* *描述:此函数获取最后一次错误信息。 *参数: *DevType :设备类型号。  *DevIndex :设备索引号。   *CANIndex :第几路CAN。 *pErrInfo :错误信息。 *返回值:为1表示操作成功,0 表示操作失败。 */DWORD __stdcall ReadErrInfo(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PERR_INFO pErrInfo);/* *描述:此函数获取Can状态。 *参数: *DevType :设备类型号。  *DevIndex :设备索引号。   *CANIndex :第几路CAN。 *pCANStatus :状态信息。 *返回值:为1表示操作成功,0 表示操作失败。 */DWORD __stdcall ReadCanStatus(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PCAN_STATUS pCANStatus);/* *描述:此函数获取设备相应参数。 *参数: *DevType :设备类型号。  *DevIndex :设备索引号。   *CANIndex :第几路CAN。 *RefType :参数类型。 *pData:参数有关数据缓冲区地址首指针 *返回值:为1表示操作成功,0 表示操作失败。 */DWORD __stdcall GetReference(DWORD DevType, DWORD DevIndex, DWORD CANIndex, DWORD RefType, PVOID pData);/**描述:此函数设置设备相应参数。*参数:*DevType :设备类型号。 *DevIndex :设备索引号。  *CANIndex :第几路CAN。*RefType :参数类型。*pData:参数有关数据缓冲区地址首指针*返回值:为1表示操作成功,0 表示操作失败。*/DWORD __stdcall SetReference(DWORD DevType, DWORD DevIndex, DWORD CANIndex, DWORD RefType, PVOID pData); /**描述:此函数获取指定接收缓冲区中接收到但尚未被读取的帧数。*参数:*DevType :设备类型号。 *DevIndex :设备索引号。  *CANIndex :第几路CAN。*返回值:返回尚未被读取的帧数。*/ULONG __stdcall GetReceiveNum(DWORD DevType, DWORD DevIndex, DWORD CANIndex);/**描述:此函数清空指定缓冲区。*参数:*DevType :设备类型号。 *DevIndex :设备索引号。  *CANIndex :第几路CAN。*返回值:为1表示操作成功,0 表示操作失败。*/DWORD __stdcall ClearBuffer(DWORD DevType, DWORD DevIndex, DWORD CANIndex); /**描述:此函数启动CAN。*参数:*DevType :设备类型号。 *DevIndex :设备索引号。  *CANIndex :第几路CAN。*返回值:为1表示操作成功,0 表示操作失败。*/DWORD __stdcall StartCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex); /**描述:此函数复位CAN。*参数:*DevType :设备类型号。 *DevIndex :设备索引号。  *CANIndex :第几路CAN。*返回值:为1表示操作成功,0 表示操作失败。*/DWORD __stdcall ResetCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex); /**描述:此函数返回实际发送的帧数。*参数:*DevType :设备类型号。 *DevIndex :设备索引号。  *CANIndex :第几路CAN。*pSend :发送数据帧数组的首指。*Len :发送数据帧数组的长度。*返回值:返回实际发送的帧数。*/ULONG __stdcall Send(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PCAN_OBJ pSend,ULONG Len); /**描述:此函数从指定的设备读取数据。*参数:*DevType :设备类型号。 *DevIndex :设备索引号。  *CANIndex :第几路CAN。*pReceive :接收数据帧数组的首指。*Len :接收数据帧数组的长度。*WaitTime :等待超时时间,以毫秒为单位。*返回值:返回实际读取到的帧数。如果返回值为0xFFFFFFFF,则表示读取数据失败,有错误发生,请调用ReadErrInfo函数来获取错误码。*/ULONG __stdcall Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PCAN_OBJ pReceive, ULONG Len, INT WaitTime=-1);#endif

原创粉丝点击