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:
- Eksport
SupportsFanControl()dan kembalikantrueuntuk memberitahu SignalRGB bahawa peranti ini mempunyai kipas yang boleh dikawal. - Kesan kipas yang disambungkan (melalui arahan khusus peranti atau pertanyaan RPM).
- Dalam
Initialize(), panggildevice.createFanControl()untuk setiap kipas yang dikesan. - Dalam setiap frame dalam
Render(): baca kelajuan semasa dari peranti dan lapor menggunakandevice.setRPM(), kemudian baca kelajuan yang dikehendaki daridevice.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.
Eksport Plugin
Section titled “Eksport Plugin”SupportsFanControl()
Section titled “SupportsFanControl()”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.
Kaedah Pengawal Kipas
Section titled “Kaedah Pengawal Kipas”device.fanControlDisabled()
Section titled “device.fanControlDisabled()”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().
| Pulangan | Jenis | Keterangan |
|---|---|---|
| Disabled | boolean | true jika API Penyejukan tidak tersedia |
if (device.fanControlDisabled()) { return;}device.createFanControl(fanId)
Section titled “device.createFanControl(fanId)”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.
| Parameter | Jenis | Keterangan | Contoh |
|---|---|---|---|
| FanId | string | Pengecam unik untuk pengawal kipas ini | "Fan1" |
device.createFanControl("Fan1");device.createFanControl("Fan2");device.removeFanControl(fanId)
Section titled “device.removeFanControl(fanId)”Membuang pengawal kipas dengan ID yang diberikan. Gunakan ini apabila kipas tidak lagi dikesan atau peranti diputuskan sambungan.
| Parameter | Jenis | Keterangan | Contoh |
|---|---|---|---|
| FanId | string | ID pengawal kipas yang hendak dibuang | "Fan1" |
device.getFanLevel(fanId)
Section titled “device.getFanLevel(fanId)”Mengembalikan kelajuan kipas yang dikehendaki untuk pengawal kipas yang diberikan sebagai peratusan (0–100), berdasarkan tetapan keluk kipas pengguna semasa.
| Parameter | Jenis | Keterangan | Contoh |
|---|---|---|---|
| FanId | string | ID pengawal kipas | "Fan1" |
| Pulangan | Jenis | Keterangan | Contoh |
|---|---|---|---|
| FanSpeed | int | Kelajuan yang dikehendaki, 0–100 | 42 |
let speed = device.getFanLevel("Fan1"); // contoh: 42 (bermakna 42%)device.getNormalizedFanLevel(fanId)
Section titled “device.getNormalizedFanLevel(fanId)”Mengembalikan kelajuan kipas yang dikehendaki sebagai float ternormal (0.0–1.0). Berguna apabila peranti menjangkakan kitaran tugas pecahan dan bukannya nilai peratusan.
| Parameter | Jenis | Keterangan | Contoh |
|---|---|---|---|
| FanId | string | ID pengawal kipas | "Fan1" |
| Pulangan | Jenis | Keterangan | Contoh |
|---|---|---|---|
| FanSpeed | float | Kelajuan yang dikehendaki, 0.0–1.0 | 0.42 |
let speed = device.getNormalizedFanLevel("Fan1"); // contoh: 0.42device.setRPM(fanId, rpm)
Section titled “device.setRPM(fanId, rpm)”Melaporkan kelajuan putaran semasa yang diukur untuk pengawal kipas. Nilai ini dipaparkan dalam UI Penyejukan dan graf pemantauan sistem.
| Parameter | Jenis | Keterangan | Contoh |
|---|---|---|---|
| FanId | string | ID pengawal kipas | "Fan1" |
| RPM | int | Kelajuan kipas semasa dalam RPM | 1337 |
let rpm = ReadRPMFromDevice("Fan1");device.setRPM("Fan1", rpm);Kaedah Penderia Suhu
Section titled “Kaedah Penderia Suhu”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.
device.createTemperatureSensor(sensorId)
Section titled “device.createTemperatureSensor(sensorId)”Mencipta penderia suhu dengan ID yang diberikan. Panggil ini dalam Initialize() untuk setiap sumber suhu yang ditawarkan peranti.
| Parameter | Jenis | Keterangan | Contoh |
|---|---|---|---|
| SensorId | string | Pengecam unik untuk penderia ini | "Coolant Temp" |
device.createTemperatureSensor("Coolant Temp");device.removeTemperatureSensor(sensorId)
Section titled “device.removeTemperatureSensor(sensorId)”Membuang penderia suhu dengan ID yang diberikan.
| Parameter | Jenis | Keterangan | Contoh |
|---|---|---|---|
| SensorId | string | ID 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.
| Parameter | Jenis | Keterangan | Contoh |
|---|---|---|---|
| SensorId | string | ID penderia | "Coolant Temp" |
| Temperature | float | Suhu semasa dalam darjah Celsius | 34.5 |
let temp = ReadTemperatureFromDevice();device.SetTemperature("Coolant Temp", temp);Contoh Lengkap
Section titled “Contoh Lengkap”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");}