تخطَّ إلى المحتوى

تحديد نوع الجهاز

يُخبر التصدير Type() برنامج SignalRGB بأي بروتوكول اتصال USB يجب استخدامه لإضافتك. ويُعد اختيار النوع الخاطئ من أكثر الأسباب شيوعًا لفشل الإضافة في الاتصال بالجهاز.

export function Type() { return "hid"; }

سلسلة النوعالبروتوكولالأجهزة المعتادة
"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 الخام طبقة 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" عندما يستخدم الجهاز HID لبعض الأوامر (مثل المصادقة أو التهيئة) وعمليات نقل جملة عبر USB الخام لأوامر أخرى (مثل بث بيانات الصور إلى شاشة LCD). تُفتح نقاط نهاية HID ونقاط نهاية USB الخام في آنٍ واحد.

export function Type() { return "hybrid"; }

للأجهزة المتصلة عبر منفذ 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".