USB-CAN ויטאָבוס צובינד
אַדאַפּטער צובינד פֿונקציע
ביבליאָטעק באַניצער ינסטרוקטיאָן
טייל איין איבערVIEW
אויב דער באַניצער נאָר נוצן USB-CAN ויטאָבוס צובינד אַדאַפּטער צו גיין אויף CAN ויטאָבוס קאָמוניקאַציע פּרובירן, און ער קענען גלייך נוצן די סאַפּלייד וסב-CAN טול ווייכווארג פֿאַר שיקט און ריסיווינג דאַטן פון די פּראָבע.
אויב דער באַניצער בדעה צו שרייַבן ווייכווארג פֿאַר זיין אייגענע פּראָדוקטן. ביטע לייענען די פאלגענדע ינסטראַקשאַנז און נעמען רעפֿערענץ פֿון די סampדי קאָד וואָס מיר צושטעלן:
⑴ C++ בילדער ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ לאַבווינדאָוז/CVI ⑼מאַטלאַב ⑽QT ⑾Python/Python-can.
אַנטוויקלען ביבליאָטעק file :ControlCAN.lib, ControlCAN.DLL
VC ווערסיע פֿונקציע דעקלאַראַציע file :ControlCAN.h
ווב ווערסיע פֿונקציע דעקלאַראַציע 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 רעפּראַזענץ וו1.00.
fw_Version
ייַזנוואַרג ווערסיע נומער, העקסאַדעסימאַל נאָוטיישאַן. למשל 0x0100 רעפּראַזענץ וו1.00.
זײַט 2
dr_Version
דרייווער ווערסיע נומער, העקסאַדעסימאַל נאָוטיישאַן. למשל 0x0100 רעפּראַזענץ וו1.00.
אין_ווערסיאָן
צובינד ביבליאָטעק ווערסיע נומער, העקסאַדעסימאַל נאָוטיישאַן. למשל 0x0100 רעפּראַזענץ וו1.00.
irq_Num
סיסטעם רעזערווירט.
קענען_נום
רעפּראַזענץ די גאַנץ נומער פון CAN קאַנאַל.
str_Serial_Num
די סיריאַל נומער פון דעם ברעט קאָרט.
str_hw_טיפּ
האַרדוואַרע טיפּ, אַזאַ ווי "USBCAN V1.00" (באַמערקונג: כולל שטריקל טערמינאַטאָר '\0').
רעזערווירט
סיסטעם רעזערווירט.
2.1.3. VCI_CAN_OBJ
אין די פאַנגקשאַנז VCI_Transmit און VCI_Receive, VCI_CAN_OBJ סטרוקטור איז געניצט צו טראַנסמיסיע CAN אָנזאָג ראַם.
מיטגליד:
ID
אָנזאָג ידענטיפיער. דירעקט שייַן פֿאָרמאַט, רעכט-אַליינד, ביטע אָפּשיקן צו: Annex One: ID אַליינמאַנט דעטאַילס.
TimeStamp
באקומען די סטamp אינפֿאָרמאַציע פון די צייט ראַם, אָנהייב טיימינג ווען די קענען קאַנטראָולער איז ינישאַלייזד, די אַפּאַראַט איז 0. 1מס.
TimeFlag
אין טערמינען פון צי צו נוצן די צייַט סטamp, 1 איז די עפעקטיוו TimeStamp. TimeFlag און TimeStamp זענען בלויז מינינגפאַל ווען די ראַם איז באקומען.
SendType
שיקט טיפּ. = 0 ינדיקייץ נאָרמאַל טיפּ, = 1 ינדיקייץ איין שיקן.
RemoteFlag
צי עס איז אַ ווייַט פאָן. = 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 (בטר0) .
טיימינג1
SJA1000 באַוד קורס פּאַראַמעטער, טיימינג1 (בטר1) .
מאָדע
אַפּערייטינג מאָדע, 0 = נאָרמאַל אָפּעראַציע, 1 = הערן-בלויז מאָדע, 2 = ספּאַנטייניאַס אַרייַנטרעטן און שיקן פּרובירן מאָדע.
באמערקונגען:
וועגן די פילטער סעטטינגס ביטע אָפּשיקן צו: אַנעקס וו: קאַנפּאַראַמעטער סעטאַפּ ינסטראַקשאַנז.
CAN Timing0 און Timing1 זענען גענוצט צו שטעלן באַוד קורס, די צוויי פּאַראַמעטערס זענען בלויז געניצט אין די יניטיאַליזאַטיאָן.tage.
קאַנווענשאַנאַל באַוד רעפֿערענץ טיש:
קענען באַוד קורס | צייט 0 (BTR0) | צייט 1 (BTR1) |
10 ק בפּס | 0x31 | 0 קס 1 ק |
20 ק בפּס | 0x18 | 0 קס 1 ק |
40 ק בפּס | 0x87 | 0xFF |
50 ק בפּס | 0x09 | 0 קס 1 ק |
80 ק בפּס | 0x83 | 0xFF |
100 ק בפּס | 0x04 | 0 קס 1 ק |
125 ק בפּס | 0x03 | 0 קס 1 ק |
200 ק בפּס | 0x81 | 0xFA |
250 ק בפּס | 0x01 | 0 קס 1 ק |
400 ק בפּס | 0x80 | 0xFA |
500 ק בפּס | 0x00 | 0 קס 1 ק |
666 ק בפּס | 0x80 | 0xB6 |
800 ק בפּס | 0x00 | 0x16 |
1000 ק בפּס | 0x00 | 0x14 |
33.33 Kbps | 0x09 | 0x6F |
66.66 Kbps | 0x04 | 0x6F |
83.33 Kbps | 0x03 | 0x6F |
- יוזערז נאָר דאַרפֿן צו נאָכפאָלגן SJA1000 (16MHz) צו שטעלן די באַוד קורס פּאַראַמעטער.
- דער אַדאַפּטער שטיצט נישט טעמפּערעראַלי באַוד קורס אונטער 10K.
2.2. פונקציע באַשרייַבונג
2.2.1. VCI_OpenDevice
דעם פֿונקציע איז געניצט צו פאַרבינדן דעוויסעס.
DWORD __stdcall VCI_OpenDevice (DWORD DevType, DWORD DevIndex, DWORD Reserved);
פּאַראַמעטערס:
DevType
מיטל טיפּ. זען: אַדאַפּטער מיטל טיפּ דעפֿיניציע.
דעווינדעקס
מיטל אינדעקס, למשלampאויב עס איז בלויז איין USB-CAN אַדאַפּטער, די אינדעקס נומער איז 0, ווען עס זענען קייפל וסב-CAN אַדאַפּטערז, די אינדעקס נומערן אין אַ אַסענדינג סדר סטאַרטינג פון 0.
רעזערווירט
ריטענשאַן פּאַראַמעטערס, פּלאָמבירן אין 0.
קערט:
צוריקקומען ווערט = 1, וואָס מיטל אַז די אָפּעראַציע איז געראָטן; = 0 ינדיקייץ אַז די אָפּעראַציע איז ניט אַנדערש; = -1 ינדיקייץ אַז די מיטל טוט נישט עקסיסטירן.
2.2.2. VCI_CloseDevice
דעם פֿונקציע איז געניצט צו פאַרמאַכן די קשר.
DWORD __stdcall VCI_CloseDevice (DWORD DevType, DWORD DevIndex);
פּאַראַמעטערס:
DevType
מיטל טיפּ. זען: אַדאַפּטער מיטל טיפּ דעפֿיניציע.
דעווינדעקס
מיטל אינדעקס, למשלampאויב עס איז בלויז איין USB-CAN אַדאַפּטער, די אינדעקס נומער איז 0, ווען עס זענען קייפל וסב-CAN אַדאַפּטערז, די אינדעקס נומערן אין אַ אַסענדינג סדר סטאַרטינג פון 0.
קערט:
צוריקקומען ווערט = 1, וואָס מיטל אַז די אָפּעראַציע איז געראָטן; = 0 ינדיקייץ אַז די אָפּעראַציע איז ניט אַנדערש; = -1 ינדיקייץ אַז די מיטל טוט נישט עקסיסטירן.
2.2.3. VCI_InitCan
די פֿונקציע איז גענוצט צו ינישאַלייז די ספּעסיפיעד CAN.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVC_INIT_CONFIG פּיניטקאָנפיג);
פּאַראַמעטערס:
DevType
מיטל טיפּ. זען: אַדאַפּטער מיטל טיפּ דעפֿיניציע.
דעווינדעקס
מיטל אינדעקס, למשלampאויב עס איז בלויז איין USB-CAN אַדאַפּטער, די אינדעקס נומער איז 0, ווען עס זענען קייפל וסב-CAN אַדאַפּטערז, די אינדעקס נומערן אין אַ אַסענדינג סדר סטאַרטינג פון 0.
CANIndex
קענען קאַנאַל אינדעקס, אַזאַ ווי ווען עס איז בלויז איין קענען קאַנאַל, דער אינדעקס נומער איז 0, אויב עס זענען צוויי, דער אינדעקס נומער קענען זיין 0 אָדער 1.
pInitConfig
יניטיאַליזאַטיאָן פּאַראַמעטער סטרוקטור. פּאַראַמעטער רשימה פון מיטגלידער:
מיטגליד | פאַנגקשאַנאַל באַשרייַבונג |
pInitConfig-> אַקקקאָדע | AccCode און AccMask קענען אַרבעטן צוזאַמען צו באַשליסן וואָס פּאַקיץ קענען זיין אנגענומען. די צוויי רעדזשיסטערז זענען געניצט צו שטעלן די שייַן לינקס-אַליינד, דאָס איז, די העכסטן ביסל (Bit31) פון די אַקקקאָדע און אַקקמאַסק איז אַליינד מיט די העכסטן ביסל פון די שייַן ווערט. |
pInitConfig-> אַקקמאַסק | וועגן שייַן אַליינמאַנט אָפּשיקן אַנעקסיז: אַנעקס איך: ID אַליינמאַנט פרטים. למשל: אויב איר שטעלן די ווערט פון די אַקקקאָדע ווי 0x24600000 (ד"ה 0x123 איז שיפטיד צו די לינקס דורך 21 ביץ), אַקקמאַסק ווערט איז באַשטימט צו 0x00000000, און בלויז די פּאַקיץ מיט CAN אָנזאָג ראַם שייַן איז 0x123 קענען זיין אנגענומען (אַקמאַסק ווערט פון 0x00000000 ינדיקייץ אַז אַלע ביטן זענען באַטייַטיק |
ביטן). אויב די אַקקקאָדע ווערט איז באַשטימט צו 0x24600000, אַקקמאַסק ווערט איז באַשטימט צו 0x600000 (0x03 איז שיפטיד צו די לינקס דורך 21 ביץ), און בלויז די פּאַקיץ מיט די CAN אָנזאָג ראַם שייַן איז 0x120 ~ 0x123 קענען זיין אנגענומען (אַקקמאַסק ווערט 0x600000 ינדיקייץ אַז באַזונדער פון ביט0 ~ ביט 1 אנדערע ביטן (ביט 2 ~ ביט 10) זענען באַטייַטיק ביסל). באַמערקונג: דעם פילטער באַשטעטיקן עקסampליי צו די נאָרמאַל ראַם, למשלample, הויך 11-ביסל איז די גילטיק ביסל; אין דעם פאַל פון די עקסטענדעד ראַם, און די גילטיק שייַן איז 29-ביסל. אַקקקאָדע און אַקקמאַסק שטעלן הויך 29-ביסל ווי די גילטיק ביסל! |
|
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 פּינפאָ);
פּאַראַמעטערס:
DevType
מיטל טיפּ. זען: אַדאַפּטער מיטל טיפּ דעפֿיניציע.
דעווינדעקס
מיטל אינדעקס, למשלampאויב עס איז בלויז איין USB-CAN אַדאַפּטער, די אינדעקס נומער איז 0, ווען עס זענען קייפל וסב-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
מיטל טיפּ. זען: אַדאַפּטער מיטל טיפּ דעפֿיניציע.
דעווינדעקס
מיטל אינדעקס, למשלampאויב עס איז בלויז איין USB-CAN אַדאַפּטער, די אינדעקס נומער איז 0, ווען עס זענען קייפל וסב-CAN אַדאַפּטערז, די אינדעקס נומערן אין אַ אַסענדינג סדר סטאַרטינג פון 0.
CANIndex
קענען קאַנאַל אינדעקס.
קערט:
צוריקקומען ראָמען וואָס זענען נישט געלייענט נאָך.
למשל
# אַרייַננעמען "ControlCan.h" int ret = VCI_GetReceiveNum (2,0,0);
2.2.6. VCI_ClearBuffer
די פֿונקציע איז געניצט צו ויסמעקן די באַקומען און שיקן באַפער פון די דעזיגנייטיד קאַנאַל ספּעסיפיעד דורך
וסב-CAN אַדאַפּטער.
DWORD __stdcall VCI_ClearBuffer (DWORD DevType, DWORD DevIndex, DWORD CANIndex);
פּאַראַמעטערס:
DevType
מיטל טיפּ. זען: אַדאַפּטער מיטל טיפּ דעפֿיניציע.
דעווינדעקס
מיטל אינדעקס, למשלampאויב עס איז בלויז איין USB-CAN אַדאַפּטער, די אינדעקס נומער איז 0, ווען עס זענען קייפל וסב-CAN אַדאַפּטערז, די אינדעקס נומערן אין אַ אַסענדינג סדר סטאַרטינג פון 0.
CANIndex
קענען קאַנאַל אינדעקס.
קערט:
צוריקקומען ווערט = 1, וואָס מיטל אַז די אָפּעראַציע איז געראָטן; = 0 ינדיקייץ אַז די אָפּעראַציע איז ניט אַנדערש; = -1 ינדיקייץ אַז די מיטל טוט נישט עקסיסטירן.
2.2.7. VCI_StartCAN
די פֿונקציע איז גענוצט צו אָנהייבן די CAN קאָנטראָללער און די ינערלעך אָפּטראָג אָפּטראָג פֿונקציע פון די אַדאַפּטער.
DWORD __stdcall VCI_StartCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
פּאַראַמעטערס:
DevType
מיטל טיפּ. זען: אַדאַפּטער מיטל טיפּ דעפֿיניציע.
דעווינדעקס
מיטל אינדעקס, למשלampאויב עס איז בלויז איין USB-CAN אַדאַפּטער, די אינדעקס נומער איז 0, ווען עס זענען קייפל וסב-CAN אַדאַפּטערז, די אינדעקס נומערן אין אַ אַסענדינג סדר סטאַרטינג פון 0.
CANIndex
קענען קאַנאַל אינדעקס.
קערט:
צוריקקומען ווערט = 1, וואָס מיטל אַז די אָפּעראַציע איז געראָטן; = 0 ינדיקייץ אַז די אָפּעראַציע איז ניט אַנדערש; = -1 ינדיקייץ אַז די מיטל טוט נישט עקסיסטירן.
2.2.8. VCI_ResetCAN
די פֿונקציע איז געניצט צו באַשטעטיק די CAN קאָנטראָללער.
DWORD __stdcall VCI_ResetCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
פּאַראַמעטערס:
DevType
מיטל טיפּ. זען: אַדאַפּטער מיטל טיפּ דעפֿיניציע.
דעווינדעקס
מיטל אינדעקס, למשלampאויב עס איז בלויז איין USB-CAN אַדאַפּטער, די אינדעקס נומער איז 0, ווען עס זענען קייפל וסב-CAN אַדאַפּטערז, די אינדעקס נומערן אין אַ אַסענדינג סדר סטאַרטינג פון 0.
CANIndex
קענען קאַנאַל אינדעקס.
קערט:
צוריקקומען ווערט = 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
מיטל טיפּ. זען: אַדאַפּטער מיטל טיפּ דעפֿיניציע.
דעווינדעקס
מיטל אינדעקס, למשלampאויב עס איז בלויז איין USB-CAN אַדאַפּטער, די אינדעקס נומער איז 0, ווען עס זענען קייפל וסב-CAN אַדאַפּטערז, די אינדעקס נומערן אין אַ אַסענדינג סדר סטאַרטינג פון 0.
CANIndex
קענען קאַנאַל אינדעקס. פּסענד
דער ערשטער אַדרעס פון די דאַטן ראַם ערייז וואָס מוזן זיין געשיקט.
לענג
די נומער פון דאַטן ראָמען וואָס זאָל זיין געשיקט, די מאַקסימום נומער איז 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
מיטל טיפּ. זען: אַדאַפּטער מיטל טיפּ דעפֿיניציע.
דעווינדעקס
מיטל אינדעקס, למשלampאויב עס איז בלויז איין USB-CAN אַדאַפּטער, די אינדעקס נומער איז 0, ווען עס זענען קייפל וסב-CAN אַדאַפּטערז, די אינדעקס נומערן אין אַ אַסענדינג סדר סטאַרטינג פון 0.
CANIndex
קענען קאַנאַל אינדעקס.
באַקומען
צו באַקומען די ערשטער שטעלן טייַטל פון די דאַטן ראָמען.
לן
די מענגע לענג פון די דאַטן ראַם מוזן זיין מער ווי 2500 צו צוריקקומען נאָרמאַל אָנזאָג.
אַנדערש, די צוריקקומען לענג וועט זיין נול צי דער אָנזאָג איז באקומען אָדער נישט. דער אַדאַפּטער שטעלן אַ 2000-ראַם באַפער פֿאַר יעדער קאַנאַל. באַזירט אויף זיין אייגענע סיסטעם און ארבעטן סוויווע, דער באַניצער קענען קלייַבן אַ צונעמען מענגע לענג פון 2500.
וואַרטן צייט רעזערווירט.
קערט:
צוריקקומען די נומער פון ראָמען וואָס אַקשלי האָבן שוין לייענען, -1 ינדיקייץ מיטל ערראָרס.
למשל
טייל דריי אנדערע פאַנגקשאַנז און דאַטן סטרוקטור באַשרייַבונג
דער קאַפּיטל באשרייבט אנדערע דאַטן טייפּס און פאַנגקשאַנז פון די ינקאַמפּאַטאַבאַל ZLG צובינד ביבליאָטעק קאַנטיינד אין די וסב-CAN אַדאַפּטער צובינד ביבליאָטעק ControlCAN.dll. ביטע טו
ניט רופן די פאַנגקשאַנז אויב איר נוצן אַ קאַמפּאַטאַבאַל ZLG מאָדעל פֿאַר צווייטיק אַנטוויקלונג, אַזוי נישט צו ווירקן קאַמפּאַטאַבילאַטי.
3.1 פונקציע באַשרייַבונג
3.1.1. VCI_UsbDeviceReset
באַשטעטיק וסב-CAN אַדאַפּטער, איר דאַרפֿן צו עפֿענען די מיטל נאָך באַשטעטיק מיט VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset (DWORD DevType, DWORD DevIndex, DWORD רעזערווירט
פּאַראַמעטערס:
DevType
מיטל טיפּ. זען: אַדאַפּטער מיטל טיפּ דעפֿיניציע.
דעווינדעקס
מיטל אינדעקס, למשלampאויב עס איז בלויז איין USB-CAN אַדאַפּטער, די אינדעקס נומער איז 0, ווען עס זענען קייפל וסב-CAN אַדאַפּטערז, די אינדעקס נומערן אין אַ אַסענדינג סדר סטאַרטינג פון 0.
רעזערווירט רעזערווירט.
קערט:
צוריקקומען ווערט = 1, וואָס מיטל אַז די אָפּעראַציע איז געראָטן; = 0 ינדיקייץ אַז די אָפּעראַציע איז ניט אַנדערש; = -1 ינדיקייץ אַז די מיטל טוט נישט עקסיסטירן.
bRel = VCI_UsbDeviceReset (ndDeviceType, ינדעפּענדענסע, 0);
3.1.2. VCI_FindUsbDevice2
ווען דער זעלביקער פּיסי ניצן קייפל וסב-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 ויטאָבוס ינטער פּנים אַדאַפּטער צובינד פונקציע ביבליאָטעק, וסב-CAN, ויטאָבוס ינטער פּנים אַדאַפּטער צובינד פונקציע ביבליאָטעק, צובינד פונקציע ביבליאָטעק, פונקציע ביבליאָטעק |