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:
- Exportera en
SupportsFanControl()-funktion som returnerartrueför att berätta för SignalRGB att den här enheten har styrningsbara fläktar. - Identifiera vilka fläktar som är anslutna (via enhetsspecifika kommandon eller RPM-polling).
- Anropa
device.createFanControl()för varje identifierad fläkt iInitialize(). - I
Render()varje bildruta: läs aktuellt RPM-värde från enheten och rapportera det meddevice.setRPM(), läs sedan önskad hastighet meddevice.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.
Plugin-export
Section titled “Plugin-export”SupportsFanControl()
Section titled “SupportsFanControl()”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.
Fläktstyrenhetmetoder
Section titled “Fläktstyrenhetmetoder”device.fanControlDisabled()
Section titled “device.fanControlDisabled()”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().
| Returnerar | Typ | Beskrivning |
|---|---|---|
| Disabled | boolean | true om kylnings-API:t inte är tillgängligt |
if (device.fanControlDisabled()) { return;}device.createFanControl(fanId)
Section titled “device.createFanControl(fanId)”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.
| Parameter | Typ | Beskrivning | Exempel |
|---|---|---|---|
| FanId | string | Unikt identifierare för den här fläktstyrenheten | "Fan1" |
device.createFanControl("Fan1");device.createFanControl("Fan2");device.removeFanControl(fanId)
Section titled “device.removeFanControl(fanId)”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.
| Parameter | Typ | Beskrivning | Exempel |
|---|---|---|---|
| FanId | string | ID för fläktstyrenheten som ska tas bort | "Fan1" |
device.getFanLevel(fanId)
Section titled “device.getFanLevel(fanId)”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.
| Parameter | Typ | Beskrivning | Exempel |
|---|---|---|---|
| FanId | string | Fläkstyrenhetens ID | "Fan1" |
| Returnerar | Typ | Beskrivning | Exempel |
|---|---|---|---|
| FanSpeed | int | Önskad hastighet, 0–100 | 42 |
let speed = device.getFanLevel("Fan1"); // t.ex. 42 som innebär 42 %device.getNormalizedFanLevel(fanId)
Section titled “device.getNormalizedFanLevel(fanId)”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.
| Parameter | Typ | Beskrivning | Exempel |
|---|---|---|---|
| FanId | string | Fläkstyrenhetens ID | "Fan1" |
| Returnerar | Typ | Beskrivning | Exempel |
|---|---|---|---|
| FanSpeed | float | Önskad hastighet, 0.0–1.0 | 0.42 |
let speed = device.getNormalizedFanLevel("Fan1"); // t.ex. 0.42device.setRPM(fanId, rpm)
Section titled “device.setRPM(fanId, rpm)”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.
| Parameter | Typ | Beskrivning | Exempel |
|---|---|---|---|
| FanId | string | Fläkstyrenhetens ID | "Fan1" |
| RPM | int | Aktuell fläkthastighet i RPM | 1337 |
let rpm = ReadRPMFromDevice("Fan1");device.setRPM("Fan1", rpm);Temperatursensermetoder
Section titled “Temperatursensermetoder”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.
device.createTemperatureSensor(sensorId)
Section titled “device.createTemperatureSensor(sensorId)”Skapar en temperatursensor med det givna ID:t. Anropa detta i Initialize() för varje temperaturkälla enheten erbjuder.
| Parameter | Typ | Beskrivning | Exempel |
|---|---|---|---|
| SensorId | string | Unikt identifierare för den här sensorn | "Coolant Temp" |
device.createTemperatureSensor("Coolant Temp");device.removeTemperatureSensor(sensorId)
Section titled “device.removeTemperatureSensor(sensorId)”Tar bort temperatursensorn med det givna ID:t.
| Parameter | Typ | Beskrivning | Exempel |
|---|---|---|---|
| SensorId | string | ID 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.
| Parameter | Typ | Beskrivning | Exempel |
|---|---|---|---|
| SensorId | string | Sensorns ID | "Coolant Temp" |
| Temperature | float | Aktuell temperatur i Celsius | 34.5 |
let temp = ReadTemperatureFromDevice();device.SetTemperature("Coolant Temp", temp);Fullständigt exempel
Section titled “Fullständigt exempel”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");}