Skip to content

Kawalan Kipas

Plugin boleh didedahkan kepada kawalan kelajuan kipas dan pelaporan suhu dalam sistem penyejukan SignalRGB. Apabila diaktifkan, pengguna boleh menetapkan keluk kipas, memantau kelajuan, dan melihat nilai suhu terus dalam SignalRGB.

Corak umum untuk plugin dengan kawalan kipas ialah:

  1. Eksport SupportsFanControl() dan kembalikan true untuk memberitahu SignalRGB bahawa peranti ini mempunyai kipas yang boleh dikawal.
  2. Kesan kipas yang disambungkan (melalui arahan khusus peranti atau pertanyaan RPM).
  3. Dalam Initialize(), panggil device.createFanControl() untuk setiap kipas yang dikesan.
  4. Dalam setiap frame dalam Render(): baca kelajuan semasa dari peranti dan lapor menggunakan device.setRPM(), kemudian baca kelajuan yang dikehendaki dari device.getFanLevel() dan aplikasikannya ke peranti.

Sentiasa semak device.fanControlDisabled() sebelum memanggil fungsi-fungsi tahap kipas. Kawalan kipas mungkin tidak tersedia kerana pengguna tidak mempunyai SignalRGB Pro atau kerana mereka telah menyahaktifkannya secara manual.


Dieksport oleh plugin untuk menunjukkan bahawa peranti ini menyokong kawalan kipas. SignalRGB memanggilnya semasa inisialisasi untuk memutuskan sama ada hendak memaparkan UI Penyejukan untuk peranti tersebut.

export function SupportsFanControl() { return true; }

Jika eksport ini tiada atau mengembalikan false, API kawalan kipas masih boleh diakses, tetapi UI Penyejukan tidak akan muncul untuk peranti tersebut.


Mengembalikan true jika kawalan kipas tidak tersedia pada masa ini — sama ada kerana pengguna tidak mempunyai SignalRGB Pro atau kerana mereka telah menyahaktifkan sistem penyejukan secara manual.

Sentiasa semak ini sebelum memanggil device.getFanLevel() atau device.getNormalizedFanLevel().

PulanganJenisKeterangan
Disabledbooleantrue jika API Penyejukan tidak tersedia
if (device.fanControlDisabled()) {
return;
}

Mencipta pengawal kipas dengan ID yang diberikan. Panggil ini dalam Initialize() untuk setiap kipas yang ditawarkan peranti. Jika pengawal dengan ID ini sudah wujud, panggilan akan diabaikan.

ParameterJenisKeteranganContoh
FanIdstringPengecam unik untuk pengawal kipas ini"Fan1"
device.createFanControl("Fan1");
device.createFanControl("Fan2");

Membuang pengawal kipas dengan ID yang diberikan. Gunakan ini apabila kipas tidak lagi dikesan atau peranti diputuskan sambungan.

ParameterJenisKeteranganContoh
FanIdstringID pengawal kipas yang hendak dibuang"Fan1"

Mengembalikan kelajuan kipas yang dikehendaki untuk pengawal kipas yang diberikan sebagai peratusan (0–100), berdasarkan tetapan keluk kipas pengguna semasa.

ParameterJenisKeteranganContoh
FanIdstringID pengawal kipas"Fan1"
PulanganJenisKeteranganContoh
FanSpeedintKelajuan yang dikehendaki, 0–10042
let speed = device.getFanLevel("Fan1"); // contoh: 42 (bermakna 42%)

Mengembalikan kelajuan kipas yang dikehendaki sebagai float ternormal (0.0–1.0). Berguna apabila peranti menjangkakan kitaran tugas pecahan dan bukannya nilai peratusan.

ParameterJenisKeteranganContoh
FanIdstringID pengawal kipas"Fan1"
PulanganJenisKeteranganContoh
FanSpeedfloatKelajuan yang dikehendaki, 0.0–1.00.42
let speed = device.getNormalizedFanLevel("Fan1"); // contoh: 0.42

Melaporkan kelajuan putaran semasa yang diukur untuk pengawal kipas. Nilai ini dipaparkan dalam UI Penyejukan dan graf pemantauan sistem.

ParameterJenisKeteranganContoh
FanIdstringID pengawal kipas"Fan1"
RPMintKelajuan kipas semasa dalam RPM1337
let rpm = ReadRPMFromDevice("Fan1");
device.setRPM("Fan1", rpm);

Plugin juga boleh melaporkan pengukuran suhu ke sistem penyejukan SignalRGB. Nilai-nilai ini muncul dalam pemantauan sistem dan boleh digunakan sebagai sumber input untuk keluk kipas.

Mencipta penderia suhu dengan ID yang diberikan. Panggil ini dalam Initialize() untuk setiap sumber suhu yang ditawarkan peranti.

ParameterJenisKeteranganContoh
SensorIdstringPengecam unik untuk penderia ini"Coolant Temp"
device.createTemperatureSensor("Coolant Temp");

Membuang penderia suhu dengan ID yang diberikan.

ParameterJenisKeteranganContoh
SensorIdstringID penderia yang hendak dibuang"Coolant Temp"

device.SetTemperature(sensorId, temperature)

Section titled “device.SetTemperature(sensorId, temperature)”

Melaporkan suhu semasa untuk penderia yang diberikan. Panggil ini dalam setiap frame selepas membaca nilai dari peranti.

ParameterJenisKeteranganContoh
SensorIdstringID penderia"Coolant Temp"
TemperaturefloatSuhu semasa dalam darjah Celsius34.5
let temp = ReadTemperatureFromDevice();
device.SetTemperature("Coolant Temp", temp);

export function SupportsFanControl() { return true; }
export function Initialize() {
device.createFanControl("Fan1");
device.createFanControl("Fan2");
device.createTemperatureSensor("Coolant Temp");
}
export function Render() {
// Lapor kelajuan semasa — diperlukan setiap frame, jika tidak kelajuan akan membeku
device.setRPM("Fan1", ReadRPM(1));
device.setRPM("Fan2", ReadRPM(2));
// Lapor suhu semasa
device.SetTemperature("Coolant Temp", ReadTemp());
// Aplikasikan kelajuan yang dikehendaki ke perkakasan
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");
}