Ga naar inhoud

Ventilatorbesturing

Plugins kunnen ventilatorsneelheidsbesturing en temperatuurrapportage beschikbaar stellen aan het koelsysteem van SignalRGB. Wanneer ingeschakeld, kunnen gebruikers ventilatorprofielen instellen, RPM bewaken en temperatuurmetingen rechtstreeks in SignalRGB bekijken.

Het algemene patroon voor een plugin die ventilatorbesturing ondersteunt is:

  1. Exporteer SupportsFanControl() die true retourneert om SignalRGB te vertellen dat dit apparaat bestuurbare ventilatoren heeft.
  2. Detecteer welke ventilatoren zijn aangesloten (via apparaatspecifieke opdrachten of RPM-polling).
  3. Roep device.createFanControl() aan voor elke gedetecteerde ventilator in Initialize().
  4. Elk frame in Render(): lees de huidige RPM van het apparaat en rapporteer het met device.setRPM(), lees dan de gewenste snelheid van device.getFanLevel() en pas deze toe op het apparaat.

Controleer altijd device.fanControlDisabled() voordat u ventilatorsneelheidsfuncties aanroept. Ventilatorbesturing kan niet beschikbaar zijn omdat de gebruiker geen SignalRGB Pro heeft, of omdat de gebruiker het handmatig heeft uitgeschakeld.


Wordt geëxporteerd vanuit de plugin om aan te geven dat dit apparaat ventilatorbesturing ondersteunt. SignalRGB roept dit aan tijdens initialisatie om te beslissen of de koeling-UI voor het apparaat wordt weergegeven.

export function SupportsFanControl() { return true; }

Als deze export ontbreekt of false retourneert, is de ventilatorbesturing-API nog steeds toegankelijk, maar de koeling-UI verschijnt niet voor het apparaat.


Retourneert true als ventilatorbesturing momenteel niet beschikbaar is — ofwel omdat de gebruiker geen SignalRGB Pro heeft, of de gebruiker het koelsysteem handmatig heeft uitgeschakeld.

Controleer dit altijd voordat u device.getFanLevel() of device.getNormalizedFanLevel() aanroept.

RetourTypeBeschrijving
Disabledbooleantrue als de koeling-API niet beschikbaar is
if (device.fanControlDisabled()) {
return;
}

Maakt een ventilatorcontroller aan met het opgegeven ID. Roep dit aan in Initialize() voor elke ventilator die het apparaat beschikbaar stelt. Als er al een controller met het opgegeven ID bestaat, wordt de aanroep genegeerd.

ParameterTypeBeschrijvingVoorbeeld
FanIdstringUnieke identificatie voor deze ventilatorcontroller"Fan1"
device.createFanControl("Fan1");
device.createFanControl("Fan2");

Verwijdert de ventilatorcontroller met het opgegeven ID. Gebruik dit als een ventilator niet meer wordt gedetecteerd of het apparaat de verbinding verbreekt.

ParameterTypeBeschrijvingVoorbeeld
FanIdstringID van de te verwijderen ventilatorcontroller"Fan1"

Retourneert de gewenste ventilatorsnelheid voor de opgegeven ventilatorcontroller als een percentage (0–100), afgeleid van de huidige ventilatorkurve-instellingen van de gebruiker.

ParameterTypeBeschrijvingVoorbeeld
FanIdstringVentilatorcontroller-ID"Fan1"
RetourTypeBeschrijvingVoorbeeld
FanSpeedintGewenste snelheid, 0–10042
let speed = device.getFanLevel("Fan1"); // bijv. 42 (betekent 42%)

Retourneert de gewenste ventilatorsnelheid als een genormaliseerde float (0.0–1.0). Handig wanneer het apparaat een fractionele arbeidscyclus verwacht in plaats van een percentage.

ParameterTypeBeschrijvingVoorbeeld
FanIdstringVentilatorcontroller-ID"Fan1"
RetourTypeBeschrijvingVoorbeeld
FanSpeedfloatGewenste snelheid, 0.0–1.00.42
let speed = device.getNormalizedFanLevel("Fan1"); // bijv. 0.42

Rapporteert de huidige gemeten RPM voor een ventilatorcontroller. Deze waarde wordt weergegeven in de koeling-UI en systeembewakingsgrafieken.

ParameterTypeBeschrijvingVoorbeeld
FanIdstringVentilatorcontroller-ID"Fan1"
RPMintHuidige ventilatorsnelheid in RPM1337
let rpm = ReadRPMFromDevice("Fan1");
device.setRPM("Fan1", rpm);

Plugins kunnen ook temperatuurmetingen beschikbaar stellen aan het koelsysteem van SignalRGB. Deze waarden verschijnen in systeembewaking en kunnen worden gebruikt als invoerbron voor ventilatorkurven.

Maakt een temperatuursensor aan met het opgegeven ID. Roep dit aan in Initialize() voor elke temperatuurbron die het apparaat beschikbaar stelt.

ParameterTypeBeschrijvingVoorbeeld
SensorIdstringUnieke identificatie voor deze sensor"Coolant Temp"
device.createTemperatureSensor("Coolant Temp");

Verwijdert de temperatuursensor met het opgegeven ID.

ParameterTypeBeschrijvingVoorbeeld
SensorIdstringID van de te verwijderen sensor"Coolant Temp"

device.SetTemperature(sensorId, temperature)

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

Rapporteert de huidige temperatuur voor de opgegeven sensor. Roep dit elk frame aan na het lezen van de waarde van het apparaat.

ParameterTypeBeschrijvingVoorbeeld
SensorIdstringSensor-ID"Coolant Temp"
TemperaturefloatHuidige temperatuur in graden 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() {
// Report current RPM — required every frame or speed will hardlock
device.setRPM("Fan1", ReadRPM(1));
device.setRPM("Fan2", ReadRPM(2));
// Report current temperature
device.SetTemperature("Coolant Temp", ReadTemp());
// Apply desired speed to 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");
}