Hoppa till innehåll

Fläktstyrning

Plugins kan erbjuda fläkthastighetsreglering och temperaturrapportering till SignalRGB:s kylningssystem. När det är aktiverat kan användare ställa in fläktkurvor, övervaka RPM-värden och visa temperaturavläsningar direkt i SignalRGB.

Det allmänna mönstret för ett plugin som stöder fläktstyrning är:

  1. Exportera en SupportsFanControl()-funktion som returnerar true för att berätta för SignalRGB att den här enheten har styrningsbara fläktar.
  2. Identifiera vilka fläktar som är anslutna (via enhetsspecifika kommandon eller RPM-polling).
  3. Anropa device.createFanControl() för varje identifierad fläkt i Initialize().
  4. I Render() varje bildruta: läs aktuellt RPM-värde från enheten och rapportera det med device.setRPM(), läs sedan önskad hastighet med device.getFanLevel() och applicera den på enheten.

Kontrollera alltid device.fanControlDisabled() innan du anropar någon fläktnivåfunktion. Fläktstyrning kan vara otillgänglig antingen för att användaren inte har SignalRGB Pro, eller för att användaren manuellt har inaktiverat det.


Exporteras från pluginet för att signalera att den här enheten stöder fläktstyrning. SignalRGB anropar detta under initiering för att avgöra om kylnings-UI:t ska visas för enheten.

export function SupportsFanControl() { return true; }

Om den här exporten saknas eller returnerar false är fläktstyrnings-API:t fortfarande tillgängligt, men kylnings-UI:t visas inte för enheten.


Returnerar true om fläktstyrning för tillfället inte är tillgängligt — antingen för att användaren inte har SignalRGB Pro, eller för att användaren manuellt har inaktiverat kylningssystemet.

Kontrollera alltid detta innan du anropar device.getFanLevel() eller device.getNormalizedFanLevel().

ReturnerarTypBeskrivning
Disabledbooleantrue om kylnings-API:t inte är tillgängligt
if (device.fanControlDisabled()) {
return;
}

Skapar en fläktstyrenhet med det givna ID:t. Anropa detta i Initialize() för varje fläkt enheten erbjuder. Om en styrenhet med det givna ID:t redan finns ignoreras anropet.

ParameterTypBeskrivningExempel
FanIdstringUnikt identifierare för den här fläktstyrenheten"Fan1"
device.createFanControl("Fan1");
device.createFanControl("Fan2");

Tar bort fläktstyrenheten med det givna ID:t. Använd det här om en fläkt inte längre kan identifieras eller om enheten kopplas från.

ParameterTypBeskrivningExempel
FanIdstringID för fläktstyrenheten som ska tas bort"Fan1"

Returnerar önskad fläkthastighet som ett procenttal (0–100) för den givna fläktstyrenheten, härledd från användarens aktuella fläktkurvainställningar.

ParameterTypBeskrivningExempel
FanIdstringFläkstyrenhetens ID"Fan1"
ReturnerarTypBeskrivningExempel
FanSpeedintÖnskad hastighet, 0–10042
let speed = device.getFanLevel("Fan1"); // t.ex. 42 som innebär 42 %

Returnerar önskad fläkthastighet som ett normaliserat float (0.0–1.0). Användbart när enheten förväntar sig en fraktionell driftscykel snarare än ett procenttal.

ParameterTypBeskrivningExempel
FanIdstringFläkstyrenhetens ID"Fan1"
ReturnerarTypBeskrivningExempel
FanSpeedfloatÖnskad hastighet, 0.0–1.00.42
let speed = device.getNormalizedFanLevel("Fan1"); // t.ex. 0.42

Rapporterar det uppmätta aktuella RPM-värdet för en fläktstyrenhet. Det här värdet visas i kylnings-UI:t och i systemövervakningsgrafer.

ParameterTypBeskrivningExempel
FanIdstringFläkstyrenhetens ID"Fan1"
RPMintAktuell fläkthastighet i RPM1337
let rpm = ReadRPMFromDevice("Fan1");
device.setRPM("Fan1", rpm);

Plugins kan också erbjuda temperaturavläsningar till SignalRGB:s kylningssystem. Dessa värden visas i systemövervakning och kan användas som ingångskälla för fläktkurvor.

Skapar en temperatursensor med det givna ID:t. Anropa detta i Initialize() för varje temperaturkälla enheten erbjuder.

ParameterTypBeskrivningExempel
SensorIdstringUnikt identifierare för den här sensorn"Coolant Temp"
device.createTemperatureSensor("Coolant Temp");

Tar bort temperatursensorn med det givna ID:t.

ParameterTypBeskrivningExempel
SensorIdstringID för sensorn som ska tas bort"Coolant Temp"

device.SetTemperature(sensorId, temperature)

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

Rapporterar aktuell temperatur för den givna sensorn. Anropa detta varje bildruta efter att värdet har lästs från enheten.

ParameterTypBeskrivningExempel
SensorIdstringSensorns ID"Coolant Temp"
TemperaturefloatAktuell temperatur i 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() {
// Rapportera aktuellt RPM — krävs varje bildruta, annars fryses hastigheten
device.setRPM("Fan1", ReadRPM(1));
device.setRPM("Fan2", ReadRPM(2));
// Rapportera aktuell temperatur
device.SetTemperature("Coolant Temp", ReadTemp());
// Applicera önskad hastighet på hårdvaran
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");
}