Gå til indhold

Blæserstyring

Plugins kan eksponeres til blæseromdrejningsstyring og temperaturrapportering i SignalRGBs kølesystem. Når aktiveret, kan brugere indstille blæserkurver, overvåge omdrejningshastigheder og se temperaturværdier direkte i SignalRGB.

Det generelle mønster for et plugin med blæserstyring er:

  1. Eksportér SupportsFanControl() og returnér true for at informere SignalRGB om at denne enhed har styrbare blæsere.
  2. Registrér hvilke blæsere der er tilsluttet (via enhedsspecifikke kommandoer eller RPM-forespørgsler).
  3. Kald device.createFanControl() i Initialize() for hver registreret blæser.
  4. I hvert frame i Render(): læs den aktuelle omdrejningshastighed fra enheden og rapportér med device.setRPM(), læs derefter den ønskede hastighed fra device.getFanLevel() og anvend den på enheden.

Kontrollér altid device.fanControlDisabled() inden du kalder blæserreguleringsfunktioner. Blæserstyring er muligvis ikke tilgængelig, fordi brugeren ikke har SignalRGB Pro, eller fordi han har deaktiveret den manuelt.


Eksporteres af pluginet for at indikere at denne enhed understøtter blæserstyring. SignalRGB kalder dette under initialisering for at beslutte om Cooling-UI’en skal vises for enheden.

export function SupportsFanControl() { return true; }

Hvis denne eksport mangler eller returnerer false, er blæserstyrings-API’en stadig tilgængelig, men Cooling-UI’en vil ikke vises for enheden.


Returnerer true hvis blæserstyring ikke er tilgængelig — enten fordi brugeren ikke har SignalRGB Pro, eller fordi han har deaktiveret kølesystemet manuelt.

Kontrollér altid dette inden kald af device.getFanLevel() eller device.getNormalizedFanLevel().

ReturneringTypeBeskrivelse
Disabledbooleantrue hvis Cooling-API’en ikke er tilgængelig
if (device.fanControlDisabled()) {
return;
}

Opretter en blæserregulator med det angivne ID. Kald dette i Initialize() for hver blæser enheden tilbyder. Hvis der allerede eksisterer en regulator med dette ID, ignoreres kaldet.

ParameterTypeBeskrivelseEksempel
FanIdstringUnik identifikation for denne blæserregulator"Fan1"
device.createFanControl("Fan1");
device.createFanControl("Fan2");

Fjerner blæseregulatoren med det angivne ID. Brug dette, når en blæser ikke længere registreres, eller enheden frakobles.

ParameterTypeBeskrivelseEksempel
FanIdstringID på den blæserregulator der skal fjernes"Fan1"

Returnerer den ønskede blæserhastighed for den angivne blæserregulator som en procentværdi (0–100), afledt fra brugerens aktuelle blæserkurveindstillinger.

ParameterTypeBeskrivelseEksempel
FanIdstringBlæserregulator-ID"Fan1"
ReturneringTypeBeskrivelseEksempel
FanSpeedintØnsket hastighed, 0–10042
let speed = device.getFanLevel("Fan1"); // f.eks. 42 (betyder 42 %)

Returnerer den ønskede blæserhastighed som et normaliseret float (0,0–1,0). Nyttigt når enheden forventer en fraktionel arbejdscyklus i stedet for en procentværdi.

ParameterTypeBeskrivelseEksempel
FanIdstringBlæserregulator-ID"Fan1"
ReturneringTypeBeskrivelseEksempel
FanSpeedfloatØnsket hastighed, 0,0–1,00.42
let speed = device.getNormalizedFanLevel("Fan1"); // f.eks. 0.42

Rapporterer den aktuelt målte omdrejningshastighed for en blæserregulator. Denne værdi vises i Cooling-UI’en og systemovervågningsgraferne.

ParameterTypeBeskrivelseEksempel
FanIdstringBlæserregulator-ID"Fan1"
RPMintAktuel blæserhastighed i o/min1337
let rpm = ReadRPMFromDevice("Fan1");
device.setRPM("Fan1", rpm);

Plugins kan også rapportere temperaturmålinger til SignalRGBs kølesystem. Disse værdier vises i systemovervågningen og kan bruges som inputkilde til blæserkurver.

device.createTemperatureSensor(sensorId)

Sektion kaldt “device.createTemperatureSensor(sensorId)”

Opretter en temperatursensor med det angivne ID. Kald dette i Initialize() for hver temperaturkilde enheden tilbyder.

ParameterTypeBeskrivelseEksempel
SensorIdstringUnik identifikation for denne sensor"Coolant Temp"
device.createTemperatureSensor("Coolant Temp");

device.removeTemperatureSensor(sensorId)

Sektion kaldt “device.removeTemperatureSensor(sensorId)”

Fjerner temperatursensoren med det angivne ID.

ParameterTypeBeskrivelseEksempel
SensorIdstringID på den sensor der skal fjernes"Coolant Temp"

device.SetTemperature(sensorId, temperature)

Sektion kaldt “device.SetTemperature(sensorId, temperature)”

Rapporterer den aktuelle temperatur for den angivne sensor. Kald dette i hvert frame, efter du har læst værdien fra enheden.

ParameterTypeBeskrivelseEksempel
SensorIdstringSensor-ID"Coolant Temp"
TemperaturefloatAktuel temperatur i grader 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() {
// Rapportér aktuel omdrejningshastighed — kræves hvert frame, ellers fryser hastigheden
device.setRPM("Fan1", ReadRPM(1));
device.setRPM("Fan2", ReadRPM(2));
// Rapportér aktuel temperatur
device.SetTemperature("Coolant Temp", ReadTemp());
// Anvend ønsket hastighed på hardware
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");
}