USB-CAN ਬੱਸ ਇੰਟਰਫੇਸ
ਅਡਾਪਟਰ ਇੰਟਰਫੇਸ ਫੰਕਸ਼ਨ
ਲਾਇਬ੍ਰੇਰੀ ਉਪਭੋਗਤਾ ਨਿਰਦੇਸ਼
ਭਾਗ ਇੱਕ ਓਵਰVIEW
ਜੇਕਰ ਉਪਭੋਗਤਾ ਸਿਰਫ਼ CAN ਬੱਸ ਸੰਚਾਰ ਟੈਸਟ 'ਤੇ ਜਾਣ ਲਈ USB-CAN ਬੱਸ ਇੰਟਰਫੇਸ ਅਡੈਪਟਰ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ, ਅਤੇ ਫਿਰ ਉਹ ਸਿੱਧੇ ਤੌਰ 'ਤੇ ਟੈਸਟ ਦੇ ਡੇਟਾ ਨੂੰ ਭੇਜਣ ਅਤੇ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਸਪਲਾਈ ਕੀਤੇ USB-CAN ਟੂਲ ਸੌਫਟਵੇਅਰ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦਾ ਹੈ।
ਜੇਕਰ ਉਪਭੋਗਤਾ ਆਪਣੇ ਖੁਦ ਦੇ ਉਤਪਾਦਾਂ ਲਈ ਸੌਫਟਵੇਅਰ ਪ੍ਰੋਗਰਾਮ ਲਿਖਣਾ ਚਾਹੁੰਦਾ ਹੈ. ਕਿਰਪਾ ਕਰਕੇ ਹੇਠ ਲਿਖੀਆਂ ਹਦਾਇਤਾਂ ਨੂੰ ਧਿਆਨ ਨਾਲ ਪੜ੍ਹੋ ਅਤੇ s ਤੋਂ ਹਵਾਲਾ ਲਓample ਕੋਡ ਜੋ ਅਸੀਂ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਾਂ:
⑴ C++ ਬਿਲਡਰ ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can।
ਲਾਇਬ੍ਰੇਰੀ ਵਿਕਸਿਤ ਕਰੋ file :ControlCAN.lib, ControlCAN.DLL
VC ਸੰਸਕਰਣ ਫੰਕਸ਼ਨ ਘੋਸ਼ਣਾ file :ControlCAN.h
VB ਸੰਸਕਰਣ ਫੰਕਸ਼ਨ ਘੋਸ਼ਣਾ file: ControlCAN.bas
ਲੈਬVIEW ਵਰਜਨ ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨ ਪੈਕੇਜ ਮੋਡੀਊਲ :ControlCAN.llb
ਡੇਲਫੀ ਸੰਸਕਰਣ ਫੰਕਸ਼ਨ ਘੋਸ਼ਣਾ file: ControlCAN.pas
ਭਾਗ ਦੋ ਅਨੁਕੂਲ ਫੰਕਸ਼ਨ ਲਾਇਬ੍ਰੇਰੀ ਅਤੇ ਡੇਟਾ ਸਟ੍ਰਕਚਰ
2.1 ਟਾਈਪ ਪਰਿਭਾਸ਼ਾ
2.1.1 ਡਿਵਾਈਸ ਦੀ ਕਿਸਮ
ਕਿਸਮ ਪਰਿਭਾਸ਼ਾ | ਕਿਸਮ ਦਾ ਮੁੱਲ | ਵਰਣਨ |
DEV_USBCAN2 | 4 | USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN |
2.1.2 VCI_BOARD_INFO
VCI_BOARD_INFO ਢਾਂਚੇ ਵਿੱਚ USB-CAN ਸੀਰੀਜ਼ ਇੰਟਰਫੇਸ ਕਾਰਡ ਡਿਵਾਈਸ ਜਾਣਕਾਰੀ ਸ਼ਾਮਲ ਹੈ।
ਢਾਂਚਾ VCI_ReadBoardInfo ਫੰਕਸ਼ਨ ਵਿੱਚ ਭਰਿਆ ਜਾਵੇਗਾ।
ਮੈਂਬਰ:
hw_ਵਰਜਨ
ਹਾਰਡਵੇਅਰ ਸੰਸਕਰਣ ਨੰਬਰ, ਹੈਕਸਾਡੈਸੀਮਲ ਸੰਕੇਤ। ਉਦਾਹਰਨ ਲਈ 0x0100 V1.00 ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।
fw_ਵਰਜਨ
ਹਾਰਡਵੇਅਰ ਸੰਸਕਰਣ ਨੰਬਰ, ਹੈਕਸਾਡੈਸੀਮਲ ਸੰਕੇਤ। ਉਦਾਹਰਨ ਲਈ 0x0100 V1.00 ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।
ਪੰਨਾ 2
dr_ਵਰਜਨ
ਡਰਾਈਵਰ ਸੰਸਕਰਣ ਨੰਬਰ, ਹੈਕਸਾਡੈਸੀਮਲ ਸੰਕੇਤ। ਉਦਾਹਰਨ ਲਈ 0x0100 V1.00 ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।
in_version
ਇੰਟਰਫੇਸ ਲਾਇਬ੍ਰੇਰੀ ਸੰਸਕਰਣ ਨੰਬਰ, ਹੈਕਸਾਡੈਸੀਮਲ ਸੰਕੇਤ। ਉਦਾਹਰਨ ਲਈ 0x0100 V1.00 ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।
irq_Num
ਸਿਸਟਮ ਰਾਖਵਾਂ ਹੈ।
can_Num
CAN ਚੈਨਲ ਦੀ ਕੁੱਲ ਸੰਖਿਆ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।
str_Serial_Num
ਇਸ ਬੋਰਡ ਕਾਰਡ ਦਾ ਸੀਰੀਅਲ ਨੰਬਰ।
str_hw_Type
ਹਾਰਡਵੇਅਰ ਕਿਸਮ, ਜਿਵੇਂ ਕਿ “USBCAN V1.00” (ਨੋਟ: ਸਟ੍ਰਿੰਗ ਟਰਮੀਨੇਟਰ '\0' ਸ਼ਾਮਲ ਹੈ)।
ਰਾਖਵਾਂ
ਸਿਸਟਮ ਰਾਖਵਾਂ ਹੈ।
2.1.3 VCI_CAN_OBJ
VCI_Transmit ਅਤੇ VCI_Receive ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ, VCI_CAN_OBJ ਢਾਂਚੇ ਦੀ ਵਰਤੋਂ CAN ਸੰਦੇਸ਼ ਫਰੇਮ ਨੂੰ ਸੰਚਾਰਿਤ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
ਮੈਂਬਰ:
ID
ਸੁਨੇਹਾ ਪਛਾਣਕਰਤਾ। ਡਾਇਰੈਕਟ ਆਈਡੀ ਫਾਰਮੈਟ, ਸੱਜੇ-ਅਲਾਈਨ ਕੀਤੇ, ਕਿਰਪਾ ਕਰਕੇ ਵੇਖੋ: Annex One: ID ਅਲਾਈਨਮੈਂਟ ਵੇਰਵੇ।
ਟਾਈਮਸਟamp
ਐੱਸ.ਟੀamp ਸਮਾਂ ਸੀਮਾ ਦੀ ਜਾਣਕਾਰੀ, ਸਮਾਂ ਸ਼ੁਰੂ ਕਰੋ ਜਦੋਂ CAN ਕੰਟਰੋਲਰ ਸ਼ੁਰੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਯੂਨਿਟ 0. 1ms ਹੈ।
ਟਾਈਮ ਫਲੈਗ
ਸਮੇਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੇ ਮਾਮਲੇ ਵਿੱਚ ਸਟamp, 1 ਪ੍ਰਭਾਵਸ਼ਾਲੀ TimeSt ਹੈamp. TimeFlag ਅਤੇ TimeStamp ਸਿਰਫ਼ ਉਦੋਂ ਹੀ ਅਰਥਪੂਰਨ ਹੁੰਦੇ ਹਨ ਜਦੋਂ ਫਰੇਮ ਪ੍ਰਾਪਤ ਹੁੰਦਾ ਹੈ।
SendType
ਭੇਜਣ ਦੀ ਕਿਸਮ। = 0 ਆਮ ਕਿਸਮ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ, = 1 ਸਿੰਗਲ ਭੇਜਦਾ ਹੈ।
ਰਿਮੋਟ ਫਲੈਗ
ਚਾਹੇ ਇਹ ਰਿਮੋਟ ਝੰਡਾ ਹੋਵੇ। = 1 ਰਿਮੋਟ ਫਲੈਗ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ, = 0 ਡਾਟਾ ਫਲੈਗ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।
ਬਾਹਰੀ ਫਲੈਗ
ਭਾਵੇਂ ਇਹ ਬਾਹਰੀ ਝੰਡਾ ਹੋਵੇ। = 1 ਬਾਹਰੀ ਝੰਡੇ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ, = 0 ਮਿਆਰੀ ਝੰਡੇ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।
DataLen
ਡੇਟਾ ਦੀ ਲੰਬਾਈ (<=8) , ਯਾਨੀ ਡੇਟਾ ਦੀ ਲੰਬਾਈ।
ਡਾਟਾ
ਪੈਕੇਟ ਡਾਟਾ.
ਰਾਖਵਾਂ
ਸਿਸਟਮ ਰਾਖਵਾਂ ਹੈ।
2.1.4 VCI_INIT_CONFIG
VCI_INIT_CONFIG ਢਾਂਚਾ CAN ਦੀ ਸ਼ੁਰੂਆਤੀ ਸੰਰਚਨਾ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਢਾਂਚਾ VCI_InitCan ਫੰਕਸ਼ਨ ਵਿੱਚ ਭਰਿਆ ਜਾਵੇਗਾ।
ਮੈਂਬਰ:
AccCode
ਫਿਲਟਰ ਕੀਤਾ ਸਵੀਕ੍ਰਿਤੀ ਕੋਡ ਪ੍ਰਾਪਤ ਕਰੋ।
AccMask
ਫਿਲਟਰ ਮਾਸਕ ਪ੍ਰਾਪਤ ਕਰੋ।
ਰਾਖਵਾਂ
ਰਾਖਵਾਂ.
ਫਿਲਟਰ
ਫਿਲਟਰਿੰਗ ਵਿਧੀ, ਸੀਮਾ 0-3 ਨੂੰ ਸੈੱਟ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ, ਵੇਰਵਿਆਂ ਲਈ ਫਿਲਟਰ ਮੋਡ ਟੇਬਲ ਦੇ ਸੈਕਸ਼ਨ 2.2.3 ਨੂੰ ਵੇਖੋ।
ਸਮਾਂ 0
SJA1000 ਬੌਡ ਰੇਟ ਪੈਰਾਮੀਟਰ, ਟਾਈਮਿੰਗ0 (BTR0)।
ਸਮਾਂ 1
SJA1000 ਬੌਡ ਰੇਟ ਪੈਰਾਮੀਟਰ, ਟਾਈਮਿੰਗ1 (BTR1)।
ਮੋਡ
ਓਪਰੇਟਿੰਗ ਮੋਡ, 0 = ਸਾਧਾਰਨ ਕਾਰਵਾਈ, 1 = ਸਿਰਫ਼-ਸੁਣਨ ਦਾ ਮੋਡ, 2 = ਸਵੈਚਲਿਤ ਦਾਖਲਾ ਅਤੇ ਭੇਜਣਾ ਟੈਸਟ ਮੋਡ।
ਟਿੱਪਣੀਆਂ:
ਫਿਲਟਰ ਸੈਟਿੰਗਾਂ ਬਾਰੇ ਕਿਰਪਾ ਕਰਕੇ ਵੇਖੋ: Annex II: CAN ਪੈਰਾਮੀਟਰ ਸੈੱਟਅੱਪ ਨਿਰਦੇਸ਼।
CAN ਟਾਈਮਿੰਗ0 ਅਤੇ ਟਾਈਮਿੰਗ 1 ਦੀ ਵਰਤੋਂ ਬੌਡ ਰੇਟ ਸੈੱਟ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਇਹ ਦੋ ਪੈਰਾਮੀਟਰ ਸਿਰਫ਼ ਸ਼ੁਰੂਆਤੀ s 'ਤੇ ਵਰਤੇ ਜਾਂਦੇ ਹਨ।tage.
ਰਵਾਇਤੀ ਬੌਡ ਸੰਦਰਭ ਸਾਰਣੀ:
CAN ਬੌਡ ਦਰ | ਸਮਾਂ0(BTR0) | ਸਮਾਂ1(BTR1) |
10k bps | 0x31 | 0x1 ਸੀ |
20k bps | 0x18 | 0x1 ਸੀ |
40k bps | 0x87 | 0xFF |
50k bps | 0x09 | 0x1 ਸੀ |
80k bps | 0x83 | 0xFF |
100k bps | 0x04 | 0x1 ਸੀ |
125k bps | 0x03 | 0x1 ਸੀ |
200k bps | 0x81 | 0xFA |
250k bps | 0x01 | 0x1 ਸੀ |
400k bps | 0x80 | 0xFA |
500k bps | 0x00 | 0x1 ਸੀ |
666k bps | 0x80 | 0xB6 |
800k bps | 0x00 | 0x16 |
1000k bps | 0x00 | 0x14 |
33.33 Kbps | 0x09 | 0x6F |
66.66 Kbps | 0x04 | 0x6F |
83.33 Kbps | 0x03 | 0x6F |
- ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਬੌਡ ਰੇਟ ਪੈਰਾਮੀਟਰ ਸੈੱਟ ਕਰਨ ਲਈ ਸਿਰਫ਼ SJA1000 (16MHz) ਦੀ ਪਾਲਣਾ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
- ਅਡਾਪਟਰ 10K ਤੋਂ ਹੇਠਾਂ ਅਸਥਾਈ ਤੌਰ 'ਤੇ ਬੌਡ ਰੇਟ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ ਹੈ।
2.2 ਫੰਕਸ਼ਨ ਦਾ ਵੇਰਵਾ
2.2.1 VCI_OpenDevice
ਇਹ ਫੰਕਸ਼ਨ ਡਿਵਾਈਸਾਂ ਨੂੰ ਕਨੈਕਟ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD ਰਾਖਵਾਂ);
ਪੈਰਾਮੀਟਰ:
DevType
ਡਿਵਾਈਸ ਦੀ ਕਿਸਮ। ਦੇਖੋ: ਅਡਾਪਟਰ ਡਿਵਾਈਸ ਕਿਸਮ ਦੀ ਪਰਿਭਾਸ਼ਾ।
DevIndex
ਡਿਵਾਈਸ ਇੰਡੈਕਸ, ਉਦਾਹਰਨ ਲਈample, ਜਦੋਂ ਸਿਰਫ਼ ਇੱਕ USB-CAN ਅਡਾਪਟਰ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਹੁੰਦਾ ਹੈ, ਜਦੋਂ ਇੱਕ ਤੋਂ ਵੱਧ USB-CAN ਅਡਾਪਟਰ ਹੁੰਦੇ ਹਨ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਵੱਧਦੇ ਕ੍ਰਮ ਵਿੱਚ ਹੁੰਦੇ ਹਨ।
ਰਾਖਵਾਂ
ਧਾਰਨ ਪੈਰਾਮੀਟਰ, 0 ਭਰੋ।
ਵਾਪਸੀ:
ਵਾਪਸੀ ਮੁੱਲ = 1, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਕਾਰਵਾਈ ਸਫਲ ਹੈ; = 0 ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਓਪਰੇਸ਼ਨ ਅਸਫਲ ਰਿਹਾ; = -1 ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਡਿਵਾਈਸ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।
2.2.2. VCI_CloseDevice
ਇਹ ਫੰਕਸ਼ਨ ਕੁਨੈਕਸ਼ਨ ਬੰਦ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
ਪੈਰਾਮੀਟਰ:
DevType
ਡਿਵਾਈਸ ਦੀ ਕਿਸਮ। ਦੇਖੋ: ਅਡਾਪਟਰ ਡਿਵਾਈਸ ਕਿਸਮ ਦੀ ਪਰਿਭਾਸ਼ਾ।
DevIndex
ਡਿਵਾਈਸ ਇੰਡੈਕਸ, ਉਦਾਹਰਨ ਲਈample, ਜਦੋਂ ਸਿਰਫ਼ ਇੱਕ USB-CAN ਅਡਾਪਟਰ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਹੁੰਦਾ ਹੈ, ਜਦੋਂ ਇੱਕ ਤੋਂ ਵੱਧ USB-CAN ਅਡਾਪਟਰ ਹੁੰਦੇ ਹਨ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਵੱਧਦੇ ਕ੍ਰਮ ਵਿੱਚ ਹੁੰਦੇ ਹਨ।
ਵਾਪਸੀ:
ਵਾਪਸੀ ਮੁੱਲ = 1, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਕਾਰਵਾਈ ਸਫਲ ਹੈ; = 0 ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਓਪਰੇਸ਼ਨ ਅਸਫਲ ਰਿਹਾ; = -1 ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਡਿਵਾਈਸ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।
2.2.3 VCI_InitCan
ਇਹ ਫੰਕਸ਼ਨ ਨਿਰਧਾਰਤ CAN ਨੂੰ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIindex,
PVCI_INIT_CONFIG pInitConfig);
ਪੈਰਾਮੀਟਰ:
DevType
ਡਿਵਾਈਸ ਦੀ ਕਿਸਮ। ਦੇਖੋ: ਅਡਾਪਟਰ ਡਿਵਾਈਸ ਕਿਸਮ ਦੀ ਪਰਿਭਾਸ਼ਾ।
DevIndex
ਡਿਵਾਈਸ ਇੰਡੈਕਸ, ਉਦਾਹਰਨ ਲਈample, ਜਦੋਂ ਸਿਰਫ਼ ਇੱਕ USB-CAN ਅਡਾਪਟਰ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਹੁੰਦਾ ਹੈ, ਜਦੋਂ ਇੱਕ ਤੋਂ ਵੱਧ USB-CAN ਅਡਾਪਟਰ ਹੁੰਦੇ ਹਨ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਵੱਧਦੇ ਕ੍ਰਮ ਵਿੱਚ ਹੁੰਦੇ ਹਨ।
ਕੈਨਇੰਡੈਕਸ
CAN ਚੈਨਲ ਇੰਡੈਕਸ, ਜਿਵੇਂ ਕਿ ਜਦੋਂ ਸਿਰਫ ਇੱਕ CAN ਚੈਨਲ ਹੁੰਦਾ ਹੈ, ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਹੁੰਦਾ ਹੈ, ਜੇਕਰ ਦੋ ਹਨ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਜਾਂ 1 ਹੋ ਸਕਦਾ ਹੈ।
pInitConfig
ਸ਼ੁਰੂਆਤੀ ਪੈਰਾਮੀਟਰ ਬਣਤਰ। ਮੈਂਬਰਾਂ ਦੀ ਪੈਰਾਮੀਟਰ ਸੂਚੀ:
ਮੈਂਬਰ | ਕਾਰਜਾਤਮਕ ਵਰਣਨ |
pInitConfig->AccCode | AccCode ਅਤੇ AccMask ਇਹ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ਇਕੱਠੇ ਕੰਮ ਕਰ ਸਕਦੇ ਹਨ ਕਿ ਕਿਹੜੇ ਪੈਕੇਟ ਸਵੀਕਾਰ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ। ਇਹਨਾਂ ਦੋ ਰਜਿਸਟਰਾਂ ਦੀ ਵਰਤੋਂ ID ਨੂੰ ਖੱਬੇ-ਅਲਾਈਨ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਯਾਨੀ AccCode ਦਾ ਸਭ ਤੋਂ ਉੱਚਾ ਬਿੱਟ (Bit31) ਅਤੇ AccMask ID ਮੁੱਲ ਦੇ ਸਭ ਤੋਂ ਉੱਚੇ ਬਿੱਟ ਨਾਲ ਇਕਸਾਰ ਹੁੰਦਾ ਹੈ। |
pInitConfig->AccMask | ਆਈਡੀ ਅਲਾਈਨਮੈਂਟ ਬਾਰੇ ਸੰਦਰਭ ਸੰਦਰਭ: ਅਨੁਬੰਧ I: ਆਈਡੀ ਅਲਾਈਨਮੈਂਟ ਵੇਰਵੇ। ਉਦਾਹਰਨ ਲਈ: ਜੇਕਰ ਤੁਸੀਂ AccCode ਦਾ ਮੁੱਲ 0x24600000 (ਭਾਵ 0x123 ਨੂੰ 21 ਬਿੱਟਾਂ ਦੁਆਰਾ ਖੱਬੇ ਪਾਸੇ ਸ਼ਿਫਟ ਕੀਤਾ ਗਿਆ ਹੈ) ਦੇ ਰੂਪ ਵਿੱਚ ਸੈੱਟ ਕਰਦੇ ਹੋ, ਤਾਂ AccMask ਮੁੱਲ 0x00000000 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਅਤੇ ਫਿਰ ਸਿਰਫ਼ CAN ਸੁਨੇਹਾ ਫਰੇਮ ID 0x123 ਵਾਲੇ ਪੈਕੇਟ ਸਵੀਕਾਰ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ (0x00000000 ਦਾ AccMask ਮੁੱਲ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਸਾਰੇ ਬਿੱਟ ਸੰਬੰਧਿਤ ਹਨ। |
ਬਿੱਟ)। ਜੇਕਰ AccCode ਮੁੱਲ 0x24600000 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ, AccMask ਮੁੱਲ 0x600000 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ (0x03 ਨੂੰ 21 ਬਿੱਟਾਂ ਦੁਆਰਾ ਖੱਬੇ ਪਾਸੇ ਸ਼ਿਫਟ ਕੀਤਾ ਗਿਆ ਹੈ), ਅਤੇ ਫਿਰ ਸਿਰਫ਼ CAN ਸੁਨੇਹਾ ਫਰੇਮ ID 0x120 ~ 0x123 ਵਾਲੇ ਪੈਕੇਟ ਨੂੰ ਸਵੀਕਾਰ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ (AccMask ਮੁੱਲ। 0x600000 ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ bit0 ~ bit1 ਤੋਂ ਇਲਾਵਾ ਹੋਰ ਬਿੱਟ (bit2 ~ bit10) ਸੰਬੰਧਿਤ ਬਿੱਟ ਹਨ)। ਨੋਟ: ਇਹ ਫਿਲਟਰ ਸੈਟਿੰਗ ਸਾਬਕਾampਸਟੈਂਡਰਡ ਫਰੇਮ ਤੱਕ, ਉਦਾਹਰਨ ਲਈample, ਉੱਚ 11-ਬਿੱਟ ਵੈਧ ਬਿੱਟ ਹੈ; ਵਿਸਤ੍ਰਿਤ ਫਰੇਮ ਦੇ ਮਾਮਲੇ ਵਿੱਚ, ਅਤੇ ਫਿਰ ਵੈਧ ID 29-ਬਿੱਟ ਹੈ। AccCode ਅਤੇ AccMask ਨੇ ਉੱਚ 29-ਬਿੱਟ ਨੂੰ ਵੈਧ ਬਿੱਟ ਵਜੋਂ ਸੈੱਟ ਕੀਤਾ ਹੈ! |
|
pInitConfig->ਰਿਜ਼ਰਵਡ | ਰਾਖਵਾਂ |
pInitConfig->ਫਿਲਟਰ | ਫਿਲਟਰਿੰਗ ਮੋਡ ਸੈਟਿੰਗਾਂ ਕਿਰਪਾ ਕਰਕੇ ਫਿਲਟਰ ਮੋਡ ਟੇਬਲ ਦੇ ਭਾਗ ਨੂੰ ਵੇਖੋ। |
pInitConfig->ਟਾਈਮਿੰਗ0 | ਬੌਡ ਰੇਟT0 ਸੈਟਿੰਗ |
pInitConfig->ਟਾਈਮਿੰਗ1 | ਬੌਡ ਰੇਟT1 ਸੈਟਿੰਗ |
pInitConfig->ਮੋਡ | ਓਪਰੇਟਿੰਗ ਮੋਡ: 0-ਆਮ ਕਾਰਵਾਈ 1-ਸਿਰਫ਼ ਸੁਣਨ ਦਾ ਮੋਡ 2-ਸਪੱਸ਼ਟ ਦਾਖਲਾ ਅਤੇ ਟੈਸਟ ਮੋਡ ਭੇਜਣਾ (ਇਸ ਮੁੱਲ ਨੂੰ ZLG ਫੰਕਸ਼ਨ ਲਾਇਬ੍ਰੇਰੀ ਤੋਂ ਬਾਹਰ ਰੱਖਿਆ ਗਿਆ ਹੈ) |
ਫਿਲਟਰ ਮੋਡ ਸਾਰਣੀ:
ਮੁੱਲ | ਨਾਮ | ਵਰਣਨ |
1 | ਸਾਰੀਆਂ ਕਿਸਮਾਂ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰੋ | ਸਟੈਂਡਰਡ ਅਤੇ ਐਕਸਟੈਂਡਡ ਫਰੇਮ ਦੋਵਾਂ ਲਈ ਢੁਕਵਾਂ! |
2 | ਸਿਰਫ਼ ਮਿਆਰੀ ਫਰੇਮ ਪ੍ਰਾਪਤ ਕਰੋ | ਮਿਆਰੀ ਫਰੇਮ ਲਈ ਅਨੁਕੂਲ, ਅਤੇ ਵਿਸਤ੍ਰਿਤ |
ਫਰੇਮ ਨੂੰ ਸਿੱਧੇ ਫਿਲਟਰੇਸ਼ਨ ਦੁਆਰਾ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ! | ||
3 | ਸਿਰਫ਼ ਵਿਸਤ੍ਰਿਤ ਫ੍ਰੇਮ ਪ੍ਰਾਪਤ ਕਰੋ | ਵਿਸਤ੍ਰਿਤ ਫਰੇਮ ਲਈ ਅਨੁਕੂਲ ਹੈ, ਅਤੇ ਮਿਆਰੀ ਫਰੇਮ ਦੁਆਰਾ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ ਸਿੱਧੇ ਫਿਲਟਰੇਸ਼ਨ! . |
ਵਾਪਸੀ:
ਵਾਪਸੀ ਮੁੱਲ = 1, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਕਾਰਵਾਈ ਸਫਲ ਹੈ; = 0 ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਓਪਰੇਸ਼ਨ ਅਸਫਲ ਰਿਹਾ; = -1 ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਡਿਵਾਈਸ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।
ਉਦਾ
2.2.4 VCI_ReadBoardInfo
ਇਹ ਫੰਕਸ਼ਨ ਅਡਾਪਟਰ ਹਾਰਡਵੇਅਰ ਜਾਣਕਾਰੀ ਨੂੰ ਪੜ੍ਹਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਆਮ ਤੌਰ 'ਤੇ, ਇਸ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
ਪੈਰਾਮੀਟਰ:
DevType
ਡਿਵਾਈਸ ਦੀ ਕਿਸਮ। ਦੇਖੋ: ਅਡਾਪਟਰ ਡਿਵਾਈਸ ਕਿਸਮ ਦੀ ਪਰਿਭਾਸ਼ਾ।
DevIndex
ਡਿਵਾਈਸ ਇੰਡੈਕਸ, ਉਦਾਹਰਨ ਲਈample, ਜਦੋਂ ਸਿਰਫ਼ ਇੱਕ USB-CAN ਅਡਾਪਟਰ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਹੁੰਦਾ ਹੈ, ਜਦੋਂ ਇੱਕ ਤੋਂ ਵੱਧ USB- CAN ਅਡਾਪਟਰ ਹੁੰਦੇ ਹਨ, ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਵੱਧਦੇ ਕ੍ਰਮ ਵਿੱਚ ਹੁੰਦੇ ਹਨ। pInfo
VCI_BOARD_INFO ਦੀ ਵਰਤੋਂ ਡਿਵਾਈਸ ਜਾਣਕਾਰੀ ਢਾਂਚੇ ਪੁਆਇੰਟਰ ਨੂੰ ਸਟੋਰ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
ਵਾਪਸੀ:
ਵਾਪਸੀ ਮੁੱਲ = 1, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਕਾਰਵਾਈ ਸਫਲ ਹੈ; = 0 ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਓਪਰੇਸ਼ਨ ਅਸਫਲ ਰਿਹਾ; = -1 ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਡਿਵਾਈਸ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।
2.2.5 VCI_GetReceiveNum
ਇਹ ਫੰਕਸ਼ਨ ਪ੍ਰਾਪਤ ਨੂੰ ਨਿਸ਼ਚਿਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਪਰ ਮਨੋਨੀਤ ਪ੍ਰਾਪਤ ਕਰਨ ਵਾਲੇ ਬਫਰ ਵਿੱਚ ਫਰੇਮਾਂ ਨੂੰ ਪੜ੍ਹਿਆ ਨਹੀਂ ਗਿਆ ਹੈ।
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIindex);
ਪੈਰਾਮੀਟਰ:
DevType
ਡਿਵਾਈਸ ਦੀ ਕਿਸਮ। ਦੇਖੋ: ਅਡਾਪਟਰ ਡਿਵਾਈਸ ਕਿਸਮ ਦੀ ਪਰਿਭਾਸ਼ਾ।
DevIndex
ਡਿਵਾਈਸ ਇੰਡੈਕਸ, ਉਦਾਹਰਨ ਲਈample, ਜਦੋਂ ਸਿਰਫ਼ ਇੱਕ USB-CAN ਅਡਾਪਟਰ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਹੁੰਦਾ ਹੈ, ਜਦੋਂ ਇੱਕ ਤੋਂ ਵੱਧ USB- CAN ਅਡਾਪਟਰ ਹੁੰਦੇ ਹਨ, ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਵੱਧਦੇ ਕ੍ਰਮ ਵਿੱਚ ਹੁੰਦੇ ਹਨ।
ਕੈਨਇੰਡੈਕਸ
CAN ਚੈਨਲ ਸੂਚਕਾਂਕ।
ਵਾਪਸੀ:
ਉਹ ਫਰੇਮ ਵਾਪਸ ਕਰੋ ਜੋ ਅਜੇ ਤੱਕ ਪੜ੍ਹੇ ਨਹੀਂ ਗਏ ਹਨ।
ਉਦਾ
# "ControlCan.h" int ret=VCI_GetReceiveNum(2,0,0) ਸ਼ਾਮਲ ਕਰੋ;
2.2.6 VCI_ClearBuffer
ਇਹ ਫੰਕਸ਼ਨ ਦੁਆਰਾ ਨਿਰਦਿਸ਼ਟ ਚੈਨਲ ਦੇ ਪ੍ਰਾਪਤ ਅਤੇ ਭੇਜਣ ਬਫਰ ਨੂੰ ਸਾਫ਼ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ
USB-CAN ਅਡਾਪਟਰ।
DWORD __stdcall VCI_ClearBuffer(DWORD DevType,DWORD DevIndex,DWORD CANIindex);
ਪੈਰਾਮੀਟਰ:
DevType
ਡਿਵਾਈਸ ਦੀ ਕਿਸਮ। ਦੇਖੋ: ਅਡਾਪਟਰ ਡਿਵਾਈਸ ਕਿਸਮ ਦੀ ਪਰਿਭਾਸ਼ਾ।
DevIndex
ਡਿਵਾਈਸ ਇੰਡੈਕਸ, ਉਦਾਹਰਨ ਲਈample, ਜਦੋਂ ਸਿਰਫ਼ ਇੱਕ USB-CAN ਅਡਾਪਟਰ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਹੁੰਦਾ ਹੈ, ਜਦੋਂ ਇੱਕ ਤੋਂ ਵੱਧ USB- CAN ਅਡਾਪਟਰ ਹੁੰਦੇ ਹਨ, ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਵੱਧਦੇ ਕ੍ਰਮ ਵਿੱਚ ਹੁੰਦੇ ਹਨ।
ਕੈਨਇੰਡੈਕਸ
CAN ਚੈਨਲ ਸੂਚਕਾਂਕ।
ਵਾਪਸੀ:
ਵਾਪਸੀ ਮੁੱਲ = 1, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਕਾਰਵਾਈ ਸਫਲ ਹੈ; = 0 ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਓਪਰੇਸ਼ਨ ਅਸਫਲ ਰਿਹਾ; = -1 ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਡਿਵਾਈਸ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।
2.2.7 VCI_StartCAN
ਇਸ ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ CAN ਕੰਟਰੋਲਰ ਅਤੇ ਅਡਾਪਟਰ ਦੇ ਅੰਦਰੂਨੀ ਇੰਟਰੱਪਟ ਰਿਸੈਪਸ਼ਨ ਫੰਕਸ਼ਨ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIindex);
ਪੈਰਾਮੀਟਰ:
DevType
ਡਿਵਾਈਸ ਦੀ ਕਿਸਮ। ਦੇਖੋ: ਅਡਾਪਟਰ ਡਿਵਾਈਸ ਕਿਸਮ ਦੀ ਪਰਿਭਾਸ਼ਾ।
DevIndex
ਡਿਵਾਈਸ ਇੰਡੈਕਸ, ਉਦਾਹਰਨ ਲਈample, ਜਦੋਂ ਸਿਰਫ਼ ਇੱਕ USB-CAN ਅਡਾਪਟਰ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਹੁੰਦਾ ਹੈ, ਜਦੋਂ ਇੱਕ ਤੋਂ ਵੱਧ USB-CAN ਅਡਾਪਟਰ ਹੁੰਦੇ ਹਨ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਵੱਧਦੇ ਕ੍ਰਮ ਵਿੱਚ ਹੁੰਦੇ ਹਨ।
ਕੈਨਇੰਡੈਕਸ
CAN ਚੈਨਲ ਸੂਚਕਾਂਕ।
ਵਾਪਸੀ:
ਵਾਪਸੀ ਮੁੱਲ = 1, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਕਾਰਵਾਈ ਸਫਲ ਹੈ; = 0 ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਓਪਰੇਸ਼ਨ ਅਸਫਲ ਰਿਹਾ; = -1 ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਡਿਵਾਈਸ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।
2.2.8 VCI_ResetCAN
ਇਹ ਫੰਕਸ਼ਨ CAN ਕੰਟਰੋਲਰ ਨੂੰ ਰੀਸੈਟ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIindex);
ਪੈਰਾਮੀਟਰ:
DevType
ਡਿਵਾਈਸ ਦੀ ਕਿਸਮ। ਦੇਖੋ: ਅਡਾਪਟਰ ਡਿਵਾਈਸ ਕਿਸਮ ਦੀ ਪਰਿਭਾਸ਼ਾ।
DevIndex
ਡਿਵਾਈਸ ਇੰਡੈਕਸ, ਉਦਾਹਰਨ ਲਈample, ਜਦੋਂ ਸਿਰਫ਼ ਇੱਕ USB-CAN ਅਡਾਪਟਰ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਹੁੰਦਾ ਹੈ, ਜਦੋਂ ਇੱਕ ਤੋਂ ਵੱਧ USB-CAN ਅਡਾਪਟਰ ਹੁੰਦੇ ਹਨ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਵੱਧਦੇ ਕ੍ਰਮ ਵਿੱਚ ਹੁੰਦੇ ਹਨ।
ਕੈਨਇੰਡੈਕਸ
CAN ਚੈਨਲ ਸੂਚਕਾਂਕ।
ਵਾਪਸੀ:
ਵਾਪਸੀ ਮੁੱਲ = 1, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਕਾਰਵਾਈ ਸਫਲ ਹੈ; = 0 ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਓਪਰੇਸ਼ਨ ਅਸਫਲ ਰਿਹਾ; = -1 ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਡਿਵਾਈਸ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।
2.2.9 VCI_Transmit
ਇਹ ਫੰਕਸ਼ਨ CAN ਸੁਨੇਹਾ ਫਰੇਮ ਭੇਜਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD ਲੰਬਾਈ);
ਪੈਰਾਮੀਟਰ:
DevType
ਡਿਵਾਈਸ ਦੀ ਕਿਸਮ। ਦੇਖੋ: ਅਡਾਪਟਰ ਡਿਵਾਈਸ ਕਿਸਮ ਦੀ ਪਰਿਭਾਸ਼ਾ।
DevIndex
ਡਿਵਾਈਸ ਇੰਡੈਕਸ, ਉਦਾਹਰਨ ਲਈample, ਜਦੋਂ ਸਿਰਫ਼ ਇੱਕ USB-CAN ਅਡਾਪਟਰ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਹੁੰਦਾ ਹੈ, ਜਦੋਂ ਇੱਕ ਤੋਂ ਵੱਧ USB-CAN ਅਡਾਪਟਰ ਹੁੰਦੇ ਹਨ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਵੱਧਦੇ ਕ੍ਰਮ ਵਿੱਚ ਹੁੰਦੇ ਹਨ।
ਕੈਨਇੰਡੈਕਸ
CAN ਚੈਨਲ ਸੂਚਕਾਂਕ। p ਭੇਜੋ
ਡਾਟਾ ਫਰੇਮ ਐਰੇ ਦਾ ਪਹਿਲਾ ਪਤਾ ਜੋ ਭੇਜਿਆ ਜਾਣਾ ਹੈ।
ਲੰਬਾਈ
ਭੇਜੇ ਜਾਣ ਵਾਲੇ ਡੇਟਾ ਫਰੇਮਾਂ ਦੀ ਸੰਖਿਆ, ਅਧਿਕਤਮ ਸੰਖਿਆ 1000 ਹੈ, ਹਾਈ ਸਪੀਡ ਦੇ ਤਹਿਤ ਸਿਫਾਰਿਸ਼ ਕੀਤੀ ਗਈ ਕੀਮਤ 48 ਹੈ।
ਵਾਪਸੀ:
ਪਹਿਲਾਂ ਤੋਂ ਭੇਜੇ ਗਏ ਫਰੇਮਾਂ ਦੀ ਅਸਲ ਸੰਖਿਆ ਵਾਪਸ ਕਰੋ, ਵਾਪਸੀ ਮੁੱਲ = -1 ਇੱਕ ਡਿਵਾਈਸ ਗਲਤੀ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।
ਉਦਾ
2.2.10 VCI_ ਪ੍ਰਾਪਤ ਕਰੋ
ਇਹ ਫੰਕਸ਼ਨ ਰਿਸੈਪਸ਼ਨ ਦੀ ਬੇਨਤੀ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIindex, PVCI_CAN_OBJ pReceive, ULONG Len, INT ਵੇਟਟਾਈਮ);
ਪੈਰਾਮੀਟਰ:
DevType
ਡਿਵਾਈਸ ਦੀ ਕਿਸਮ। ਦੇਖੋ: ਅਡਾਪਟਰ ਡਿਵਾਈਸ ਕਿਸਮ ਦੀ ਪਰਿਭਾਸ਼ਾ।
DevIndex
ਡਿਵਾਈਸ ਇੰਡੈਕਸ, ਉਦਾਹਰਨ ਲਈample, ਜਦੋਂ ਸਿਰਫ਼ ਇੱਕ USB-CAN ਅਡਾਪਟਰ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਹੁੰਦਾ ਹੈ, ਜਦੋਂ ਇੱਕ ਤੋਂ ਵੱਧ USB-CAN ਅਡਾਪਟਰ ਹੁੰਦੇ ਹਨ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਵੱਧਦੇ ਕ੍ਰਮ ਵਿੱਚ ਹੁੰਦੇ ਹਨ।
ਕੈਨਇੰਡੈਕਸ
CAN ਚੈਨਲ ਸੂਚਕਾਂਕ।
ਪ੍ਰਾਪਤ ਕਰੋ
ਡਾਟਾ ਫਰੇਮਾਂ ਦਾ ਪਹਿਲਾ ਸੈੱਟ ਪੁਆਇੰਟਰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ।
ਲੈਨ
ਸਧਾਰਨ ਸੁਨੇਹੇ ਨੂੰ ਵਾਪਸ ਕਰਨ ਲਈ ਡੇਟਾ ਫਰੇਮ ਦੀ ਐਰੇ ਦੀ ਲੰਬਾਈ 2500 ਤੋਂ ਵੱਧ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ।
ਨਹੀਂ ਤਾਂ, ਵਾਪਸੀ ਦੀ ਲੰਬਾਈ ਜ਼ੀਰੋ ਹੋਵੇਗੀ ਭਾਵੇਂ ਸੁਨੇਹਾ ਪ੍ਰਾਪਤ ਹੋਇਆ ਹੈ ਜਾਂ ਨਹੀਂ। ਅਡਾਪਟਰ ਹਰ ਚੈਨਲ ਲਈ 2000-ਫਰੇਮ ਬਫਰ ਸੈੱਟ ਕਰਦਾ ਹੈ। ਆਪਣੇ ਸਿਸਟਮ ਅਤੇ ਕੰਮ ਕਰਨ ਵਾਲੇ ਵਾਤਾਵਰਣ ਦੇ ਆਧਾਰ 'ਤੇ, ਉਪਭੋਗਤਾ 2500 ਤੋਂ ਇੱਕ ਢੁਕਵੀਂ ਐਰੇ ਲੰਬਾਈ ਚੁਣ ਸਕਦਾ ਹੈ।
ਉਡੀਕ ਸਮਾਂ ਰਾਖਵਾਂ ਹੈ।
ਵਾਪਸੀ:
ਫਰੇਮਾਂ ਦੀ ਸੰਖਿਆ ਵਾਪਸ ਕਰੋ ਜੋ ਅਸਲ ਵਿੱਚ ਪੜ੍ਹੇ ਗਏ ਹਨ, -1 ਡਿਵਾਈਸ ਦੀਆਂ ਗਲਤੀਆਂ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।
ਉਦਾ
ਭਾਗ ਤਿੰਨ ਹੋਰ ਫੰਕਸ਼ਨ ਅਤੇ ਡੇਟਾ ਢਾਂਚੇ ਦਾ ਵੇਰਵਾ
ਇਹ ਅਧਿਆਇ USB-CAN ਅਡਾਪਟਰ ਇੰਟਰਫੇਸ ਲਾਇਬ੍ਰੇਰੀ ControlCAN.dll ਵਿੱਚ ਮੌਜੂਦ ਅਸੰਗਤ ZLG ਇੰਟਰਫੇਸ ਲਾਇਬ੍ਰੇਰੀ ਦੇ ਹੋਰ ਡੇਟਾ ਕਿਸਮਾਂ ਅਤੇ ਕਾਰਜਾਂ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ। ਕਰੋ ਜੀ
ਜੇਕਰ ਸੈਕੰਡਰੀ ਵਿਕਾਸ ਲਈ ਇੱਕ ਅਨੁਕੂਲ ZLG ਮਾਡਲ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ ਤਾਂ ਇਹਨਾਂ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਕਾਲ ਨਾ ਕਰੋ ਤਾਂ ਜੋ ਅਨੁਕੂਲਤਾ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਨਾ ਕੀਤਾ ਜਾ ਸਕੇ।
3.1 ਫੰਕਸ਼ਨ ਦਾ ਵੇਰਵਾ
3.1.1. VCI_UsbDeviceReset
USB-CAN ਅਡਾਪਟਰ ਰੀਸੈਟ ਕਰੋ, VCI_OpenDevice ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਰੀਸੈਟ ਕਰਨ ਤੋਂ ਬਾਅਦ ਡਿਵਾਈਸ ਨੂੰ ਮੁੜ-ਖੋਲਣ ਦੀ ਲੋੜ ਹੈ।
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD ਰਾਖਵਾਂ
ਪੈਰਾਮੀਟਰ:
DevType
ਡਿਵਾਈਸ ਦੀ ਕਿਸਮ। ਦੇਖੋ: ਅਡਾਪਟਰ ਡਿਵਾਈਸ ਕਿਸਮ ਦੀ ਪਰਿਭਾਸ਼ਾ।
DevIndex
ਡਿਵਾਈਸ ਇੰਡੈਕਸ, ਉਦਾਹਰਨ ਲਈample, ਜਦੋਂ ਸਿਰਫ਼ ਇੱਕ USB-CAN ਅਡਾਪਟਰ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਹੁੰਦਾ ਹੈ, ਜਦੋਂ ਇੱਕ ਤੋਂ ਵੱਧ USB-CAN ਅਡਾਪਟਰ ਹੁੰਦੇ ਹਨ, ਤਾਂ ਸੂਚਕਾਂਕ ਨੰਬਰ 0 ਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਵੱਧਦੇ ਕ੍ਰਮ ਵਿੱਚ ਹੁੰਦੇ ਹਨ।
ਰਾਖਵਾਂ ਰੱਖਿਆ।
ਵਾਪਸੀ:
ਵਾਪਸੀ ਮੁੱਲ = 1, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਕਾਰਵਾਈ ਸਫਲ ਹੈ; = 0 ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਓਪਰੇਸ਼ਨ ਅਸਫਲ ਰਿਹਾ; = -1 ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਡਿਵਾਈਸ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।
bRel = VCI_UsbDeviceReset(nDeviceType, Independence, 0);
3.1.2 VCI_FindUsbDevice2
ਜਦੋਂ ਉਹੀ PC ਮਲਟੀਪਲ USB-CAN ਵਰਤਦਾ ਹੈ, ਤਾਂ ਉਪਭੋਗਤਾ ਮੌਜੂਦਾ ਡਿਵਾਈਸ ਨੂੰ ਲੱਭਣ ਲਈ ਇਸ ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦਾ ਹੈ।
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
ਪੈਰਾਮੀਟਰ:
pInfo
pInfo ਦੀ ਵਰਤੋਂ ਪਹਿਲੇ ਡੇਟਾ ਬਫਰ ਐਡਰੈੱਸ ਪੁਆਇੰਟਰ ਦੇ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਸਟੋਰ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
ਵਾਪਸੀ
ਕੰਪਿਊਟਰ ਵਿੱਚ ਪਲੱਗ ਕੀਤੇ USB-CAN ਅਡਾਪਟਰ ਦਾ ਨੰਬਰ ਵਾਪਸ ਕਰੋ।
ਭਾਗ ਚਾਰ ਇੰਟਰਫੇਸ ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨ ਪ੍ਰਕਿਰਿਆ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ
ਡਿਵਾਈਸ ਫੰਕਸ਼ਨ ਨੂੰ ਗੁਣਾ ਕਰਨ ਲਈ, ਅਸੀਂ ਵਾਧੂ ਫੰਕਸ਼ਨ (ਹਰੇ ਬੈਕਗ੍ਰਾਉਂਡ ਦੇ ਨਾਲ ਪੇਸ਼ ਕੀਤੇ ਫੰਕਸ਼ਨ) ਪ੍ਰਦਾਨ ਕੀਤੇ ਹਨ, ਇਹਨਾਂ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹਨ: VCI_FindUsbDevice2 VCI_UsbDeviceReset. ਦੂਜੇ ਵਿਕਾਸ ਦੇ ਦੌਰਾਨ, ਇਹ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਬੁਲਾਇਆ ਜਾਣਾ ਜ਼ਰੂਰੀ ਨਹੀਂ ਹੈ। ਇੱਥੋਂ ਤੱਕ ਕਿ ਇਹਨਾਂ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਅਣਡਿੱਠ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਸਾਰੇ USB-CAN ਅਡਾਪਟਰ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਪ੍ਰਾਪਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
www.waveshare.com
www.waveshare.com/wiki
ਦਸਤਾਵੇਜ਼ / ਸਰੋਤ
![]() |
WAVESHARE USB-CAN ਬੱਸ ਇੰਟਰ ਫੇਸ ਅਡਾਪਟਰ ਇੰਟਰਫੇਸ ਫੰਕਸ਼ਨ ਲਾਇਬ੍ਰੇਰੀ [pdf] ਹਦਾਇਤ ਮੈਨੂਅਲ USB-CAN ਬੱਸ ਇੰਟਰ ਫੇਸ ਅਡੈਪਟਰ ਇੰਟਰਫੇਸ ਫੰਕਸ਼ਨ ਲਾਇਬ੍ਰੇਰੀ, USB-CAN, ਬੱਸ ਇੰਟਰ ਫੇਸ ਅਡੈਪਟਰ ਇੰਟਰਫੇਸ ਫੰਕਸ਼ਨ ਲਾਇਬ੍ਰੇਰੀ, ਇੰਟਰਫੇਸ ਫੰਕਸ਼ਨ ਲਾਇਬ੍ਰੇਰੀ, ਫੰਕਸ਼ਨ ਲਾਇਬ੍ਰੇਰੀ |