USB-CAN బస్ ఇంటర్ఫేస్
అడాప్టర్ ఇంటర్ఫేస్ ఫంక్షన్
లైబ్రరీ వినియోగదారు సూచన
పార్ట్ వన్ ఓవర్VIEW
CAN బస్ కమ్యూనికేషన్ పరీక్షకు వెళ్లడానికి వినియోగదారు USB-CAN బస్ ఇంటర్ఫేస్ అడాప్టర్ని ఉపయోగిస్తే, ఆపై అతను నేరుగా పరీక్ష డేటాను పంపడం మరియు స్వీకరించడం కోసం సరఫరా చేయబడిన USB-CAN టూల్ సాఫ్ట్వేర్ను ఉపయోగించవచ్చు.
వినియోగదారు తన స్వంత ఉత్పత్తుల కోసం సాఫ్ట్వేర్ ప్రోగ్రామ్ను వ్రాయాలని అనుకుంటే. దయచేసి కింది సూచనలను జాగ్రత్తగా చదవండి మరియు s నుండి సూచన తీసుకోండిampమేము అందించే le కోడ్:
⑴ C++బిల్డర్ ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ ల్యాబ్విండోస్/CVI ⑼మాట్ల్యాబ్ ⑽QT ⑾పైథాన్/పైథాన్-క్యాన్.
లైబ్రరీని అభివృద్ధి చేయండి 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_వెర్షన్
హార్డ్వేర్ వెర్షన్ నంబర్, హెక్సాడెసిమల్ సంజ్ఞామానం. ఉదా 0x0100 V1.00ని సూచిస్తుంది.
fw_వెర్షన్
హార్డ్వేర్ వెర్షన్ నంబర్, హెక్సాడెసిమల్ సంజ్ఞామానం. ఉదా 0x0100 V1.00ని సూచిస్తుంది.
పేజీ 2
dr_వెర్షన్
డ్రైవర్ వెర్షన్ సంఖ్య, హెక్సాడెసిమల్ సంజ్ఞామానం. ఉదా 0x0100 V1.00ని సూచిస్తుంది.
ఇన్_వెర్షన్
ఇంటర్ఫేస్ లైబ్రరీ వెర్షన్ నంబర్, హెక్సాడెసిమల్ సంజ్ఞామానం. ఉదా 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 ఫంక్షన్లలో, CAN సందేశ ఫ్రేమ్ని ప్రసారం చేయడానికి VCI_CAN_OBJ నిర్మాణం ఉపయోగించబడుతుంది.
సభ్యుడు:
ID
సందేశ ఐడెంటిఫైయర్. డైరెక్ట్ ID ఫార్మాట్, కుడి-సమలేఖనం చేయబడింది, దయచేసి వీటిని చూడండి: Annex One: ID అమరిక వివరాలు.
TimeStamp
సెయింట్ అందుకోవడంamp సమయ ఫ్రేమ్ యొక్క సమాచారం, CAN కంట్రోలర్ ప్రారంభించబడినప్పుడు సమయాన్ని ప్రారంభించండి, యూనిట్ 0. 1ms.
టైమ్ఫ్లాగ్
సమయాన్ని ఉపయోగించాలా వద్దా అనే విషయంలోamp, 1 ప్రభావవంతమైన TimeStamp. టైమ్ఫ్లాగ్ మరియు టైమ్స్ట్amp ఫ్రేమ్ అందుకున్నప్పుడే అర్థవంతంగా ఉంటాయి .
SendType
పంపే రకం. = 0 సాధారణ రకాన్ని సూచిస్తుంది, = 1 సింగిల్ పంపడాన్ని సూచిస్తుంది.
రిమోట్ ఫ్లాగ్
అది రిమోట్ జెండా అయినా. = 1 రిమోట్ ఫ్లాగ్ని సూచిస్తుంది, = 0 డేటా ఫ్లాగ్ని సూచిస్తుంది.
ExternFlag
అది బాహ్య జెండా అయినా. = 1 బాహ్య జెండాను సూచిస్తుంది, = 0 ప్రామాణిక జెండాను సూచిస్తుంది.
DataLen
డేటా పొడవు(<=8) ,అంటే డేటా పొడవు.
డేటా
ప్యాకెట్ డేటా.
రిజర్వ్ చేయబడింది
సిస్టమ్ రిజర్వ్ చేయబడింది.
2.1.4 VCI_INIT_CONFIG
VCI_INIT_CONFIG నిర్మాణం CAN యొక్క ప్రారంభ కాన్ఫిగరేషన్ను నిర్వచిస్తుంది. నిర్మాణం VCI_InitCan ఫంక్షన్లో పూరించబడుతుంది.
సభ్యుడు:
అక్కోడ్
ఫిల్టర్ చేసిన అంగీకార కోడ్ని స్వీకరించండి.
అక్మాస్క్
ఫిల్టర్ మాస్క్ని స్వీకరించండి.
రిజర్వ్ చేయబడింది
రిజర్వ్ చేయబడింది.
ఫిల్టర్ చేయండి
వడపోత పద్ధతి, 0-3 పరిధిని సెట్ చేయడానికి అనుమతిస్తుంది, వివరాల కోసం ఫిల్టర్ మోడ్ పట్టికలోని విభాగం 2.2.3ని చూడండి.
సమయం 0
SJA1000 బాడ్ రేటు పరామితి, టైమింగ్0 (BTR0) .
సమయం 1
SJA1000 బాడ్ రేటు పరామితి, టైమింగ్1 (BTR1) .
మోడ్
ఆపరేటింగ్ మోడ్, 0 = సాధారణ ఆపరేషన్, 1 = వినడానికి-మాత్రమే మోడ్, 2 = ఆకస్మిక ప్రవేశం మరియు పరీక్ష మోడ్ పంపడం.
వ్యాఖ్యలు:
ఫిల్టర్ సెట్టింగ్ల గురించి దయచేసి చూడండి: Annex II: CANparameter సెటప్ సూచనలు.
బాడ్ రేటును సెట్ చేయడానికి CAN టైమింగ్0 మరియు టైమింగ్1 ఉపయోగించబడతాయి, ఈ రెండు పారామితులు ప్రారంభ సమయంలో మాత్రమే ఉపయోగించబడతాయి.tage.
సాంప్రదాయ బాడ్ సూచన పట్టిక:
CAN బాడ్ రేటు | టైమింగ్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 |
- Baud రేటు పరామితిని సెట్ చేయడానికి వినియోగదారులు SJA1000 (16MHz)ని మాత్రమే అనుసరించాలి.
- అడాప్టర్ తాత్కాలికంగా 10K కంటే తక్కువ Baud రేటుకు మద్దతు ఇవ్వదు.
2.2 ఫంక్షన్ వివరణ
2.2.1 VCI_OpenDevice
ఈ ఫంక్షన్ పరికరాలను కనెక్ట్ చేయడానికి ఉపయోగించబడుతుంది.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD రిజర్వ్ చేయబడింది);
పారామితులు:
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 నుండి ఆరోహణ క్రమంలో ఉంటాయి.
CANఇండెక్స్
CAN ఛానెల్ సూచిక, అంటే ఒకే ఒక CAN ఛానెల్ ఉన్నప్పుడు, సూచిక సంఖ్య 0, రెండు ఉంటే, సూచిక సంఖ్య 0 లేదా 1 కావచ్చు.
pInitConfig
ప్రారంభ పరామితి నిర్మాణం. సభ్యుల పారామీటర్ జాబితా:
సభ్యుడు | ఫంక్షనల్ వివరణ |
pInitConfig->AccCode | ఏ ప్యాకెట్లను ఆమోదించవచ్చో నిర్ణయించడానికి AcCode మరియు AccMask కలిసి పని చేయవచ్చు. ఈ రెండు రిజిస్టర్లు IDని ఎడమవైపు సమలేఖనం చేయడానికి ఉపయోగించబడతాయి, అంటే, AcCode యొక్క అత్యధిక బిట్ (Bit31) మరియు AccMask ID విలువ యొక్క అత్యధిక బిట్తో సమలేఖనం చేయబడింది. |
pInitConfig->AccMask | ID అమరిక గురించి అనుబంధాలను చూడండి: Annex I: ID అమరిక వివరాలు. ఉదా: మీరు AcCode విలువను 0x24600000గా సెట్ చేస్తే (అంటే 0x123 ఎడమవైపుకి 21 బిట్ల ద్వారా మార్చబడుతుంది), AccMask విలువ 0x00000000కి సెట్ చేయబడింది, ఆపై CAN మెసేజ్ ఫ్రేమ్ ID 0x123 ఉన్న ప్యాకెట్లు మాత్రమే ఆమోదించబడతాయి (0x00000000 యొక్క AccMask విలువ అన్ని బిట్లు సంబంధితంగా ఉన్నాయని సూచిస్తుంది |
బిట్స్). AcCode విలువ 0x24600000కి సెట్ చేయబడితే, AccMask విలువ 0x600000కి సెట్ చేయబడుతుంది (0x03 ఎడమవైపుకి 21 బిట్ల ద్వారా మార్చబడుతుంది), ఆపై CAN సందేశ ఫ్రేమ్ ID 0x120 ~ 0x123 ఉన్న ప్యాకెట్లు మాత్రమే ఆమోదించబడతాయి (AccMask విలువ 0x600000 అనేది bit0 ~ bit1 కాకుండా ఇతర బిట్లు (bit2 ~ bit10) సంబంధిత బిట్ అని సూచిస్తుంది). గమనిక: ఈ ఫిల్టర్ సెట్టింగ్ ఉదాamples ప్రామాణిక ఫ్రేమ్కి, ఉదాహరణకుample, అధిక 11-బిట్ చెల్లుబాటు అయ్యే బిట్; పొడిగించిన ఫ్రేమ్ విషయంలో, ఆపై చెల్లుబాటు అయ్యే ID 29-బిట్. AccCode మరియు AccMask అధిక 29-బిట్ని చెల్లుబాటు అయ్యే బిట్గా సెట్ చేసాయి! |
|
pInitConfig->రిజర్వ్ చేయబడింది | రిజర్వ్ చేయబడింది |
pInitConfig-> ఫిల్టర్ | ఫిల్టరింగ్ మోడ్ సెట్టింగ్లు దయచేసి ఫిల్టర్ మోడ్ పట్టికలోని విభాగాన్ని చూడండి. |
pInitConfig->Timing0 | బాడ్ రేటుT0 సెట్టింగ్ |
pInitConfig->Timing1 | బాడ్ రేటుT1 సెట్టింగ్ |
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);
పారామితులు:
DevType
పరికరం రకం. చూడండి: అడాప్టర్ పరికరం రకం నిర్వచనం.
DevIndex
పరికర సూచిక, ఉదాహరణకుample, ఒకే ఒక 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 నుండి ఆరోహణ క్రమంలో ఉంటాయి.
CANఇండెక్స్
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 నుండి ఆరోహణ క్రమంలో ఉంటాయి.
CANఇండెక్స్
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 నుండి ఆరోహణ క్రమంలో ఉంటాయి.
CANఇండెక్స్
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 నుండి ఆరోహణ క్రమంలో ఉంటాయి.
CANఇండెక్స్
CAN ఛానెల్ సూచిక.
రిటర్న్స్:
రిటర్న్ విలువ = 1, అంటే ఆపరేషన్ విజయవంతమైంది; = 0 ఆపరేషన్ విఫలమైందని సూచిస్తుంది; = -1 పరికరం ఉనికిలో లేదని సూచిస్తుంది.
2.2.9 VCI_ట్రాన్స్మిట్
ఈ ఫంక్షన్ CAN సందేశ ఫ్రేమ్ని పంపడానికి ఉపయోగించబడుతుంది.
DWORD __stdcall VCI_Transmit(DWORD పరికర రకం,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD పొడవు);
పారామితులు:
DevType
పరికరం రకం. చూడండి: అడాప్టర్ పరికరం రకం నిర్వచనం.
DevIndex
పరికర సూచిక, ఉదాహరణకుample, ఒకే ఒక USB-CAN అడాప్టర్ ఉన్నప్పుడు, సూచిక సంఖ్య 0, బహుళ USB-CAN అడాప్టర్లు ఉన్నప్పుడు, ఇండెక్స్ సంఖ్యలు 0 నుండి ఆరోహణ క్రమంలో ఉంటాయి.
CANఇండెక్స్
CAN ఛానెల్ సూచిక. pSend
పంపవలసిన డేటా ఫ్రేమ్ శ్రేణుల మొదటి చిరునామా.
పొడవు
పంపవలసిన డేటా ఫ్రేమ్ల సంఖ్య, గరిష్ట సంఖ్య 1000, అధిక వేగంతో సిఫార్సు చేయబడిన విలువ 48.
రిటర్న్స్:
ఇప్పటికే పంపిన ఫ్రేమ్ల వాస్తవ సంఖ్యను తిరిగి ఇవ్వండి, రిటర్న్ విలువ = -1 పరికరం లోపాన్ని సూచిస్తుంది.
ఉదా
2.2.10 VCI_స్వీకరించండి
రిసెప్షన్ను అభ్యర్థించడానికి ఈ ఫంక్షన్ ఉపయోగించబడుతుంది.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG లెన్, INT వేచి ఉండే సమయం);
పారామితులు:
DevType
పరికరం రకం. చూడండి: అడాప్టర్ పరికరం రకం నిర్వచనం.
DevIndex
పరికర సూచిక, ఉదాహరణకుample, ఒకే ఒక USB-CAN అడాప్టర్ ఉన్నప్పుడు, సూచిక సంఖ్య 0, బహుళ USB-CAN అడాప్టర్లు ఉన్నప్పుడు, ఇండెక్స్ సంఖ్యలు 0 నుండి ఆరోహణ క్రమంలో ఉంటాయి.
CANఇండెక్స్
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 రిజర్వ్ చేయబడింది
పారామితులు:
DevType
పరికరం రకం. చూడండి: అడాప్టర్ పరికరం రకం నిర్వచనం.
DevIndex
పరికర సూచిక, ఉదాహరణకుample, ఒకే ఒక USB-CAN అడాప్టర్ ఉన్నప్పుడు, సూచిక సంఖ్య 0, బహుళ USB-CAN అడాప్టర్లు ఉన్నప్పుడు, ఇండెక్స్ సంఖ్యలు 0 నుండి ఆరోహణ క్రమంలో ఉంటాయి.
రిజర్వ్డ్ రిజర్వ్డ్.
రిటర్న్స్:
రిటర్న్ విలువ = 1, అంటే ఆపరేషన్ విజయవంతమైంది; = 0 ఆపరేషన్ విఫలమైందని సూచిస్తుంది; = -1 పరికరం ఉనికిలో లేదని సూచిస్తుంది.
bRel = VCI_UsbDeviceReset(nDeviceType, Independence, 0);
3.1.2 VCI_FindUsbDevice2
ఒకే PC బహుళ USB-CANని ఉపయోగిస్తున్నప్పుడు, వినియోగదారు ప్రస్తుత పరికరాన్ని కనుగొనడానికి ఈ ఫంక్షన్ను ఉపయోగించవచ్చు.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO 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, బస్ ఇంటర్ ఫేస్ అడాప్టర్ ఇంటర్ఫేస్ ఫంక్షన్ లైబ్రరీ, ఇంటర్ఫేస్ ఫంక్షన్ లైబ్రరీ, ఫంక్షన్ లైబ్రరీ |