شعار WAVESHAREواجهة حافلة USB-CAN
وظيفة واجهة المحول
تعليمات استخدام المكتبةمكتبة وظيفة واجهة محول الوجه WAVESHARE USB CAN Bus Inter

انتهى الجزء الأولVIEW

إذا كان المستخدم يستخدم فقط محول واجهة ناقل USB-CAN للاستمرار في اختبار اتصال ناقل CAN، فيمكنه بعد ذلك استخدام برنامج أداة USB-CAN المرفق مباشرة لإرسال واستقبال بيانات الاختبار.
إذا كان المستخدم ينوي كتابة برنامج لمنتجاته الخاصة. يرجى قراءة التعليمات التالية بعناية والرجوع إلى sampالكود الذي نقدمه:
⑴ C++ Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
تطوير المكتبة file :ControlCAN.lib، ControlCAN.DLL
إعلان وظيفة إصدار VC file : التحكمCAN.h
إعلان وظيفة إصدار VB file: التحكمCAN.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.

مكتبة وظائف واجهة مهايئ الوجه WAVESHARE USB CAN Bus - الشكل 1

عضو:
hw_Version
رقم إصدار الجهاز، تدوين سداسي عشري. على سبيل المثال 0x0100 يمثل V1.00.
fw_Version
رقم إصدار الجهاز، تدوين سداسي عشري. على سبيل المثال 0x0100 يمثل V1.00.
الصفحة 2
dr_Version

رقم إصدار برنامج التشغيل، تدوين سداسي عشري. على سبيل المثال 0x0100 يمثل V1.00.
in_Version
رقم إصدار مكتبة الواجهة، تدوين سداسي عشري. على سبيل المثال 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، تُستخدم بنية VCI_CAN_OBJ لإرسال إطار رسالة CAN.

مكتبة وظائف واجهة مهايئ الوجه WAVESHARE USB CAN Bus - الشكل

عضو:
ID
معرف الرسالة تنسيق المعرف المباشر، محاذاة إلى اليمين، يرجى الرجوع إلى: الملحق الأول: تفاصيل محاذاة المعرف.
الوقتamp
استلام شamp معلومات الإطار الزمني، توقيت البدء عند تهيئة وحدة التحكم CAN، الوحدة هي 0 مللي ثانية.
علامة الوقت
من حيث ما إذا كان سيتم استخدام الوقت الحادي والعشرينamp، 1 هو TimeSt الفعالamp. TimeFlag وTimeStamp تكون ذات معنى فقط عند استلام الإطار.
نوع الإرسال
نوع الإرسال. = 0 يشير إلى النوع العادي، = 1 يشير إلى إرسال فردي.
RemoteFlag
سواء كان ذلك العلم عن بعد. = 1 يشير إلى علامة بعيدة، = 0 يشير إلى علامة البيانات.
العلم الخارجي
سواء كان العلم الخارجي. = 1 يشير إلى العلم الخارجي، = 0 يشير إلى العلم القياسي.
داتا لين
طول البيانات (<=8) - طول البيانات.
بيانات
حزمة بيانات.
محجوز
النظام يتحفظ.
2.1.4. VCI_INIT_CONFIG
تحدد بنية VCI_INIT_CONFIG تكوين التهيئة لـ CAN. سيتم ملء البنية في وظيفة VCI_InitCan.

مكتبة وظائف واجهة مهايئ الوجه WAVESHARE USB CAN Bus - الشكل 2

عضو:
كود الحساب
تلقي رمز القبول الذي تمت تصفيته.
أككماسك
تلقي قناع التصفية.
محجوز
محجوز.
فلتر
طريقة التصفية، التي تسمح بنطاق الإعداد 0-3، راجع القسم 2.2.3 من جدول وضع التصفية للحصول على التفاصيل.
التوقيت0
SJA1000 معلمة معدل الباود، Timing0 (BTR0).
التوقيت1
SJA1000 معلمة معدل الباود، Timing1 (BTR1).
وضع
وضع التشغيل، 0 = التشغيل العادي، 1 = وضع الاستماع فقط، 2 = القبول التلقائي ووضع الاختبار للإرسال.
ملاحظات:
حول إعدادات الفلتر يرجى الرجوع إلى: الملحق الثاني: تعليمات إعداد معلمة CAN.
يمكن استخدام CAN Timing0 وTiming1 لتعيين معدل الباود، ويتم استخدام هاتين المعلمتين فقط في عملية التهيئةtage.
الجدول المرجعي للباود التقليدي:

يمكن معدل الباود التوقيت0(BTR0) التوقيت1(BTR1)
10 ألف بت في الثانية 0×31 0x1C
20 ألف بت في الثانية 0×18 0x1C
40 ألف بت في الثانية 0×87 0xFF
50 ألف بت في الثانية 0×09 0x1C
80 ألف بت في الثانية 0×83 0xFF
100 ألف بت في الثانية 0×04 0x1C
125 ألف بت في الثانية 0×03 0x1C
200 ألف بت في الثانية 0×81 0xFA
250 ألف بت في الثانية 0×01 0x1C
400 ألف بت في الثانية 0×80 0xFA
500 ألف بت في الثانية 0×00 0x1C
666 ألف بت في الثانية 0×80 0xB6
800 ألف بت في الثانية 0×00 0×16
1000 ألف بت في الثانية 0×00 0×14
33.33 كيلوبت في الثانية 0×09 0x6F
66.66 كيلوبت في الثانية 0×04 0x6F
83.33 كيلوبت في الثانية 0×03 0x6F
  1. يحتاج المستخدمون فقط إلى اتباع SJA1000 (16 ميجاهرتز) لتعيين معلمة معدل الباود.
  2. لا يدعم المحول معدل الباود مؤقتًا الذي يقل عن 10 كيلو.

2.2 وصف الوظيفة
2.2.1. VCI_OpenDevice
تُستخدم هذه الوظيفة لتوصيل الأجهزة.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD Reserved);
حدود:
نوع المطور
نوع الجهاز. راجع: تعريف نوع جهاز المحول.
مؤشر التطوير
فهرس الجهاز، على سبيل المثالample، عندما يكون هناك محول USB-CAN واحد فقط، يكون رقم الفهرس هو 0، وعندما يكون هناك عدة محولات USB-CAN، تكون أرقام الفهرس بترتيب تصاعدي بدءًا من 0.
محجوز
معلمات الاحتفاظ، املأ 0.
الإرجاعات:
قيمة الإرجاع = 1، مما يعني أن العملية ناجحة؛ = 0 يشير إلى فشل العملية؛ = -1 يشير إلى أن الجهاز غير موجود.

مكتبة وظيفة واجهة محول الوجه WAVESHARE USB CAN Bus - الشكل 3

2.2.2. VCI_CloseDevice
يتم استخدام هذه الوظيفة لإغلاق الاتصال.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
حدود:
نوع المطور
نوع الجهاز. راجع: تعريف نوع جهاز المحول.
مؤشر التطوير
فهرس الجهاز، على سبيل المثالample، عندما يكون هناك محول USB-CAN واحد فقط، يكون رقم الفهرس هو 0، وعندما يكون هناك عدة محولات USB-CAN، تكون أرقام الفهرس بترتيب تصاعدي بدءًا من 0.
الإرجاعات:
قيمة الإرجاع = 1، مما يعني أن العملية ناجحة؛ = 0 يشير إلى فشل العملية؛ = -1 يشير إلى أن الجهاز غير موجود.

مكتبة وظائف واجهة مهايئ الوجه WAVESHARE USB CAN Bus - الشكل 4

2.2.3. VCI_InitCan
تُستخدم هذه الوظيفة لتهيئة العلبة المحددة.
DWORD __stdcall VCI_InitCAN(DWORD DevType، DWORD DevIndex، DWORD CANIndex،
PVCI_INIT_CONFIG pInitConfig);

حدود:
نوع المطور
نوع الجهاز. راجع: تعريف نوع جهاز المحول.
مؤشر التطوير
فهرس الجهاز، على سبيل المثالample، عندما يكون هناك محول USB-CAN واحد فقط، يكون رقم الفهرس هو 0، وعندما يكون هناك عدة محولات USB-CAN، تكون أرقام الفهرس بترتيب تصاعدي بدءًا من 0.
CANIndex
فهرس قناة CAN، على سبيل المثال، عندما تكون هناك قناة CAN واحدة فقط، يكون رقم الفهرس 0، وإذا كان هناك اثنان، يمكن أن يكون رقم الفهرس 0 أو 1.
pInitConfig
هيكل معلمة التهيئة. قائمة المعلمات من الأعضاء:

عضو الوصف الوظيفي
بينيتكونفيج->أكواد يمكن أن يعمل AccCode وAccMask معًا لتحديد الحزم التي يمكن قبولها. يتم استخدام هذين السجلين لتعيين محاذاة المعرف إلى اليسار، أي أن أعلى بت (Bit31) من AccCode وAccMask محاذاة مع أعلى بت من قيمة المعرف.
pInitConfig->AccMask حول محاذاة المعرف، راجع المرفقات: الملحق الأول:
تفاصيل محاذاة الهوية.
على سبيل المثال: إذا قمت بتعيين قيمة AccCode على أنها 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 بت عاليًا باعتباره البت الصالح!
بينيتكونفيج->محجوز محجوز
بينيتكونفيج->تصفية إعدادات وضع التصفية يرجى الرجوع إلى قسم جدول وضع التصفية.
بينيتكونفيج->التوقيت0 إعداد معدل الباود T0
بينيتكونفيج->التوقيت1 إعداد معدل الباود T1
بينيتكونفيج->الوضع وضع التشغيل:
0-التشغيل العادي
1-وضع الاستماع فقط
2-القبول التلقائي وإرسال وضع الاختبار (يتم استبعاد هذه القيمة من مكتبة وظائف ZLG)

جدول وضع التصفية:

قيمة اسم وصف
1 استقبل جميع الانواع مناسبة لكل من الإطار القياسي والممتد!
2 تلقي فقط الإطار القياسي مناسبة للإطار القياسي، وممتدة
سيتم إزالة الإطار عن طريق الترشيح مباشرة!
3 تلقي فقط الإطار الموسع مناسب للإطار الممتد، وسيتم إزالة الإطار القياسي بواسطة
الترشيح مباشرة! .

الإرجاعات:
قيمة الإرجاع = 1، مما يعني أن العملية ناجحة؛ = 0 يشير إلى فشل العملية؛ = -1 يشير إلى أن الجهاز غير موجود.
مثلا

مكتبة وظائف واجهة مهايئ الوجه WAVESHARE USB CAN Bus - الشكل 4

مكتبة وظائف واجهة مهايئ الوجه WAVESHARE USB CAN Bus - الشكل 6

2.2.4. VCI_ReadBoardInfo
تُستخدم هذه الوظيفة لقراءة معلومات أجهزة المحول. بشكل عام، يمكن تجاهل ذلك.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
حدود:
نوع المطور
نوع الجهاز. راجع: تعريف نوع جهاز المحول.
مؤشر التطوير
فهرس الجهاز، على سبيل المثالample، عندما يكون هناك محول USB-CAN واحد فقط، يكون رقم الفهرس 0، وعندما يكون هناك عدة محولات USB-CAN، أرقام الفهرس بترتيب تصاعدي بدءًا من 0.
يتم استخدام VCI_BOARD_INFO لتخزين مؤشر بنية معلومات الجهاز.
الإرجاعات:
قيمة الإرجاع = 1، مما يعني أن العملية ناجحة؛ = 0 يشير إلى فشل العملية؛ = -1 يشير إلى أن الجهاز غير موجود.

مكتبة وظائف واجهة مهايئ الوجه WAVESHARE USB CAN Bus - الشكل 7

2.2.5. VCI_GetReceiveNum
تُستخدم هذه الوظيفة لتحديد الإطارات المستلمة ولكن لم تتم قراءتها في المخزن المؤقت المخصص للاستقبال.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
حدود:
نوع المطور
نوع الجهاز. راجع: تعريف نوع جهاز المحول.
مؤشر التطوير
فهرس الجهاز، على سبيل المثالample، عندما يكون هناك محول USB-CAN واحد فقط، يكون رقم الفهرس هو 0، وعندما يكون هناك عدة محولات USB-CAN، تكون أرقام الفهرس بترتيب تصاعدي بدءًا من 0.
CANIndex
يمكن مؤشر القناة.
الإرجاعات:
إرجاع الإطارات التي لم تتم قراءتها بعد.
مثلا
#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);
حدود:
نوع المطور
نوع الجهاز. راجع: تعريف نوع جهاز المحول.
مؤشر التطوير
فهرس الجهاز، على سبيل المثالample، عندما يكون هناك محول USB-CAN واحد فقط، يكون رقم الفهرس هو 0، وعندما يكون هناك عدة محولات USB-CAN، تكون أرقام الفهرس بترتيب تصاعدي بدءًا من 0.
CANIndex
يمكن مؤشر القناة.
الإرجاعات:
قيمة الإرجاع = 1، مما يعني أن العملية ناجحة؛ = 0 يشير إلى فشل العملية؛ = -1 يشير إلى أن الجهاز غير موجود.

مكتبة وظائف واجهة مهايئ الوجه WAVESHARE USB CAN Bus - الشكل 8

2.2.7. VCI_StartCAN
تُستخدم هذه الوظيفة لبدء تشغيل وحدة التحكم CAN ووظيفة استقبال المقاطعة الداخلية للمحول.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
حدود:
نوع المطور
نوع الجهاز. راجع: تعريف نوع جهاز المحول.
مؤشر التطوير
فهرس الجهاز، على سبيل المثالample، عندما يكون هناك محول USB-CAN واحد فقط، يكون رقم الفهرس هو 0، وعندما يكون هناك عدة محولات USB-CAN، تكون أرقام الفهرس بترتيب تصاعدي بدءًا من 0.
CANIndex
يمكن مؤشر القناة.
الإرجاعات:
قيمة الإرجاع = 1، مما يعني أن العملية ناجحة؛ = 0 يشير إلى فشل العملية؛ = -1 يشير إلى أن الجهاز غير موجود.

مكتبة وظائف واجهة مهايئ الوجه WAVESHARE USB CAN Bus - الشكل 9

2.2.8. VCI_ResetCAN
تُستخدم هذه الوظيفة لإعادة ضبط وحدة التحكم CAN.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
حدود:
نوع المطور
نوع الجهاز. راجع: تعريف نوع جهاز المحول.
مؤشر التطوير
فهرس الجهاز، على سبيل المثالample، عندما يكون هناك محول USB-CAN واحد فقط، يكون رقم الفهرس هو 0، وعندما يكون هناك عدة محولات USB-CAN، تكون أرقام الفهرس بترتيب تصاعدي بدءًا من 0.
CANIndex
يمكن مؤشر القناة.
الإرجاعات:
قيمة الإرجاع = 1، مما يعني أن العملية ناجحة؛ = 0 يشير إلى فشل العملية؛ = -1 يشير إلى أن الجهاز غير موجود.

مكتبة وظائف واجهة مهايئ الوجه WAVESHARE USB CAN Bus - الشكل 10

2.2.9. VCI_Transmit
تُستخدم هذه الوظيفة لإرسال إطار رسالة CAN.
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD Length);
حدود:
نوع المطور
نوع الجهاز. راجع: تعريف نوع جهاز المحول.
مؤشر التطوير
فهرس الجهاز، على سبيل المثالample، عندما يكون هناك محول USB-CAN واحد فقط، يكون رقم الفهرس هو 0، وعندما يكون هناك عدة محولات USB-CAN، تكون أرقام الفهرس بترتيب تصاعدي بدءًا من 0.
CANIndex
يمكن مؤشر القناة. إرسال
العنوان الأول لمصفوفات إطار البيانات التي يجب إرسالها.
طول
عدد إطارات البيانات التي يجب إرسالها، الحد الأقصى للعدد هو 1000، والقيمة الموصى بها هي 48 تحت السرعة العالية.
الإرجاعات:
قم بإرجاع العدد الفعلي للإطارات التي تم إرسالها بالفعل، وتشير قيمة الإرجاع = -1 إلى وجود خطأ في الجهاز.
مثلا
مكتبة وظائف واجهة مهايئ الوجه WAVESHARE USB CAN Bus - الشكل 11

مكتبة وظائف واجهة مهايئ الوجه WAVESHARE USB CAN Bus - الشكل 12

2.2.10. VCI_Receive
تستخدم هذه الوظيفة لطلب الاستقبال.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
حدود:
نوع المطور
نوع الجهاز. راجع: تعريف نوع جهاز المحول.
مؤشر التطوير
فهرس الجهاز، على سبيل المثالample، عندما يكون هناك محول USB-CAN واحد فقط، يكون رقم الفهرس هو 0، وعندما يكون هناك عدة محولات USB-CAN، تكون أرقام الفهرس بترتيب تصاعدي بدءًا من 0.
CANIndex
يمكن مؤشر القناة.
تلقي
لتلقي مؤشر المجموعة الأولى لإطارات البيانات.
لين
يجب أن يكون طول صفيف إطار البيانات أكثر من 2500 لإرجاع الرسالة العادية.
وإلا فإن طول الإرجاع سيكون صفرًا سواء تم استلام الرسالة أم لا. يقوم المحول بتعيين مخزن مؤقت يبلغ 2000 إطار لكل قناة. بناءً على نظامه وبيئة العمل الخاصة به، يمكن للمستخدم اختيار طول المصفوفة المناسب من 2500.
وقت الانتظار محجوز.
الإرجاعات:
يُرجع عدد الإطارات التي تمت قراءتها بالفعل، ويشير -1 إلى أخطاء الجهاز.
مثلا
مكتبة وظائف واجهة مهايئ الوجه WAVESHARE USB CAN Bus - الشكل 13

الجزء الثالث الوظائف الأخرى ووصف هيكل البيانات

يصف هذا الفصل أنواع البيانات والوظائف الأخرى لمكتبة واجهة ZLG غير المتوافقة الموجودة في مكتبة واجهة محول USB-CAN ControlCAN.dll. افعل من فضلك
لا تستدعي هذه الوظائف في حالة استخدام نموذج ZLG متوافق للتطوير الثانوي حتى لا يؤثر على التوافق.
3.1 وصف الوظيفة
3.1.1. VCI_UsbDeviceReset
إعادة تعيين محول USB-CAN، تحتاج إلى إعادة فتح الجهاز بعد إعادة التعيين باستخدام VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType،DWORD DevIndex،DWORD محجوزة
حدود:
نوع المطور
نوع الجهاز. راجع: تعريف نوع جهاز المحول.
مؤشر التطوير
فهرس الجهاز، على سبيل المثالample، عندما يكون هناك محول USB-CAN واحد فقط، يكون رقم الفهرس هو 0، وعندما يكون هناك عدة محولات USB-CAN، تكون أرقام الفهرس بترتيب تصاعدي بدءًا من 0.
محفوظة محفوظة.
الإرجاعات:
قيمة الإرجاع = 1، مما يعني أن العملية ناجحة؛ = 0 يشير إلى فشل العملية؛ = -1 يشير إلى أن الجهاز غير موجود.

مكتبة وظائف واجهة مهايئ الوجه WAVESHARE USB CAN Bus - الشكل 14

bRel = VCI_UsbDeviceReset(nDeviceType, Independence, 0);
3.1.2. VCI_FindUsbDevice2
عندما يستخدم نفس الكمبيوتر عدة USB-CAN، يمكن للمستخدم استخدام هذه الوظيفة للعثور على الجهاز الحالي.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
حدود:
معلومات
يتم استخدام pInfo لتخزين معلمات مؤشر عنوان المخزن المؤقت للبيانات الأول.
الإرجاعات
قم بإرجاع رقم محول USB-CAN المتصل بالكمبيوتر.

مكتبة وظائف واجهة مهايئ الوجه WAVESHARE USB CAN Bus - الشكل 15

الجزء الرابع وظائف مكتبة الواجهة باستخدام العملية
من أجل مضاعفة وظيفة الجهاز، قمنا بتوفير وظائف إضافية (وظائف مقدمة بخلفية خضراء)، وتشمل هذه الوظائف: VCI_FindUsbDevice2 VCI_UsbDeviceReset. أثناء التطوير الثاني، ليس من الضروري استدعاء هذه الوظائف. حتى يتم تجاهل هذه الوظائف، يمكن تحقيق جميع وظائف محول USB-CAN.

مكتبة وظائف واجهة مهايئ الوجه WAVESHARE USB CAN Bus - الشكل 16

www.waveshare.com
www.waveshare.com/wiki

المستندات / الموارد

مكتبة وظيفة واجهة محول الوجه WAVESHARE USB-CAN Bus Inter [بي دي اف] دليل التعليمات
USB-CAN مكتبة وظائف واجهة مهايئ الوجه للحافلة، USB-CAN، مكتبة وظائف واجهة مهايئ الوجه للحافلة، مكتبة وظائف الواجهة، مكتبة الوظائف

مراجع

اترك تعليقا

لن يتم نشر عنوان بريدك الإلكتروني. تم وضع علامة على الحقول المطلوبة *