ฟังก์ชันคอมโพเนนต์
ฟังก์ชันอุปกรณ์
หัวข้อที่มีชื่อว่า “ฟังก์ชันอุปกรณ์”ฟังก์ชันเหล่านี้ใช้สำหรับตั้งค่าอุปกรณ์ให้เข้ากันได้กับระบบคอมโพเนนต์
device.SetLedLimit()
หัวข้อที่มีชื่อว่า “device.SetLedLimit()”ฟังก์ชันนี้รับค่า int และตั้งค่าขีดจำกัด LED สูงสุดสำหรับแชนเนลคอมโพเนนต์ทั้งหมดบนอุปกรณ์ ใช้สำหรับการตรวจสอบความปลอดภัยในแบ็กเอนด์ และเพื่อป้องกันไม่ให้ผู้ใช้ใช้งานอุปกรณ์เกินกำลังด้วยการดึงพลังงานมากกว่าที่อุปกรณ์รับได้ ควรตั้งค่าให้เท่ากับค่าสูงสุดที่บริษัทผู้ผลิตจำกัดไว้สำหรับอุปกรณ์
| พารามิเตอร์ | คำอธิบาย | ชนิด | ตัวอย่าง |
|---|---|---|---|
| LedLimit | ขีดจำกัด LED ที่ต้องการสำหรับทุกแชนเนลบนอุปกรณ์ | Int | 80 |
const DeviceMaxLedLimit = 233; device.SetLedLimit(DeviceMaxLedLimit);device.getLedCount()
หัวข้อที่มีชื่อว่า “device.getLedCount()”ฟังก์ชันนี้จะส่งคืนจำนวน LED รวมในปัจจุบันของคอมโพเนนต์ทั้งหมดในทุกแชนเนลของอุปกรณ์ การใช้งานหลักคือตรวจสอบว่ามีการเลือกคอมโพเนนต์ไว้หรือไม่ เนื่องจาก 0 LED มีความหมายเดียวกับ 0 คอมโพเนนต์
| ค่าที่ส่งคืน | คำอธิบาย | ชนิด | ตัวอย่าง |
|---|---|---|---|
| LedCount | จำนวน LED ปัจจุบันของทุกแชนเนล | Int | 64 |
let ColorData = [] if(LightingMode == "Forced"){ // do stuff }else if(device.getLedCount() == 0){ // do stuff }else{ // do stuff }device.addChannel()
หัวข้อที่มีชื่อว่า “device.addChannel()”ฟังก์ชันนี้จะเพิ่มแชนเนลคอมโพเนนต์ใหม่ให้กับอุปกรณ์ เมื่อเพิ่มแชนเนลแรก UI การกำหนดค่าคอมโพเนนต์จะปรากฏบนหน้าอุปกรณ์ ฟังก์ชันนี้รับค่า LedLimit ซึ่งเป็นตัวเลือกแต่แนะนำให้ระบุ เพื่อเตือนผู้ใช้เมื่อใช้งานเกินขีดจำกัด LED ที่ปลอดภัยของอุปกรณ์ ขีดจำกัดนี้ถูกใช้ในหลายจุด จึงขอแนะนำอย่างยิ่งให้ตั้งค่าไว้
| พารามิเตอร์ | คำอธิบาย | ชนิด | ตัวอย่าง |
|---|---|---|---|
| ChannelName | ChannelName ที่จะใช้อ้างอิงแชนเนลนี้ | String | ”Channel 1” |
| LedLimit | ขีดจำกัด LED สำหรับการทำงานอย่างปลอดภัยของแชนเนล | Int | 204 |
//Channel Name, Led Limitvar ChannelArray = [ ["Channel 1", 204], ["Channel 2", 204],]
function SetupChannels(){ device.SetLedLimit(DeviceMaxLedLimit); for(let i = 0; i < ChannelArray.length; i++){ device.addChannel(ChannelArray[i][0],ChannelArray[i][1]); }}device.removeChannel()
หัวข้อที่มีชื่อว่า “device.removeChannel()”ฟังก์ชันนี้จะลบแชนเนลออกจากอุปกรณ์ ในสถานการณ์ปกติไม่จำเป็นต้องใช้ฟังก์ชันนี้ เนื่องจากแชนเนลจะถูกล้างเมื่อ SignalRGB ปิดตัวลง แต่เนื่องจากแชนเนลยังคงอยู่ระหว่างการ hot reload ไฟล์ปลั๊กอิน คุณอาจต้องการล้างแชนเนลในฟังก์ชัน initialize หากพบปัญหาระหว่างการพัฒนาปลั๊กอิน
| พารามิเตอร์ | คำอธิบาย | ชนิด | ตัวอย่าง |
|---|---|---|---|
| ChannelName | ChannelName ที่จะลบ | String | ”Channel 1” |
device.createChannel("Channel1") // Do stuff device.removeChannel("Channel1")device.getChannelNames()
หัวข้อที่มีชื่อว่า “device.getChannelNames()”ฟังก์ชันนี้จะส่งคืนชื่อของแชนเนลทั้งหมดที่อยู่บนอุปกรณ์ในปัจจุบัน การใช้งานหลักคือเพื่อการดีบัก เนื่องจากควรเก็บชื่อแชนเนลไว้ในตรรกะของปลั๊กอินพร้อมกับดัชนีของแชนเนลสำหรับแพ็กเก็ตของอุปกรณ์ อย่างไรก็ตาม หากต้องการ ก็สามารถใช้วนซ้ำทุกแชนเนลบนอุปกรณ์ได้โดยแลกกับประสิทธิภาพที่ลดลงเล็กน้อย
| ค่าที่ส่งคืน | คำอธิบาย | ชนิด | ตัวอย่าง |
|---|---|---|---|
| Channel Names | รายการชื่อแชนเนลทั้งหมดบนอุปกรณ์ | อาร์เรย์ 1 มิติ | [“Channel 1”,“Channel 2”] |
let channels = device.getChannelNames();device.channel()
หัวข้อที่มีชื่อว่า “device.channel()”นี่คือประตูสู่การโต้ตอบกับ ComponentChannel ฟังก์ชันนี้จะส่งคืนการอ้างอิงไปยัง ComponentChannel หากมีแชนเนลที่ตรงกับ ChannelName ที่ระบุ หากไม่มีจะส่งคืน null
| พารามิเตอร์ | คำอธิบาย | ชนิด | ตัวอย่าง |
|---|---|---|---|
| ChannelName | ChannelName ที่ต้องการดึงการอ้างอิง | String | ”Channel 1” |
| ค่าที่ส่งคืน | คำอธิบาย | ชนิด |
|---|---|---|
| ComponentChannel | อ็อบเจกต์ ComponentChannel | ComponentChannel | Null |
let components = device.channel("Channel 1").getComponentNames();ComponentChannel
หัวข้อที่มีชื่อว่า “ComponentChannel”ฟังก์ชันเหล่านี้ใช้สำหรับควบคุมและโต้ตอบกับการอ้างอิง ComponentChannel ที่ระบุ
channel.SetLedLimit()
หัวข้อที่มีชื่อว่า “channel.SetLedLimit()”เช่นเดียวกับฟังก์ชัน device.ledLimit() ที่คล้ายกัน ฟังก์ชันนี้จะตั้งค่าขีดจำกัด LED สูงสุดที่ปลอดภัยสำหรับ ComponentChannel นี้
| พารามิเตอร์ | คำอธิบาย | ชนิด | ตัวอย่าง |
|---|---|---|---|
| LedLimit | ขีดจำกัด LED ที่ต้องการสำหรับแชนเนล | Int | 16 |
device.channel("Channel 1").SetLedLimit(204);channel.LedCount()
หัวข้อที่มีชื่อว่า “channel.LedCount()”ฟังก์ชันนี้จะส่งคืนจำนวน LED ที่ผู้ใช้กำหนดค่าไว้บน ComponentChannel นี้
| ค่าที่ส่งคืน | คำอธิบาย | ชนิด | ตัวอย่าง |
|---|---|---|---|
| LedCount | จำนวน LED ปัจจุบันของแชนเนล | Int | 16 |
let ChannelLedCount = device.channel("Channel 1").LedCount();channel.getColors()
หัวข้อที่มีชื่อว่า “channel.getColors()”ฟังก์ชันนี้จะส่งคืนอาร์เรย์ข้อมูลสี RGB ตามแมป LED และพิกัดของอุปกรณ์ ค่าที่ส่งคืนจากฟังก์ชันนี้ขึ้นอยู่กับการตั้งค่าอาร์กิวเมนต์ให้ถูกต้องเป็นอย่างมาก
| พารามิเตอร์ | คำอธิบาย | ชนิด | ตัวอย่าง | ค่าเริ่มต้น |
|---|---|---|---|---|
| ArrayOrder | รูปแบบอาร์เรย์ที่ต้องการ | String | ”Inline" | "Seperate” |
| ColorOrder | ลำดับสีที่ต้องการ | String | ”RGB" | "RGB” |
| Array Order | คำอธิบาย | ชนิด | ตัวอย่าง |
|---|---|---|---|
| Inline | จัดรูปแบบข้อมูลสีเป็นอาร์เรย์แบนตามลำดับ | อาร์เรย์ 1 มิติ | [R,G,B,R,G,B] |
| Seperate | จัดรูปแบบข้อมูลสีเป็น 3 แชนเนลแยกกัน | อาร์เรย์ 2 มิติ | [[R,R], [G,G], [B,B]] |
ColorOrder คือการผสมตัวอักษร 3 ตัวของ “RGB” เช่น “BGR”, “GBR”, “RBG” ซึ่งเป็นตัวกำหนดลำดับสีเมื่อใช้ ArrayOrder แบบ Inline ค่าที่ไม่ถูกต้องจะกลับไปใช้ค่าเริ่มต้น “RGB”
| ค่าที่ส่งคืน | คำอธิบาย | ชนิด | ตัวอย่าง |
|---|---|---|---|
| RGB Data | ข้อมูลสี RGB ที่ส่งคืนในรูปแบบที่ต้องการ | Array | ดูตาราง Array Order |
RGBData = device.channel("Channel 1").getColors("Inline", "GRB");channel.shouldPulseColors()
หัวข้อที่มีชื่อว่า “channel.shouldPulseColors()”ฟังก์ชันนี้ส่งคืนค่าบูลีนที่ระบุว่าแชนเนลของอุปกรณ์นี้ควร ‘กะพริบเป็นจังหวะ (pulse)’ หรือไม่ ซึ่งอาจถูกร้องขอเนื่องจากไม่มีการเลือกคอมโพเนนต์ หรือเมื่อกำลังแสดง UI การตั้งค่าคอมโพเนนต์ในขั้นตอนเริ่มต้นใช้งาน
สามารถใช้ device.getChannelPulseColor() เพื่อดึงสีของการกะพริบที่คาดหวังได้
| ค่าที่ส่งคืน | ชนิด | คำอธิบาย |
|---|---|---|
| ShouldPulse | boolean | แชนเนลนี้ควรกะพริบเป็นจังหวะหรือไม่ |