1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- #pragma once
- #include "DLLModule.h"
- //#include "..\\StringExt.h"
- //函数调用返回状态值
- #define STATUS_OK 1
- #define STATUS_ERR1 0//操作失败
- #define STATUS_ERR2 -1 //设备未打开
- //定义全局的帧数据类型
- typedef struct _VCI_CAN_OBJ{
- UINT ID;
- UINT TimeStamp;
- BYTE TimeFlag;
- BYTE SendType;
- BYTE RemoteFlag;//是否是远程帧
- BYTE ExternFlag;//是否是扩展帧
- BYTE DataLen;
- BYTE Data[8];
- BYTE Reserved[3];
- BYTE IDArray[4];
- }VCI_CAN_OBJ,*PVCI_CAN_OBJ;
- //定义全局的错误数据类型
- typedef struct _VCI_ERR_INFO{
- UINT ErrCode;
- BYTE Passive_ErrData[3];
- BYTE ArLost_ErrData;
- } VCI_ERR_INFO,*PVCI_ERR_INFO;
- //定义全局的初始化数据类型
- typedef struct _VCI_INIT_CONFIG{
- DWORD AccCode;
- DWORD AccMask;
- DWORD Reserved;
- UCHAR Filter;
- UCHAR Timing0;
- UCHAR Timing1;
- UCHAR Mode;
- UCHAR CanRx_IER;
- UCHAR kCanBaud;
- }VCI_INIT_CONFIG,*PVCI_INIT_CONFIG;
- //定义全局CAN控制器状态的数据类型
- typedef struct _VCI_CAN_STATUS{
- UCHAR ErrInterrupt;
- UCHAR regMode;
- UCHAR regStatus;
- UCHAR regALCapture;
- UCHAR regECCapture;
- UCHAR regEWLimit;
- UCHAR regRECounter;
- UCHAR regTECounter;
- DWORD Reserved;
- }VCI_CAN_STATUS,*PVCI_CAN_STATUS;
- class CCAN
- {
- public:
- CCAN();
- virtual ~CCAN();
- // *GetCAN();
- public:
- virtual BOOL OpenDevice(DWORD devInd) = 0;
- virtual void CloseDevice(DWORD devInd) = 0;
- virtual BOOL InitCAN(DWORD devInd, DWORD CANInd, PVCI_INIT_CONFIG pInitConfig) = 0;
- virtual BOOL StartCAN(DWORD devInd, DWORD CANInd) = 0;
- virtual BOOL ResetCAN(DWORD devInd, DWORD CANInd) = 0;
- virtual void ReadErrInfo(DWORD devInd, DWORD CANInd, PVCI_ERR_INFO pErrInfo) = 0;
- virtual BOOL ClearBuffer(DWORD devInd, DWORD CANInd) = 0;
- virtual ULONG GetReceiveNum(DWORD devInd, DWORD CANInd) = 0;
- virtual ULONG Transmit(DWORD devInd, DWORD CANInd, PVCI_CAN_OBJ pSend,ULONG Len) = 0;
- virtual ULONG Receive(DWORD devInd, DWORD CANInd, PVCI_CAN_OBJ pReceive,ULONG Len, INT WaitTime=-1) = 0;
- virtual BOOL LoadDLL() = 0;
- protected:
- private:
- };
|