ข้ามไปยังเนื้อหา

คอมโพเนนต์คืออะไร?

คอนโทรลเลอร์ RGB — ฮับพัดลม, หัวต่อ ARGB, คอนโทรลเลอร์แถบไฟ LED — ขับเอาต์พุตของตนเป็นสาย LED ที่เรียงต่อกันตามลำดับอย่างง่าย ๆ คอนโทรลเลอร์ไม่รู้และไม่สนใจว่ามีอะไรเชื่อมต่ออยู่จริง มันเพียงส่งสีไปตามสายทีละ LED เท่านั้น

ปัญหาคือผลิตภัณฑ์แต่ละชนิดจัดเรียง LED เหล่านั้นแตกต่างกันมาก พัดลม 16 LED จะเรียงเป็นวงกลม แถบไฟ 30 LED จะเรียงเป็นเส้นตรง พัดลมแบบวงแหวนคู่อาจมีวงแหวนด้านใน 8 ดวงและวงแหวนด้านนอก 16 ดวง หากคุณต้องการให้ LED เหล่านั้นอยู่ในตำแหน่งที่ถูกต้องบนแคนวาสของ SignalRGB — เพื่อให้เอฟเฟกต์แสงเรียงตัวได้ถูกต้องทั่วทั้งระบบของคุณ — คุณจำเป็นต้องรู้รูปทรง ไม่ใช่แค่จำนวน

คอมโพเนนต์ช่วยแก้ปัญหานี้ คอมโพเนนต์คือคำอธิบายในรูปแบบ JSON ของผลิตภัณฑ์ RGB เฉพาะรุ่น ได้แก่ มี LED กี่ดวง แต่ละดวงอยู่ที่ตำแหน่งใดในพื้นที่ 2 มิติ และแต่ละดวงมีชื่อว่าอะไร SignalRGB ใช้คำอธิบายนั้นเพื่อแมปสีจากแคนวาสไปยังตำแหน่งที่ถูกต้องในสาย LED ได้อย่างถูกต้อง ไม่ว่าคอนโทรลเลอร์ตัวใดจะเป็นตัวขับก็ตาม


SignalRGB มาพร้อมกับคลังคอมโพเนนต์ในตัวขนาดใหญ่ ครอบคลุมพัดลม แถบไฟ หัวปั๊ม และอุปกรณ์เสริม RGB อื่น ๆ จากผู้ผลิตหลากหลายราย คลังนี้ยังเปิดรับการมีส่วนร่วมจากชุมชนด้วย — หากผลิตภัณฑ์ใดยังไม่มี คุณสามารถสร้างไฟล์ JSON ของคอมโพเนนต์สำหรับผลิตภัณฑ์นั้นแล้วส่งเข้ามาได้

ดู โครงสร้างคอมโพเนนต์ สำหรับรูปแบบ JSON


ผู้ใช้กำหนดคอมโพเนนต์ให้กับแชนเนลบนอุปกรณ์คอนโทรลเลอร์ผ่าน UI ตัวเลือกใน SignalRGB ตัวอย่างเช่น ผู้ใช้ที่มีพัดลม Corsair LL120 สามตัวเชื่อมต่อกับ Corsair Lighting Node Pro อาจกำหนดค่าดังนี้:

  • Channel 1 → Corsair LL120 · Corsair LL120 · Corsair LL120

SignalRGB จะเรียงคอมโพเนนต์ตามลำดับไปตามสาย LED ของแชนเนล และวางตำแหน่งแต่ละตัวบนแคนวาสตามพิกัด LED ของมัน ผู้ใช้สามารถจัดเรียงได้ตามต้องการ — พัดลมสามตัวเรียงเป็นแถว เป็นรูปตัว L หรือตามตำแหน่งที่ติดตั้งจริงในเคส

ปลั๊กอินไม่จำเป็นต้องรู้ว่ามีผลิตภัณฑ์ใดเชื่อมต่ออยู่ เพียงเรียก device.channel("Channel 1").getColors() ก็จะได้รับข้อมูลสีที่แมปไว้อย่างถูกต้องสำหรับสิ่งที่ผู้ใช้กำหนดค่าไว้ การแยกส่วนนี้ใช้ได้เสมอ ไม่ว่าแชนเนลนั้นจะมีพัดลม 16 LED หรือแถบไฟ 30 LED ก็ตาม


เหตุใดสิ่งนี้จึงสำคัญสำหรับผู้เขียนปลั๊กอิน

หัวข้อที่มีชื่อว่า “เหตุใดสิ่งนี้จึงสำคัญสำหรับผู้เขียนปลั๊กอิน”

หากคุณกำลังเขียนปลั๊กอินสำหรับคอนโทรลเลอร์ไฟ (อุปกรณ์ที่มีแชนเนลเอาต์พุตหนึ่งแชนเนลขึ้นไปที่ขับสาย LED ทั่วไป) คุณไม่จำเป็นต้องสร้างการแมป LED เฉพาะผลิตภัณฑ์ไว้ในปลั๊กอิน คุณเพียงกำหนดแชนเนล แล้วระบบคอมโพเนนต์จะจัดการส่วนที่เหลือให้

ซึ่งหมายความว่า:

  • ปลั๊กอินของคุณทำงานกับผลิตภัณฑ์ใดก็ได้ในคลังคอมโพเนนต์โดยอัตโนมัติ
  • ผู้ใช้สามารถผสมผสานผลิตภัณฑ์ต่าง ๆ บนคอนโทรลเลอร์ตัวเดียวกันได้
  • สามารถรองรับผลิตภัณฑ์ใหม่ได้เพียงแค่เพิ่มไฟล์ JSON ของคอมโพเนนต์ — ไม่ต้องแก้ไขปลั๊กอิน

ดู การใช้คอมโพเนนต์ สำหรับ API ฝั่งปลั๊กอิน และ โครงสร้างคอมโพเนนต์ สำหรับวิธีสร้างไฟล์คอมโพเนนต์