Aller au contenu

Contrôle des ventilateurs

Les plugins peuvent exposer le contrôle de la vitesse des ventilateurs et le rapport de température au système de refroidissement de SignalRGB. Lorsqu’il est activé, les utilisateurs peuvent définir des courbes de ventilateur, surveiller le régime et consulter les relevés de température directement dans SignalRGB.

Le schéma général pour un plugin qui prend en charge le contrôle des ventilateurs est :

  1. Exporter SupportsFanControl() retournant true pour indiquer à SignalRGB que cet appareil possède des ventilateurs contrôlables.
  2. Détecter quels ventilateurs sont connectés (via des commandes spécifiques à l’appareil ou des interrogations RPM).
  3. Appeler device.createFanControl() pour chaque ventilateur détecté dans Initialize().
  4. À chaque image dans Render() : lire le régime actuel depuis l’appareil et le rapporter avec device.setRPM(), puis lire la vitesse souhaitée depuis device.getFanLevel() et l’appliquer à l’appareil.

Vérifiez toujours device.fanControlDisabled() avant d’appeler des fonctions de niveau de ventilateur. Le contrôle des ventilateurs peut être indisponible parce que l’utilisateur n’a pas SignalRGB Pro, ou parce qu’il l’a désactivé manuellement.


Exporté depuis le plugin pour déclarer que cet appareil prend en charge le contrôle des ventilateurs. SignalRGB l’appelle lors de l’initialisation pour décider d’afficher ou non l’interface Refroidissement pour l’appareil.

export function SupportsFanControl() { return true; }

Si cet export est absent ou retourne false, l’API de contrôle des ventilateurs reste accessible mais l’interface Refroidissement n’apparaîtra pas pour l’appareil.


Retourne true si le contrôle des ventilateurs est actuellement indisponible — soit parce que l’utilisateur n’a pas SignalRGB Pro, soit parce qu’il a désactivé manuellement le système de refroidissement.

Vérifiez toujours cela avant d’appeler device.getFanLevel() ou device.getNormalizedFanLevel().

RetourTypeDescription
Disabledbooleantrue si l’API Refroidissement est indisponible
if (device.fanControlDisabled()) {
return;
}

Crée un contrôleur de ventilateur avec l’identifiant donné. Appelez ceci dans Initialize() pour chaque ventilateur exposé par l’appareil. Si un contrôleur avec cet identifiant existe déjà, l’appel est ignoré.

ParamètreTypeDescriptionExemple
FanIdstringIdentifiant unique pour ce contrôleur de ventilateur"Fan1"
device.createFanControl("Fan1");
device.createFanControl("Fan2");

Supprime le contrôleur de ventilateur avec l’identifiant donné. Utilisez ceci si un ventilateur n’est plus détecté ou si l’appareil se déconnecte.

ParamètreTypeDescriptionExemple
FanIdstringID du contrôleur de ventilateur à supprimer"Fan1"

Retourne la vitesse de ventilateur souhaitée pour le contrôleur donné sous forme de pourcentage (0–100), dérivé des paramètres de courbe de ventilateur actuels de l’utilisateur.

ParamètreTypeDescriptionExemple
FanIdstringID du contrôleur de ventilateur"Fan1"
RetourTypeDescriptionExemple
FanSpeedintVitesse souhaitée, 0–10042
let speed = device.getFanLevel("Fan1"); // ex. 42 (soit 42 %)

Retourne la vitesse de ventilateur souhaitée sous forme de float normalisé (0.0–1.0). Utile lorsque l’appareil attend un rapport cyclique fractionnaire plutôt qu’un pourcentage.

ParamètreTypeDescriptionExemple
FanIdstringID du contrôleur de ventilateur"Fan1"
RetourTypeDescriptionExemple
FanSpeedfloatVitesse souhaitée, 0.0–1.00.42
let speed = device.getNormalizedFanLevel("Fan1"); // ex. 0.42

Rapporte le régime actuel mesuré pour un contrôleur de ventilateur. Cette valeur est affichée dans l’interface Refroidissement et les graphiques de surveillance système.

ParamètreTypeDescriptionExemple
FanIdstringID du contrôleur de ventilateur"Fan1"
RPMintVitesse actuelle du ventilateur en tr/min1337
let rpm = ReadRPMFromDevice("Fan1");
device.setRPM("Fan1", rpm);

Les plugins peuvent également exposer des relevés de température au système de refroidissement de SignalRGB. Ces valeurs apparaissent dans la surveillance système et peuvent être utilisées comme source d’entrée pour les courbes de ventilateur.

Crée un capteur de température avec l’identifiant donné. Appelez ceci dans Initialize() pour chaque source de température exposée par l’appareil.

ParamètreTypeDescriptionExemple
SensorIdstringIdentifiant unique pour ce capteur"Coolant Temp"
device.createTemperatureSensor("Coolant Temp");

Supprime le capteur de température avec l’identifiant donné.

ParamètreTypeDescriptionExemple
SensorIdstringID du capteur à supprimer"Coolant Temp"

Rapporte la température actuelle pour le capteur donné. Appelez ceci à chaque image après avoir lu la valeur depuis l’appareil.

ParamètreTypeDescriptionExemple
SensorIdstringID du capteur"Coolant Temp"
TemperaturefloatTempérature actuelle en degrés 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() {
// Rapporter le régime actuel — requis à chaque image sinon la vitesse se bloque
device.setRPM("Fan1", ReadRPM(1));
device.setRPM("Fan2", ReadRPM(2));
// Rapporter la température actuelle
device.SetTemperature("Coolant Temp", ReadTemp());
// Appliquer la vitesse souhaitée au matériel
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");
}