Skip to content

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:

  1. Exportovati SupportsFanControl() i vratiti true da biste obavestili SignalRGB da ovaj uređaj ima upravljive ventilatore.
  2. Detektovati koji su ventilatori priključeni (putem komandi specifičnih za uređaj ili upita brzine obrtanja).
  3. U Initialize() pozvati device.createFanControl() za svaki detektovani ventilator.
  4. U svakom frejmu u Render(): pročitati trenutnu brzinu sa uređaja i prijaviti je putem device.setRPM(), zatim pročitati željenu brzinu iz device.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.


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.


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().

PovratakTipOpis
Disabledbooleantrue ako API hlađenja nije dostupan
if (device.fanControlDisabled()) {
return;
}

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.

ParametarTipOpisPrimer
FanIdstringJedinstveni identifikator za ovaj regulator ventilatora"Fan1"
device.createFanControl("Fan1");
device.createFanControl("Fan2");

Uklanja regulator ventilatora sa navedenim ID-om. Koristite ovo kada ventilator više nije detektovan ili kada se uređaj isključi.

ParametarTipOpisPrimer
FanIdstringID regulatora ventilatora koji treba ukloniti"Fan1"

Vraća željenu brzinu ventilatora za navedeni regulator kao procentualnu vrednost (0–100), izvedenu iz trenutnih podešavanja krive ventilatora korisnika.

ParametarTipOpisPrimer
FanIdstringID regulatora ventilatora"Fan1"
PovratakTipOpisPrimer
FanSpeedintŽeljena brzina, 0–10042
let speed = device.getFanLevel("Fan1"); // npr. 42 (znači 42%)

Vraća željenu brzinu ventilatora kao normalizovani float (0.0–1.0). Korisno kada uređaj očekuje razlomljeni radni ciklus umesto procentualne vrednosti.

ParametarTipOpisPrimer
FanIdstringID regulatora ventilatora"Fan1"
PovratakTipOpisPrimer
FanSpeedfloatŽeljena brzina, 0.0–1.00.42
let speed = device.getNormalizedFanLevel("Fan1"); // npr. 0.42

Prijavljuje trenutno izmerenu brzinu obrtanja za regulator ventilatora. Ova vrednost se prikazuje u korisničkom sučelju hlađenja i grafikonima praćenja sistema.

ParametarTipOpisPrimer
FanIdstringID regulatora ventilatora"Fan1"
RPMintTrenutna brzina ventilatora u o/min1337
let rpm = ReadRPMFromDevice("Fan1");
device.setRPM("Fan1", rpm);

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.

Kreira senzor temperature sa navedenim ID-om. Pozovite ovo u Initialize() za svaki izvor temperature koji uređaj nudi.

ParametarTipOpisPrimer
SensorIdstringJedinstveni identifikator za ovaj senzor"Coolant Temp"
device.createTemperatureSensor("Coolant Temp");

Uklanja senzor temperature sa navedenim ID-om.

ParametarTipOpisPrimer
SensorIdstringID 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.

ParametarTipOpisPrimer
SensorIdstringID senzora"Coolant Temp"
TemperaturefloatTrenutna temperatura u stepenima Celzijusa34.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() {
// 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");
}