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
भाग दुई मिल्ने प्रकार्य पुस्तकालय र डाटा संरचना
२.१। प्रकार परिभाषा
२.१.१। यन्त्रको प्रकार
प्रकार परिभाषा | मान टाइप गर्नुहोस् | विवरण |
DEV_USBCAN2 | 4 | USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN |
२.१.२। VCI_BOARD_INFO
VCI_BOARD_INFO संरचनामा USB-CAN श्रृंखला इन्टरफेस कार्ड उपकरण जानकारी समावेश छ।
संरचना VCI_ReadBoardInfo प्रकार्यमा भरिनेछ।
सदस्य:
hw_संस्करण
हार्डवेयर संस्करण नम्बर, हेक्साडेसिमल नोटेशन। जस्तै 0x0100 ले V1.00 लाई प्रतिनिधित्व गर्दछ।
fw_संस्करण
हार्डवेयर संस्करण नम्बर, हेक्साडेसिमल नोटेशन। जस्तै 0x0100 ले V1.00 लाई प्रतिनिधित्व गर्दछ।
पृष्ठ ४
dr_संस्करण
ड्राइभर संस्करण नम्बर, हेक्साडेसिमल नोटेशन। जस्तै 0x0100 ले V1.00 लाई प्रतिनिधित्व गर्दछ।
in_version
इन्टरफेस लाइब्रेरी संस्करण संख्या, हेक्साडेसिमल नोटेशन। जस्तै 0x0100 ले V1.00 लाई प्रतिनिधित्व गर्दछ।
irq_Num
प्रणाली आरक्षित।
can_Num
CAN च्यानल को कुल संख्या को प्रतिनिधित्व गर्दछ।
str_Serial_Num
यो बोर्ड कार्डको सिरियल नम्बर।
str_hw_Type
हार्डवेयर प्रकार, जस्तै "USBCAN V1.00" (नोट: स्ट्रिङ टर्मिनेटर '\0' समावेश गर्दछ)।
आरक्षित
प्रणाली आरक्षित।
२.१.३। VCI_CAN_OBJ
VCI_Transmit र VCI_Receive प्रकार्यहरूमा, VCI_CAN_OBJ संरचना CAN सन्देश फ्रेम प्रसारण गर्न प्रयोग गरिन्छ।
सदस्य:
ID
सन्देश पहिचानकर्ता। प्रत्यक्ष आईडी ढाँचा, दायाँ-पङ्क्तिबद्ध, कृपया सन्दर्भ गर्नुहोस्: एनेक्स वन: आईडी पङ्क्तिबद्ध विवरण।
टाइमस्टamp
सेन्ट प्राप्त गर्दैamp समय सीमाको जानकारी, CAN नियन्त्रक सुरु हुँदा समय सुरु गर्नुहोस्, एकाइ 0. 1ms हो।
टाइम फ्ल्याग
समयको सदुपयोग गर्ने कि नगर्ने सन्दर्भमा stamp, 1 प्रभावकारी TimeSt होamp। TimeFlag र TimeStamp जब फ्रेम प्राप्त हुन्छ तब मात्र अर्थपूर्ण हुन्छ।
SendType
पठाउने प्रकार। = ० ले सामान्य प्रकारलाई जनाउँछ, = १ ले एकल पठाउने संकेत गर्छ।
रिमोट फ्ल्याग
चाहे त्यो टाढाको झण्डा होस्। = 1 ले रिमोट झण्डालाई संकेत गर्दछ, = 0 ले डेटा झण्डालाई संकेत गर्दछ।
बाह्य झण्डा
चाहे त्यो बाहिरी झण्डा होस्। = 1 ले बाह्य झण्डालाई संकेत गर्दछ, = 0 ले मानक झण्डालाई संकेत गर्दछ।
DataLen
डाटा लम्बाइ(<=8) ,अर्थात, डाटाको लम्बाइ।
डाटा
प्याकेट डाटा।
आरक्षित
प्रणाली आरक्षित।
२.१.४। VCI_INIT_CONFIG
VCI_INIT_CONFIG संरचनाले CAN को प्रारम्भिक कन्फिगरेसन परिभाषित गर्दछ। संरचना VCI_InitCan प्रकार्यमा भरिनेछ।
सदस्य:
AccCode
फिल्टर गरिएको स्वीकृति कोड प्राप्त गर्नुहोस्।
AccMask
फिल्टर मास्क प्राप्त गर्नुहोस्।
आरक्षित
आरक्षित।
फिल्टर गर्नुहोस्
फिल्टरिङ विधि, सेटिङ दायरा ०-३ लाई अनुमति दिँदै, विवरणहरूको लागि फिल्टर मोड तालिकाको खण्ड २.२.३ हेर्नुहोस्।
समय ०
SJA1000 Baud दर प्यारामिटर, समय0 (BTR0)।
समय ०
SJA1000 Baud दर प्यारामिटर, समय1 (BTR1)।
मोड
सञ्चालन मोड, 0 = सामान्य सञ्चालन, 1 = सुन्न-मात्र मोड, 2 = सहज प्रवेश र पठाउने परीक्षण मोड।
टिप्पणीहरू:
फिल्टर सेटिङहरूको बारेमा कृपया सन्दर्भ गर्नुहोस्: Annex II: CAN प्यारामिटर सेटअप निर्देशनहरू।
CAN Timing0 र Timing1 लाई बाउड रेट सेट गर्न प्रयोग गरिन्छ, यी दुई प्यारामिटरहरू प्रारम्भिकरणमा मात्र प्रयोग गरिन्छ।tage.
परम्परागत बाउड सन्दर्भ तालिका:
क्यान बाउड दर | समय०(BTR0) | समय०(BTR1) |
10k bps | ८x४० | ०x१ सी |
20k bps | ८x४० | ०x१ सी |
40k bps | ८x४० | ०xFF |
50k bps | ८x४० | ०x१ सी |
80k bps | ८x४० | ०xFF |
100k bps | ८x४० | ०x१ सी |
125k bps | ८x४० | ०x१ सी |
200k bps | ८x४० | ०xFA |
250k bps | ८x४० | ०x१ सी |
400k bps | ८x४० | ०xFA |
500k bps | ८x४० | ०x१ सी |
666k bps | ८x४० | 0xB6 |
800k bps | ८x४० | ८x४० |
1000k bps | ८x४० | ८x४० |
८४८ Kbps | ८x४० | 0x6F |
८४८ Kbps | ८x४० | 0x6F |
८४८ Kbps | ८x४० | 0x6F |
- प्रयोगकर्ताहरूले Baud दर प्यारामिटर सेट गर्न SJA1000 (16MHz) लाई मात्र पछ्याउनु पर्छ।
- एडाप्टरले 10K तलको बाउड दरलाई अस्थायी रूपमा समर्थन गर्दैन।
2.2. प्रकार्य विवरण
२.२.१। VCI_OpenDevice
यो प्रकार्य उपकरणहरू जडान गर्न प्रयोग गरिन्छ।
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD आरक्षित);
प्यारामिटरहरू:
DevType
यन्त्र प्रकार। हेर्नुहोस्: एडाप्टर उपकरण प्रकार परिभाषा।
DevIndex
यन्त्र अनुक्रमणिका, उदाहरणका लागिample, जब त्यहाँ एउटा मात्र USB-CAN एडाप्टर हुन्छ, अनुक्रमणिका नम्बर ० हुन्छ, जब त्यहाँ धेरै USB-CAN एडाप्टरहरू हुन्छन्, अनुक्रमणिका नम्बरहरू ० बाट सुरु हुने बढ्दो क्रममा हुन्छ।
आरक्षित
अवधारण प्यारामिटरहरू, ० भर्नुहोस्।
फर्काउँछ:
फिर्ता मान = 1, जसको मतलब अपरेशन सफल छ; = ० ले अपरेशन असफल भएको संकेत गर्दछ; = -0 ले उपकरण अवस्थित छैन भनेर संकेत गर्दछ।
२.२.२। VCI_CloseDevice
यो प्रकार्य जडान बन्द गर्न प्रयोग गरिन्छ।
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
प्यारामिटरहरू:
DevType
यन्त्र प्रकार। हेर्नुहोस्: एडाप्टर उपकरण प्रकार परिभाषा।
DevIndex
यन्त्र अनुक्रमणिका, उदाहरणका लागिample, जब त्यहाँ एउटा मात्र USB-CAN एडाप्टर हुन्छ, अनुक्रमणिका नम्बर ० हुन्छ, जब त्यहाँ धेरै USB-CAN एडाप्टरहरू हुन्छन्, अनुक्रमणिका नम्बरहरू ० बाट सुरु हुने बढ्दो क्रममा हुन्छ।
फर्काउँछ:
फिर्ता मान = 1, जसको मतलब अपरेशन सफल छ; = ० ले अपरेशन असफल भएको संकेत गर्दछ; = -0 ले उपकरण अवस्थित छैन भनेर संकेत गर्दछ।
२.२.३। VCI_InitCan
यो प्रकार्य निर्दिष्ट CAN प्रारम्भ गर्न प्रयोग गरिन्छ।
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIindex,
PVCI_INIT_CONFIG pInitConfig);
प्यारामिटरहरू:
DevType
यन्त्र प्रकार। हेर्नुहोस्: एडाप्टर उपकरण प्रकार परिभाषा।
DevIndex
यन्त्र अनुक्रमणिका, उदाहरणका लागिample, जब त्यहाँ एउटा मात्र USB-CAN एडाप्टर हुन्छ, अनुक्रमणिका नम्बर ० हुन्छ, जब त्यहाँ धेरै USB-CAN एडाप्टरहरू हुन्छन्, अनुक्रमणिका नम्बरहरू ० बाट सुरु हुने बढ्दो क्रममा हुन्छ।
CANI अनुक्रमणिका
CAN च्यानल अनुक्रमणिका, जस्तै जब त्यहाँ एक मात्र CAN च्यानल हुन्छ, अनुक्रमणिका नम्बर 0 हो, यदि त्यहाँ दुई छन् भने, अनुक्रमणिका नम्बर 0 वा 1 हुन सक्छ।
pInitConfig
प्रारम्भिक प्यारामिटर संरचना। सदस्यहरूको प्यारामिटर सूची:
सदस्य | कार्यात्मक विवरण |
pInitConfig->AccCode | AccCode र AccMask सँगै काम गर्न सक्छन् कुन प्याकेटहरू स्वीकार गर्न सकिन्छ भनेर निर्धारण गर्न। यी दुई दर्ताहरू आईडीलाई बायाँ-पङ्क्तिबद्ध सेट गर्न प्रयोग गरिन्छ, त्यो हो, AccCode र AccMask को उच्चतम बिट (Bit31) 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-bit छ। AccCode र AccMask ले वैध बिटको रूपमा उच्च 29-बिट सेट गर्यो! |
|
pInitConfig-> आरक्षित | आरक्षित |
pInitConfig->फिल्टर | फिल्टरिङ मोड सेटिङहरू कृपया फिल्टर मोड तालिकाको खण्डलाई सन्दर्भ गर्नुहोस्। |
pInitConfig->Timing0 | Baud rateT0 सेटिङ |
pInitConfig->Timing1 | Baud rateT1 सेटिङ |
pInitConfig->मोड | अपरेटिंग मोड: ०-सामान्य सञ्चालन 1-सुन्न-मात्र मोड २-स्वस्फूर्त प्रवेश र पठाउने परीक्षण मोड (यो मान ZLG प्रकार्य पुस्तकालयबाट निकालिएको छ) |
फिल्टर मोड तालिका:
मूल्य | नाम | विवरण |
1 | सबै प्रकार प्राप्त गर्नुहोस् | दुबै मानक र विस्तारित फ्रेमको लागि उपयुक्त! |
2 | केवल मानक फ्रेम प्राप्त गर्नुहोस् | मानक फ्रेमको लागि उपयुक्त, र विस्तारित |
फ्रेम सीधा निस्पंदन द्वारा हटाइनेछ! | ||
3 | विस्तारित फ्रेम मात्र प्राप्त गर्नुहोस् | विस्तारित फ्रेमको लागि उपयुक्त, र मानक फ्रेम द्वारा हटाइनेछ निस्पंदन प्रत्यक्ष! । |
फर्काउँछ:
फिर्ता मान = 1, जसको मतलब अपरेशन सफल छ; = ० ले अपरेशन असफल भएको संकेत गर्दछ; = -0 ले उपकरण अवस्थित छैन भनेर संकेत गर्दछ।
जस्तै
२.२.४। VCI_ReadBoardInfo
यो प्रकार्य एडाप्टर हार्डवेयर जानकारी पढ्न प्रयोग गरिन्छ। सामान्यतया, यसलाई बेवास्ता गर्न सकिन्छ।
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
प्यारामिटरहरू:
DevType
यन्त्र प्रकार। हेर्नुहोस्: एडाप्टर उपकरण प्रकार परिभाषा।
DevIndex
यन्त्र अनुक्रमणिका, उदाहरणका लागिample, जब त्यहाँ एउटा मात्र USB-CAN एडाप्टर हुन्छ, अनुक्रमणिका नम्बर ० हुन्छ, जब त्यहाँ धेरै USB- CAN एडाप्टरहरू हुन्छन्, अनुक्रमणिका नम्बरहरू ० बाट सुरु हुने बढ्दो क्रममा हुन्छ। pInfo
VCI_BOARD_INFO उपकरण जानकारी संरचना सूचक भण्डारण गर्न प्रयोग गरिन्छ।
फर्काउँछ:
फिर्ता मान = 1, जसको मतलब अपरेशन सफल छ; = ० ले अपरेशन असफल भएको संकेत गर्दछ; = -0 ले उपकरण अवस्थित छैन भनेर संकेत गर्दछ।
२.२.५। VCI_GetReceiveNum
यो प्रकार्य प्राप्त भएको निर्दिष्ट गर्न प्रयोग गरिन्छ तर तोकिएको प्राप्त बफरमा फ्रेमहरू पढिएको छैन।
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIindex);
प्यारामिटरहरू:
DevType
यन्त्र प्रकार। हेर्नुहोस्: एडाप्टर उपकरण प्रकार परिभाषा।
DevIndex
यन्त्र अनुक्रमणिका, उदाहरणका लागिample, जब त्यहाँ एउटा मात्र USB-CAN एडाप्टर हुन्छ, अनुक्रमणिका नम्बर ० हुन्छ, जब त्यहाँ धेरै USB- CAN एडाप्टरहरू हुन्छन्, अनुक्रमणिका नम्बरहरू ० बाट सुरु हुने बढ्दो क्रममा हुन्छ।
CANI अनुक्रमणिका
CAN च्यानल अनुक्रमणिका।
फर्काउँछ:
अहिलेसम्म नपढेका फ्रेमहरू फर्काउनुहोस्।
जस्तै
# "ControlCan.h" int ret=VCI_GetReceiveNum(2,0,0) समावेश गर्नुहोस्;
२.२.६। VCI_ClearBuffer
यो प्रकार्य द्वारा निर्दिष्ट नामित च्यानल को प्राप्त र पठाउने बफर खाली गर्न प्रयोग गरिन्छ
USB-CAN एडाप्टर।
DWORD __stdcall VCI_ClearBuffer(DWORD DevType,DWORD DevIndex,DWORD CANIindex);
प्यारामिटरहरू:
DevType
यन्त्र प्रकार। हेर्नुहोस्: एडाप्टर उपकरण प्रकार परिभाषा।
DevIndex
यन्त्र अनुक्रमणिका, उदाहरणका लागिample, जब त्यहाँ एउटा मात्र USB-CAN एडाप्टर हुन्छ, अनुक्रमणिका नम्बर ० हुन्छ, जब त्यहाँ धेरै USB- CAN एडाप्टरहरू हुन्छन्, अनुक्रमणिका नम्बरहरू ० बाट सुरु हुने बढ्दो क्रममा हुन्छ।
CANI अनुक्रमणिका
CAN च्यानल अनुक्रमणिका।
फर्काउँछ:
फिर्ता मान = 1, जसको मतलब अपरेशन सफल छ; = ० ले अपरेशन असफल भएको संकेत गर्दछ; = -0 ले उपकरण अवस्थित छैन भनेर संकेत गर्दछ।
२.२.७। VCI_StartCAN
यो प्रकार्य CAN नियन्त्रक र एडाप्टरको आन्तरिक अवरोध रिसेप्शन प्रकार्य सुरु गर्न प्रयोग गरिन्छ।
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIindex);
प्यारामिटरहरू:
DevType
यन्त्र प्रकार। हेर्नुहोस्: एडाप्टर उपकरण प्रकार परिभाषा।
DevIndex
यन्त्र अनुक्रमणिका, उदाहरणका लागिample, जब त्यहाँ एउटा मात्र USB-CAN एडाप्टर हुन्छ, अनुक्रमणिका नम्बर ० हुन्छ, जब त्यहाँ धेरै USB-CAN एडाप्टरहरू हुन्छन्, अनुक्रमणिका नम्बरहरू ० बाट सुरु हुने बढ्दो क्रममा हुन्छ।
CANI अनुक्रमणिका
CAN च्यानल अनुक्रमणिका।
फर्काउँछ:
फिर्ता मान = 1, जसको मतलब अपरेशन सफल छ; = ० ले अपरेशन असफल भएको संकेत गर्दछ; = -0 ले उपकरण अवस्थित छैन भनेर संकेत गर्दछ।
२.२.८। VCI_ResetCAN
यो प्रकार्य CAN नियन्त्रक रिसेट गर्न प्रयोग गरिन्छ।
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIindex);
प्यारामिटरहरू:
DevType
यन्त्र प्रकार। हेर्नुहोस्: एडाप्टर उपकरण प्रकार परिभाषा।
DevIndex
यन्त्र अनुक्रमणिका, उदाहरणका लागिample, जब त्यहाँ एउटा मात्र USB-CAN एडाप्टर हुन्छ, अनुक्रमणिका नम्बर ० हुन्छ, जब त्यहाँ धेरै USB-CAN एडाप्टरहरू हुन्छन्, अनुक्रमणिका नम्बरहरू ० बाट सुरु हुने बढ्दो क्रममा हुन्छ।
CANI अनुक्रमणिका
CAN च्यानल अनुक्रमणिका।
फर्काउँछ:
फिर्ता मान = 1, जसको मतलब अपरेशन सफल छ; = ० ले अपरेशन असफल भएको संकेत गर्दछ; = -0 ले उपकरण अवस्थित छैन भनेर संकेत गर्दछ।
२.२.९। VCI_Transmit
यो प्रकार्य CAN सन्देश फ्रेम पठाउन प्रयोग गरिन्छ।
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD लम्बाइ);
प्यारामिटरहरू:
DevType
यन्त्र प्रकार। हेर्नुहोस्: एडाप्टर उपकरण प्रकार परिभाषा।
DevIndex
यन्त्र अनुक्रमणिका, उदाहरणका लागिample, जब त्यहाँ एउटा मात्र USB-CAN एडाप्टर हुन्छ, अनुक्रमणिका नम्बर ० हुन्छ, जब त्यहाँ धेरै USB-CAN एडाप्टरहरू हुन्छन्, अनुक्रमणिका नम्बरहरू ० बाट सुरु हुने बढ्दो क्रममा हुन्छ।
CANI अनुक्रमणिका
CAN च्यानल अनुक्रमणिका। p पठाउनुहोस्
डेटा फ्रेम एरेहरूको पहिलो ठेगाना जुन पठाउनु पर्छ।
लम्बाइ
पठाउनु पर्ने डाटा फ्रेमहरूको संख्या, अधिकतम संख्या 1000 हो, सिफारिस गरिएको मान उच्च गति अन्तर्गत 48 हो।
फर्काउँछ:
पहिले नै पठाइएका फ्रेमहरूको वास्तविक संख्या फर्काउनुहोस्, फिर्ता मान = -1 ले उपकरण त्रुटिलाई संकेत गर्दछ।
जस्तै
२.२.१०। VCI_प्राप्त गर्नुहोस्
यो प्रकार्य स्वागत अनुरोध गर्न प्रयोग गरिन्छ।
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIindex, PVCI_CAN_OBJ pReceive, ULONG लेन, INT प्रतीक्षा समय);
प्यारामिटरहरू:
DevType
यन्त्र प्रकार। हेर्नुहोस्: एडाप्टर उपकरण प्रकार परिभाषा।
DevIndex
यन्त्र अनुक्रमणिका, उदाहरणका लागिample, जब त्यहाँ एउटा मात्र USB-CAN एडाप्टर हुन्छ, अनुक्रमणिका नम्बर ० हुन्छ, जब त्यहाँ धेरै USB-CAN एडाप्टरहरू हुन्छन्, अनुक्रमणिका नम्बरहरू ० बाट सुरु हुने बढ्दो क्रममा हुन्छ।
CANI अनुक्रमणिका
CAN च्यानल अनुक्रमणिका।
पूर्व प्राप्त गर्नुहोस्
डेटा फ्रेमको पहिलो सेट सूचक प्राप्त गर्न।
लेन
सामान्य सन्देश फर्काउनको लागि डाटा फ्रेमको एरे लम्बाइ २५०० भन्दा बढी हुनुपर्छ।
अन्यथा, सन्देश प्राप्त वा नगरे पनि फर्काउने लम्बाइ शून्य हुनेछ। एडाप्टरले प्रत्येक च्यानलको लागि 2000-फ्रेम बफर सेट गर्यो। आफ्नै प्रणाली र काम गर्ने वातावरणको आधारमा, प्रयोगकर्ताले 2500 बाट उपयुक्त एरे लम्बाइ रोज्न सक्छ।
प्रतीक्षा समय आरक्षित।
फर्काउँछ:
वास्तवमा पढिएका फ्रेमहरूको संख्या फर्काउनुहोस्, -1 ले उपकरण त्रुटिहरू संकेत गर्दछ।
जस्तै
भाग तीन अन्य कार्यहरू र डेटा संरचना विवरण
यो अध्यायले USB-CAN एडाप्टर इन्टरफेस पुस्तकालय ControlCAN.dll मा रहेको असंगत ZLG इन्टरफेस लाइब्रेरीको अन्य डेटा प्रकार र कार्यहरू वर्णन गर्दछ। कृपया गर्नुहोस्
यदि माध्यमिक विकासको लागि उपयुक्त ZLG मोडेल प्रयोग गरेमा यी प्रकार्यहरूलाई कल नगर्नुहोस् ताकि अनुकूलतालाई असर नहोस्।
3.1 प्रकार्य विवरण
३.१.१। VCI_UsbDeviceReset
USB-CAN एडाप्टर रिसेट गर्नुहोस्, VCI_OpenDevice प्रयोग गरेर रिसेट गरेपछि यन्त्र पुन: खोल्न आवश्यक छ।
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD आरक्षित
प्यारामिटरहरू:
DevType
यन्त्र प्रकार। हेर्नुहोस्: एडाप्टर उपकरण प्रकार परिभाषा।
DevIndex
यन्त्र अनुक्रमणिका, उदाहरणका लागिample, जब त्यहाँ एउटा मात्र USB-CAN एडाप्टर हुन्छ, अनुक्रमणिका नम्बर ० हुन्छ, जब त्यहाँ धेरै USB-CAN एडाप्टरहरू हुन्छन्, अनुक्रमणिका नम्बरहरू ० बाट सुरु हुने बढ्दो क्रममा हुन्छ।
आरक्षित आरक्षित।
फर्काउँछ:
फिर्ता मान = 1, जसको मतलब अपरेशन सफल छ; = ० ले अपरेशन असफल भएको संकेत गर्दछ; = -0 ले उपकरण अवस्थित छैन भनेर संकेत गर्दछ।
bRel = VCI_UsbDeviceReset(nDeviceType, Independence, 0);
३.१.२। VCI_FindUsbDevice3.1.2
एउटै पीसीले धेरै 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, बस इन्टर फेस एडाप्टर इन्टरफेस फंक्शन लाइब्रेरी, इन्टरफेस फंक्शन लाइब्रेरी, फंक्शन लाइब्रेरी |