Điều khiển quạt
Các plugin có thể hiển thị điều khiển tốc độ quạt và báo cáo nhiệt độ cho hệ thống làm mát của SignalRGB. Khi được bật, người dùng có thể điều chỉnh đường cong quạt, theo dõi tốc độ và hiển thị giá trị nhiệt độ trực tiếp trong SignalRGB.
Mẫu chung cho plugin có điều khiển quạt là:
- Export
SupportsFanControl()và trả vềtrueđể thông báo cho SignalRGB rằng thiết bị này có quạt có thể điều khiển được. - Phát hiện quạt nào đang được kết nối (thông qua các lệnh dành riêng cho thiết bị hoặc truy vấn tốc độ vòng quay).
- Trong
Initialize(), gọidevice.createFanControl()cho mỗi quạt được phát hiện. - Trong mỗi khung trong
Render(): đọc tốc độ hiện tại từ thiết bị và báo cáo nó quadevice.setRPM(), sau đó đọc tốc độ mong muốn từdevice.getFanLevel()và áp dụng nó cho thiết bị.
Luôn kiểm tra device.fanControlDisabled() trước khi gọi các hàm mức quạt. Điều khiển quạt có thể không khả dụng vì người dùng không có SignalRGB Pro hoặc đã tắt thủ công.
Plugin export
Phần tiêu đề “Plugin export”SupportsFanControl()
Phần tiêu đề “SupportsFanControl()”Được export bởi plugin để chỉ ra rằng thiết bị này hỗ trợ điều khiển quạt. SignalRGB gọi hàm này trong quá trình khởi tạo để quyết định có hiển thị giao diện làm mát cho thiết bị hay không.
export function SupportsFanControl() { return true; }Nếu export này bị thiếu hoặc trả về false, API điều khiển quạt vẫn có sẵn nhưng giao diện làm mát sẽ không xuất hiện cho thiết bị.
Phương thức bộ điều khiển quạt
Phần tiêu đề “Phương thức bộ điều khiển quạt”device.fanControlDisabled()
Phần tiêu đề “device.fanControlDisabled()”Trả về true nếu điều khiển quạt hiện không khả dụng — hoặc vì người dùng không có SignalRGB Pro hoặc vì họ đã tắt thủ công hệ thống làm mát.
Luôn kiểm tra điều này trước khi gọi device.getFanLevel() hoặc device.getNormalizedFanLevel().
| Trả về | Kiểu | Mô tả |
|---|---|---|
| Disabled | boolean | true nếu API làm mát không khả dụng |
if (device.fanControlDisabled()) { return;}device.createFanControl(fanId)
Phần tiêu đề “device.createFanControl(fanId)”Tạo bộ điều khiển quạt với ID được chỉ định. Gọi hàm này trong Initialize() cho mỗi quạt mà thiết bị cung cấp. Nếu bộ điều khiển với ID này đã tồn tại, lời gọi sẽ bị bỏ qua.
| Tham số | Kiểu | Mô tả | Ví dụ |
|---|---|---|---|
| FanId | string | Định danh duy nhất cho bộ điều khiển quạt này | "Fan1" |
device.createFanControl("Fan1");device.createFanControl("Fan2");device.removeFanControl(fanId)
Phần tiêu đề “device.removeFanControl(fanId)”Xóa bộ điều khiển quạt với ID được chỉ định. Sử dụng hàm này khi quạt không còn được phát hiện hoặc khi thiết bị ngắt kết nối.
| Tham số | Kiểu | Mô tả | Ví dụ |
|---|---|---|---|
| FanId | string | ID của bộ điều khiển quạt cần xóa | "Fan1" |
device.getFanLevel(fanId)
Phần tiêu đề “device.getFanLevel(fanId)”Trả về tốc độ quạt mong muốn cho bộ điều khiển được chỉ định dưới dạng giá trị phần trăm (0–100), được suy ra từ cài đặt đường cong quạt hiện tại của người dùng.
| Tham số | Kiểu | Mô tả | Ví dụ |
|---|---|---|---|
| FanId | string | ID của bộ điều khiển quạt | "Fan1" |
| Trả về | Kiểu | Mô tả | Ví dụ |
|---|---|---|---|
| FanSpeed | int | Tốc độ mong muốn, 0–100 | 42 |
let speed = device.getFanLevel("Fan1"); // ví dụ: 42 (nghĩa là 42%)device.getNormalizedFanLevel(fanId)
Phần tiêu đề “device.getNormalizedFanLevel(fanId)”Trả về tốc độ quạt mong muốn dưới dạng float chuẩn hóa (0.0–1.0). Hữu ích khi thiết bị yêu cầu chu kỳ làm việc phân số thay vì giá trị phần trăm.
| Tham số | Kiểu | Mô tả | Ví dụ |
|---|---|---|---|
| FanId | string | ID của bộ điều khiển quạt | "Fan1" |
| Trả về | Kiểu | Mô tả | Ví dụ |
|---|---|---|---|
| FanSpeed | float | Tốc độ mong muốn, 0.0–1.0 | 0.42 |
let speed = device.getNormalizedFanLevel("Fan1"); // ví dụ: 0.42device.setRPM(fanId, rpm)
Phần tiêu đề “device.setRPM(fanId, rpm)”Báo cáo tốc độ vòng quay hiện tại được đo cho bộ điều khiển quạt. Giá trị này được hiển thị trong giao diện làm mát và biểu đồ theo dõi hệ thống.
| Tham số | Kiểu | Mô tả | Ví dụ |
|---|---|---|---|
| FanId | string | ID của bộ điều khiển quạt | "Fan1" |
| RPM | int | Tốc độ quạt hiện tại tính bằng vòng/phút | 1337 |
let rpm = ReadRPMFromDevice("Fan1");device.setRPM("Fan1", rpm);Phương thức cảm biến nhiệt độ
Phần tiêu đề “Phương thức cảm biến nhiệt độ”Các plugin cũng có thể báo cáo các số đo nhiệt độ cho hệ thống làm mát SignalRGB. Các giá trị này xuất hiện trong theo dõi hệ thống và có thể được sử dụng làm nguồn đầu vào cho các đường cong quạt.
device.createTemperatureSensor(sensorId)
Phần tiêu đề “device.createTemperatureSensor(sensorId)”Tạo cảm biến nhiệt độ với ID được chỉ định. Gọi hàm này trong Initialize() cho mỗi nguồn nhiệt độ mà thiết bị cung cấp.
| Tham số | Kiểu | Mô tả | Ví dụ |
|---|---|---|---|
| SensorId | string | Định danh duy nhất cho cảm biến này | "Coolant Temp" |
device.createTemperatureSensor("Coolant Temp");device.removeTemperatureSensor(sensorId)
Phần tiêu đề “device.removeTemperatureSensor(sensorId)”Xóa cảm biến nhiệt độ với ID được chỉ định.
| Tham số | Kiểu | Mô tả | Ví dụ |
|---|---|---|---|
| SensorId | string | ID của cảm biến cần xóa | "Coolant Temp" |
device.SetTemperature(sensorId, temperature)
Phần tiêu đề “device.SetTemperature(sensorId, temperature)”Báo cáo nhiệt độ hiện tại cho cảm biến được chỉ định. Gọi hàm này trong mỗi khung sau khi đọc giá trị từ thiết bị.
| Tham số | Kiểu | Mô tả | Ví dụ |
|---|---|---|---|
| SensorId | string | ID của cảm biến | "Coolant Temp" |
| Temperature | float | Nhiệt độ hiện tại tính bằng độ Celsius | 34.5 |
let temp = ReadTemperatureFromDevice();device.SetTemperature("Coolant Temp", temp);Ví dụ đầy đủ
Phần tiêu đề “Ví dụ đầy đủ”export function SupportsFanControl() { return true; }
export function Initialize() { device.createFanControl("Fan1"); device.createFanControl("Fan2"); device.createTemperatureSensor("Coolant Temp");}
export function Render() { // Aktuelle Drehzahl melden — jedes Frame erforderlich, sonst friert die Geschwindigkeit ein device.setRPM("Fan1", ReadRPM(1)); device.setRPM("Fan2", ReadRPM(2));
// Aktuelle Temperatur melden device.SetTemperature("Coolant Temp", ReadTemp());
// Gewünschte Geschwindigkeit auf Hardware anwenden if (!device.fanControlDisabled()) { SetDeviceFanSpeed(1, device.getFanLevel("Fan1")); SetDeviceFanSpeed(2, device.getFanLevel("Fan2")); }}
export function Shutdown() { device.removeFanControl("Fan1"); device.removeFanControl("Fan2"); device.removeTemperatureSensor("Coolant Temp");}