ໂລໂກ້ WAVESHAREການໂຕ້ຕອບ USB-CAN Bus
ຟັງຊັນການໂຕ້ຕອບຂອງອະແດບເຕີ
ຄໍາແນະນໍາຜູ້ໃຊ້ຫ້ອງສະຫມຸດWAVESHARE USB CAN Bus Inter face Adapter Interface Function Library

ສ່ວນໜຶ່ງແລ້ວVIEW

ຖ້າຜູ້ໃຊ້ພຽງແຕ່ໃຊ້ອະແດບເຕີການໂຕ້ຕອບ USB-CAN bus ເພື່ອໄປທົດສອບການສື່ສານລົດເມ CAN, ແລະຫຼັງຈາກນັ້ນລາວສາມາດນໍາໃຊ້ຊອບແວ USB-CAN Tool ໂດຍກົງສໍາລັບການສົ່ງແລະຮັບຂໍ້ມູນການທົດສອບ.
ຖ້າຜູ້ໃຊ້ຕັ້ງໃຈຂຽນໂປຼແກຼມໂປຼແກຼມສໍາລັບຜະລິດຕະພັນຂອງຕົນເອງ. ກະລຸນາອ່ານຄໍາແນະນໍາຕໍ່ໄປນີ້ຢ່າງລະມັດລະວັງ ແລະເອົາເອກະສານອ້າງອີງຈາກ sampລະຫັດພວກເຮົາໃຫ້:
⑴ C++ Builder ⑵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
ການປະກາດຟັງຊັນສະບັບ Delphi file: ControlCAN.pas

ພາກທີ 2 ຫ້ອງສະໝຸດຟັງຊັນທີ່ເຂົ້າກັນໄດ້ ແລະໂຄງສ້າງຂໍ້ມູນ

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 Series interface card ຂໍ້ມູນອຸປະກອນ.
ໂຄງສ້າງຈະຖືກຕື່ມໃສ່ໃນຟັງຊັນ VCI_ReadBoardInfo.

WAVESHARE USB CAN Bus Inter face Adapter Interface Function Library - ຮູບ 1

ສະມາຊິກ:
hw_Version
ໝາຍເລກລຸ້ນຮາດແວ, ໝາຍເລກເລກຖານສິບຫົກ. ຕົວຢ່າງ: 0x0100 ເປັນຕົວແທນ V1.00.
fw_Version
ໝາຍເລກລຸ້ນຮາດແວ, ໝາຍເລກເລກຖານສິບຫົກ. ຕົວຢ່າງ: 0x0100 ເປັນຕົວແທນ V1.00.
ໜ້າ 2
dr_Version

ໝາຍເລກເວີຊັນຂອງໄດເວີ, ໝາຍເລກເລກຖານສິບຫົກ. ຕົວຢ່າງ: 0x0100 ເປັນຕົວແທນ V1.00.
in_Version
ໝາຍເລກສະບັບຫ້ອງສະໝຸດການໂຕ້ຕອບ, ໝາຍເລກເລກຖານສິບຫົກ. ຕົວຢ່າງ: 0x0100 ເປັນຕົວແທນ V1.00.
irq_Num
ສະຫງວນລະບົບ.
can_Num
ເປັນຕົວແທນຈຳນວນທັງໝົດຂອງຊ່ອງ CAN.
str_Serial_Num
ໝາຍເລກລຳດັບຂອງບັດກະດານນີ້.
str_hw_ປະເພດ
ປະເພດຮາດແວເຊັ່ນ “USBCAN V1.00” (ໝາຍເຫດ: ລວມມີ string terminator '\0').
ສະຫງວນໄວ້
ສະຫງວນລະບົບ.
2.1.3. VCI_CAN_OBJ
ໃນຟັງຊັນ VCI_Transmit ແລະ VCI_Receive, ໂຄງສ້າງ VCI_CAN_OBJ ຖືກນໍາໃຊ້ເພື່ອສົ່ງກອບຂໍ້ຄວາມ CAN.

WAVESHARE USB CAN Bus Inter face Adapter Interface Function Library - ຮູບ

ສະມາຊິກ:
ID
ຕົວລະບຸຂໍ້ຄວາມ. ຮູບແບບ ID ກົງ, ຈັດຮຽງຂວາ, ກະລຸນາອ້າງອີງເຖິງ: ເອກະສານຊ້ອນທ້າຍໜຶ່ງ: ລາຍລະອຽດການຈັດຮຽງ ID.
ເວລາamp
ໄດ້​ຮັບ stamp ຂໍ້​ມູນ​ຂອງ​ຂອບ​ເຂດ​ທີ່​ໃຊ້​ເວ​ລາ​, ການ​ເລີ່ມ​ຕົ້ນ​ກໍາ​ນົດ​ເວ​ລາ​ທີ່​ຕົວ​ຄວບ​ຄຸມ CAN ແມ່ນ​ເລີ່ມ​ຕົ້ນ​, ຫນ່ວຍ​ບໍ​ລິ​ການ​ແມ່ນ 0. 1ms​.
TimeFlag
ໃນຂໍ້ກໍານົດຂອງບໍ່ວ່າຈະໃຊ້ເວລາ stamp, 1 ແມ່ນ TimeStamp. TimeFlag ແລະ TimeStamp ມີຄວາມຫມາຍພຽງແຕ່ໃນເວລາທີ່ກອບໄດ້ຮັບ.
ປະເພດສົ່ງ
ປະເພດການສົ່ງ. = 0 ຊີ້ໃຫ້ເຫັນປະເພດປົກກະຕິ, = 1 ຊີ້ໃຫ້ເຫັນການສົ່ງດຽວ.
RemoteFlag
ບໍ່ວ່າຈະເປັນທຸງໄລຍະໄກ. = 1 ຊີ້ໃຫ້ເຫັນທຸງໄລຍະໄກ, = 0 ຊີ້ໃຫ້ເຫັນທຸງຂໍ້ມູນ.
ExternFlag
ບໍ່ວ່າຈະເປັນທຸງພາຍນອກ. = 1 ຊີ້ໃຫ້ເຫັນທຸງພາຍນອກ, = 0 ຊີ້ໃຫ້ເຫັນທຸງມາດຕະຖານ.
ຂໍ້ມູນເລນ
ຄວາມ​ຍາວ​ຂອງ​ຂໍ້​ມູນ (<=8​)​, ນັ້ນ​ແມ່ນ​ຄວາມ​ຍາວ​ຂອງ​ຂໍ້​ມູນ​.
ຂໍ້ມູນ
ຂໍ້ມູນແພັກເກັດ.
ສະຫງວນໄວ້
ສະຫງວນລະບົບ.
2.1.4. VCI_INIT_CONFIG
ໂຄງສ້າງ VCI_INIT_CONFIG ກໍານົດການຕັ້ງຄ່າເບື້ອງຕົ້ນຂອງ CAN. ໂຄງສ້າງຈະຖືກຕື່ມໃສ່ໃນຟັງຊັນ VCI_InitCan.

WAVESHARE USB CAN Bus Inter face Adapter Interface Function Library - ຮູບ 2

ສະມາຊິກ:
ລະຫັດ Acc
ໄດ້ຮັບລະຫັດຍອມຮັບການກັ່ນຕອງ.
AccMask
ໄດ້ຮັບຫນ້າກາກການກັ່ນຕອງ.
ສະຫງວນໄວ້
ສະຫງວນໄວ້.
ການກັ່ນຕອງ
ວິທີການການກັ່ນຕອງ, ອະນຸຍາດໃຫ້ກໍານົດຂອບເຂດ 0-3, ເບິ່ງພາກ 2.2.3 ຂອງຕາຕະລາງຮູບແບບການກັ່ນຕອງສໍາລັບລາຍລະອຽດ.
ເວລາ0
ພາຣາມິເຕີອັດຕາ SJA1000 Baud, Timing0 (BTR0).
ເວລາ1
ພາຣາມິເຕີອັດຕາ SJA1000 Baud, Timing1 (BTR1).
ໂໝດ
ໂຫມດປະຕິບັດງານ, 0 = ການດໍາເນີນງານປົກກະຕິ, 1 = ໂຫມດຟັງເທົ່ານັ້ນ, 2 = ໂຫມດການເຂົ້າ spontaneous ແລະສົ່ງການທົດສອບ.
ຂໍ້ສັງເກດ:
ກ່ຽວ​ກັບ​ການ​ຕັ້ງ​ຄ່າ​ການ​ກັ່ນ​ຕອງ​ກະ​ລຸ​ນາ​ເບິ່ງ​: ເອ​ກະ​ສານ II​: ຄໍາ​ແນະ​ນໍາ​ການ​ຕັ້ງ​ຄ່າ CANparameter​.
CAN Timing0 ແລະ Timing1 ຖືກນໍາໃຊ້ເພື່ອກໍານົດອັດຕາ baud, ສອງຕົວກໍານົດການນີ້ຖືກນໍາໃຊ້ພຽງແຕ່ໃນຕອນເລີ່ມຕົ້ນ s.tage.
ຕາຕະລາງອ້າງອີງ Baud ທຳມະດາ:

CAN ອັດ​ຕາ​ການ Baud​ Timing0(BTR0) Timing1(BTR1)
10k bps 0x31 ຂະ ໜາດ 0x1C
20k bps 0x18 ຂະ ໜາດ 0x1C
40k bps 0x87 0xFF
50k bps 0x09 ຂະ ໜາດ 0x1C
80k bps 0x83 0xFF
100k bps 0x04 ຂະ ໜາດ 0x1C
125k bps 0x03 ຂະ ໜາດ 0x1C
200k bps 0x81 0xFA
250k bps 0x01 ຂະ ໜາດ 0x1C
400k bps 0x80 0xFA
500k bps 0x00 ຂະ ໜາດ 0x1C
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
  1. ຜູ້ໃຊ້ພຽງແຕ່ຕ້ອງການປະຕິບັດຕາມ SJA1000 (16MHz) ເພື່ອກໍານົດພາລາມິເຕີອັດຕາ Baud.
  2. ອະແດັບເຕີບໍ່ຮອງຮັບອັດຕາ Baud ຕໍ່າກວ່າ 10K ຊົ່ວຄາວ.

2.2. ການອະທິບາຍຟັງຊັນ
2.2.1. VCI_OpenDevice
ຟັງຊັນນີ້ຖືກນໍາໃຊ້ເພື່ອເຊື່ອມຕໍ່ອຸປະກອນ.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD Reserved);
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ອັນດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດສະນີໃນລຳດັບຈາກນ້ອຍຫາໃຫຍ່ເລີ່ມຈາກ 0.
ສະຫງວນໄວ້
ຕົວກໍານົດການເກັບຮັກສາ, ຕື່ມຂໍ້ມູນໃສ່ໃນ 0.
ຜົນຕອບແທນ:
ມູນຄ່າກັບຄືນ = 1, ຊຶ່ງຫມາຍຄວາມວ່າການດໍາເນີນງານປະສົບຜົນສໍາເລັດ; = 0 ຊີ້ໃຫ້ເຫັນວ່າການດໍາເນີນງານລົ້ມເຫລວ; = -1 ຊີ້ໃຫ້ເຫັນວ່າອຸປະກອນບໍ່ມີຢູ່.

WAVESHARE USB CAN Bus Inter face Adapter Interface Function Library - Fig3

2.2.2. VCI_ປິດອຸປະກອນ
ຟັງຊັນນີ້ຖືກນໍາໃຊ້ເພື່ອປິດການເຊື່ອມຕໍ່.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ອັນດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດສະນີໃນລຳດັບຈາກນ້ອຍຫາໃຫຍ່ເລີ່ມຈາກ 0.
ຜົນຕອບແທນ:
ມູນຄ່າກັບຄືນ = 1, ຊຶ່ງຫມາຍຄວາມວ່າການດໍາເນີນງານປະສົບຜົນສໍາເລັດ; = 0 ຊີ້ໃຫ້ເຫັນວ່າການດໍາເນີນງານລົ້ມເຫລວ; = -1 ຊີ້ໃຫ້ເຫັນວ່າອຸປະກອນບໍ່ມີຢູ່.

WAVESHARE USB CAN Bus Inter face Adapter Interface Function Library - ຮູບ 4

2.2.3. VCI_InitCan
ຟັງຊັນນີ້ຖືກນໍາໃຊ້ເພື່ອເລີ່ມຕົ້ນ CAN ທີ່ລະບຸໄວ້.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);

ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ອັນດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດສະນີໃນລຳດັບຈາກນ້ອຍຫາໃຫຍ່ເລີ່ມຈາກ 0.
CANIdex
CAN channel index, ເຊັ່ນ: ເມື່ອມີພຽງແຕ່ຊ່ອງ CAN, ຕົວເລກດັດຊະນີແມ່ນ 0, ຖ້າມີສອງ, ຕົວເລກດັດຊະນີສາມາດເປັນ 0 ຫຼື 1.
pInitConfig
ໂຄງສ້າງຕົວກໍານົດການເລີ່ມຕົ້ນ. ບັນຊີລາຍຊື່ພາລາມິເຕີຂອງສະມາຊິກ:

ສະມາຊິກ ຄໍາອະທິບາຍຫນ້າທີ່
pInitConfig->AccCode AccCode ແລະ AccMask ສາມາດເຮັດວຽກຮ່ວມກັນເພື່ອກໍານົດວ່າແພັກເກັດໃດສາມາດຍອມຮັບໄດ້. ທັງສອງທະບຽນນີ້ຖືກນໍາໃຊ້ເພື່ອກໍານົດ ID ຊ້າຍ, ນັ້ນແມ່ນ, bit ສູງສຸດ (Bit31) ຂອງ AccCode ແລະ AccMask ແມ່ນສອດຄ່ອງກັບ bit ສູງສຸດຂອງຄ່າ ID.
pInitConfig->AccMask ກ່ຽວກັບການຈັດຮຽງ ID ອ້າງອີງເອກະສານຊ້ອນທ້າຍ: ເອກະສານຊ້ອນທ້າຍ I:
ລາຍລະອຽດການຈັດຮຽງ ID.
ຕົວຢ່າງ: ຖ້າເຈົ້າຕັ້ງຄ່າຂອງ AccCode ເປັນ 0x24600000 (ເຊັ່ນ: 0x123 ຖືກຍ້າຍໄປທາງຊ້າຍ 21 bits), ຄ່າ AccMask
ຖືກຕັ້ງເປັນ 0x00000000, ແລະຫຼັງຈາກນັ້ນພຽງແຕ່ແພັກເກັດທີ່ມີ ID ກອບຂໍ້ຄວາມ CAN ແມ່ນ 0x123 ທີ່ສາມາດຍອມຮັບໄດ້ (ຄ່າ AccMask ຂອງ 0x00000000 ຊີ້ໃຫ້ເຫັນວ່າທຸກບິດມີຄວາມກ່ຽວຂ້ອງ.
ບິດ). ຖ້າຄ່າ AccCode ຖືກຕັ້ງເປັນ 0x24600000, ຄ່າ AccMask ຖືກຕັ້ງເປັນ 0x600000 (0x03 ຖືກຍ້າຍໄປທາງຊ້າຍ 21 ບິດ), ແລະຫຼັງຈາກນັ້ນພຽງແຕ່ແພັກເກັດທີ່ມີ ID ກອບຂໍ້ຄວາມ CAN ແມ່ນ 0x120 ~ 0x123 ສາມາດຍອມຮັບໄດ້ (ຄ່າ AccMask
0x600000 ຊີ້ໃຫ້ເຫັນວ່ານອກຈາກ bit0 ~ bit1 bits ອື່ນໆ (bit2 ~ bit10) ແມ່ນ bit ທີ່ກ່ຽວຂ້ອງ).
ໝາຍເຫດ: ການຕັ້ງຄ່າຕົວກອງນີ້ examples ກັບກອບມາດຕະຖານ, ສໍາລັບການຍົກຕົວຢ່າງample, high 11-bit ແມ່ນ bit ທີ່ຖືກຕ້ອງ; ໃນກໍລະນີຂອງກອບຂະຫຍາຍ, ແລະຫຼັງຈາກນັ້ນ ID ທີ່ຖືກຕ້ອງແມ່ນ 29-bit. AccCode ແລະ AccMask ຕັ້ງສູງ 29-bit ເປັນບິດທີ່ຖືກຕ້ອງ!
pInitConfig->ສະຫງວນໄວ້ ສະຫງວນ
pInitConfig->ການກັ່ນຕອງ ການ​ຕັ້ງ​ຄ່າ​ຮູບ​ແບບ​ການ​ກັ່ນ​ຕອງ​ກະ​ລຸ​ນາ​ເບິ່ງ​ພາກ​ສ່ວນ​ຂອງ​ຕາ​ຕະ​ລາງ​ຮູບ​ແບບ​ການ​ກັ່ນ​ຕອງ​.
pInitConfig->Timing0 ການຕັ້ງຄ່າ Baud rateT0
pInitConfig->Timing1 ການຕັ້ງຄ່າ Baud rateT1
pInitConfig->ໂໝດ ຮູບແບບການເຮັດວຽກ:
0- ການ​ດໍາ​ເນີນ​ງານ​ປົກ​ກະ​ຕິ​
1-ໂໝດຟັງເທົ່ານັ້ນ
2-spontaneous admission and sending mode (ຄ່າ​ນີ້​ແມ່ນ​ໄດ້​ຖືກ​ຍົກ​ເວັ້ນ​ຈາກ​ຫ້ອງ​ສະ​ຫມຸດ​ການ​ທໍາ​ງານ ZLG​)

ຕາ​ຕະ​ລາງ​ຮູບ​ແບບ​ການ​ກັ່ນ​ຕອງ​:

ມູນຄ່າ ຊື່ ລາຍລະອຽດ
1 ຮັບທຸກປະເພດ ເຫມາະ​ສົມ​ກັບ​ທັງ​ມາດ​ຕະ​ຖານ​ແລະ​ກອບ​ຂະ​ຫຍາຍ​!
2 ໄດ້ຮັບພຽງແຕ່ກອບມາດຕະຖານ ເຫມາະສົມກັບກອບມາດຕະຖານ, ແລະຂະຫຍາຍ
ກອບຈະຖືກເອົາອອກໂດຍການຕອງໂດຍກົງ!
3 ໄດ້ຮັບພຽງແຕ່ກອບຂະຫຍາຍ ເຫມາະສົມກັບກອບຂະຫຍາຍ, ແລະກອບມາດຕະຖານຈະຖືກໂຍກຍ້າຍອອກໂດຍ
ການ​ກັ່ນ​ຕອງ​ໂດຍ​ກົງ​! .

ຜົນຕອບແທນ:
ມູນຄ່າກັບຄືນ = 1, ຊຶ່ງຫມາຍຄວາມວ່າການດໍາເນີນງານປະສົບຜົນສໍາເລັດ; = 0 ຊີ້ໃຫ້ເຫັນວ່າການດໍາເນີນງານລົ້ມເຫລວ; = -1 ຊີ້ໃຫ້ເຫັນວ່າອຸປະກອນບໍ່ມີຢູ່.
ຕົວຢ່າງ

WAVESHARE USB CAN Bus Inter face Adapter Interface Function Library - ຮູບ 4

WAVESHARE USB CAN Bus Inter face Adapter Interface Function Library - ຮູບ 6

2.2.4. VCI_ReadBoardInfo
ຟັງຊັນນີ້ຖືກນໍາໃຊ້ເພື່ອອ່ານຂໍ້ມູນຮາດແວຂອງອະແດບເຕີ. ໂດຍທົ່ວໄປແລ້ວ, ມັນສາມາດຖືກລະເລີຍ.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ອັນດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດຊະນີຕາມລຳດັບຈາກນ້ອຍຫາໃຫຍ່ເລີ່ມຈາກ 0. pInfo
VCI_BOARD_INFO ຖືກນໍາໃຊ້ເພື່ອເກັບຮັກສາຕົວຊີ້ໂຄງສ້າງຂໍ້ມູນອຸປະກອນ.
ຜົນຕອບແທນ:
ມູນຄ່າກັບຄືນ = 1, ຊຶ່ງຫມາຍຄວາມວ່າການດໍາເນີນງານປະສົບຜົນສໍາເລັດ; = 0 ຊີ້ໃຫ້ເຫັນວ່າການດໍາເນີນງານລົ້ມເຫລວ; = -1 ຊີ້ໃຫ້ເຫັນວ່າອຸປະກອນບໍ່ມີຢູ່.

WAVESHARE USB CAN Bus Inter face Adapter Interface Function Library - ຮູບ 7

2.2.5. VCI_GetReceiveNum
ຟັງຊັນນີ້ຖືກນໍາໃຊ້ເພື່ອລະບຸການໄດ້ຮັບແຕ່ຍັງບໍ່ໄດ້ອ່ານເຟຣມໃນ buffer ຮັບກໍານົດ.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ໂຕດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດັບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດຊະນີໃນລຳດັບຕັ້ງຊັນຂຶ້ນເລີ່ມຈາກ 0.
CANIdex
CAN ດັດຊະນີຊ່ອງ.
ຜົນຕອບແທນ:
ກັບຄືນເຟຣມທີ່ຍັງບໍ່ໄດ້ອ່ານເທື່ອ.
ຕົວຢ່າງ
#include “ControlCan.h” int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
ຟັງຊັນນີ້ໃຊ້ເພື່ອລຶບລ້າງການຮັບ ແລະສົ່ງ buffer ຂອງຊ່ອງທີ່ກໍານົດໄວ້ໂດຍ
ອະແດັບເຕີ USB-CAN.
DWORD __stdcall VCI_ClearBuffer(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ໂຕດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດັບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດຊະນີໃນລຳດັບຕັ້ງຊັນຂຶ້ນເລີ່ມຈາກ 0.
CANIdex
CAN ດັດຊະນີຊ່ອງ.
ຜົນຕອບແທນ:
ມູນຄ່າກັບຄືນ = 1, ຊຶ່ງຫມາຍຄວາມວ່າການດໍາເນີນງານປະສົບຜົນສໍາເລັດ; = 0 ຊີ້ໃຫ້ເຫັນວ່າການດໍາເນີນງານລົ້ມເຫລວ; = -1 ຊີ້ໃຫ້ເຫັນວ່າອຸປະກອນບໍ່ມີຢູ່.

WAVESHARE USB CAN Bus Inter face Adapter Interface Function Library - ຮູບ 8

2.2.7. VCI_StartCAN
ຟັງຊັນນີ້ຖືກນໍາໃຊ້ເພື່ອເລີ່ມຕົ້ນຕົວຄວບຄຸມ CAN ແລະຟັງຊັນການຮັບລົບກວນພາຍໃນຂອງອະແດບເຕີ.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ອັນດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດສະນີໃນລຳດັບຈາກນ້ອຍຫາໃຫຍ່ເລີ່ມຈາກ 0.
CANIdex
CAN ດັດຊະນີຊ່ອງ.
ຜົນຕອບແທນ:
ມູນຄ່າກັບຄືນ = 1, ຊຶ່ງຫມາຍຄວາມວ່າການດໍາເນີນງານປະສົບຜົນສໍາເລັດ; = 0 ຊີ້ໃຫ້ເຫັນວ່າການດໍາເນີນງານລົ້ມເຫລວ; = -1 ຊີ້ໃຫ້ເຫັນວ່າອຸປະກອນບໍ່ມີຢູ່.

WAVESHARE USB CAN Bus Inter face Adapter Interface Function Library - ຮູບ 9

2.2.8. VCI_ResetCAN
ຟັງຊັນນີ້ຖືກໃຊ້ເພື່ອຣີເຊັດຕົວຄວບຄຸມ CAN.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ອັນດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດສະນີໃນລຳດັບຈາກນ້ອຍຫາໃຫຍ່ເລີ່ມຈາກ 0.
CANIdex
CAN ດັດຊະນີຊ່ອງ.
ຜົນຕອບແທນ:
ມູນຄ່າກັບຄືນ = 1, ຊຶ່ງຫມາຍຄວາມວ່າການດໍາເນີນງານປະສົບຜົນສໍາເລັດ; = 0 ຊີ້ໃຫ້ເຫັນວ່າການດໍາເນີນງານລົ້ມເຫລວ; = -1 ຊີ້ໃຫ້ເຫັນວ່າອຸປະກອນບໍ່ມີຢູ່.

WAVESHARE USB CAN Bus Inter face Adapter Interface Function Library - ຮູບ 10

2.2.9. VCI_Transmit
ຟັງຊັນນີ້ຖືກນໍາໃຊ້ເພື່ອສົ່ງກອບຂໍ້ຄວາມ CAN.
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD Length);
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ອັນດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດສະນີໃນລຳດັບຈາກນ້ອຍຫາໃຫຍ່ເລີ່ມຈາກ 0.
CANIdex
CAN ດັດຊະນີຊ່ອງ. pSend
ທີ່ຢູ່ທໍາອິດຂອງ array frame ຂໍ້ມູນທີ່ຕ້ອງການສົ່ງ.
ຄວາມຍາວ
ຈໍານວນຂອງກອບຂໍ້ມູນທີ່ຕ້ອງຖືກສົ່ງ, ຈໍານວນສູງສຸດແມ່ນ 1000, ຄ່າແນະນໍາແມ່ນ 48 ພາຍໃຕ້ຄວາມໄວສູງ.
ຜົນຕອບແທນ:
ສົ່ງຄືນຕົວເລກຕົວຈິງຂອງເຟຣມທີ່ສົ່ງແລ້ວ, ຄ່າກັບຄືນ = -1 ຊີ້ໃຫ້ເຫັນເຖິງຂໍ້ຜິດພາດຂອງອຸປະກອນ.
ຕົວຢ່າງ
WAVESHARE USB CAN Bus Inter face Adapter Interface Function Library - ຮູບ 11

WAVESHARE USB CAN Bus Inter face Adapter Interface Function Library - ຮູບ 12

2.2.10. VCI_ຮັບ
ຟັງຊັນນີ້ຖືກນໍາໃຊ້ເພື່ອຮ້ອງຂໍການຕ້ອນຮັບ.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ອັນດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດສະນີໃນລຳດັບຈາກນ້ອຍຫາໃຫຍ່ເລີ່ມຈາກ 0.
CANIdex
CAN ດັດຊະນີຊ່ອງ.
ຮັບ
ເພື່ອຮັບເອົາຕົວຊີ້ຊຸດທໍາອິດຂອງກອບຂໍ້ມູນ.
ເລນ
ຄວາມຍາວຂອງອາເຣຂອງກອບຂໍ້ມູນຕ້ອງມີຫຼາຍກວ່າ 2500 ເພື່ອສົ່ງຄືນຂໍ້ຄວາມປົກກະຕິ.
ຖ້າບໍ່ດັ່ງນັ້ນ, ຄວາມຍາວກັບຄືນຈະເປັນສູນບໍ່ວ່າຈະໄດ້ຮັບຂໍ້ຄວາມຫຼືບໍ່. ອະແດບເຕີກໍານົດ 2000-frame buffer ສໍາລັບທຸກໆຊ່ອງ. ອີງຕາມລະບົບຂອງຕົນເອງແລະສະພາບແວດລ້ອມການເຮັດວຽກ, ຜູ້ໃຊ້ສາມາດເລືອກຄວາມຍາວຂອງອາເລທີ່ເຫມາະສົມຈາກ 2500.
ຈອງເວລາລໍຖ້າ.
ຜົນຕອບແທນ:
ກັບຄືນຈໍານວນຂອງເຟຣມທີ່ຕົວຈິງແລ້ວໄດ້ອ່ານ, -1 ຊີ້ໃຫ້ເຫັນຄວາມຜິດພາດອຸປະກອນ.
ຕົວຢ່າງ
WAVESHARE USB CAN Bus Inter face Adapter Interface Function Library - ຮູບ 13

ສ່ວນສາມຟັງຊັນອື່ນ ແລະຄຳອະທິບາຍໂຄງສ້າງຂໍ້ມູນ

ບົດນີ້ອະທິບາຍເຖິງປະເພດຂໍ້ມູນອື່ນໆ ແລະໜ້າທີ່ຂອງຫ້ອງສະໝຸດອິນເຕີເຟດ ZLG ທີ່ບໍ່ສາມາດເຂົ້າກັນໄດ້ທີ່ມີຢູ່ໃນຫ້ອງສະໝຸດສ່ວນຕິດຕໍ່ຂອງອະແດັບເຕີ USB-CAN ControlCAN.dll. ກະລຸນາເຮັດ
ຢ່າເອີ້ນຟັງຊັນເຫຼົ່ານີ້ຖ້າໃຊ້ຕົວແບບ ZLG ທີ່ເຂົ້າກັນໄດ້ສໍາລັບການພັດທະນາຂັ້ນສອງເພື່ອບໍ່ໃຫ້ຜົນກະທົບຕໍ່ຄວາມເຂົ້າກັນໄດ້.
3.1 ຄຳອະທິບາຍຟັງຊັນ
3.1.1. VCI_UsbDeviceReset
ຣີເຊັດອະແດັບເຕີ USB-CAN, ຕ້ອງການເປີດອຸປະກອນຄືນໃໝ່ຫຼັງຈາກຣີເຊັດໂດຍໃຊ້ VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD Reserved
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ອັນດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດສະນີໃນລຳດັບຈາກນ້ອຍຫາໃຫຍ່ເລີ່ມຈາກ 0.
ສະຫງວນໄວ້.
ຜົນຕອບແທນ:
ມູນຄ່າກັບຄືນ = 1, ຊຶ່ງຫມາຍຄວາມວ່າການດໍາເນີນງານປະສົບຜົນສໍາເລັດ; = 0 ຊີ້ໃຫ້ເຫັນວ່າການດໍາເນີນງານລົ້ມເຫລວ; = -1 ຊີ້ໃຫ້ເຫັນວ່າອຸປະກອນບໍ່ມີຢູ່.

WAVESHARE USB CAN Bus Inter face Adapter Interface Function Library - ຮູບ 14

bRel = VCI_UsbDeviceReset(nDeviceType, ເອກະລາດ, 0);
3.1.2. VCI_FindUsbDevice2
ເມື່ອ PC ດຽວກັນໂດຍໃຊ້ USB-CAN ຫຼາຍ, ຜູ້ໃຊ້ສາມາດໃຊ້ຟັງຊັນນີ້ເພື່ອຊອກຫາອຸປະກອນປະຈຸບັນ.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
ພາລາມິເຕີ:
pInfo
pInfo ຖືກນໍາໃຊ້ເພື່ອເກັບຮັກສາພາລາມິເຕີຂອງຕົວຊີ້ທີ່ຢູ່ buffer ຂໍ້ມູນທໍາອິດ.
ກັບຄືນ
ສົ່ງຄືນຕົວເລກຂອງອະແດັບເຕີ USB-CAN ທີ່ສຽບໃສ່ກັບຄອມພິວເຕີ.

WAVESHARE USB CAN Bus Inter face Adapter Interface Function Library - ຮູບ 15

ສ່ວນສີ່ຫນ້າທີ່ຫ້ອງສະຫມຸດການໂຕ້ຕອບການນໍາໃຊ້ຂະບວນການ
ໃນຄໍາສັ່ງທີ່ຈະເພີ່ມການທໍາງານຂອງອຸປະກອນ, ພວກເຮົາໄດ້ສະຫນອງການເພີ່ມເຕີມ (ຟັງຊັນທີ່ນໍາສະເຫນີເປັນພື້ນຫລັງສີຂຽວ), ຟັງຊັນເຫຼົ່ານີ້ປະກອບມີ: VCI_FindUsbDevice2 VCI_UsbDeviceReset. ໃນລະຫວ່າງການພັດທະນາຄັ້ງທີສອງ, ຫນ້າທີ່ເຫຼົ່ານີ້ບໍ່ຈໍາເປັນຕ້ອງຖືກຮຽກຮ້ອງ. ເຖິງແມ່ນວ່າຟັງຊັນເຫຼົ່ານີ້ຖືກລະເລີຍ, ຟັງຊັນອະແດບເຕີ USB-CAN ທັງໝົດສາມາດເຮັດໄດ້.

WAVESHARE USB CAN Bus Inter face Adapter Interface Function Library - ຮູບ 16

www.waveshare.com
www.waveshare.com/wiki

ເອກະສານ / ຊັບພະຍາກອນ

WAVESHARE USB-CAN Bus Inter face ຫ້ອງສະໝຸດຟັງຊັນອິນເຕີເຟດອະແດັບເຕີ [pdf] ຄູ່ມືການສອນ
USB-CAN Bus Inter face Adapter Interface ຫໍສະໝຸດ, USB-CAN, Bus Inter face Adapter Interface ຫໍສະໝຸດ, ຫໍສະໝຸດຟັງຊັນການໂຕ້ຕອບ, ຫ້ອງສະໝຸດຟັງຊັນ

ເອກະສານອ້າງອີງ

ອອກຄໍາເຫັນ

ທີ່ຢູ່ອີເມວຂອງເຈົ້າຈະບໍ່ຖືກເຜີຍແຜ່. ຊ່ອງຂໍ້ມູນທີ່ຕ້ອງການຖືກໝາຍໄວ້ *