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 فنڪشن ۾.
ميمبر:
hw_version
هارڊويئر ورزن نمبر، هيڪساڊيڪل نوٽشن. مثال طور 0x0100 V1.00 جي نمائندگي ڪري ٿو.
fw_ورجن
هارڊويئر ورزن نمبر، هيڪساڊيڪل نوٽشن. مثال طور 0x0100 V1.00 جي نمائندگي ڪري ٿو.
صفحو 2
dr_version
ڊرائيور جو نسخو نمبر، هيڪساڊيڪل نوٽشن. مثال طور 0x0100 V1.00 جي نمائندگي ڪري ٿو.
in_version
انٽرفيس لائبريري ورزن نمبر، هيڪساڊيڪل نوٽشن. مثال طور 0x0100 V1.00 جي نمائندگي ڪري ٿو.
irq_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
پيغام جي سڃاڻپ ڪندڙ. سڌو ID فارميٽ، ساڄي طرف سان ترتيب ڏنل، مھرباني ڪري حوالو ڏيو: ضميمو ھڪڙي: ID جي ترتيب جي تفصيل.
ٽائم اسٽيٽamp
ايس ٽي وصول ڪنديamp وقت جي فريم جي ڄاڻ، وقت شروع ڪريو جڏهن CAN ڪنٽرولر شروع ڪيو ويو آهي، يونٽ 0. 1ms آهي.
وقت جو جھنڊو
وقت استعمال ڪرڻ جي حوالي سان stamp، 1 مؤثر TimeSt آهيamp. TimeFlag ۽ TimeStamp صرف ان وقت بامعنيٰ هوندا آهن جڏهن فريم حاصل ڪيو ويندو آهي.
موڪل جو قسم
موڪل جو قسم. = 0 اشارو ڪري ٿو عام قسم، = 1 اشارو ڪري ٿو اڪيلو موڪليو.
Remote Flag
ڇا اهو دور دراز پرچم آهي. = 1 ظاهر ڪري ٿو ريموٽ پرچم، = 0 اشارو ڊيٽا پرچم.
خارجي پرچم
ڇا اهو هڪ خارجي پرچم آهي. = 1 ظاهر ڪري ٿو ٻاهرين پرچم، = 0 اشارو ڪري ٿو معياري پرچم.
ڊيٽا لين
ڊيٽا جي ڊيگهه (<=8)، يعني ڊيٽا جي ڊيگهه.
ڊيٽا
پيٽ ڊيٽا.
رکيل
سسٽم محفوظ.
2.1.4. VCI_INIT_CONFIG
VCI_INIT_CONFIG جوڙجڪ CAN جي شروعاتي ترتيب جي وضاحت ڪري ٿي. جوڙجڪ VCI_InitCan فنڪشن ۾ ڀريو ويندو.
ميمبر:
ايڪ ڪوڊ
فلٽر ٿيل قبوليت ڪوڊ حاصل ڪريو.
AccMask
فلٽر ماسڪ حاصل ڪريو.
رکيل
رکيل.
فلٽر
فلٽرنگ جو طريقو، سيٽنگ جي حد 0-3 جي اجازت ڏئي ٿي، تفصيل لاءِ فلٽر موڊ ٽيبل جي سيڪشن 2.2.3 جو حوالو ڏيو.
وقت 0
SJA1000 Baud شرح پيٽرولر، ٽائمنگ0 (BTR0) .
وقت 1
SJA1000 Baud شرح پيٽرولر، ٽائمنگ1 (BTR1) .
موڊ
آپريٽنگ موڊ، 0 = نارمل آپريشن، 1 = صرف ٻڌندڙ موڊ، 2 = خود بخود داخلا ۽ موڪلڻ واري ٽيسٽ موڊ.
تبصرا:
فلٽر سيٽنگن بابت مهرباني ڪري حوالو ڏيو: ضميمه II: CANپيراميٽر سيٽنگ جون هدايتون.
CAN ٽائمنگ 0 ۽ ٽائمنگ 1 استعمال ڪيا ويندا آهن بڊ ريٽ سيٽ ڪرڻ لاءِ، اهي ٻه پيرا ميٽر صرف شروعات ۾ استعمال ٿيندا آهن.tage.
روايتي Baud ريفرنس ٽيبل:
CAN Baud جي شرح | وقت 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) جي پيروي ڪرڻ جي ضرورت آهي Baud شرح پيٽرولر کي سيٽ ڪرڻ لاء.
- اڊاپٽر 10K کان هيٺ عارضي طور تي Baud جي شرح کي سپورٽ نٿو ڪري.
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 اشارو ڪري ٿو ته ڊوائيس موجود ناهي.
2.2.2. VCI_CloseDevice
هي فنڪشن ڪنيڪشن کي بند ڪرڻ لاء استعمال ڪيو ويندو آهي.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
پيرا ميٽرس:
Dev ٽائپ
ڊوائيس جو قسم. ڏسو: اڊاپٽر ڊوائيس جي قسم جي تعريف.
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 CANindex,
PVCI_INIT_CONFIG pInitConfig)؛
پيرا ميٽرس:
Dev ٽائپ
ڊوائيس جو قسم. ڏسو: اڊاپٽر ڊوائيس جي قسم جي تعريف.
DevIndex
ڊوائيس انڊيڪس، مثال طورample، جڏهن صرف هڪ USB-CAN اڊاپٽر آهي، انڊيڪس نمبر 0 آهي، جڏهن ڪيترائي USB-CAN اڊاپٽر آهن، انڊيڪس نمبر 0 کان شروع ٿيندڙ چڙهندڙ ترتيب ۾.
CANI انڊيڪس
CAN چينل انڊيڪس، جيئن ته جڏھن رڳو ھڪڙو CAN چينل آھي، انڊيڪس نمبر 0 آھي، جيڪڏھن ٻه آھن، انڊيڪس نمبر 0 يا 1 ٿي سگھي ٿو.
pInitConfig
شروعاتي پيٽرولر جي جوڙجڪ. ميمبرن جي پيرا ميٽر لسٽ:
ميمبر | فنڪشنل وضاحت |
pInitConfig->AccCode | AccCode ۽ AccMask گڏجي ڪم ڪري سگهن ٿا اهو طئي ڪرڻ لاءِ ته ڪهڙا پيڪيٽ قبول ڪري سگهجن ٿا. اهي ٻه رجسٽر استعمال ڪيا ويندا آهن ID کي سيٽ ڪرڻ لاءِ کاٻي سان ترتيب ڏنل، اهو آهي، AccCode جو سڀ کان وڏو بٽ (Bit31) ۽ AccMask ID قدر جي بلند ترين بٽ سان ترتيب ڏنل آهي. |
pInitConfig->AccMask | ID جي ترتيب بابت حوالو ضميمو: ضميمو I: ID جي ترتيب جي تفصيل. مثال طور: جيڪڏهن توهان AccCode جي قيمت 0x24600000 مقرر ڪيو آهي (يعني 0x123 کي کاٻي طرف 21 بٽ منتقل ڪيو ويو آهي)، AccMask قدر 0x00000000 تي سيٽ ڪيو ويو آهي، ۽ پوء صرف CAN پيغام فريم ID سان 0x123 پيڪٽ قبول ڪري سگھجن ٿيون (AccMask 0x00000000 جو قدر ظاهر ڪري ٿو ته سڀئي بٽ لاڳاپيل آهن |
بٽس). جيڪڏهن AccCode جي قيمت 0x24600000 تي مقرر ڪئي وئي آهي، AccMask جي قيمت 0x600000 تي مقرر ڪئي وئي آهي (0x03 کي 21 بٽ طرفان کاٻي طرف منتقل ڪيو ويو آهي)، ۽ پوء صرف CAN پيغام جي فريم ID سان پيڪٽس 0x120 ~ 0x123 آهي قبول ڪري سگهجي ٿو (AccMask قدر 0x600000 اشارو ڪري ٿو ته bit0 ~ bit1 کان سواءِ ٻيا بٽ (bit2 ~ bit10) لاڳاپيل بٽ آهن). نوٽ: هي فلٽر سيٽنگ examples معياري فريم ڏانهن، مثال طورample، اعلي 11-bit صحيح سا آهي؛ وڌايل فريم جي صورت ۾، ۽ پوء صحيح ID 29-bit آهي. AccCode ۽ AccMask اعليٰ 29-bit کي صحيح بٽ طور مقرر ڪيو! |
|
pInitConfig-> محفوظ | محفوظ |
pInitConfig->فلٽر | فلٽرنگ موڊ سيٽنگون مھرباني ڪري فلٽر موڊ ٽيبل جي سيڪشن ڏانھن وڃو. |
pInitConfig->Timing0 | Baud rateT0 سيٽنگ |
pInitConfig->Timing1 | Baud rateT1 سيٽنگ |
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);
پيرا ميٽرس:
Dev ٽائپ
ڊوائيس جو قسم. ڏسو: اڊاپٽر ڊوائيس جي قسم جي تعريف.
DevIndex
ڊوائيس انڊيڪس، مثال طورampلي، جڏهن صرف هڪ 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);
پيرا ميٽرس:
Dev ٽائپ
ڊوائيس جو قسم. ڏسو: اڊاپٽر ڊوائيس جي قسم جي تعريف.
DevIndex
ڊوائيس انڊيڪس، مثال طورample، جڏهن صرف هڪ USB-CAN اڊاپٽر آهي، انڊيڪس نمبر 0 آهي، جڏهن ڪيترائي USB-CAN اڊاپٽر آهن، انڊيڪس نمبر 0 کان شروع ٿيندڙ چڙهندڙ ترتيب ۾.
CANI انڊيڪس
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);
پيرا ميٽرس:
Dev ٽائپ
ڊوائيس جو قسم. ڏسو: اڊاپٽر ڊوائيس جي قسم جي تعريف.
DevIndex
ڊوائيس انڊيڪس، مثال طورample، جڏهن صرف هڪ USB-CAN اڊاپٽر آهي، انڊيڪس نمبر 0 آهي، جڏهن ڪيترائي USB-CAN اڊاپٽر آهن، انڊيڪس نمبر 0 کان شروع ٿيندڙ چڙهندڙ ترتيب ۾.
CANI انڊيڪس
CAN چينل انڊيڪس.
واپسي:
واپسي جي قيمت = 1، جنهن جو مطلب آهي ته آپريشن ڪامياب آهي؛ = 0 اشارو ڪري ٿو ته آپريشن ناڪام ٿيو؛ = -1 اشارو ڪري ٿو ته ڊوائيس موجود ناهي.
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 کان شروع ٿيندڙ چڙهندڙ ترتيب ۾.
CANI انڊيڪس
CAN چينل انڊيڪس.
واپسي:
واپسي جي قيمت = 1، جنهن جو مطلب آهي ته آپريشن ڪامياب آهي؛ = 0 اشارو ڪري ٿو ته آپريشن ناڪام ٿيو؛ = -1 اشارو ڪري ٿو ته ڊوائيس موجود ناهي.
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 کان شروع ٿيندڙ چڙهندڙ ترتيب ۾.
CANI انڊيڪس
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 ڊگھائي)؛
پيرا ميٽرس:
Dev ٽائپ
ڊوائيس جو قسم. ڏسو: اڊاپٽر ڊوائيس جي قسم جي تعريف.
DevIndex
ڊوائيس انڊيڪس، مثال طورample، جڏهن صرف هڪ USB-CAN اڊاپٽر آهي، انڊيڪس نمبر 0 آهي، جڏهن ڪيترائي USB-CAN اڊاپٽر آهن، انڊيڪس نمبر 0 کان شروع ٿيندڙ چڙهندڙ ترتيب ۾.
CANI انڊيڪس
CAN چينل انڊيڪس. پي موڪليو
ڊيٽا فريم arrays جو پهريون پتو جنهن کي موڪليو وڃي.
ڊگھائي
ڊيٽا فريم جو تعداد جيڪو موڪليو وڃي ٿو، وڌ ۾ وڌ نمبر 1000 آهي، سفارش ڪيل قيمت 48 تيز رفتار جي تحت آهي.
واپسي:
اڳ ۾ ئي موڪليل فريم جو اصل تعداد واپس ڪريو، واپسي جي قيمت = -1 ڊوائيس جي غلطي کي ظاهر ڪري ٿو.
مثال
2.2.10. VCI_Receive
هي فنڪشن استعمال ڪيو ويندو آهي استقبال جي درخواست ڪرڻ لاء.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANindex, PVCI_CAN_OBJ حاصل ڪريو, ULONG Len, INT WaitTime)؛
پيرا ميٽرس:
Dev ٽائپ
ڊوائيس جو قسم. ڏسو: اڊاپٽر ڊوائيس جي قسم جي تعريف.
DevIndex
ڊوائيس انڊيڪس، مثال طورample، جڏهن صرف هڪ USB-CAN اڊاپٽر آهي، انڊيڪس نمبر 0 آهي، جڏهن ڪيترائي USB-CAN اڊاپٽر آهن، انڊيڪس نمبر 0 کان شروع ٿيندڙ چڙهندڙ ترتيب ۾.
CANI انڊيڪس
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 محفوظ
پيرا ميٽرس:
Dev ٽائپ
ڊوائيس جو قسم. ڏسو: اڊاپٽر ڊوائيس جي قسم جي تعريف.
DevIndex
ڊوائيس انڊيڪس، مثال طورample، جڏهن صرف هڪ USB-CAN اڊاپٽر آهي، انڊيڪس نمبر 0 آهي، جڏهن ڪيترائي USB-CAN اڊاپٽر آهن، انڊيڪس نمبر 0 کان شروع ٿيندڙ چڙهندڙ ترتيب ۾.
محفوظ ٿيل.
واپسي:
واپسي جي قيمت = 1، جنهن جو مطلب آهي ته آپريشن ڪامياب آهي؛ = 0 اشارو ڪري ٿو ته آپريشن ناڪام ٿيو؛ = -1 اشارو ڪري ٿو ته ڊوائيس موجود ناهي.
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 اڊاپٽر جو نمبر واپس ڪريو.
حصو چار انٽرفيس لائبريري ڪم استعمال ڪندي عمل
ڊيوائس جي فنڪشن کي ضرب ڪرڻ لاءِ، اسان اضافي فنڪشن مهيا ڪيا (سبز پس منظر سان پيش ڪيل ڪم)، ھي ڪم شامل آھن: VCI_FindUsbDevice2 VCI_UsbDeviceReset. ٻئين ترقي جي دوران، اهي افعال لازمي طور تي سڏڻ جي ضرورت ناهي. جيتوڻيڪ اهي افعال نظر انداز ڪيا ويا آهن، سڀئي USB-CAN اڊاپٽر افعال حاصل ڪري سگھجن ٿيون.
www.waveshare.com
www.waveshare.com/wiki
دستاويز / وسيلا
![]() |
WAVESHARE USB-CAN Bus Inter face Adapter Interface Function Library [pdf] هدايت نامو USB-CAN بس انٽرفيس اڊاپٽر انٽرفيس فنڪشنل لائبريري، USB-CAN، بس انٽرفيس اڊاپٽر انٽرفيس فنڪشنل لائبريري، انٽرفيس فنڪشنل لائبريري، فنڪشنل لائبريري |