Bỏ qua để đến nội dung

Hàm thiết bị

Các hàm này phục vụ để làm cho thiết bị tương thích với hệ thống components.

Hàm này nhận giá trị Int và đặt giới hạn trên của LED cho tất cả các kênh components của thiết bị. Nó được sử dụng để kiểm tra an toàn trong backend và ngăn người dùng làm quá tải thiết bị của họ với nhiều tiêu thụ điện hơn mức chúng có thể chịu. Nên đặt ở cùng giá trị tối đa mà nhà sản xuất chỉ định cho thiết bị.

Tham sốMô tảKiểuVí dụ
LedLimitGiới hạn LED mong muốn cho tất cả các kênh thiết bịInt80
const DeviceMaxLedLimit = 233;
device.SetLedLimit(DeviceMaxLedLimit);

Hàm này trả về tổng số LED hiện tại của tất cả các components trên tất cả các kênh thiết bị. Mục đích sử dụng chính là kiểm tra xem có components nào được chọn không, vì 0 LED cũng giống như 0 components.

Trả vềMô tảKiểuVí dụ
LedCountSố lượng LED hiện tại của tất cả các kênhInt64
let ColorData = []
if(LightingMode == "Forced"){
// do stuff
}else if(device.getLedCount() == 0){
// do stuff
}else{
// do stuff
}

Hàm này thêm một kênh components mới vào thiết bị. Khi kênh đầu tiên được thêm, UI cấu hình components xuất hiện trên trang thiết bị. Hàm nhận một LedLimit tùy chọn nhưng được khuyến nghị để cảnh báo người dùng khi họ vượt quá giới hạn LED an toàn của thiết bị. Giới hạn này được sử dụng ở nhiều nơi, vì vậy nên đặt nó.

Tham sốMô tảKiểuVí dụ
ChannelNameChannelName được sử dụng để tham chiếu kênh nàyString”Channel 1”
LedLimitGiới hạn LED hoạt động an toàn của kênhInt204
//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]);
}
}

Hàm này xóa một kênh khỏi thiết bị. Trong điều kiện bình thường, hàm này không cần thiết vì các kênh được dọn sạch khi SignalRGB đóng. Tuy nhiên, vì các kênh tồn tại giữa các lần tải lại tệp plugin, bạn có thể muốn dọn sạch chúng trong hàm initialize nếu bạn gặp vấn đề trong quá trình phát triển plugin.

Tham sốMô tảKiểuVí dụ
ChannelNameChannelName cần xóaString”Channel 1”
device.createChannel("Channel1")
// Do stuff
device.removeChannel("Channel1")

Hàm này trả về tên của tất cả các kênh hiện có trên thiết bị. Mục đích sử dụng chính là để debug, vì tên kênh nên được lưu trữ trong logic plugin với chỉ số kênh cho các packet thiết bị. Tuy nhiên, nó cũng có thể được sử dụng để lặp qua tất cả các kênh thiết bị với một chút mất hiệu suất.

Trả vềMô tảKiểuVí dụ
Channel NamesDanh sách tất cả tên kênh trên thiết bị1D Array[“Channel 1”,“Channel 2”]
let channels = device.getChannelNames();

Đây là điểm nhập của bạn để tương tác với ComponentChannels. Trả về tham chiếu đến ComponentChannel chính khi một cái khớp với ChannelName được cung cấp; nếu không trả về null.

Tham sốMô tảKiểuVí dụ
ChannelNameChannelName để lấy tham chiếuString”Channel 1”
Trả vềMô tảKiểu
ComponentChannelĐối tượng ComponentChannelComponentChannel | Null
let components = device.channel("Channel 1").getComponentNames();

Các hàm này được sử dụng để điều khiển và tương tác với một tham chiếu ComponentChannel cụ thể.

Tương tự như hàm device.ledLimit(), hàm này đặt giới hạn LED an toàn tối đa cho ComponentChannel này.

Tham sốMô tảKiểuVí dụ
LedLimitGiới hạn LED mong muốn cho kênhInt16
device.channel("Channel 1").SetLedLimit(204);

Trả về số lượng LED mà người dùng đã cấu hình trên ComponentChannel này.

Trả vềMô tảKiểuVí dụ
LedCountSố lượng LED hiện tại của kênhInt16
let ChannelLedCount = device.channel("Channel 1").LedCount();

Hàm này trả về một mảng dữ liệu màu RGB dựa trên bản đồ LED và tọa độ thiết bị. Giá trị trả về của hàm này phụ thuộc rất nhiều vào việc đặt đúng các đối số.

Tham sốMô tảKiểuVí dụMặc định
ArrayOrderĐịnh dạng mảng mong muốnString”Inline""Seperate”
ColorOrderThứ tự màu mong muốnString”RGB""RGB”
Array OrderMô tảKiểuVí dụ
InlineĐịnh dạng dữ liệu màu thành mảng phẳng theo thứ tự đúng1D Array[R,G,B,R,G,B]
SeperateĐịnh dạng dữ liệu màu thành 3 kênh riêng biệt2D Array[[R,R], [G,G], [B,B]]

ColorOrder là tổ hợp 3 chữ cái của “RGB”, ví dụ: “BGR”, “GBR”, “RBG”. Nó xác định thứ tự màu khi sử dụng Inline ArrayOrder. Các giá trị không hợp lệ được reset về “RGB”.

Trả vềMô tảKiểuVí dụ
RGB DataDữ liệu màu RGB được trả về theo định dạng mong muốnArrayXem bảng Array Order
RGBData = device.channel("Channel 1").getColors("Inline", "GRB");

Hàm này trả về giá trị boolean cho biết liệu kênh thiết bị này có nên “nhấp nháy” hay không. Điều này có thể được yêu cầu khi không có components nào được chọn hoặc khi UI onboarding thiết lập component đang được hiển thị.

device.getChannelPulseColor() có thể được sử dụng để lấy màu nhấp nháy dự kiến.

Trả vềKiểuMô tả
ShouldPulsebooleanLiệu kênh này có nên nhấp nháy không