WAVESHARE لوگوUSB-CAN بس انٹرفیس
اڈاپٹر انٹرفیس فنکشن
لائبریری صارف کی ہدایاتWAVESHARE USB CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری

پارٹ ون اوورVIEW

اگر صارف CAN بس کمیونیکیشن ٹیسٹ میں جانے کے لیے صرف USB-CAN بس انٹرفیس اڈاپٹر استعمال کرتا ہے، اور پھر وہ فراہم کردہ USB-CAN ٹول سافٹ ویئر کو ٹیسٹ کا ڈیٹا بھیجنے اور وصول کرنے کے لیے براہ راست استعمال کر سکتا ہے۔
اگر صارف اپنی مصنوعات کے لیے سافٹ ویئر پروگرام لکھنے کا ارادہ رکھتا ہے۔ براہ کرم درج ذیل ہدایات کو غور سے پڑھیں اور s سے حوالہ لیں۔ampلی کوڈ جو ہم فراہم کرتے ہیں:
⑴ 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 فنکشن میں بھرا جائے گا۔

WAVESHARE USB CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری - تصویر 1

رکن:
hw_ورژن
ہارڈ ویئر ورژن نمبر، ہیکساڈیسیمل نوٹیشن۔ مثال کے طور پر 0x0100 V1.00 کی نمائندگی کرتا ہے۔
fw_ورژن
ہارڈ ویئر ورژن نمبر، ہیکساڈیسیمل نوٹیشن۔ مثال کے طور پر 0x0100 V1.00 کی نمائندگی کرتا ہے۔
صفحہ 2
dr_Version

ڈرائیور ورژن نمبر، ہیکساڈیسیمل نوٹیشن۔ مثال کے طور پر 0x0100 V1.00 کی نمائندگی کرتا ہے۔
میں_ورژن
انٹرفیس لائبریری ورژن نمبر، ہیکساڈیسیمل اشارے۔ مثال کے طور پر 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 پیغام فریم کو منتقل کرنے کے لیے استعمال کیا جاتا ہے۔

WAVESHARE USB CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری - تصویر

رکن:
ID
پیغام شناخت کنندہ۔ براہ راست ID فارمیٹ، دائیں طرف سے منسلک، براہ کرم ملاحظہ کریں: ضمیمہ ایک: ID الائنمنٹ کی تفصیلات۔
ٹائم سٹamp
سینٹ وصول کرناamp ٹائم فریم کی معلومات، وقت شروع کریں جب CAN کنٹرولر شروع کیا جائے، یونٹ 0. 1ms ہے۔
ٹائم فلیگ
وقت st استعمال کرنے کے لئے کہ آیا کے لحاظ سےamp، 1 مؤثر TimeSt ہے۔amp. ٹائم فلیگ اور ٹائم سینٹamp صرف اس وقت معنی خیز ہوتے ہیں جب فریم موصول ہوتا ہے۔
بھیجنے کی قسم
بھیجنے کی قسم۔ = 0 عام قسم کی نشاندہی کرتا ہے، = 1 سنگل بھیجنے کی نشاندہی کرتا ہے۔
ریموٹ فلیگ
چاہے وہ دور دراز کا جھنڈا ہو۔ = 1 ریموٹ پرچم کی طرف اشارہ کرتا ہے، = 0 ڈیٹا پرچم کی طرف اشارہ کرتا ہے۔
ایکسٹرن فلیگ
چاہے وہ بیرونی جھنڈا ہو۔ = 1 بیرونی پرچم کی نشاندہی کرتا ہے، = 0 معیاری پرچم کی نشاندہی کرتا ہے۔
ڈیٹا لین
ڈیٹا کی لمبائی (<=8) ,یعنی ڈیٹا کی لمبائی۔
ڈیٹا
پیکٹ ڈیٹا۔
محفوظ
سسٹم محفوظ ہے۔
2.1.4 VCI_INIT_CONFIG
VCI_INIT_CONFIG ڈھانچہ CAN کی ابتدائی ترتیب کی وضاحت کرتا ہے۔ ڈھانچہ VCI_InitCan فنکشن میں بھرا جائے گا۔

WAVESHARE USB CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری - تصویر 2

رکن:
AccCode
فلٹر شدہ قبولیت کوڈ وصول کریں۔
AccMask
فلٹر ماسک وصول کریں۔
محفوظ
محفوظ
فلٹر
فلٹرنگ کا طریقہ، 0-3 کی حد مقرر کرنے کی اجازت دیتا ہے، تفصیلات کے لیے فلٹر موڈ ٹیبل کے سیکشن 2.2.3 سے رجوع کریں۔
ٹائمنگ0
SJA1000 بوڈ ریٹ پیرامیٹر، ٹائمنگ0 (BTR0)۔
ٹائمنگ1
SJA1000 بوڈ ریٹ پیرامیٹر، ٹائمنگ1 (BTR1)۔
موڈ
آپریٹنگ موڈ، 0 = نارمل آپریشن، 1 = صرف سننے کا موڈ، 2 = خود بخود داخلہ اور بھیجنے کا ٹیسٹ موڈ۔
ریمارکس:
فلٹر کی ترتیبات کے بارے میں براہ کرم ملاحظہ کریں: ضمیمہ II: CANپیرامیٹر سیٹ اپ ہدایات۔
CAN ٹائمنگ0 اور ٹائمنگ 1 کا استعمال باؤڈ ریٹ سیٹ کرنے کے لیے کیا جاتا ہے، یہ دونوں پیرامیٹرز صرف ابتدا میں استعمال ہوتے ہیں۔tage.
روایتی بوڈ ریفرنس ٹیبل:

CAN Baud کی شرح ٹائمنگ0(BTR0) ٹائمنگ1(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) کی پیروی کرنے کی ضرورت ہے۔
  2. اڈاپٹر 10K سے کم عارضی طور پر Baud کی شرح کو سپورٹ نہیں کرتا ہے۔

2.2. فنکشن کی تفصیل
2.2.1 VCI_OpenDevice
یہ فنکشن آلات کو جوڑنے کے لیے استعمال کیا جاتا ہے۔
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD Reserved);
پیرامیٹرز:
ڈیو ٹائپ
ڈیوائس کی قسم۔ دیکھیں: اڈاپٹر ڈیوائس کی قسم کی تعریف۔
ڈیو انڈیکس
ڈیوائس انڈیکس، مثال کے طور پرample، جب صرف ایک USB-CAN اڈاپٹر ہوتا ہے، اشاریہ نمبر 0 ہوتا ہے، جب متعدد USB-CAN اڈاپٹر ہوتے ہیں، اشاریہ نمبر 0 سے شروع ہونے والے صعودی ترتیب میں ہوتے ہیں۔
محفوظ
برقرار رکھنے کے پیرامیٹرز، 0 بھریں۔
واپسی:
ریٹرن ویلیو = 1، جس کا مطلب ہے کہ آپریشن کامیاب ہے۔ = 0 بتاتا ہے کہ آپریشن ناکام ہو گیا۔ = -1 اشارہ کرتا ہے کہ ڈیوائس موجود نہیں ہے۔

WAVESHARE USB CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری - تصویر 3

2.2.2 VCI_CloseDevice
یہ فنکشن کنکشن بند کرنے کے لیے استعمال ہوتا ہے۔
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
پیرامیٹرز:
ڈیو ٹائپ
ڈیوائس کی قسم۔ دیکھیں: اڈاپٹر ڈیوائس کی قسم کی تعریف۔
ڈیو انڈیکس
ڈیوائس انڈیکس، مثال کے طور پرample، جب صرف ایک USB-CAN اڈاپٹر ہوتا ہے، اشاریہ نمبر 0 ہوتا ہے، جب متعدد USB-CAN اڈاپٹر ہوتے ہیں، اشاریہ نمبر 0 سے شروع ہونے والے صعودی ترتیب میں ہوتے ہیں۔
واپسی:
ریٹرن ویلیو = 1، جس کا مطلب ہے کہ آپریشن کامیاب ہے۔ = 0 بتاتا ہے کہ آپریشن ناکام ہو گیا۔ = -1 اشارہ کرتا ہے کہ ڈیوائس موجود نہیں ہے۔

WAVESHARE USB CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری - تصویر 4

2.2.3 VCI_InitCan
یہ فنکشن مخصوص CAN کو شروع کرنے کے لیے استعمال کیا جاتا ہے۔
DWORD __stdcall VCI_InitCAN(DWORD DevType، DWORD DevIndex، DWORD CANIindex،
PVCI_INIT_CONFIG pInitConfig؛

پیرامیٹرز:
ڈیو ٹائپ
ڈیوائس کی قسم۔ دیکھیں: اڈاپٹر ڈیوائس کی قسم کی تعریف۔
ڈیو انڈیکس
ڈیوائس انڈیکس، مثال کے طور پرample، جب صرف ایک USB-CAN اڈاپٹر ہوتا ہے، اشاریہ نمبر 0 ہوتا ہے، جب متعدد USB-CAN اڈاپٹر ہوتے ہیں، اشاریہ نمبر 0 سے شروع ہونے والے صعودی ترتیب میں ہوتے ہیں۔
CANI انڈیکس
CAN چینل انڈیکس، جیسے کہ جب صرف ایک CAN چینل ہو، انڈیکس نمبر 0 ہے، اگر دو ہیں، تو انڈیکس نمبر 0 یا 1 ہو سکتا ہے۔
pInitConfig
ابتدائی پیرامیٹر کا ڈھانچہ۔ ارکان کی پیرامیٹر فہرست:

ممبر فنکشنل تفصیل
pInitConfig->AccCode AccCode اور AccMask مل کر اس بات کا تعین کر سکتے ہیں کہ کون سے پیکٹ قبول کیے جا سکتے ہیں۔ یہ دونوں رجسٹر ID کو بائیں طرف سے منسلک کرنے کے لیے استعمال کیے جاتے ہیں، یعنی AccCode اور AccMask کا سب سے زیادہ بٹ (Bit31) ID قدر کے سب سے زیادہ بٹ کے ساتھ منسلک ہوتا ہے۔
pInitConfig->AccMask آئی ڈی الائنمنٹ کے بارے میں ضمیمہ کا حوالہ دیں: ضمیمہ I:
ID کی سیدھ کی تفصیلات۔
مثال کے طور پر: اگر آپ 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->Timing0 Baud rateT0 ترتیب
pInitConfig->Timing1 Baud rateT1 ترتیب
pInitConfig-> موڈ موڈ آپریٹنگ:
0- نارمل آپریشن
1-صرف سننے کا موڈ
2-بے ساختہ داخلہ اور بھیجنے کا ٹیسٹ موڈ (یہ قدر ZLG فنکشن لائبریری سے خارج ہے)

فلٹر موڈ ٹیبل:

قدر نام تفصیل
1 تمام اقسام وصول کریں۔ معیاری اور توسیعی فریم دونوں کے لیے موزوں!
2 صرف معیاری فریم وصول کریں۔ معیاری فریم کے لئے موزوں، اور توسیع
فریم کو براہ راست فلٹریشن کے ذریعے ہٹا دیا جائے گا!
3 صرف توسیعی فریم وصول کریں۔ توسیع شدہ فریم کے لئے موزوں ہے، اور معیاری فریم کی طرف سے ہٹا دیا جائے گا
براہ راست فلٹریشن! .

واپسی:
ریٹرن ویلیو = 1، جس کا مطلب ہے کہ آپریشن کامیاب ہے۔ = 0 بتاتا ہے کہ آپریشن ناکام ہو گیا۔ = -1 اشارہ کرتا ہے کہ ڈیوائس موجود نہیں ہے۔
مثلاً

WAVESHARE USB CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری - تصویر 4

WAVESHARE USB CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری - تصویر 6

2.2.4 VCI_ReadBoardInfo
یہ فنکشن اڈاپٹر ہارڈویئر کی معلومات کو پڑھنے کے لیے استعمال ہوتا ہے۔ عام طور پر، اسے نظر انداز کیا جا سکتا ہے.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
پیرامیٹرز:
ڈیو ٹائپ
ڈیوائس کی قسم۔ دیکھیں: اڈاپٹر ڈیوائس کی قسم کی تعریف۔
ڈیو انڈیکس
ڈیوائس انڈیکس، مثال کے طور پرample، جب صرف ایک USB-CAN اڈاپٹر ہوتا ہے، اشاریہ نمبر 0 ہوتا ہے، جب متعدد USB-CAN اڈاپٹر ہوتے ہیں، اشاریہ نمبر ایک صعودی ترتیب میں 0 سے شروع ہوتے ہیں۔ pInfo
VCI_BOARD_INFO آلہ کی معلومات کے ڈھانچے کے پوائنٹر کو ذخیرہ کرنے کے لیے استعمال کیا جاتا ہے۔
واپسی:
ریٹرن ویلیو = 1، جس کا مطلب ہے کہ آپریشن کامیاب ہے۔ = 0 بتاتا ہے کہ آپریشن ناکام ہو گیا۔ = -1 اشارہ کرتا ہے کہ ڈیوائس موجود نہیں ہے۔

WAVESHARE USB CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری - تصویر 7

2.2.5 VCI_GetReceiveNum
یہ فنکشن موصول ہونے کی وضاحت کرنے کے لیے استعمال کیا جاتا ہے لیکن نامزد وصول کرنے والے بفر میں فریم نہیں پڑھے گئے ہیں۔
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIindex);
پیرامیٹرز:
ڈیو ٹائپ
ڈیوائس کی قسم۔ دیکھیں: اڈاپٹر ڈیوائس کی قسم کی تعریف۔
ڈیو انڈیکس
ڈیوائس انڈیکس، مثال کے طور پرample، جب صرف ایک USB-CAN اڈاپٹر ہوتا ہے، اشاریہ نمبر 0 ہوتا ہے، جب متعدد USB-CAN اڈاپٹر ہوتے ہیں، اشاریہ نمبر ایک صعودی ترتیب میں 0 سے شروع ہوتے ہیں۔
CANI انڈیکس
CAN چینل انڈیکس۔
واپسی:
وہ فریم واپس کریں جو ابھی تک نہیں پڑھے گئے ہیں۔
مثلاً
#include "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);
پیرامیٹرز:
ڈیو ٹائپ
ڈیوائس کی قسم۔ دیکھیں: اڈاپٹر ڈیوائس کی قسم کی تعریف۔
ڈیو انڈیکس
ڈیوائس انڈیکس، مثال کے طور پرample، جب صرف ایک USB-CAN اڈاپٹر ہوتا ہے، اشاریہ نمبر 0 ہوتا ہے، جب متعدد USB-CAN اڈاپٹر ہوتے ہیں، اشاریہ نمبر ایک صعودی ترتیب میں 0 سے شروع ہوتے ہیں۔
CANI انڈیکس
CAN چینل انڈیکس۔
واپسی:
ریٹرن ویلیو = 1، جس کا مطلب ہے کہ آپریشن کامیاب ہے۔ = 0 بتاتا ہے کہ آپریشن ناکام ہو گیا۔ = -1 اشارہ کرتا ہے کہ ڈیوائس موجود نہیں ہے۔

WAVESHARE USB CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری - تصویر 8

2.2.7 VCI_StartCAN
اس فنکشن کا استعمال CAN کنٹرولر اور اڈاپٹر کے اندرونی انٹرپٹ ریسپشن فنکشن کو شروع کرنے کے لیے کیا جاتا ہے۔
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIindex);
پیرامیٹرز:
ڈیو ٹائپ
ڈیوائس کی قسم۔ دیکھیں: اڈاپٹر ڈیوائس کی قسم کی تعریف۔
ڈیو انڈیکس
ڈیوائس انڈیکس، مثال کے طور پرample، جب صرف ایک USB-CAN اڈاپٹر ہوتا ہے، اشاریہ نمبر 0 ہوتا ہے، جب متعدد USB-CAN اڈاپٹر ہوتے ہیں، اشاریہ نمبر 0 سے شروع ہونے والے صعودی ترتیب میں ہوتے ہیں۔
CANI انڈیکس
CAN چینل انڈیکس۔
واپسی:
ریٹرن ویلیو = 1، جس کا مطلب ہے کہ آپریشن کامیاب ہے۔ = 0 بتاتا ہے کہ آپریشن ناکام ہو گیا۔ = -1 اشارہ کرتا ہے کہ ڈیوائس موجود نہیں ہے۔

WAVESHARE USB CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری - تصویر 9

2.2.8 VCI_ResetCAN
یہ فنکشن CAN کنٹرولر کو دوبارہ ترتیب دینے کے لیے استعمال ہوتا ہے۔
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANindex);
پیرامیٹرز:
ڈیو ٹائپ
ڈیوائس کی قسم۔ دیکھیں: اڈاپٹر ڈیوائس کی قسم کی تعریف۔
ڈیو انڈیکس
ڈیوائس انڈیکس، مثال کے طور پرample، جب صرف ایک USB-CAN اڈاپٹر ہوتا ہے، اشاریہ نمبر 0 ہوتا ہے، جب متعدد USB-CAN اڈاپٹر ہوتے ہیں، اشاریہ نمبر 0 سے شروع ہونے والے صعودی ترتیب میں ہوتے ہیں۔
CANI انڈیکس
CAN چینل انڈیکس۔
واپسی:
ریٹرن ویلیو = 1، جس کا مطلب ہے کہ آپریشن کامیاب ہے۔ = 0 بتاتا ہے کہ آپریشن ناکام ہو گیا۔ = -1 اشارہ کرتا ہے کہ ڈیوائس موجود نہیں ہے۔

WAVESHARE USB CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری - تصویر 10

2.2.9 VCI_Transmit
یہ فنکشن CAN میسج فریم بھیجنے کے لیے استعمال ہوتا ہے۔
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD لمبائی);
پیرامیٹرز:
ڈیو ٹائپ
ڈیوائس کی قسم۔ دیکھیں: اڈاپٹر ڈیوائس کی قسم کی تعریف۔
ڈیو انڈیکس
ڈیوائس انڈیکس، مثال کے طور پرample، جب صرف ایک USB-CAN اڈاپٹر ہوتا ہے، اشاریہ نمبر 0 ہوتا ہے، جب متعدد USB-CAN اڈاپٹر ہوتے ہیں، اشاریہ نمبر 0 سے شروع ہونے والے صعودی ترتیب میں ہوتے ہیں۔
CANI انڈیکس
CAN چینل انڈیکس۔ بھیجیں۔
ڈیٹا فریم اریوں کا پہلا پتہ جسے بھیجنا ہے۔
لمبائی
ڈیٹا فریموں کی تعداد جو بھیجی جانی ہے، زیادہ سے زیادہ تعداد 1000 ہے، تیز رفتاری کے تحت تجویز کردہ قدر 48 ہے۔
واپسی:
پہلے سے بھیجے گئے فریموں کی اصل تعداد واپس کریں، واپسی کی قیمت = -1 آلہ کی خرابی کی نشاندہی کرتی ہے۔
مثلاً
WAVESHARE USB CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری - تصویر 11

WAVESHARE USB CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری - تصویر 12

2.2.10 VCI_Receive
یہ فنکشن استقبالیہ کی درخواست کے لیے استعمال ہوتا ہے۔
DWORD __stdcall VCI_Receive(DWORD DevType، DWORD DevIndex، DWORD CANIindex، PVCI_CAN_OBJ preceive، ULONG Len، INT انتظار کا وقت)؛
پیرامیٹرز:
ڈیو ٹائپ
ڈیوائس کی قسم۔ دیکھیں: اڈاپٹر ڈیوائس کی قسم کی تعریف۔
ڈیو انڈیکس
ڈیوائس انڈیکس، مثال کے طور پرample، جب صرف ایک USB-CAN اڈاپٹر ہوتا ہے، اشاریہ نمبر 0 ہوتا ہے، جب متعدد USB-CAN اڈاپٹر ہوتے ہیں، اشاریہ نمبر 0 سے شروع ہونے والے صعودی ترتیب میں ہوتے ہیں۔
CANI انڈیکس
CAN چینل انڈیکس۔
حاصل کرنا
ڈیٹا فریموں کا پہلا سیٹ پوائنٹر حاصل کرنے کے لیے۔
لین
عام پیغام کو واپس کرنے کے لیے ڈیٹا فریم کی صف کی لمبائی 2500 سے زیادہ ہونی چاہیے۔
بصورت دیگر، واپسی کی لمبائی صفر ہو جائے گی چاہے پیغام موصول ہو یا نہ ہو۔ اڈاپٹر نے ہر چینل کے لیے 2000 فریم بفر سیٹ کیا۔ اپنے نظام اور کام کے ماحول کی بنیاد پر، صارف 2500 سے ایک مناسب صف کی لمبائی کا انتخاب کر سکتا ہے۔
انتظار کا وقت محفوظ ہے۔
واپسی:
ان فریموں کی تعداد لوٹائیں جو حقیقت میں پڑھ چکے ہیں، -1 ڈیوائس کی خرابیوں کی نشاندہی کرتا ہے۔
مثلاً
WAVESHARE USB CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری - تصویر 13

حصہ تین دیگر افعال اور ڈیٹا کی ساخت کی تفصیل

یہ باب 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 محفوظ
پیرامیٹرز:
ڈیو ٹائپ
ڈیوائس کی قسم۔ دیکھیں: اڈاپٹر ڈیوائس کی قسم کی تعریف۔
ڈیو انڈیکس
ڈیوائس انڈیکس، مثال کے طور پرample، جب صرف ایک USB-CAN اڈاپٹر ہوتا ہے، اشاریہ نمبر 0 ہوتا ہے، جب متعدد USB-CAN اڈاپٹر ہوتے ہیں، اشاریہ نمبر 0 سے شروع ہونے والے صعودی ترتیب میں ہوتے ہیں۔
Reserved Reserved.
واپسی:
ریٹرن ویلیو = 1، جس کا مطلب ہے کہ آپریشن کامیاب ہے۔ = 0 بتاتا ہے کہ آپریشن ناکام ہو گیا۔ = -1 اشارہ کرتا ہے کہ ڈیوائس موجود نہیں ہے۔

WAVESHARE USB CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری - تصویر 14

bRel = VCI_UsbDeviceReset(nDeviceType, Independence, 0);
3.1.2 VCI_FindUsbDevice2
جب ایک ہی پی سی ایک سے زیادہ USB-CAN استعمال کرتا ہے، صارف موجودہ ڈیوائس کو تلاش کرنے کے لیے اس فنکشن کا استعمال کر سکتا ہے۔
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo)؛
پیرامیٹرز:
pInfo
pInfo کا استعمال پہلے ڈیٹا بفر ایڈریس پوائنٹر کے پیرامیٹرز کو ذخیرہ کرنے کے لیے کیا جاتا ہے۔
واپسی
کمپیوٹر میں پلگ ان USB-CAN اڈاپٹر کا نمبر واپس کریں۔

WAVESHARE USB CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری - تصویر 15

حصہ فور انٹرفیس لائبریری کا عمل استعمال کرتے ہوئے افعال
ڈیوائس کے فنکشن کو ضرب دینے کے لیے، ہم نے اضافی فنکشنز (سبز پس منظر کے ساتھ پیش کیے گئے فنکشنز) فراہم کیے، ان فنکشنز میں شامل ہیں: VCI_FindUsbDevice2 VCI_UsbDeviceReset۔ دوسری ترقی کے دوران، ضروری نہیں کہ ان افعال کو مدعو کیا جائے۔ یہاں تک کہ ان افعال کو نظر انداز کر دیا جاتا ہے، تمام USB-CAN اڈاپٹر افعال حاصل کیے جا سکتے ہیں۔

WAVESHARE USB CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری - تصویر 16

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

دستاویزات / وسائل

WAVESHARE USB-CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری [پی ڈی ایف] ہدایات دستی
USB-CAN بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری، USB-CAN، بس انٹر فیس اڈاپٹر انٹرفیس فنکشن لائبریری، انٹرفیس فنکشن لائبریری، فنکشن لائبریری

حوالہ جات

ایک تبصرہ چھوڑیں۔

آپ کا ای میل پتہ شائع نہیں کیا جائے گا۔ مطلوبہ فیلڈز نشان زد ہیں۔ *