USB-CAN ավտոբուսի ինտերֆեյս
Ադապտորների միջերեսի գործառույթը
Գրադարանի օգտագործողի ցուցումներ
ՄԱՍ ԱՌԱՋԻՆVIEW
Եթե օգտագործողը պարզապես օգտագործում է USB-CAN ավտոբուսի ինտերֆեյսի ադապտեր՝ CAN ավտոբուսի կապի թեստը անցնելու համար, այնուհետև նա կարող է ուղղակիորեն օգտագործել տրամադրված USB-CAN Tool ծրագրաշարը՝ թեստի տվյալները ուղարկելու և ստանալու համար:
Եթե օգտագործողը մտադիր է ծրագրային ծրագիր գրել իր սեփական արտադրանքի համար։ Խնդրում ենք ուշադիր կարդալ հետևյալ հրահանգները և տեղեկանք վերցնել sample կոդը մենք տրամադրում ենք.
⑴ 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.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_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_Type
Սարքավորումների տեսակը, ինչպիսին է «USBCAN V1.00» (Ծանոթագրություն. Ներառում է լարային տերմինատոր «\0»):
Վերապահված
Համակարգը վերապահված է:
2.1.3. VCI_CAN_OBJ
VCI_Transmit և VCI_Receive ֆունկցիաներում VCI_CAN_OBJ կառուցվածքն օգտագործվում է CAN հաղորդագրության շրջանակը փոխանցելու համար:
Անդամ.
ID
Հաղորդագրության նույնացուցիչ: Ուղղակի նույնականացման ձևաչափ, աջ հարթեցված, խնդրում ենք ծանոթանալ Հավելված 1-ին: ID հավասարեցման մանրամասները:
TimeStamp
Ստանալով սamp տեղեկություններ ժամանակային շրջանակի մասին, սկսելու ժամանակը, երբ CAN կարգավորիչը սկզբնավորվում է, միավորը 0. 1ms է:
TimeFlag
Ժամանակն օգտագործել-չօգտագործելու առումով սamp, 1-ը արդյունավետ TimeStamp. TimeFlag և TimeStamp իմաստալից են միայն այն դեպքում, երբ շրջանակն ստացվում է:
SendType
Ուղարկման տեսակը. = 0-ը ցույց է տալիս Normal տեսակը, = 1-ը ցույց է տալիս Single Send:
RemoteFlag
Անկախ նրանից, թե դա հեռավոր դրոշ է: = 1-ը ցույց է տալիս հեռավոր դրոշը, = 0-ը ցույց է տալիս տվյալների դրոշը:
Արտաքին դրոշ
Անկախ նրանից, թե դա արտաքին դրոշ է: = 1-ը ցույց է տալիս արտաքին դրոշը, = 0-ը ցույց է տալիս ստանդարտ դրոշը:
DataLen
Տվյալների երկարությունը (<=8) , այսինքն՝ տվյալների երկարությունը:
Տվյալներ
Փաթեթային տվյալներ.
Վերապահված
Համակարգը վերապահված է:
2.1.4. VCI_INIT_CONFIG
VCI_INIT_CONFIG կառուցվածքը սահմանում է CAN-ի սկզբնավորման կոնֆիգուրացիան: Կառուցվածքը լրացնելու է VCI_InitCan ֆունկցիան:
Անդամ.
Accode
Ստացեք ֆիլտրացված ընդունման կոդը:
AccMask
Ստացեք ֆիլտրի դիմակ:
Վերապահված
Վերապահված է.
Զտել
Զտման մեթոդը, որը թույլ է տալիս սահմանել 0-3 միջակայքը, մանրամասների համար տես ֆիլտրի ռեժիմի աղյուսակի 2.2.3 բաժինը:
Ժամկետ 0
SJA1000 Baud արագության պարամետր, Time0 (BTR0) .
Ժամկետ 1
SJA1000 Baud արագության պարամետր, Time1 (BTR1) .
Ռեժիմ
Գործառնական ռեժիմ, 0 = նորմալ աշխատանք, 1 = միայն լսելու ռեժիմ, 2 = ինքնաբուխ ընդունելություն և փորձարկման ռեժիմ:
Դիտողություններ:
Ֆիլտրի կարգավորումների մասին խնդրում ենք դիտել Հավելված II. CAN պարամետրի տեղադրման հրահանգներ:
CAN Timing0-ը և Timing1-ն օգտագործվում են բուդ արագությունը սահմանելու համար, այս երկու պարամետրերն օգտագործվում են միայն սկզբնավորման ժամանակtage.
Պայմանական Baud տեղեկատու աղյուսակ.
CAN Baud տոկոսադրույքը | Ժամկետ 0 (BTR0) | Ժամկետ 1 (BTR1) |
10 հազար բիտ վրկ | 0x31 | 0x1C |
20 հազար բիտ վրկ | 0x18 | 0x1C |
40 հազար բիտ վրկ | 0x87 | 0xFF |
50 հազար բիտ վրկ | 0x09 | 0x1C |
80 հազար բիտ վրկ | 0x83 | 0xFF |
100 հազար բիտ վրկ | 0x04 | 0x1C |
125 հազար բիտ վրկ | 0x03 | 0x1C |
200 հազար բիտ վրկ | 0x81 | 0xFA |
250 հազար բիտ վրկ | 0x01 | 0x1C |
400 հազար բիտ վրկ | 0x80 | 0xFA |
500 հազար բիտ վրկ | 0x00 | 0x1C |
666 հազար բիտ վրկ | 0x80 | 0xB6 |
800 հազար բիտ վրկ | 0x00 | 0x16 |
1000 հազար բիտ վրկ | 0x00 | 0x14 |
33.33 Կբիթ/վրկ | 0x09 | 0x6F |
66.66 Կբիթ/վրկ | 0x04 | 0x6F |
83.33 Կբիթ/վրկ | 0x03 | 0x6F |
- Օգտագործողները պետք է հետևեն միայն SJA1000-ին (16 ՄՀց)՝ Baud արագության պարամետրը սահմանելու համար:
- Ադապտորը ժամանակավորապես չի աջակցում Baud արագությունը 10K-ից ցածր:
2.2. ՖՈՒՆԿՑԻԱՅԻ ՆԿԱՐԱԳՐՈՒԹՅՈՒՆ
2.2.1. VCI_OpenDevice
Այս ֆունկցիան օգտագործվում է սարքերը միացնելու համար:
DWORD __stdcall VCI_OpenDevice (DWORD DevType, DWORD DevIndex, DWORD Reserved);
Պարամետրեր:
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 CANIndex,
PVCI_INIT_CONFIG pInitConfig);
Պարամետրեր:
DevType
Սարքի տեսակը. Տես՝ Ադապտոր սարքի տեսակի սահմանումը:
DevIndex
Սարքի ինդեքս, օրինակample, երբ կա միայն մեկ USB-CAN ադապտեր, ինդեքսի համարը 0 է, երբ կան մի քանի USB-CAN ադապտերներ, ինդեքսի համարներն աճման կարգով՝ սկսած 0-ից:
CANIindex
CAN ալիքի ինդեքսը, օրինակ, երբ կա միայն մեկ CAN ալիք, ինդեքսի թիվը 0 է, եթե կան երկու, ինդեքսի թիվը կարող է լինել 0 կամ 1:
pInitConfig
Նախնականացման պարամետրի կառուցվածքը: Անդամների պարամետրերի ցանկը.
Անդամ | Ֆունկցիոնալ նկարագրություն |
pInitConfig-> Accode | AccCode-ը և AccMask-ը կարող են միասին աշխատել՝ որոշելու համար, թե որ փաթեթները կարող են ընդունվել: Այս երկու գրանցամատյանները օգտագործվում են ID-ն ձախ հավասարեցված դնելու համար, այսինքն՝ AccCode-ի և AccMask-ի ամենաբարձր բիթը (Bit31) հավասարեցվում է ID արժեքի ամենաբարձր բիթին: |
pInitConfig->AccMask | ID հավասարեցման մասին անդրադարձեք հավելվածներին. Հավելված I. ID հավասարեցման մանրամասները: Օրինակ՝ Եթե դուք սահմանում եք AccCode-ի արժեքը որպես 0x24600000 (այսինքն՝ 0x123-ը տեղափոխվում է ձախ 21 բիթով), AccMask արժեքը դրված է 0x00000000, և այնուհետև կարող են ընդունվել միայն այն փաթեթները, որոնց CAN հաղորդագրության շրջանակի ID-ն 0x123 է (0x00000000 AcMask արժեքը ցույց է տալիս, որ բոլոր բիթերը համապատասխան են |
բիթ): Եթե AccCode արժեքը սահմանվում է 0x24600000, AccMask արժեքը սահմանվում է 0x600000 (0x03-ը տեղափոխվում է ձախ 21 բիթով), ապա միայն CAN հաղորդագրության շրջանակի ID-ով փաթեթները կարող են ընդունվել 0x120 ~ 0x123 (AccMask արժեքը: 0x600000 ցույց է տալիս, որ բացի bit0 ~ bit1-ից, մյուս բիթերը (bit2 ~ bit10) համապատասխան բիթ են: Նշում. Այս ֆիլտրի կարգավորումը օրինակamples ստանդարտ շրջանակին, օրինակample, բարձր 11-bit-ը վավեր բիթ է; ընդլայնված շրջանակի դեպքում, և ապա վավեր ID-ն 29-բիթ է: AccCode-ը և AccMask-ը որպես վավեր բիթ սահմանել են բարձր 29 բիթ: |
|
pInitConfig->Reserved | վերապահված |
pInitConfig->Filter | Զտման ռեժիմի կարգավորումները խնդրում ենք դիտել ֆիլտրի ռեժիմի աղյուսակի բաժինը: |
pInitConfig->Timing0 | Baud rate T0 կարգավորում |
pInitConfig->Timing1 | Baud rate T1 կարգավորում |
pInitConfig->Mode | Աշխատանքային ռեժիմ: 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
Սարքի ինդեքս, օրինակ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 CANIndex);
Պարամետրեր:
DevType
Սարքի տեսակը. Տես՝ Ադապտոր սարքի տեսակի սահմանումը:
DevIndex
Սարքի ինդեքս, օրինակample, երբ կա միայն մեկ USB-CAN ադապտեր, ինդեքսի համարը 0 է, երբ կան մի քանի USB-CAN ադապտերներ, ինդեքսի համարները աճման կարգով՝ սկսած 0-ից:
CANIindex
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 CANIndex);
Պարամետրեր:
DevType
Սարքի տեսակը. Տես՝ Ադապտոր սարքի տեսակի սահմանումը:
DevIndex
Սարքի ինդեքս, օրինակample, երբ կա միայն մեկ USB-CAN ադապտեր, ինդեքսի համարը 0 է, երբ կան մի քանի USB-CAN ադապտերներ, ինդեքսի համարները աճման կարգով՝ սկսած 0-ից:
CANIindex
CAN ալիքի ինդեքսը:
Վերադարձնում է՝
Վերադարձի արժեքը = 1, ինչը նշանակում է, որ գործողությունը հաջող է; = 0 ցույց է տալիս, որ գործողությունը ձախողվել է. = -1 ցույց է տալիս, որ սարքը գոյություն չունի:
2.2.7. VCI_StartCAN
Այս ֆունկցիան օգտագործվում է CAN կարգավորիչը և ադապտերի ներքին ընդհատումների ընդունման գործառույթը գործարկելու համար:
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Պարամետրեր:
DevType
Սարքի տեսակը. Տես՝ Ադապտոր սարքի տեսակի սահմանումը:
DevIndex
Սարքի ինդեքս, օրինակample, երբ կա միայն մեկ USB-CAN ադապտեր, ինդեքսի համարը 0 է, երբ կան մի քանի USB-CAN ադապտերներ, ինդեքսի համարներն աճման կարգով՝ սկսած 0-ից:
CANIindex
CAN ալիքի ինդեքսը:
Վերադարձնում է՝
Վերադարձի արժեքը = 1, ինչը նշանակում է, որ գործողությունը հաջող է; = 0 ցույց է տալիս, որ գործողությունը ձախողվել է. = -1 ցույց է տալիս, որ սարքը գոյություն չունի:
2.2.8. VCI_ResetCAN
Այս ֆունկցիան օգտագործվում է CAN կարգավորիչը վերականգնելու համար:
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Պարամետրեր:
DevType
Սարքի տեսակը. Տես՝ Ադապտոր սարքի տեսակի սահմանումը:
DevIndex
Սարքի ինդեքս, օրինակample, երբ կա միայն մեկ USB-CAN ադապտեր, ինդեքսի համարը 0 է, երբ կան մի քանի USB-CAN ադապտերներ, ինդեքսի համարներն աճման կարգով՝ սկսած 0-ից:
CANIindex
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 Length);
Պարամետրեր:
DevType
Սարքի տեսակը. Տես՝ Ադապտոր սարքի տեսակի սահմանումը:
DevIndex
Սարքի ինդեքս, օրինակample, երբ կա միայն մեկ USB-CAN ադապտեր, ինդեքսի համարը 0 է, երբ կան մի քանի USB-CAN ադապտերներ, ինդեքսի համարներն աճման կարգով՝ սկսած 0-ից:
CANIindex
CAN ալիքի ինդեքսը: pSend
Տվյալների շրջանակի զանգվածների առաջին հասցեն, որոնք պետք է ուղարկվեն:
Երկարություն
Տվյալների շրջանակների քանակը, որոնք պետք է ուղարկվեն, առավելագույն թիվը 1000 է, առաջարկվող արժեքը՝ 48 բարձր արագությամբ:
Վերադարձնում է՝
Վերադարձրեք արդեն ուղարկված շրջանակների իրական թիվը, վերադարձի արժեքը = -1 ցույց է տալիս սարքի սխալը:
Օրինակ
2.2.10. VCI_Receive
Այս ֆունկցիան օգտագործվում է ընդունելություն պահանջելու համար:
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Պարամետրեր:
DevType
Սարքի տեսակը. Տես՝ Ադապտոր սարքի տեսակի սահմանումը:
DevIndex
Սարքի ինդեքս, օրինակample, երբ կա միայն մեկ USB-CAN ադապտեր, ինդեքսի համարը 0 է, երբ կան մի քանի USB-CAN ադապտերներ, ինդեքսի համարներն աճման կարգով՝ սկսած 0-ից:
CANIindex
CAN ալիքի ինդեքսը:
ստանալ
Տվյալների շրջանակների առաջին հավաքածուի ցուցիչը ստանալու համար:
Լեն
Նորմալ հաղորդագրություն վերադարձնելու համար տվյալների շրջանակի զանգվածի երկարությունը պետք է լինի 2500-ից ավելի:
Հակառակ դեպքում, վերադարձի երկարությունը կլինի զրո, անկախ նրանից, թե հաղորդագրությունը ստացվել է, թե ոչ: ադապտերը յուրաքանչյուր ալիքի համար սահմանել է 2000 շրջանակի բուֆեր: Իր սեփական համակարգի և աշխատանքային միջավայրի հիման վրա օգտատերը կարող է ընտրել համապատասխան զանգվածի երկարությունը 2500-ից։
Սպասման ժամանակը վերապահված է:
Վերադարձնում է՝
Վերադարձեք իրականում կարդացված շրջանակների քանակը, -1-ը ցույց է տալիս սարքի սխալները:
Օրինակ
ՄԱՍ ԵՐՐՈՐԴ ԱՅԼ ՖՈՒՆԿՑԻԱՆԵՐ ԵՎ ՏՎՅԱԼՆԵՐԻ ԿԱՌՈՒՑՎԱԾՔԻ ՆԿԱՐԱԳՐՈՒԹՅՈՒՆԸ
Այս գլուխը նկարագրում է տվյալների այլ տեսակներ և գործառույթներ անհամատեղելի 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
Պարամետրեր:
DevType
Սարքի տեսակը. Տես՝ Ադապտոր սարքի տեսակի սահմանումը:
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 Bus Inter face Adapter Interface Function Library, USB-CAN, Bus Inter face Adapter Interface Function Library, Interface Function Library, Function Library |