tao_z
2022-03-09 23987d708d13fa157da7e76fb4d18293cb168038
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
 
 
#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