User Instruction
Instruction Version:V1.80
Version Update Date:2013.10.01
1 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
Contents
Part One Overview .................................................................................................................... 4
Part Two Compatible ZLG Function Library and Data Structure ............................................. 5
2.1 Type Definition ............................................................................................................. 5
2.1.3 VCI_CAN_OBJ............................................................................................................ 6
2.2.12 VCI_ResetCAN....................................................................................................... 25
2 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
3.3.5 VCI_UsbDeviceReset............................................................................................... 40
3.3.6 VCI_FindUsbDevice................................................................................................. 41
3 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
can directly use the supplied USB-CAN Tool Tool software for sending and receiving data of the test.
If the user intends to write software program for his own products. Please carefully read the following
①LabVIEW②C++Builder③VC④VB⑤Delphi.
Develop library file:ControlCAN.lib, ControlCAN.DLL
VC version function declaration file:ControlCAN.h
4 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
Type
Type Definition Description
value
2.1.2 VCI_BOARD_INFO
VCI_BOARD_INFO structure contains USB-CAN Series interface card device information. The
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];
} VCI_BOARD_INFO, *PVCI_BOARD_INFO;
Member:
hw_Version
fw_Version
Hardware version number, hexadecimal notation. E.g. 0x0100 represents V1.00.
5 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
dr_Version
in_Version
Interface library version number, hexadecimal notation. E.g. 0x0100 represents V1.00.
irq_Num
can_Num
str_Serial_Num
This board card's serial number, (Note: Includes string terminator ’\0’)
str_hw_Type
Hardware type, such as “USBCAN V1.00” (Note: Includes string terminator ’\0’).
Reserved
System reserved.
2.1.3 VCI_CAN_OBJ
UINT ID;
UINT TimeStamp;
BYTE TimeFlag;
BYTE SendType;
BYTE RemoteFlag;
BYTE ExternFlag;
BYTE DataLen;
BYTE Data[8];
BYTE Reserved[3];
}VCI_CAN_OBJ, *PVCI_CAN_OBJ;
6 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
Member:
ID
Message identifier. Direct ID format, right-aligned, please refer to: Annex One:
ID Alignment Details.
TimeStamp
Receiving the stamp information of the time frame, start timing when the CAN controller is initialized,
TimeFlag
In terms of whether to use the time stamp, 1:00 is the effective TimeStamp. TimeFlag and
SendType
Sending type.
RemoteFlag
ExternFlag
DataLen
Data length(<=8),that is, the length of data.
Data
Packet data.
Reserved
System reserved.
Note: setting the SendType as invalid spontaneous admission and sending , spontaneous admission
2.1.4 VCI_CAN_STATUS
VCI_CAN_STATUS structure includes CAN Controller status information. The structure will be filled
7 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
UCHAR ErrInterrupt;
UCHAR regMode;
UCHAR regStatus;
UCHAR regALCapture;
UCHAR regECCapture;
UCHAR regEWLimit;
UCHAR regRECounter;
UCHAR regTECounter;
DWORD Reserved;
} VCI_CAN_STATUS, *PVCI_CAN_STATUS;
Member:
ErrInterrupt
CAN receive error interrupt recording, the read operation will be cleared.
regMode
regStatus
regALCapture
regECCapture
regEWLimit
CAN controller error warning and limit register, temporarily unused, reserved.
regRECounter
regTECounter
Reserved
System reserved.
8 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
2.1.5 VCI_ERR_INFO
VCI_ERR_INFO structure is used to load the error messages generated when run VCI
DWORD ErrCode;
BYTE Passive_ErrData[3];
BYTE ArLost_ErrData;
} VCI_ERR_INFO,*PVCI_ERR_INFO;
Member:
ErrCode
Error code.
Passive_ErrData
When there is a passive error generated when an error is expressed as a passive error identification
data.
ArLost_ErrData
When the resulting error contains arbitration lost error, and then the error is expressed as arbitration
2.1.6 VCI_INIT_CONFIG
VCI_INIT_CONFIG structure defines the initialization configuration of the CAN. The structure will
DWORD AccCode;
DWORD AccMask;
DWORD Reserved;
UCHAR Filter; //0,1 receives all frames. 2 standard frame filtering, 3 is an extended frame
filtering.
} VCI_INIT_CONFIG, *PVCI_INIT_CONFIG;
Member:
AccCode
AccMask
Reserved
Reserved.
Filter
Filtering method, allowing setting range 0-3, refer to section 2.2.3 of the filter mode table for details.
Timing0
SJA1000 Baud rate parameter, Timing0(BTR0).
Timing1
SJA1000 Baud rate parameter, Timing1(BTR1).
Mode
Operating mode, 0 = normal operation, 1 = Listen-only mode, 2 = spontaneous admission and sending
test mode.
Remarks:
About the filter settings please refer to: Annex II: CAN parameter setup instructions.
CAN Timing0 and Timing1 are used to set baud rate, these two parameters are only used at the
initialization stage.
10 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
Note:
1.Due to the CAN controller crystal frequency varies, the oscillator frequency of the CAN controller
applied by this adapter is 32MHz, the frequency of the compatible (SJA1000) CAN controller is 16MHz. Thus
in order to ensure the compatibility of the Baud rate parameter, internally, this adapter set the prescale BRP
parameter in Baud rate parameter by taking two processing to achieve the same effect. So users only need to
follow SJA1000 (16MHz) to set the Baud rate parameter.
2. In SJA1000 (16MHz) parameter, prescale BRP value must be less than or equal to 32. Therefore,
we do some correction work on 10K Baud rate parameters. The adapter does not support temporarily
Baud rate below 10K.
11 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
2.2.1 VCI_OpenDevice
Parameters:
DevType
DevIndex
Device Index, for example, when there is only one USB-CAN adapter, the index number is 0, when
there are multiple USB-CAN adapters, the index numbers in an ascending order starting from 0.
Reserved
Returns:
Return value = 1, which means that the operation is successful; = 0 indicates that the operation failed;
E.g.:
#include "ControlCan.h"
DWORD dwRel;
if(dwRel != 1)
return FALSE;
12 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
2.2.2 VCI_CloseDevice
Parameters:
DevType
DevIndex
Device Index, for example, when there is only one USB-CAN adapter, the index number is 0, when
there are multiple USB-CAN adapters, the index numbers in an ascending order starting from 0.
Returns:
Return value = 1, which means that the operation is successful; = 0 indicates that the operation failed; = -1
E.g.:
#include "ControlCan.h"
DWORD dwRel;
if(dwRel != 1)
return FALSE;
2.2.3 VCI_InitCan
13 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
PVCI_INIT_CONFIG pInitConfig);
Parameters:
DevType
DevIndex
Device Index, for example, when there is only one USB-CAN adapter, the index number is 0, when
there are multiple USB-CAN adapters, the index numbers in an ascending order starting from 0.
CANIndex
CAN channel index, such as when there is only one CAN channel, the index number is 0, if there are
pInitConfig
14 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
pInitConfig->Reserved reserved
Filtering mode settings please refer to the
pInitConfig->Filter
section of the filter mode table.
pInitConfig->Timing0 Baud rateT0 setting
pInitConfig->Timing1 Baud rateT1 setting
Operating mode:
0-normal operation
1-Listen-only mode
pInitConfig->Mode
2-spontaneous admission and sending test mode
library)
15 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
directly!
Returns:
Return value = 1, which means that the operation is successful; = 0 indicates that the operation
E.g.:
#include "ControlCan.h"
DWORD dwRel;
VCI_INIT_CONFIG vic;
if(dwRel != 1)
return FALSE;
vic .AccCode=0x80000008;
vic .AccMask=0xFFFFFFFF;
vic.Filter=1;
vic .Timing0=0x00;
vic .Timing1=0x14;
vic .Mode=0;
if(dwRel !=1)
{
16 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
VCI_CloseDevice(nDeviceType, nDeviceInd);
return FALSE;
2.2.4 VCI_ReadBoardInfo
This function is used to read the adapter hardware information. Generally speaking, it can be ignored.
DevIndex,PVCI_BOARD_INFO pInfo);
Parameters:
DevType
DevIndex
Device Index, for example, when there is only one USB-CAN adapter, the index number is 0, when
there are multiple USB-CAN adapters, the index numbers in an ascending order starting from 0.
pInfo
Return value = 1, which means that the operation is successful; = 0 indicates that the operation
E.g.:
#include "ControlCan.h"
int nCANInd = 0;
VCI_BOARD_INFO vbi;
DWORD dwRel;
17 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
if(dwRel != 1)
return FALSE;
2.2.5 VCI_ReadErrInfo
CANIndex,PVCI_ERR_INFO pErrInfo);
Parameters:
DevType
Device Index, for example, when there is only one USB-CAN adapter, the index number is 0, when
there are multiple USB-CAN adapters, the index numbers in an ascending order starting from 0.
pInfo
Returns:
Return value = 1, which means that the operation is successful; = 0 indicates that the operation
Remarks:
ReadErrInfo function is set to take care of the compatibility of the ZLG USBCAN card for some
users. Due to the USB_CAN adapter provided by us has different structure with that of the ZLG USBCAN
card, so the existence of these two functions is to ensure using our USB_CAN adapter based on
relevant ZLG debugging software or on the basis of the ZLG, there will be no memory errors or crashes and
18 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
E.g.:
#include "ControlCan.h"
int nCANInd = 0;
VCI_ERR_INFO vei;
DWORD dwRel;
if(dwRel != 1)
return FALSE;
2.2.6 VCI_ReadCanStatus
This function is used to read the current state of the CAN interface. Generally speaking, it can be ignored.
CANIndex,PVCI_CAN_STATUS pCANStatus);
Parameters:
DevType
Device Index, for example, when there is only one USB-CAN adapter, the index number is 0, when
there are multiple USB-CAN adapters, the index numbers in an ascending order starting from 0.
pCANStatus
19 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
Returns:
Return value = 1, which means that the operation is successful; = 0 indicates that the operation
Remarks:
ReadCanStatus function is set to take care of the compatibility of the ZLG USBCAN card for some users.
Due to the USB_CAN adapter provided by us has different structure with that of the ZLG USBCAN card, so
the existence of these two functions is to ensure using our USB_CAN adapter based on relevant ZLG
debugging software or on the basis of the ZLG, there will be no memory errors or crashes and so on. Return
value is invalid.
E.g.:
#include "ControlCan.h"
int nCANInd = 0;
VCI_CAN_STATUS vcs;
DWORD dwRel;
if(dwRel != 1)
return FALSE;
2.2.7 VCI_GetReference
This function can help users get the adapter internal parameters.
20 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
DevType
Device Index, for example, when there is only one USB-CAN adapter, the index number is 0, when
there are multiple USB-CAN adapters, the index numbers in an ascending order starting from 0.
CANIndex
Reserved
pData
pData is used to store the parameters of the first data buffer address pointer and return
Returns:
Return value = 1, which means that the operation is successful; = 0 indicates that the operation failed.
Remarks:
GetReference and SetReference functions are set to take care of the compatibility of the ZLG
USBCAN card for some users. Due to the USB_CAN adapter provided by us has different structure with that
of the ZLG USBCAN card, so the existence of these two functions is to ensure using our USB_CAN adapter
based on relevant ZLG debugging software or on the basis of the ZLG, there will be no memory errors or
2.2.8 VCI_SetReference
This function is used to set the related parameters for the adapter, compatible with ZLG (ZLG) USB_CAN
21 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
DevType
DevIndex
Device Index, for example, when there is only one USB-CAN adapter, the index number is 0,
when there are multiple USB-CAN adapters, the index numbers in an ascending order starting
from 0.
CANIndex
RefType
Parameter type.
pData
pData is used to store the parameters of the first data buffer address pointer and return
Returns:
Return value = 1, which means that the operation is successful; = 0 indicates that the operation
failed.
Remarks:
GetReference and SetReference functions are set to take care of the compatibility of the
ZLG USBCAN card for some users. Due to the USB_CAN adapter provided by us has different
structure with that of the ZLG USBCAN card, so the existence of these two functions is to ensure
using our USB_CAN adapter based on relevant ZLG debugging software or on the basis of the ZLG,
there will be no memory errors or crashes and so on. Return value is invalid.
2.2.9 VCI_GetReceiveNum
This function is used to specify the received but has not been read frames in the designated
receiving buffer.
Parameters:
DevType
22 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
DevIndex
Device Index, for example, when there is only one USB-CAN adapter, the index number is 0, when
there are multiple USB-CAN adapters, the index numbers in an ascending order starting from 0.
CANIndex
Returns:
E.g.:
#include "ControlCan.h"
int ret=VCI_GetReceiveNum(2,0,0);
2.2.10 VCI_ClearBuffer
This function is used to clear the receive and send buffer of the designated channel specified by
USB-CAN adapter.
Parameters:
DevType
DevIndex
Device Index, for example, when there is only one USB-CAN adapter, the index number is 0, when
there are multiple USB-CAN adapters, the index numbers in an ascending order starting from 0.
CANIndex
Returns:
Return value = 1, which means that the operation is successful; = 0 indicates that the operation failed;
23 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
E.g.:
#include "ControlCan.h"
DWORD dwRel;
2.2.11 VCI_StartCAN
This function is used to start the CAN controller and the internal interrupt reception function of the
adapter.
Parameters:
DevType
DevIndex
Device Index, for example, when there is only one USB-CAN adapter, the index number is 0, when
there are multiple USB-CAN adapters, the index numbers in an ascending order starting from 0.
CANIndex
Return value = 1, which means that the operation is successful; = 0 indicates that the operation
E.g.:
#include "ControlCan.h"
24 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
DWORD dwRel;
VCI_INIT_CONFIG vic;
if(VCI_OpenDevice(nDeviceType, nDeviceInd, 0) != 1)
return FALSE;
VCI_CloseDevice(nDeviceType, nDeviceInd);
return FALSE;
VCI_CloseDevice(nDeviceType, nDeviceInd);
return FALSE;
2.2.12 VCI_ResetCAN
Parameters:
DevType
DevIndex
Device Index, for example, when there is only one USB-CAN adapter, the index number is 0,
25 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
when there are multiple USB-CAN adapters, the index numbers in an ascending order starting from 0.
CANIndex
Returns:
Return value = 1, which means that the operation is successful; = 0 indicates that the operation
E.g.:
#include "ControlCan.h"
int nCANInd = 0;
DWORD dwRel;
if(dwRel != 1)
return FALSE;
2.2.13 VCI_Transmit
Parameters:
DevType
DevIndex
Device Index, for example, when there is only one USB-CAN adapter, the index number is 0,
26 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
when there are multiple USB-CAN adapters, the index numbers in an ascending order starting from 0.
CANIndex
pSend
The first address of the data frame arrays that have to be sent.
Length
The number of the data frames that have to be sent, the maximum number is 1000, the
Returns:
Return the actual number of frames already sent, the return value = -1 indicates a device error.
E.g.:
#include "ControlCan.h"
int nCANInd = 0;
DWORD dwRel;
VCI_CAN_OBJ vco[48];
ZeroMemory(&vco, sizeof(VCI_CAN_OBJ)*48);
for(int i=0;i<48;i++)
vco[i].ID = i;
vco[i].RemoteFlag = 0;
vco[i].ExternFlag = 0;
vco[i].DataLen = 8;
for(int j = 0;j<8;j++)
vco.Data[j] = j;
27 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
2.2.14 VCI_Receive
Parameters:
DevType
DevIndex
Device Index, for example, when there is only one USB-CAN adapter, the index number is 0, when
there are multiple USB-CAN adapters, the index numbers in an ascending order starting from 0.
CANIndex
pReceive
Len
The array length of the data frame must be more than 48 to return normal message. Otherwise, the
return length will be zero whether the message is received or not.the adapter set a 2000-frame buffer for
every channel. Based on his own system and working environment, the user can choose an appropriate
WaitTime
Wait timeout, in milliseconds, generally take 10 ~ 50ms, -1 means unlimited, infinite wait.
Returns:
Return the number of frames that actually have been read, -1 indicates device errors.
E.g.:
#include "ControlCan.h"
28 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
int nCANInd = 0;
long lRel;
VCI_CAN_OBJ vco[100];
if(lRel > 0)
… /*data processing */
29 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
contained in USB-CAN adapter interface library ControlCAN.dll. Please do not call these functions if use a
3.1.1 VCI_BOARD_INFO1
VCI_BOARD_INFO1 structure contains series of USB-CAN interface card and device information on your
computer while inserting the first four series of USB-CAN interface card serial number information. The
USHORT hw_Version;
USHORT fw_Version;
USHORT dr_Version;
USHORT in_Version;
USHORT irq_Num;
BYTE can_Num;
BYTE Reserved;
CHAR str_Serial_Num[8];
CHAR str_hw_Type[16];
} VCI_BOARD_INFO1, *PVCI_BOARD_INFO1;
Member:
hw_Version
fw_Version
30 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
dr_Version
in_Version
Interface library version number, hexadecimal notation. E.g. 0x0100 represents V1.00.
irq_Num
can_Num
Reserved
System reserved.
str_Serial_Num
str_hw_Type
str_Usb_Serial
USB-CAN serial number, return four groups of four characters long ASCII string, each string represents a
device serial number, the same computer can support four USB-CAN device.
3.1.2 VCI_REF_NORMAL
VCI_REF_NORMAL structure defines a routine parameter type. When RefType = 15, the tructure will
31 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
}VCI_REF_NORMAL,*PVCI_REF_NORMAL;
Member:
Mode
Operation mode,0=normal operation,1=listen-only mode,2=spontaneous admission and sending test
mode.
Filter
Filtering methods, allowing set range 0-3, refer to the filter mode table of section 2.2.3 for details.
AccCode
AccMask
kCanBaud
Timing0
SJA1000Baud rate parameter,Timing0(BTR0).
Timing1
SJA1000Baud rate parameter,Timing1(BTR1).
CANRX_EN
Reserved, unused.
UARTBAUD
Reserved, unused.
Remarks:
For conventional Baud rate, please refer to the conventional Baud rate reference table in section 2.1.6.
32 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
3.1.3 VCI_BAUD_TYPE
VCI_BAUD_TYPE structure defines a custom Baud rate parameter structure. When the
}VCI_BAUD_TYPE,*PVCI_BAUD_TYPE;
Member:
Baud
Baud rate actual value,unit bps.
SJW
BRP
SAM
PHSEG2_SEL
programmable.
PRSEG
Prop-seg,value 1-8.
PHSEG1
33 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
Phase-seg1,value1-8.
PHSEG2
Phase-seg 2,value1-8.
Remarks:
About Custom Baud rate settings, please refer to Section 2.3.2 VCI_SetReference2.
3.1.4 VCI_REF_STRUCT
VCI_REF_STRUCT structure defines the parameter type structure. Structure returned in the pointer of
the VCI_GetReference2function.
VCI_REF_NORMAL RefNormal;
BYTE Reserved;
VCI_BAUD_TYPE BaudType;
}VCI_REF_STRUCT,*PVCI_REF_STRCUT;
Member:
RefNormal
Reserved
Reserved, unused.
BaudType
3.3.1 VCI_GetReference2
This function is used to get all the parameters inside the adapter.
Parameters:
34 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
DevType
DevIndex
Device Index, for example, when there is only one USB-CAN adapter, the index number is 0, when there
are multiple USB-CAN adapters, the index numbers in an ascending order starting from 0.
CANIndex
Reserved
pRefStruct
pRefStruct is used to store the parameters of the first data buffer address pointer and return
Returns:
Return value = 1, which means that the operation is successful; = 0 indicates that the operation
E.g.:
#include "ControlCan.h"
int nCANInd = 0;
VCI_REF_STRCUT refStruct;
DWORD dwRel;
if(dwRel != 1)
return FALSE;
35 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
3.3.2 VCI_SetReference2
Parameters:
DevType
DevIndex
Device Index, for example, when there is only one USB-CAN adapter, the index number is 0, when
there are multiple USB-CAN adapters, the index numbers in an ascending order starting from 0.
CANIndex
Parmeter type.
pData
pData is used to store the parameters of the first data buffer address pointer.
Returns:
Return value = 1, which means that the operation is successful; = 0 indicates that the
RefType pData
name pData return ontent
value length
36 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
RefType pData
name pData return ontent
value length
1. CAN Nominal Bit Time = Sync Segment + Propagation Segment + Phase Segment 1 + Phase
Segment 2, (8 ~ 25TQ)
2. (Propagation Segment + Phase Segment 1) must be greater than or equal to the length of phase segment
2.
E.g.:
#include "ControlCan.h"
int nCANInd = 0;
DWORD dwRel;
if(dwRel != 1)
return FALSE;
3.3.3 VCI_ResumeConfig
Parameters:
DevType
DevIndex
Device Index, for example, when there is only one USB-CAN adapter, the index number is 0,
when there are multiple USB-CAN adapters, the index numbers in an ascending order starting from 0.
CANIndex
Returns:
Return value = 1, which means that the operation is successful; = 0 indicates that the
Note: With this function to restore the factory settings, the device will be restored to all
channels.
E.g.:
38 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
#include "ControlCan.h"
int nCANInd = 0;
DWORD dwRel;
if(dwRel != 1)
MB_OK|MB_ICONQUESTION);
return FALSE;
3.3.4 VCI_ConnectDevice
Check whether the USB-CAN device and your computer can communicate properly.
USB-CAN operation may be subject to outside interference or abnormal operation,which will cause
USB-CAN device dropped from the operating system. This function is used to detect communication
connection status such as relative abnormal situations. If there is any abnormality, relative tips can be brought
up and relative problems will be dealt with accordingly.
DWORD __stdcall VCI_ConnectDevice(DWORD DevType,DWORD DevIndex);
Parameters:
DevType
DevIndex
Device Index, for example, when there is only one USB-CAN adapter, the index number is 0, when
there are multiple USB-CAN adapters, the index numbers in an ascending order starting from 0.
Returns:
1 communication available,0 communication unavailable.
E.g.:
39 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
#include "ControlCan.h"
int ret=VCI_ConnectDevice(2,0);
if(ret==1)
SetWindowText("normal communication");
else if(ret==0)
SetWindowText("dropped");
StopFlag=1;
for(int i=0;i<10;i++)
Sleep(1000);
VCI_BOARD_INFO vbi;
if(temp==1)
else
3.3.5 VCI_UsbDeviceReset
Reset USB-CAN adapter, need to re-open the device after reset by using VCI_OpenDevice.
Parameters:
DevType
DevIndex
40 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
Device Index, for example, when there is only one USB-CAN adapter, the index number is 0, when
there are multiple USB-CAN adapters, the index numbers in an ascending order starting from 0.
Reserved
Reserved.
Returns:
Return value = 1, which means that the operation is successful; = 0 indicates that the operation
E.g.:
#include "ControlCan.h"
int nCANInd = 0;
DWORD dwRel;
3.3.6 VCI_FindUsbDevice
When the same PC using multiple USB-CAN, user can use this function to find the current device.
Parameters:
pInfo
pInfo is used to store the parameters of the first data buffer address pointer.
Returns:
Return the number of the USB-CAN adapter plugged into the computer.
E.g.:
#include "ControlCan.h"
CString ProductSn[5];
VCI_BOARD_INFO1 vbi;
41 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
int num=VCI_FindUsbDevice(&vbi);
CString strtemp,str;
for(int i=0;i<num;i++)
str="";
for(int j=0;j<4;j++)
strtemp.Format("%c",pData->str_Usb_Serial[i][j]);
str+=strtemp;
ProductSn[i]="USBCAN-"+str;
42 / 43
Shenzhen Fangxing Liutong Industrial Co., Ltd. Interface Function Library User Instruction
VCI_FindUsbDevice
VCI_OpenDevice
VCI_InitCAN
VCI_UsbDeviceReset VCI_ReadErrInfo
VCI_ResumeConfig VCI_ConnectDevice
VCI_GetReceiveNum VCI_ClearBuffer
VCI_ReadBoardInfo VCI_ReadCanStatus
VCI_GetReference VCI_SetReference
VCI_GetReference2 VCI_SetReference2
VCI_StartCAN
VCI_ResetCAN
VCI_Transmit VCI_Recive
VCI_CloseDevice
43 / 43