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

ฟังก์ชันคอมโพเนนต์

ฟังก์ชันเหล่านี้ใช้สำหรับตั้งค่าอุปกรณ์ให้เข้ากันได้กับระบบคอมโพเนนต์

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

พารามิเตอร์คำอธิบายชนิดตัวอย่าง
LedLimitขีดจำกัด LED ที่ต้องการสำหรับทุกแชนเนลบนอุปกรณ์Int80
const DeviceMaxLedLimit = 233;
device.SetLedLimit(DeviceMaxLedLimit);

ฟังก์ชันนี้จะส่งคืนจำนวน LED รวมในปัจจุบันของคอมโพเนนต์ทั้งหมดในทุกแชนเนลของอุปกรณ์ การใช้งานหลักคือตรวจสอบว่ามีการเลือกคอมโพเนนต์ไว้หรือไม่ เนื่องจาก 0 LED มีความหมายเดียวกับ 0 คอมโพเนนต์

ค่าที่ส่งคืนคำอธิบายชนิดตัวอย่าง
LedCountจำนวน LED ปัจจุบันของทุกแชนเนลInt64
let ColorData = []
if(LightingMode == "Forced"){
// do stuff
}else if(device.getLedCount() == 0){
// do stuff
}else{
// do stuff
}

ฟังก์ชันนี้จะเพิ่มแชนเนลคอมโพเนนต์ใหม่ให้กับอุปกรณ์ เมื่อเพิ่มแชนเนลแรก UI การกำหนดค่าคอมโพเนนต์จะปรากฏบนหน้าอุปกรณ์ ฟังก์ชันนี้รับค่า LedLimit ซึ่งเป็นตัวเลือกแต่แนะนำให้ระบุ เพื่อเตือนผู้ใช้เมื่อใช้งานเกินขีดจำกัด LED ที่ปลอดภัยของอุปกรณ์ ขีดจำกัดนี้ถูกใช้ในหลายจุด จึงขอแนะนำอย่างยิ่งให้ตั้งค่าไว้

พารามิเตอร์คำอธิบายชนิดตัวอย่าง
ChannelNameChannelName ที่จะใช้อ้างอิงแชนเนลนี้String”Channel 1”
LedLimitขีดจำกัด LED สำหรับการทำงานอย่างปลอดภัยของแชนเนลInt204
//Channel Name, Led Limit
var 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]);
}
}

ฟังก์ชันนี้จะลบแชนเนลออกจากอุปกรณ์ ในสถานการณ์ปกติไม่จำเป็นต้องใช้ฟังก์ชันนี้ เนื่องจากแชนเนลจะถูกล้างเมื่อ SignalRGB ปิดตัวลง แต่เนื่องจากแชนเนลยังคงอยู่ระหว่างการ hot reload ไฟล์ปลั๊กอิน คุณอาจต้องการล้างแชนเนลในฟังก์ชัน initialize หากพบปัญหาระหว่างการพัฒนาปลั๊กอิน

พารามิเตอร์คำอธิบายชนิดตัวอย่าง
ChannelNameChannelName ที่จะลบString”Channel 1”
device.createChannel("Channel1")
// Do stuff
device.removeChannel("Channel1")

ฟังก์ชันนี้จะส่งคืนชื่อของแชนเนลทั้งหมดที่อยู่บนอุปกรณ์ในปัจจุบัน การใช้งานหลักคือเพื่อการดีบัก เนื่องจากควรเก็บชื่อแชนเนลไว้ในตรรกะของปลั๊กอินพร้อมกับดัชนีของแชนเนลสำหรับแพ็กเก็ตของอุปกรณ์ อย่างไรก็ตาม หากต้องการ ก็สามารถใช้วนซ้ำทุกแชนเนลบนอุปกรณ์ได้โดยแลกกับประสิทธิภาพที่ลดลงเล็กน้อย

ค่าที่ส่งคืนคำอธิบายชนิดตัวอย่าง
Channel Namesรายการชื่อแชนเนลทั้งหมดบนอุปกรณ์อาร์เรย์ 1 มิติ[“Channel 1”,“Channel 2”]
let channels = device.getChannelNames();

นี่คือประตูสู่การโต้ตอบกับ ComponentChannel ฟังก์ชันนี้จะส่งคืนการอ้างอิงไปยัง ComponentChannel หากมีแชนเนลที่ตรงกับ ChannelName ที่ระบุ หากไม่มีจะส่งคืน null

พารามิเตอร์คำอธิบายชนิดตัวอย่าง
ChannelNameChannelName ที่ต้องการดึงการอ้างอิงString”Channel 1”
ค่าที่ส่งคืนคำอธิบายชนิด
ComponentChannelอ็อบเจกต์ ComponentChannelComponentChannel | Null
let components = device.channel("Channel 1").getComponentNames();

ฟังก์ชันเหล่านี้ใช้สำหรับควบคุมและโต้ตอบกับการอ้างอิง ComponentChannel ที่ระบุ

เช่นเดียวกับฟังก์ชัน device.ledLimit() ที่คล้ายกัน ฟังก์ชันนี้จะตั้งค่าขีดจำกัด LED สูงสุดที่ปลอดภัยสำหรับ ComponentChannel นี้

พารามิเตอร์คำอธิบายชนิดตัวอย่าง
LedLimitขีดจำกัด LED ที่ต้องการสำหรับแชนเนลInt16
device.channel("Channel 1").SetLedLimit(204);

ฟังก์ชันนี้จะส่งคืนจำนวน LED ที่ผู้ใช้กำหนดค่าไว้บน ComponentChannel นี้

ค่าที่ส่งคืนคำอธิบายชนิดตัวอย่าง
LedCountจำนวน LED ปัจจุบันของแชนเนลInt16
let ChannelLedCount = device.channel("Channel 1").LedCount();

ฟังก์ชันนี้จะส่งคืนอาร์เรย์ข้อมูลสี 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");

ฟังก์ชันนี้ส่งคืนค่าบูลีนที่ระบุว่าแชนเนลของอุปกรณ์นี้ควร ‘กะพริบเป็นจังหวะ (pulse)’ หรือไม่ ซึ่งอาจถูกร้องขอเนื่องจากไม่มีการเลือกคอมโพเนนต์ หรือเมื่อกำลังแสดง UI การตั้งค่าคอมโพเนนต์ในขั้นตอนเริ่มต้นใช้งาน

สามารถใช้ device.getChannelPulseColor() เพื่อดึงสีของการกะพริบที่คาดหวังได้

ค่าที่ส่งคืนชนิดคำอธิบาย
ShouldPulsebooleanแชนเนลนี้ควรกะพริบเป็นจังหวะหรือไม่