USB-CAN બસ ઈન્ટરફેસ
એડેપ્ટર ઈન્ટરફેસ કાર્ય
લાઇબ્રેરી વપરાશકર્તા સૂચના
પાર્ટ વન ઓવરVIEW
જો વપરાશકર્તા CAN બસ કમ્યુનિકેશન ટેસ્ટ પર જવા માટે USB-CAN બસ ઇન્ટરફેસ એડેપ્ટરનો ઉપયોગ કરે છે, અને પછી તે પરીક્ષણનો ડેટા મોકલવા અને પ્રાપ્ત કરવા માટે પૂરા પાડવામાં આવેલ USB-CAN ટૂલ સોફ્ટવેરનો સીધો ઉપયોગ કરી શકે છે.
જો વપરાશકર્તા તેના પોતાના ઉત્પાદનો માટે સોફ્ટવેર પ્રોગ્રામ લખવા માંગે છે. કૃપા કરીને નીચેની સૂચનાઓને કાળજીપૂર્વક વાંચો અને s નો સંદર્ભ લોampઅમે પ્રદાન કરીએ છીએ તે કોડ:
⑴ C++ બિલ્ડર ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹ડેલ્ફી ⑺લેબVIEW ⑻ LabWindows/CVI ⑼ Matlab ⑽QT ⑾Python/Python-can.
પુસ્તકાલય વિકસાવો 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_સંસ્કરણ
હાર્ડવેર વર્ઝન નંબર, હેક્સાડેસિમલ નોટેશન. દા.ત. 0x0100 V1.00 રજૂ કરે છે.
પૃષ્ઠ 2
dr_સંસ્કરણ
ડ્રાઈવર વર્ઝન નંબર, હેક્સાડેસિમલ નોટેશન. દા.ત. 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 ફંક્શનમાં, VCI_CAN_OBJ સ્ટ્રક્ચરનો ઉપયોગ CAN મેસેજ ફ્રેમને ટ્રાન્સમિટ કરવા માટે થાય છે.
સભ્ય:
ID
સંદેશ ઓળખકર્તા. ડાયરેક્ટ ID ફોર્મેટ, જમણે-સંરેખિત, કૃપા કરીને આનો સંદર્ભ લો: Annex One: ID સંરેખણ વિગતો.
ટાઈમસેન્ટamp
પ્રાપ્ત એસ.ટીamp સમયમર્યાદાની માહિતી, જ્યારે CAN નિયંત્રક શરૂ થાય ત્યારે સમય શરૂ કરો, એકમ 0. 1ms છે.
ટાઈમ ફ્લેગ
સમયનો ઉપયોગ કરવો કે કેમ તે સંદર્ભમાં સ્ટamp, 1 અસરકારક TimeSt છેamp. TimeFlag અને TimeStamp જ્યારે ફ્રેમ પ્રાપ્ત થાય ત્યારે જ અર્થપૂર્ણ હોય છે.
SendType
મોકલવાનો પ્રકાર. = 0 નોર્મલ પ્રકાર સૂચવે છે, = 1 સિંગલ સેન્ડ સૂચવે છે.
રીમોટ ફ્લેગ
ભલે તે દૂરસ્થ ધ્વજ હોય. = 1 દૂરસ્થ ધ્વજ સૂચવે છે, = 0 ડેટા ધ્વજ સૂચવે છે.
એક્સટર્ન ફ્લેગ
ભલે તે બાહ્ય ધ્વજ હોય. = 1 બાહ્ય ધ્વજ સૂચવે છે, = 0 પ્રમાણભૂત ધ્વજ સૂચવે છે.
ડેટાલેન
ડેટા લંબાઈ(<=8) ,એટલે કે, ડેટાની લંબાઈ.
ડેટા
પેકેટ ડેટા.
આરક્ષિત
સિસ્ટમ આરક્ષિત.
2.1.4. VCI_INIT_CONFIG
VCI_INIT_CONFIG માળખું CAN ના આરંભિક ગોઠવણીને વ્યાખ્યાયિત કરે છે. માળખું VCI_InitCan ફંક્શનમાં ભરવામાં આવશે.
સભ્ય:
AccCode
ફિલ્ટર કરેલ સ્વીકૃતિ કોડ મેળવો.
AccMask
ફિલ્ટર માસ્ક મેળવો.
આરક્ષિત
આરક્ષિત.
ફિલ્ટર કરો
ફિલ્ટરિંગ પદ્ધતિ, 0-3 શ્રેણીને સેટ કરવાની મંજૂરી આપે છે, વિગતો માટે ફિલ્ટર મોડ કોષ્ટકના વિભાગ 2.2.3 નો સંદર્ભ લો.
સમય0
SJA1000 બાઉડ રેટ પેરામીટર, ટાઇમિંગ0 (BTR0) .
સમય1
SJA1000 બાઉડ રેટ પેરામીટર, ટાઇમિંગ1 (BTR1) .
મોડ
ઓપરેટિંગ મોડ, 0 = સામાન્ય કામગીરી, 1 = ફક્ત-સાંભળવાનો મોડ, 2 = સ્વયંસ્ફુરિત પ્રવેશ અને મોકલવાનો ટેસ્ટ મોડ.
ટિપ્પણીઓ:
ફિલ્ટર સેટિંગ્સ વિશે કૃપા કરીને આનો સંદર્ભ લો: પરિશિષ્ટ II: CAN પેરામીટર સેટઅપ સૂચનાઓ.
CAN ટાઈમિંગ0 અને ટાઈમિંગ1 નો ઉપયોગ બૉડ રેટ સેટ કરવા માટે થાય છે, આ બે પેરામીટરનો ઉપયોગ ફક્ત આરંભિક સમયે થાય છે.tage.
પરંપરાગત બાઉડ સંદર્ભ કોષ્ટક:
CAN Baud દર | સમય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 |
- બાઉડ રેટ પેરામીટર સેટ કરવા માટે વપરાશકર્તાઓએ માત્ર SJA1000 (16MHz) ને અનુસરવાની જરૂર છે.
- એડેપ્ટર 10K ની નીચે અસ્થાયી રૂપે બાઉડ રેટને સપોર્ટ કરતું નથી.
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 CANIindex,
PVCI_INIT_CONFIG pInitConfig);
પરિમાણો:
DevType
ઉપકરણ પ્રકાર. જુઓ: એડેપ્ટર ઉપકરણ પ્રકાર વ્યાખ્યા.
DevIndex
ઉપકરણ અનુક્રમણિકા, ઉદાહરણ તરીકેample, જ્યારે માત્ર એક USB-CAN એડેપ્ટર હોય, ત્યારે ઇન્ડેક્સ નંબર 0 હોય છે, જ્યારે બહુવિધ USB-CAN એડેપ્ટર હોય છે, ત્યારે 0 થી શરૂ થતા ચડતા ક્રમમાં અનુક્રમણિકા નંબરો હોય છે.
CANI ઇન્ડેક્સ
CAN ચેનલ ઇન્ડેક્સ, જેમ કે જ્યારે માત્ર એક CAN ચેનલ હોય, ઇન્ડેક્સ નંબર 0 છે, જો ત્યાં બે હોય, તો ઇન્ડેક્સ નંબર 0 અથવા 1 હોઈ શકે છે.
pInitConfig
પ્રારંભિક પરિમાણ માળખું. સભ્યોની પરિમાણ યાદી:
સભ્ય | કાર્યાત્મક વર્ણન |
pInitConfig->AccCode | AccCode અને AccMask એ નક્કી કરવા માટે સાથે મળીને કામ કરી શકે છે કે કયા પેકેટો સ્વીકારી શકાય. આ બે રજિસ્ટરનો ઉપયોગ ID ને ડાબે સંરેખિત સેટ કરવા માટે થાય છે, એટલે કે, AccCode અને AccMaskનો સૌથી વધુ બીટ (Bit31) ID મૂલ્યના ઉચ્ચતમ બિટ સાથે ગોઠવાયેલ છે. |
pInitConfig->AccMask | ID સંરેખણ વિશે સંદર્ભિત જોડાણો: પરિશિષ્ટ I: ID સંરેખણ વિગતો. દા.ત.: જો તમે 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-બીટ છે. AccCode અને AccMask એ માન્ય બીટ તરીકે ઉચ્ચ 29-બીટ સેટ કર્યું છે! |
|
pInitConfig->આરક્ષિત | આરક્ષિત |
pInitConfig->ફિલ્ટર | ફિલ્ટરિંગ મોડ સેટિંગ્સ કૃપા કરીને ફિલ્ટર મોડ કોષ્ટકના વિભાગનો સંદર્ભ લો. |
pInitConfig->Timing0 | Baud rateT0 સેટિંગ |
pInitConfig->Timing1 | Baud rateT1 સેટિંગ |
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
ઉપકરણ અનુક્રમણિકા, ઉદાહરણ તરીકે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 CANIindex);
પરિમાણો:
DevType
ઉપકરણ પ્રકાર. જુઓ: એડેપ્ટર ઉપકરણ પ્રકાર વ્યાખ્યા.
DevIndex
ઉપકરણ અનુક્રમણિકા, ઉદાહરણ તરીકેample, જ્યારે માત્ર એક USB-CAN એડેપ્ટર હોય, ત્યારે ઇન્ડેક્સ નંબર 0 હોય છે, જ્યારે બહુવિધ USB-CAN એડેપ્ટર હોય છે, ત્યારે 0 થી શરૂ થતા ચડતા ક્રમમાં અનુક્રમણિકા નંબરો હોય છે.
CANI ઇન્ડેક્સ
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 CANIindex);
પરિમાણો:
DevType
ઉપકરણ પ્રકાર. જુઓ: એડેપ્ટર ઉપકરણ પ્રકાર વ્યાખ્યા.
DevIndex
ઉપકરણ અનુક્રમણિકા, ઉદાહરણ તરીકેample, જ્યારે માત્ર એક USB-CAN એડેપ્ટર હોય, ત્યારે ઇન્ડેક્સ નંબર 0 હોય છે, જ્યારે બહુવિધ USB-CAN એડેપ્ટર હોય છે, ત્યારે 0 થી શરૂ થતા ચડતા ક્રમમાં અનુક્રમણિકા નંબરો હોય છે.
CANI ઇન્ડેક્સ
CAN ચેનલ ઇન્ડેક્સ.
વળતર:
વળતર મૂલ્ય = 1, જેનો અર્થ છે કે ઓપરેશન સફળ છે; = 0 સૂચવે છે કે ઓપરેશન નિષ્ફળ થયું; = -1 સૂચવે છે કે ઉપકરણ અસ્તિત્વમાં નથી.
2.2.7. VCI_StartCAN
આ ફંક્શનનો ઉપયોગ CAN કંટ્રોલર અને એડેપ્ટરના આંતરિક ઇન્ટરપ્ટ રિસેપ્શન ફંક્શનને શરૂ કરવા માટે થાય છે.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIindex);
પરિમાણો:
DevType
ઉપકરણ પ્રકાર. જુઓ: એડેપ્ટર ઉપકરણ પ્રકાર વ્યાખ્યા.
DevIndex
ઉપકરણ અનુક્રમણિકા, ઉદાહરણ તરીકેample, જ્યારે માત્ર એક USB-CAN એડેપ્ટર હોય, ત્યારે ઇન્ડેક્સ નંબર 0 હોય છે, જ્યારે બહુવિધ USB-CAN એડેપ્ટર હોય છે, ત્યારે 0 થી શરૂ થતા ચડતા ક્રમમાં અનુક્રમણિકા નંબરો હોય છે.
CANI ઇન્ડેક્સ
CAN ચેનલ ઇન્ડેક્સ.
વળતર:
વળતર મૂલ્ય = 1, જેનો અર્થ છે કે ઓપરેશન સફળ છે; = 0 સૂચવે છે કે ઓપરેશન નિષ્ફળ થયું; = -1 સૂચવે છે કે ઉપકરણ અસ્તિત્વમાં નથી.
2.2.8. VCI_ResetCAN
આ કાર્યનો ઉપયોગ CAN નિયંત્રકને રીસેટ કરવા માટે થાય છે.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIindex);
પરિમાણો:
DevType
ઉપકરણ પ્રકાર. જુઓ: એડેપ્ટર ઉપકરણ પ્રકાર વ્યાખ્યા.
DevIndex
ઉપકરણ અનુક્રમણિકા, ઉદાહરણ તરીકેample, જ્યારે માત્ર એક USB-CAN એડેપ્ટર હોય, ત્યારે ઇન્ડેક્સ નંબર 0 હોય છે, જ્યારે બહુવિધ USB-CAN એડેપ્ટર હોય છે, ત્યારે 0 થી શરૂ થતા ચડતા ક્રમમાં અનુક્રમણિકા નંબરો હોય છે.
CANI ઇન્ડેક્સ
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 થી શરૂ થતા ચડતા ક્રમમાં અનુક્રમણિકા નંબરો હોય છે.
CANI ઇન્ડેક્સ
CAN ચેનલ ઇન્ડેક્સ. p મોકલો
ડેટા ફ્રેમ એરેનું પ્રથમ સરનામું જે મોકલવાનું હોય છે.
લંબાઈ
ડેટા ફ્રેમ્સની સંખ્યા જે મોકલવાની છે, મહત્તમ સંખ્યા 1000 છે, ઉચ્ચ ઝડપ હેઠળ ભલામણ કરેલ મૂલ્ય 48 છે.
વળતર:
પહેલાથી મોકલેલ ફ્રેમની વાસ્તવિક સંખ્યા પરત કરો, રીટર્ન વેલ્યુ = -1 ઉપકરણની ભૂલ સૂચવે છે.
દા.ત
2.2.10. VCI_Receive
આ કાર્યનો ઉપયોગ સ્વાગતની વિનંતી કરવા માટે થાય છે.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIindex, PVCI_CAN_OBJ પ્રીસીવ, ULONG લેન, INT પ્રતીક્ષા સમય);
પરિમાણો:
DevType
ઉપકરણ પ્રકાર. જુઓ: એડેપ્ટર ઉપકરણ પ્રકાર વ્યાખ્યા.
DevIndex
ઉપકરણ અનુક્રમણિકા, ઉદાહરણ તરીકેample, જ્યારે માત્ર એક USB-CAN એડેપ્ટર હોય, ત્યારે ઇન્ડેક્સ નંબર 0 હોય છે, જ્યારે બહુવિધ USB-CAN એડેપ્ટર હોય છે, ત્યારે 0 થી શરૂ થતા ચડતા ક્રમમાં અનુક્રમણિકા નંબરો હોય છે.
CANI ઇન્ડેક્સ
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
pInfo નો ઉપયોગ પ્રથમ ડેટા બફર એડ્રેસ પોઇન્ટરના પરિમાણોને સંગ્રહિત કરવા માટે થાય છે.
પરત કરે છે
કમ્પ્યુટરમાં પ્લગ કરેલા USB-CAN એડેપ્ટરનો નંબર પરત કરો.
પ્રક્રિયાનો ઉપયોગ કરીને ભાગ ચાર ઇન્ટરફેસ લાઇબ્રેરી કાર્યો
ઉપકરણ કાર્યને ગુણાકાર કરવા માટે, અમે વધારાના કાર્યો પ્રદાન કર્યા છે ( લીલા પૃષ્ઠભૂમિ સાથે પ્રસ્તુત કાર્યો), આ કાર્યોમાં શામેલ છે: VCI_FindUsbDevice2 VCI_UsbDeviceReset. બીજા વિકાસ દરમિયાન, આ કાર્યોને બોલાવવામાં આવે તે જરૂરી નથી. આ વિધેયોને પણ અવગણવામાં આવે છે, બધા USB-CAN એડેપ્ટર કાર્યો પ્રાપ્ત કરી શકાય છે.
www.waveshare.com
www.waveshare.com/wiki
દસ્તાવેજો / સંસાધનો
![]() |
WAVESHARE USB-CAN બસ ઇન્ટર ફેસ એડેપ્ટર ઇન્ટરફેસ ફંક્શન લાઇબ્રેરી [પીડીએફ] સૂચના માર્ગદર્શિકા USB-CAN બસ ઇન્ટર ફેસ એડેપ્ટર ઇન્ટરફેસ ફંક્શન લાઇબ્રેરી, USB-CAN, બસ ઇન્ટર ફેસ એડેપ્ટર ઇન્ટરફેસ ફંક્શન લાઇબ્રેરી, ઇન્ટરફેસ ફંક્શન લાઇબ્રેરી, ફંક્શન લાઇબ્રેરી |