USB-CAN ബസ് ഇന്റർഫേസ്
അഡാപ്റ്റർ ഇന്റർഫേസ് പ്രവർത്തനം
ലൈബ്രറി ഉപയോക്തൃ നിർദ്ദേശം
ഭാഗം ഒന്ന് ഓവർVIEW
CAN ബസ് കമ്മ്യൂണിക്കേഷൻ ടെസ്റ്റിന് പോകാൻ ഉപയോക്താവിന് USB-CAN ബസ് ഇന്റർഫേസ് അഡാപ്റ്റർ ഉപയോഗിക്കുകയാണെങ്കിൽ, ടെസ്റ്റിന്റെ ഡാറ്റ അയയ്ക്കുന്നതിനും സ്വീകരിക്കുന്നതിനും അയാൾക്ക് വിതരണം ചെയ്ത USB-CAN ടൂൾ സോഫ്റ്റ്വെയർ നേരിട്ട് ഉപയോഗിക്കാനാകും.
ഉപയോക്താവ് സ്വന്തം ഉൽപ്പന്നങ്ങൾക്കായി സോഫ്റ്റ്വെയർ പ്രോഗ്രാം എഴുതാൻ ഉദ്ദേശിക്കുന്നുവെങ്കിൽ. താഴെ പറയുന്ന നിർദ്ദേശങ്ങൾ ശ്രദ്ധാപൂർവ്വം വായിച്ച് അവലംബം എടുക്കുകampഞങ്ങൾ നൽകുന്ന le കോഡ്:
⑴ സി++ബിൽഡർ ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹ഡെൽഫി ⑺ലാബ്VIEW ⑻ ലാബ്വിൻഡോസ്/സിവിഐ ⑼മാറ്റ്ലാബ് ⑽ക്യുടി ⑾പൈത്തൺ/പൈത്തൺ-കാൻ.
ലൈബ്രറി വികസിപ്പിക്കുക file :ControlCAN.lib, ControlCAN.DLL
വിസി പതിപ്പ് പ്രവർത്തന പ്രഖ്യാപനം 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_Version
ഹാർഡ്വെയർ പതിപ്പ് നമ്പർ, ഹെക്സാഡെസിമൽ നൊട്ടേഷൻ. ഉദാ 0x0100 V1.00 പ്രതിനിധീകരിക്കുന്നു.
പേജ് 2
dr_Version
ഡ്രൈവർ പതിപ്പ് നമ്പർ, ഹെക്സാഡെസിമൽ നൊട്ടേഷൻ. ഉദാ 0x0100 V1.00 പ്രതിനിധീകരിക്കുന്നു.
ഇൻ_പതിപ്പ്
ഇന്റർഫേസ് ലൈബ്രറി പതിപ്പ് നമ്പർ, ഹെക്സാഡെസിമൽ നൊട്ടേഷൻ. ഉദാ 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 എന്നീ ഫംഗ്ഷനുകളിൽ, CAN സന്ദേശ ഫ്രെയിം ട്രാൻസ്മിറ്റ് ചെയ്യാൻ VCI_CAN_OBJ ഘടന ഉപയോഗിക്കുന്നു.
അംഗം:
ID
സന്ദേശ ഐഡന്റിഫയർ. ഡയറക്ട് ഐഡി ഫോർമാറ്റ്, വലത് വിന്യസിച്ചിരിക്കുന്നത്, ദയവായി റഫർ ചെയ്യുക: അനെക്സ് ഒന്ന്: ഐഡി വിന്യാസ വിശദാംശങ്ങൾ.
TimeStamp
സെന്റ് സ്വീകരിക്കുന്നുamp സമയ ഫ്രെയിമിന്റെ വിവരങ്ങൾ, CAN കൺട്രോളർ ആരംഭിക്കുമ്പോൾ സമയം ആരംഭിക്കുക, യൂണിറ്റ് 0. 1ms ആണ്.
ടൈംഫ്ലാഗ്
സമയം സെന്റ് ഉപയോഗിക്കണമോ എന്ന കാര്യത്തിൽamp, 1 ഫലവത്തായ TimeSt ആണ്amp. ടൈംഫ്ലാഗും ടൈംസ്റ്റുംamp ഫ്രെയിം ലഭിക്കുമ്പോൾ മാത്രമേ അർത്ഥമുള്ളൂ.
അയയ്ക്കുക
അയയ്ക്കുന്ന തരം. = 0 എന്നത് സാധാരണ തരത്തെ സൂചിപ്പിക്കുന്നു, = 1 ഒറ്റ അയക്കലിനെ സൂചിപ്പിക്കുന്നു.
റിമോട്ട് ഫ്ലാഗ്
അത് ഒരു റിമോട്ട് ഫ്ലാഗ് ആണെങ്കിലും. = 1 റിമോട്ട് ഫ്ലാഗിനെ സൂചിപ്പിക്കുന്നു, = 0 ഡാറ്റ ഫ്ലാഗിനെ സൂചിപ്പിക്കുന്നു.
എക്സ്റ്റേൺ ഫ്ലാഗ്
അത് ഒരു ബാഹ്യ പതാകയാണെങ്കിലും. = 1 ബാഹ്യ പതാകയെ സൂചിപ്പിക്കുന്നു, = 0 സാധാരണ പതാകയെ സൂചിപ്പിക്കുന്നു.
ഡാറ്റലെൻ
ഡാറ്റ ദൈർഘ്യം(<=8) ,അതായത്, ഡാറ്റയുടെ ദൈർഘ്യം.
ഡാറ്റ
പാക്കറ്റ് ഡാറ്റ.
സംവരണം
സിസ്റ്റം റിസർവ് ചെയ്തു.
2.1.4. VCI_INIT_CONFIG
VCI_INIT_CONFIG ഘടന CAN-ന്റെ ഇനീഷ്യലൈസേഷൻ കോൺഫിഗറേഷൻ നിർവചിക്കുന്നു. VCI_InitCan ഫംഗ്ഷനിൽ ഘടന പൂരിപ്പിക്കും.
അംഗം:
അക്കോഡ്
ഫിൽട്ടർ ചെയ്ത സ്വീകാര്യത കോഡ് സ്വീകരിക്കുക.
അക് മാസ്ക്
ഫിൽട്ടർ മാസ്ക് സ്വീകരിക്കുക.
സംവരണം
സംവരണം ചെയ്തു.
ഫിൽട്ടർ ചെയ്യുക
ഫിൽട്ടറിംഗ് രീതി, ശ്രേണി 0-3 ക്രമീകരിക്കാൻ അനുവദിക്കുന്നു, വിശദാംശങ്ങൾക്ക് ഫിൽട്ടർ മോഡ് പട്ടികയുടെ വിഭാഗം 2.2.3 കാണുക.
സമയം0
SJA1000 Baud റേറ്റ് പാരാമീറ്റർ, Timing0 (BTR0) .
സമയം1
SJA1000 Baud റേറ്റ് പാരാമീറ്റർ, Timing1 (BTR1) .
മോഡ്
ഓപ്പറേറ്റിംഗ് മോഡ്, 0 = സാധാരണ പ്രവർത്തനം, 1 = കേൾക്കാൻ മാത്രമുള്ള മോഡ്, 2 = സ്വയമേവയുള്ള പ്രവേശനവും അയയ്ക്കുന്ന ടെസ്റ്റ് മോഡും.
അഭിപ്രായങ്ങൾ:
ഫിൽട്ടർ ക്രമീകരണങ്ങളെക്കുറിച്ച് ദയവായി റഫർ ചെയ്യുക: Annex II: CANparameter സജ്ജീകരണ നിർദ്ദേശങ്ങൾ.
CAN Timing0 ഉം Timing1 ഉം ബോഡ് നിരക്ക് സജ്ജീകരിക്കാൻ ഉപയോഗിക്കുന്നു, ഈ രണ്ട് പാരാമീറ്ററുകളും ആരംഭിക്കുമ്പോൾ മാത്രമേ ഉപയോഗിക്കൂ.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 | ഏതൊക്കെ പാക്കറ്റുകൾ സ്വീകരിക്കാമെന്ന് നിർണ്ണയിക്കാൻ AccCode-നും AccMask-നും ഒരുമിച്ച് പ്രവർത്തിക്കാനാകും. ഈ രണ്ട് രജിസ്റ്ററുകളും ഐഡി ഇടത് വിന്യസിച്ച് സജ്ജീകരിക്കാൻ ഉപയോഗിക്കുന്നു, അതായത്, ആക്കോഡിന്റെ ഉയർന്ന ബിറ്റ് (ബിറ്റ് 31), ഐഡി മൂല്യത്തിന്റെ ഉയർന്ന ബിറ്റുമായി അക് മാസ്ക് വിന്യസിച്ചിരിക്കുന്നു. |
pInitConfig->AccMask | ഐഡി വിന്യാസത്തെക്കുറിച്ച് അനുബന്ധങ്ങൾ റഫർ ചെയ്യുക: അനെക്സ് I: ഐഡി അലൈൻമെന്റ് വിശദാംശങ്ങൾ. ഉദാ: നിങ്ങൾ AcCode ന്റെ മൂല്യം 0x24600000 ആയി സജ്ജീകരിച്ചാൽ (അതായത് 0x123 ഇടത്തേക്ക് 21 ബിറ്റുകൾ മാറ്റി), AccMask മൂല്യം 0x00000000 ആയി സജ്ജീകരിച്ചിരിക്കുന്നു, തുടർന്ന് CAN സന്ദേശ ഫ്രെയിം ഐഡി 0x123 ഉള്ള പാക്കറ്റുകൾ മാത്രമേ സ്വീകരിക്കാൻ കഴിയൂ (AccMask മൂല്യം 0x00000000 എല്ലാ ബിറ്റുകളും പ്രസക്തമാണെന്ന് സൂചിപ്പിക്കുന്നു |
ബിറ്റുകൾ). AccCode മൂല്യം 0x24600000 ആയി സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ, AccMask മൂല്യം 0x600000 ആയി സജ്ജീകരിച്ചിരിക്കുന്നു (0x03 ഇടത്തേക്ക് 21 ബിറ്റുകൾ മാറ്റുന്നു), തുടർന്ന് CAN സന്ദേശ ഫ്രെയിം ഐഡി 0x120 ~ 0x123 ഉള്ള പാക്കറ്റുകൾ മാത്രമേ സ്വീകരിക്കാൻ കഴിയൂ (AccMask മൂല്യം 0x600000 സൂചിപ്പിക്കുന്നത് bit0 ~ bit1 കൂടാതെ മറ്റ് ബിറ്റുകൾ (bit2 ~ bit10) പ്രസക്തമായ ബിറ്റ് ആണ്). കുറിപ്പ്: ഈ ഫിൽട്ടർ ക്രമീകരണം മുൻampലെസ് സ്റ്റാൻഡേർഡ് ഫ്രെയിമിലേക്ക്, ഉദാഹരണത്തിന്ample, ഉയർന്ന 11-ബിറ്റ് സാധുവായ ബിറ്റ് ആണ്; വിപുലീകൃത ഫ്രെയിമിന്റെ കാര്യത്തിൽ, തുടർന്ന് സാധുവായ ഐഡി 29-ബിറ്റ് ആണ്. AccCode ഉം AccMask ഉം ഉയർന്ന 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 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 ചാനൽ സൂചിക.
റിട്ടേണുകൾ:
ഇതുവരെ വായിച്ചിട്ടില്ലാത്ത ഫ്രെയിമുകൾ തിരികെ നൽകുക.
ഉദാ
#ഉൾപ്പെടുത്തുക "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_Transmit
CAN സന്ദേശ ഫ്രെയിം അയയ്ക്കാൻ ഈ ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു.
DWORD __stdcall VCI_Transmit(DWORD DeviceType,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. വിസിഐ_സ്വീകരിക്കുക
സ്വീകരണം അഭ്യർത്ഥിക്കാൻ ഈ പ്രവർത്തനം ഉപയോഗിക്കുന്നു.
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 മുതൽ ആരംഭിക്കുന്ന ആരോഹണ ക്രമത്തിൽ സൂചിക സംഖ്യകൾ.
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
ഒരേ പിസി ഒന്നിലധികം 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, ബസ് ഇന്റർ ഫേസ് അഡാപ്റ്റർ ഇന്റർഫേസ് ഫംഗ്ഷൻ ലൈബ്രറി, ഇന്റർഫേസ് ഫംഗ്ഷൻ ലൈബ്രറി, ഫംഗ്ഷൻ ലൈബ്രറി |