Kontrola ventilatora
Pluginovi mogu biti izloženi kontroli brzine ventilatora i izveštavanju o temperaturi u sistemu hlađenja SignalRGBa. Kada je omogućeno, korisnici mogu podešavati krive ventilatora, pratiti brzinu i prikazivati vrednosti temperature direktno u SignalRGBu.
Opšti obrazac za plugin sa kontrolom ventilatora je:
- Exportovati
SupportsFanControl()i vratititrueda biste obavestili SignalRGB da ovaj uređaj ima upravljive ventilatore. - Detektovati koji su ventilatori priključeni (putem komandi specifičnih za uređaj ili upita brzine obrtanja).
- U
Initialize()pozvatidevice.createFanControl()za svaki detektovani ventilator. - U svakom frejmu u
Render(): pročitati trenutnu brzinu sa uređaja i prijaviti je putemdevice.setRPM(), zatim pročitati željenu brzinu izdevice.getFanLevel()i primeniti je na uređaj.
Uvek proverite device.fanControlDisabled() pre pozivanja funkcija nivoa ventilatora. Kontrola ventilatora može biti nedostupna jer korisnik nema SignalRGB Pro ili je ručno onemogućio.
Plugin export
Section titled “Plugin export”SupportsFanControl()
Section titled “SupportsFanControl()”Exportuje ga plugin da naznači da ovaj uređaj podržava kontrolu ventilatora. SignalRGB ovo poziva tokom inicijalizacije da odluči treba li prikazati korisničko sučelje hlađenja za uređaj.
export function SupportsFanControl() { return true; }Ako ovaj export nedostaje ili vraća false, API kontrole ventilatora je dostupan, ali korisničko sučelje hlađenja se neće pojaviti za uređaj.
Metode regulatora ventilatora
Section titled “Metode regulatora ventilatora”device.fanControlDisabled()
Section titled “device.fanControlDisabled()”Vraća true ako kontrola ventilatora trenutno nije dostupna — ili zato što korisnik nema SignalRGB Pro ili zato što je ručno onemogućio sistem hlađenja.
Uvek proverite ovo pre pozivanja device.getFanLevel() ili device.getNormalizedFanLevel().
| Povratak | Tip | Opis |
|---|---|---|
| Disabled | boolean | true ako API hlađenja nije dostupan |
if (device.fanControlDisabled()) { return;}device.createFanControl(fanId)
Section titled “device.createFanControl(fanId)”Kreira regulator ventilatora sa navedenim ID-om. Pozovite ovo u Initialize() za svaki ventilator koji uređaj nudi. Ako regulator sa ovim ID-om već postoji, poziv se ignoriše.
| Parametar | Tip | Opis | Primer |
|---|---|---|---|
| FanId | string | Jedinstveni identifikator za ovaj regulator ventilatora | "Fan1" |
device.createFanControl("Fan1");device.createFanControl("Fan2");device.removeFanControl(fanId)
Section titled “device.removeFanControl(fanId)”Uklanja regulator ventilatora sa navedenim ID-om. Koristite ovo kada ventilator više nije detektovan ili kada se uređaj isključi.
| Parametar | Tip | Opis | Primer |
|---|---|---|---|
| FanId | string | ID regulatora ventilatora koji treba ukloniti | "Fan1" |
device.getFanLevel(fanId)
Section titled “device.getFanLevel(fanId)”Vraća željenu brzinu ventilatora za navedeni regulator kao procentualnu vrednost (0–100), izvedenu iz trenutnih podešavanja krive ventilatora korisnika.
| Parametar | Tip | Opis | Primer |
|---|---|---|---|
| FanId | string | ID regulatora ventilatora | "Fan1" |
| Povratak | Tip | Opis | Primer |
|---|---|---|---|
| FanSpeed | int | Željena brzina, 0–100 | 42 |
let speed = device.getFanLevel("Fan1"); // npr. 42 (znači 42%)device.getNormalizedFanLevel(fanId)
Section titled “device.getNormalizedFanLevel(fanId)”Vraća željenu brzinu ventilatora kao normalizovani float (0.0–1.0). Korisno kada uređaj očekuje razlomljeni radni ciklus umesto procentualne vrednosti.
| Parametar | Tip | Opis | Primer |
|---|---|---|---|
| FanId | string | ID regulatora ventilatora | "Fan1" |
| Povratak | Tip | Opis | Primer |
|---|---|---|---|
| FanSpeed | float | Željena brzina, 0.0–1.0 | 0.42 |
let speed = device.getNormalizedFanLevel("Fan1"); // npr. 0.42device.setRPM(fanId, rpm)
Section titled “device.setRPM(fanId, rpm)”Prijavljuje trenutno izmerenu brzinu obrtanja za regulator ventilatora. Ova vrednost se prikazuje u korisničkom sučelju hlađenja i grafikonima praćenja sistema.
| Parametar | Tip | Opis | Primer |
|---|---|---|---|
| FanId | string | ID regulatora ventilatora | "Fan1" |
| RPM | int | Trenutna brzina ventilatora u o/min | 1337 |
let rpm = ReadRPMFromDevice("Fan1");device.setRPM("Fan1", rpm);Metode senzora temperature
Section titled “Metode senzora temperature”Pluginovi mogu takođe prijavljivati merenja temperature sistemu hlađenja SignalRGBa. Ove vrednosti se pojavljuju u praćenju sistema i mogu se koristiti kao izvor unosa za krive ventilatora.
device.createTemperatureSensor(sensorId)
Section titled “device.createTemperatureSensor(sensorId)”Kreira senzor temperature sa navedenim ID-om. Pozovite ovo u Initialize() za svaki izvor temperature koji uređaj nudi.
| Parametar | Tip | Opis | Primer |
|---|---|---|---|
| SensorId | string | Jedinstveni identifikator za ovaj senzor | "Coolant Temp" |
device.createTemperatureSensor("Coolant Temp");device.removeTemperatureSensor(sensorId)
Section titled “device.removeTemperatureSensor(sensorId)”Uklanja senzor temperature sa navedenim ID-om.
| Parametar | Tip | Opis | Primer |
|---|---|---|---|
| SensorId | string | ID senzora koji treba ukloniti | "Coolant Temp" |
device.SetTemperature(sensorId, temperature)
Section titled “device.SetTemperature(sensorId, temperature)”Prijavljuje trenutnu temperaturu za navedeni senzor. Pozovite ovo u svakom frejmu nakon čitanja vrednosti sa uređaja.
| Parametar | Tip | Opis | Primer |
|---|---|---|---|
| SensorId | string | ID senzora | "Coolant Temp" |
| Temperature | float | Trenutna temperatura u stepenima Celzijusa | 34.5 |
let temp = ReadTemperatureFromDevice();device.SetTemperature("Coolant Temp", temp);Kompletan primer
Section titled “Kompletan primer”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");}