?? controlcan.h
字號:
//#include "ControlCAN.h"
#define REFTYPE_MODE 0
#define REFTYPE_FILTER 1
#define REFTYPE_ACR0 2
#define REFTYPE_ACR1 3
#define REFTYPE_ACR2 4
#define REFTYPE_ACR3 5
#define REFTYPE_AMR0 6
#define REFTYPE_AMR1 7
#define REFTYPE_AMR2 8
#define REFTYPE_AMR3 9
#define REFTYPE_kCANBAUD 10
#define REFTYPE_TIMING0 11
#define REFTYPE_TIMING1 12
#define REFTYPE_CANRX_EN 13
#define REFTYPE_UARTBAUD 14
#define REFTYPE_ALL 15
#define REFTYPE_DEVICE_IP0 16
#define REFTYPE_DEVICE_IP1 17
#define REFTYPE_DEVICE_IP2 18
#define REFTYPE_DEVICE_IP3 19
#define REFTYPE_HOST_IP0 20
#define REFTYPE_HOST_IP1 21
#define REFTYPE_HOST_IP2 22
#define REFTYPE_HOST_IP3 23
#define REFTYPE_BORRD_INFO 32
//接口卡類型定義
#define DEV_CAN232B 1
#define DEV_USBCAN 2
#define DEV_USBCAN200 3
#define DEV_NETCAN 4
#define DEV_NETCAN200 5
#define DEV_PCICAN200 6
//函數(shù)調用返回狀態(tài)值
#define STATUS_OK 1
#define STATUS_ERR1 0//操作失敗
#define STATUS_ERR2 -1 //設備未打開
//1.GY85XX系列CAN接口卡信息的數(shù)據(jù)類型。
typedef struct _VCI_BOARD_INFO{
USHORT hw_Version;
USHORT fw_Version;
USHORT dr_Version;
USHORT in_Version;
USHORT irq_Num;
BYTE can_Num;
CHAR str_Serial_Num[8];
CHAR str_hw_Type[16];
char str_GYUsb_Serial[4][4];
} VCI_BOARD_INFO,*PVCI_BOARD_INFO; //共63個字節(jié)
//2.定義CAN信息幀的數(shù)據(jù)類型。
typedef struct _VCI_CAN_OBJ{
BYTE ID[4];
UINT TimeStamp;
BYTE TimeFlag;
BYTE SendType;//保留不用 yyd
BYTE RemoteFlag;//是否是遠程幀
BYTE ExternFlag;//是否是擴展幀
BYTE DataLen;
BYTE Data[8];
BYTE Reserved[3];
BYTE BiaoShiFu[3];
BYTE sendbuf[11];
}VCI_CAN_OBJ,*PVCI_CAN_OBJ;
//3.定義CAN控制器狀態(tài)的數(shù)據(jù)類型。
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;
//4.定義錯誤信息的數(shù)據(jù)類型。
typedef struct _ERR_INFO{
UINT ErrCode;
BYTE Passive_ErrData[3];
BYTE ArLost_ErrData;
} VCI_ERR_INFO,*PVCI_ERR_INFO;
//5.定義初始化CAN的數(shù)據(jù)類型
typedef struct _INIT_CONFIG{
DWORD AccCode;
DWORD AccMask;
DWORD Reserved;
UCHAR Filter;
UCHAR kCanBaud;
UCHAR Timing0;
UCHAR Timing1;
UCHAR Mode;
UCHAR CanRx_IER;//added by yyd
}VCI_INIT_CONFIG,*PVCI_INIT_CONFIG;
extern "C"
{
DWORD __stdcall VCI_OpenDevice(DWORD DeviceType,DWORD DeviceInd,DWORD Reserved);
DWORD __stdcall VCI_CloseDevice(DWORD DeviceType,DWORD DeviceInd);
DWORD __stdcall VCI_InitCAN(DWORD DeviceType, DWORD DeviceInd, DWORD CANInd, PVCI_INIT_CONFIG pInitConfig);
DWORD __stdcall VCI_ResumeConfig(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
DWORD __stdcall VCI_WriteBoardInfo(DWORD DeviceType,DWORD DeviceInd,PVCI_BOARD_INFO pInfo);
DWORD __stdcall VCI_ReadBoardInfo(DWORD DeviceType,DWORD DeviceInd,PVCI_BOARD_INFO pInfo);
DWORD __stdcall VCI_ReadErrInfo(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_ERR_INFO pErrInfo);
DWORD __stdcall VCI_ReadCANStatus(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_STATUS pCANStatus);
DWORD __stdcall VCI_GetReference(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,DWORD RefType,BYTE *pData);
DWORD __stdcall VCI_SetReference(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,DWORD RefType,BYTE *pData);
DWORD __stdcall VCI_GetReceiveNum(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
DWORD __stdcall VCI_ClearBuffer(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
DWORD __stdcall VCI_StartCAN(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
DWORD __stdcall VCI_ResetCAN(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend);
DWORD __stdcall VCI_Receive(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pReceive);
DWORD __stdcall VCI_FindGyUsbDevice(PVCI_BOARD_INFO pInfo);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -