USB-CAN বাস ইন্টারফেস
অ্যাডাপ্টার ইন্টারফেস ফাংশন
লাইব্রেরি ব্যবহারকারীর নির্দেশনা
পার্ট ওয়ান ওভারVIEW
যদি ব্যবহারকারী কেবল ইউএসবি-ক্যান বাস ইন্টারফেস অ্যাডাপ্টার ব্যবহার করে CAN বাস যোগাযোগ পরীক্ষায় যেতে, এবং তারপরে সে পরীক্ষার ডেটা পাঠানো এবং গ্রহণ করার জন্য সরবরাহ করা USB-CAN টুল সফ্টওয়্যারটি সরাসরি ব্যবহার করতে পারে।
ব্যবহারকারী যদি তার নিজের পণ্যের জন্য সফ্টওয়্যার প্রোগ্রাম লিখতে চায়। অনুগ্রহ করে নিম্নলিখিত নির্দেশাবলী সাবধানে পড়ুন এবং গুলি থেকে রেফারেন্স নিনample কোড আমরা প্রদান করি:
⑴ 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 প্রতিনিধিত্ব করে।
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
বার্তা শনাক্তকারী। ডাইরেক্ট আইডি ফরম্যাট, ডান-সারিবদ্ধ, অনুগ্রহ করে পড়ুন: অ্যানেক্স ওয়ান: আইডি অ্যালাইনমেন্ট বিশদ।
টাইমস্টamp
সেন্ট গ্রহণamp সময় ফ্রেমের তথ্য, সময় শুরু করুন যখন CAN কন্ট্রোলার আরম্ভ করা হয়, ইউনিটটি 0. 1ms।
টাইম ফ্ল্যাগ
পরিপ্রেক্ষিতে সময় স্ট ব্যবহার করতে হবে কিনাamp, 1 হল কার্যকর TimeStamp. TimeFlag এবং TimeStamp ফ্রেম প্রাপ্ত হয় শুধুমাত্র অর্থপূর্ণ হয়.
SendType
পাঠানোর ধরন। = 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 রেট প্যারামিটার, টাইমিং0 (BTR0)।
টাইমিং1
SJA1000 Baud রেট প্যারামিটার, টাইমিং1 (BTR1)।
মোড
অপারেটিং মোড, 0 = স্বাভাবিক ক্রিয়াকলাপ, 1 = শুধুমাত্র শোনার মোড, 2 = স্বতঃস্ফূর্ত ভর্তি এবং পরীক্ষার মোড।
মন্তব্য:
ফিল্টার সেটিংস সম্পর্কে অনুগ্রহ করে দেখুন: Annex II: 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 |
- 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 চ্যানেল থাকে, সূচক নম্বর 0 হয়, যদি দুটি থাকে, সূচক নম্বর 0 বা 1 হতে পারে।
pInitConfig
প্রারম্ভিক পরামিতি গঠন. সদস্যদের প্যারামিটার তালিকা:
সদস্য | কার্যকরী বর্ণনা |
pInitConfig->AccCode | কোন প্যাকেটগুলি গ্রহণ করা যেতে পারে তা নির্ধারণ করতে AccCode এবং AccMask একসাথে কাজ করতে পারে। এই দুটি রেজিস্টার আইডি বাম-সারিবদ্ধ সেট করতে ব্যবহৃত হয়, অর্থাৎ, AccCode এর সর্বোচ্চ বিট (Bit31) এবং AccMask আইডি মানের সর্বোচ্চ বিটের সাথে সারিবদ্ধ। |
pInitConfig->AccMask | আইডি অ্যালাইনমেন্ট সম্বন্ধে অ্যানেক্স রেফার করুন: অ্যানেক্স I: আইডি প্রান্তিককরণের বিবরণ। যেমন: যদি আপনি 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-বিট হল বৈধ বিট; বর্ধিত ফ্রেমের ক্ষেত্রে, এবং তারপর বৈধ আইডি 29-বিট। AccCode এবং AccMask বৈধ বিট হিসাবে উচ্চ 29-বিট সেট করেছে! |
|
pInitConfig->সংরক্ষিত | সংরক্ষিত |
pInitConfig->ফিল্টার | ফিল্টারিং মোড সেটিংস অনুগ্রহ করে ফিল্টার মোড টেবিলের বিভাগটি পড়ুন। |
pInitConfig->টাইমিং0 | Baud rateT0 সেটিং |
pInitConfig->টাইমিং1 | 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 চ্যানেল সূচক।
রিটার্ন:
এখনও পড়া হয়নি যে ফ্রেম ফেরত.
যেমন
# "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 থেকে শুরু করে একটি ঊর্ধ্বক্রমে।
ক্যানইনডেক্স
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 চ্যানেল সূচক।
রিটার্ন:
রিটার্ন মান = 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 চ্যানেল সূচক।
রিটার্ন:
রিটার্ন মান = 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 চ্যানেল সূচক। p পাঠান
ডেটা ফ্রেম অ্যারেগুলির প্রথম ঠিকানা যা পাঠাতে হবে।
দৈর্ঘ্য
পাঠাতে হবে যে ডেটা ফ্রেমের সংখ্যা, সর্বোচ্চ সংখ্যা 1000, প্রস্তাবিত মান উচ্চ গতির অধীনে 48।
রিটার্ন:
ইতিমধ্যে পাঠানো ফ্রেমের প্রকৃত সংখ্যা ফেরত দিন, রিটার্ন মান = -1 একটি ডিভাইস ত্রুটি নির্দেশ করে।
যেমন
2.2.10। ভিসিআই_রিসিভ
এই ফাংশন অভ্যর্থনা অনুরোধ করতে ব্যবহৃত হয়.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANindex, PVCI_CAN_OBJ প্রিসিভ, ULONG লেন, INT ওয়েটটাইম);
পরামিতি:
DevType
ডিভাইসের ধরন. দেখুন: অ্যাডাপ্টার ডিভাইস টাইপ সংজ্ঞা।
DevIndex
ডিভাইস সূচক, যেমনample, যখন শুধুমাত্র একটি USB-CAN অ্যাডাপ্টার থাকে, তখন সূচক সংখ্যা 0 হয়, যখন একাধিক USB-CAN অ্যাডাপ্টার থাকে, তখন সূচক সংখ্যাগুলি 0 থেকে শুরু করে একটি ঊর্ধ্বক্রমে।
ক্যানইনডেক্স
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 প্রথম ডেটা বাফার ঠিকানা পয়েন্টারের পরামিতি সংরক্ষণ করতে ব্যবহৃত হয়।
রিটার্নস
কম্পিউটারে প্লাগ করা USB-CAN অ্যাডাপ্টারের নম্বরটি ফেরত দিন৷
পার্ট ফোর ইন্টারফেস লাইব্রেরি ফাংশন প্রক্রিয়া ব্যবহার করে
ডিভাইস ফাংশন গুন করার জন্য, আমরা অতিরিক্ত ফাংশন প্রদান করেছি (সবুজ পটভূমিতে উপস্থাপিত ফাংশন), এই ফাংশনগুলির মধ্যে রয়েছে: VCI_FindUsbDevice2 VCI_UsbDeviceReset। দ্বিতীয় বিকাশের সময়, এই ফাংশনগুলিকে আহ্বান করা আবশ্যক নয়। এমনকি এই ফাংশনগুলি উপেক্ষা করা হয়, সমস্ত USB-CAN অ্যাডাপ্টারের ফাংশনগুলি অর্জন করা যেতে পারে।
www.waveshare.com
www.waveshare.com/wiki
দলিল/সম্পদ
![]() |
WAVESHARE USB-CAN বাস ইন্টার ফেস অ্যাডাপ্টার ইন্টারফেস ফাংশন লাইব্রেরি [পিডিএফ] নির্দেশিকা ম্যানুয়াল USB-CAN বাস ইন্টারফেস অ্যাডাপ্টার ইন্টারফেস ফাংশন লাইব্রেরি, USB-CAN, বাস ইন্টার ফেস অ্যাডাপ্টার ইন্টারফেস ফাংশন লাইব্রেরি, ইন্টারফেস ফাংশন লাইব্রেরি, ফাংশন লাইব্রেরি |