تحديد نوع الجهاز
يُخبر التصدير Type() برنامج SignalRGB بأي بروتوكول اتصال USB يجب استخدامه لإضافتك. ويُعد اختيار النوع الخاطئ من أكثر الأسباب شيوعًا لفشل الإضافة في الاتصال بالجهاز.
export function Type() { return "hid"; }الأنواع المتاحة
Section titled “الأنواع المتاحة”| سلسلة النوع | البروتوكول | الأجهزة المعتادة |
|---|---|---|
"hid" | HID (جهاز واجهة بشرية) | لوحات المفاتيح، الماوس، سماعات الرأس، ومعظم الملحقات الاستهلاكية |
"rawusb" | عمليات نقل USB خام من نوع الجملة/المقاطعة عبر libusb | مبرّدات AIO، شاشات LCD، العتاد المخصص، وحدات التحكم في الإضاءة |
"hybrid" | HID وUSB الخام في آنٍ واحد | الأجهزة التي تستخدم HID لأوامر التحكم وUSB بنقل الجملة للبيانات الكبيرة (مثل شاشات Alienware ومبرّدات ASUS Ryuo AIO) |
"serial" | المنفذ التسلسلي/COM | وحدات التحكم المبنية على Arduino، Hyte CNVS |
"smbus" | SMBus / I²C | شرائح الذاكرة RAM، بطاقات الرسوميات، منافذ اللوحة الأم التي يُوصل إليها عبر SMBus |
"network" | مقبس شبكة (TCP أو UDP) | وحدات التحكم المتصلة عبر Wi-Fi أو Ethernet |
سلاسل النوع غير حساسة لحالة الأحرف — "HID" و"Hid" و"hid" كلها تعمل، لكن الأحرف الصغيرة هي العُرف المتّبع.
HID هو النوع الأكثر شيوعًا. يمنح نظام التشغيل SignalRGB وصولًا مباشرًا إلى الجهاز دون الحاجة إلى برنامج تشغيل مخصص. استخدمه للوحات المفاتيح والماوس وسماعات الرأس ومعظم الملحقات الاستهلاكية.
export function Type() { return "hid"; }مع HID تستخدم device.write() / device.send_report() للكتابة، وdevice.read() / device.get_report() للقراءة. راجع الكتابة والقراءة لمزيد من التفاصيل.
USB الخام
Section titled “USB الخام”يتجاوز USB الخام طبقة HID ويتواصل مباشرة مع الجهاز باستخدام libusb. ستحتاج إليه عندما:
- لا يكون الجهاز من فئة HID
- تحتاج إلى عمليات نقل جملة أكبر من حد حجم حزمة HID
- يتطلب الجهاز وصولًا على مستوى libusb (مثلًا لبث الصور إلى شاشة LCD)
export function Type() { return "rawusb"; }مع USB الخام تستخدم الدالتين device.write() وdevice.read() نفسهما، لكنهما الآن تُربطان بعمليات نقل الجملة/المقاطعة عبر libusb بدلًا من HID. يمكنك أيضًا استخدام device.bulk_transfer() وdevice.control_transfer() لمزيد من التحكم. راجع الاتصال المتقدم.
الهجين (Hybrid)
Section titled “الهجين (Hybrid)”استخدم "hybrid" عندما يستخدم الجهاز HID لبعض الأوامر (مثل المصادقة أو التهيئة) وعمليات نقل جملة عبر USB الخام لأوامر أخرى (مثل بث بيانات الصور إلى شاشة LCD). تُفتح نقاط نهاية HID ونقاط نهاية USB الخام في آنٍ واحد.
export function Type() { return "hybrid"; }التسلسلي (Serial)
Section titled “التسلسلي (Serial)”للأجهزة المتصلة عبر منفذ COM. استورد @SignalRGB/serial واستخدم طرق القراءة/الكتابة الخاصة به. راجع الاتصال المتقدم للاطلاع على واجهة البرمجة التسلسلية الكاملة.
import { serial } from "@SignalRGB/serial";export function Type() { return "serial"; }كيفية تحديد النوع الصحيح
Section titled “كيفية تحديد النوع الصحيح”إذا لم تكن متأكدًا من النوع الذي يحتاجه جهازك، فابدأ من هنا:
Does Windows enumerate it as a HID device?├─ Yes → start with "hid"│ If write commands fail → try "rawusb"│ If the device also needs large bulk transfers → use "hybrid"│├─ No, it's a COM/serial port → "serial"│├─ No, it's on the network → "network"│└─ No, it's an SMBus device (RAM, GPU) → "smbus"الطريقة الأكثر موثوقية للتحقق هي فتح USBDeview أو إدارة الأجهزة (Device Manager) والنظر إلى فئة الجهاز. الفئة HID تعني "hid". والفئة USB أو libusb تعني "rawusb". إذا رأيت الاثنتين، فقد تحتاج إلى "hybrid".
عند الشك، جرّب "hid" أولًا. إذا أعادت device.write() خطأً أو لم يستجب الجهاز، فانتقل إلى "rawusb".