|
|
#ifndef _V_ECANVCI_H_
|
#define _V_ECANVCI_H_
|
|
#define Dll_EXPORTS
|
|
//½Ó¿Ú¿¨ÀàÐͶ¨Òå
|
|
#define USBCAN1 3
|
#define USBCAN2 4
|
|
//CAN´íÎóÂë
|
#define ERR_CAN_OVERFLOW 0x0001 //CAN¿ØÖÆÆ÷ÄÚ²¿FIFOÒç³ö
|
#define ERR_CAN_ERRALARM 0x0002 //CAN¿ØÖÆÆ÷´íÎ󱨾¯
|
#define ERR_CAN_PASSIVE 0x0004 //CAN¿ØÖÆÆ÷Ïû¼«´íÎó
|
#define ERR_CAN_LOSE 0x0008 //CAN¿ØÖÆÆ÷ÖٲöªÊ§
|
#define ERR_CAN_BUSERR 0x0010 //CAN¿ØÖÆÆ÷×ÜÏß´íÎó
|
#define ERR_CAN_REG_FULL 0x0020 //CAN½ÓÊռĴæÆ÷Âú
|
#define ERR_CAN_REG_OVER 0x0040 //CAN½ÓÊռĴæÆ÷Òç³ö
|
#define ERR_CAN_ZHUDONG 0x0080 //CAN¿ØÖÆÆ÷Ö÷¶¯´íÎó
|
|
//ͨÓôíÎóÂë
|
#define ERR_DEVICEOPENED 0x0100 //É豸ÒѾ´ò¿ª
|
#define ERR_DEVICEOPEN 0x0200 //´ò¿ªÉ豸´íÎó
|
#define ERR_DEVICENOTOPEN 0x0400 //É豸ûÓдò¿ª
|
#define ERR_BUFFEROVERFLOW 0x0800 //»º³åÇøÒç³ö
|
#define ERR_DEVICENOTEXIST 0x1000 //´ËÉ豸²»´æÔÚ
|
#define ERR_LOADKERNELDLL 0x2000 //×°ÔØ¶¯Ì¬¿âʧ°Ü
|
#define ERR_CMDFAILED 0x4000 //Ö´ÐÐÃüÁîʧ°Ü´íÎóÂë
|
#define ERR_BUFFERCREATE 0x8000 //ÄÚ´æ²»×ã
|
|
|
//º¯Êýµ÷Ó÷µ»Ø×´Ì¬Öµ
|
#define STATUS_OK 1
|
#define STATUS_ERR 0
|
|
#define CMD_DESIP 0
|
#define CMD_DESPORT 1
|
#define CMD_CHGDESIPANDPORT 2
|
|
|
//1.ZLGCANϵÁнӿڿ¨ÐÅÏ¢µÄÊý¾ÝÀàÐÍ¡£
|
typedef struct _BOARD_INFO{
|
USHORT hw_Version;
|
USHORT fw_Version;
|
USHORT dr_Version;
|
USHORT in_Version;
|
USHORT irq_Num;
|
BYTE can_Num;
|
CHAR str_Serial_Num[20];
|
CHAR str_hw_Type[40];
|
USHORT Reserved[4];
|
} BOARD_INFO,*P_BOARD_INFO;
|
|
//2.¶¨ÒåCANÐÅÏ¢Ö¡µÄÊý¾ÝÀàÐÍ¡£
|
typedef struct _CAN_OBJ{
|
UINT ID;
|
UINT TimeStamp;
|
BYTE TimeFlag;
|
BYTE SendType;
|
BYTE RemoteFlag;//ÊÇ·ñÊÇÔ¶³ÌÖ¡
|
BYTE ExternFlag;//ÊÇ·ñÊÇÀ©Õ¹Ö¡
|
BYTE DataLen;
|
BYTE Data[8];
|
BYTE Reserved[3];
|
}CAN_OBJ,*P_CAN_OBJ;
|
|
//3.¶¨ÒåCAN¿ØÖÆÆ÷״̬µÄÊý¾ÝÀàÐÍ¡£
|
typedef struct _CAN_STATUS{
|
UCHAR ErrInterrupt;
|
UCHAR regMode;
|
UCHAR regStatus;
|
UCHAR regALCapture;
|
UCHAR regECCapture;
|
UCHAR regEWLimit;
|
UCHAR regRECounter;
|
UCHAR regTECounter;
|
DWORD Reserved;
|
}CAN_STATUS,*P_CAN_STATUS;
|
|
//4.¶¨Òå´íÎóÐÅÏ¢µÄÊý¾ÝÀàÐÍ¡£
|
typedef struct _ERR_INFO{
|
UINT ErrCode;
|
BYTE Passive_ErrData[3];
|
BYTE ArLost_ErrData;
|
} ERR_INFO,*P_ERR_INFO;
|
|
//5.¶¨Òå³õʼ»¯CANµÄÊý¾ÝÀàÐÍ
|
typedef struct _INIT_CONFIG{
|
DWORD AccCode;
|
DWORD AccMask;
|
DWORD Reserved;
|
UCHAR Filter;
|
UCHAR Timing0;
|
UCHAR Timing1;
|
UCHAR Mode;
|
}INIT_CONFIG,*P_INIT_CONFIG;
|
|
typedef struct _tagChgDesIPAndPort
|
{
|
char szpwd[10];
|
char szdesip[20];
|
int desport;
|
}CHGDESIPANDPORT;
|
|
///////// new add struct for filter /////////
|
typedef struct _FILTER_RECORD{
|
DWORD ExtFrame; //ÊÇ·ñΪÀ©Õ¹Ö¡
|
DWORD Start;
|
DWORD End;
|
}FILTER_RECORD,*P_FILTER_RECORD;
|
|
|
#ifdef Dll_EXPORTS
|
#define DllAPI __declspec(dllexport)
|
#else
|
#define DllAPI __declspec(dllimport)
|
|
#endif
|
|
#define EXTERNC extern "C"
|
#define CALL __stdcall//__cdecl
|
|
//extern "C"
|
//{
|
|
EXTERNC DllAPI DWORD CALL OpenDevice(DWORD DeviceType,DWORD DeviceInd,DWORD Reserved);
|
EXTERNC DllAPI DWORD CALL CloseDevice(DWORD DeviceType,DWORD DeviceInd);
|
|
EXTERNC DllAPI DWORD CALL InitCAN(DWORD DeviceType, DWORD DeviceInd, DWORD CANInd, P_INIT_CONFIG pInitConfig);
|
|
EXTERNC DllAPI DWORD CALL ReadBoardInfo(DWORD DeviceType,DWORD DeviceInd,P_BOARD_INFO pInfo);
|
EXTERNC DllAPI DWORD CALL ReadErrInfo(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,P_ERR_INFO pErrInfo);
|
EXTERNC DllAPI DWORD CALL ReadCANStatus(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,P_CAN_STATUS pCANStatus);
|
|
EXTERNC DllAPI DWORD CALL GetReference(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,DWORD RefType,PVOID pData);
|
EXTERNC DllAPI DWORD CALL SetReference(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,DWORD RefType,PVOID pData);
|
|
EXTERNC DllAPI ULONG CALL GetReceiveNum(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
|
EXTERNC DllAPI DWORD CALL ClearBuffer(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
|
|
EXTERNC DllAPI DWORD CALL StartCAN(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
|
EXTERNC DllAPI DWORD CALL ResetCAN(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
|
|
EXTERNC DllAPI ULONG CALL Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,P_CAN_OBJ pSend,ULONG Len);
|
EXTERNC DllAPI ULONG CALL Receive(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,P_CAN_OBJ pReceive,ULONG Len,INT WaitTime);
|
|
|
|
#endif
|