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 :
- Exporter
SupportsFanControl()retournanttruepour indiquer à SignalRGB que cet appareil possède des ventilateurs contrôlables. - Détecter quels ventilateurs sont connectés (via des commandes spécifiques à l’appareil ou des interrogations RPM).
- Appeler
device.createFanControl()pour chaque ventilateur détecté dansInitialize(). - À chaque image dans
Render(): lire le régime actuel depuis l’appareil et le rapporter avecdevice.setRPM(), puis lire la vitesse souhaitée depuisdevice.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 du plugin
Section intitulée « Export du plugin »SupportsFanControl()
Section intitulée « SupportsFanControl() »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.
Méthodes du contrôleur de ventilateur
Section intitulée « Méthodes du contrôleur de ventilateur »device.fanControlDisabled()
Section intitulée « device.fanControlDisabled() »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().
| Retour | Type | Description |
|---|---|---|
| Disabled | boolean | true si l’API Refroidissement est indisponible |
if (device.fanControlDisabled()) { return;}device.createFanControl(fanId)
Section intitulée « device.createFanControl(fanId) »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ètre | Type | Description | Exemple |
|---|---|---|---|
| FanId | string | Identifiant unique pour ce contrôleur de ventilateur | "Fan1" |
device.createFanControl("Fan1");device.createFanControl("Fan2");device.removeFanControl(fanId)
Section intitulée « device.removeFanControl(fanId) »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ètre | Type | Description | Exemple |
|---|---|---|---|
| FanId | string | ID du contrôleur de ventilateur à supprimer | "Fan1" |
device.getFanLevel(fanId)
Section intitulée « device.getFanLevel(fanId) »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ètre | Type | Description | Exemple |
|---|---|---|---|
| FanId | string | ID du contrôleur de ventilateur | "Fan1" |
| Retour | Type | Description | Exemple |
|---|---|---|---|
| FanSpeed | int | Vitesse souhaitée, 0–100 | 42 |
let speed = device.getFanLevel("Fan1"); // ex. 42 (soit 42 %)device.getNormalizedFanLevel(fanId)
Section intitulée « device.getNormalizedFanLevel(fanId) »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ètre | Type | Description | Exemple |
|---|---|---|---|
| FanId | string | ID du contrôleur de ventilateur | "Fan1" |
| Retour | Type | Description | Exemple |
|---|---|---|---|
| FanSpeed | float | Vitesse souhaitée, 0.0–1.0 | 0.42 |
let speed = device.getNormalizedFanLevel("Fan1"); // ex. 0.42device.setRPM(fanId, rpm)
Section intitulée « device.setRPM(fanId, rpm) »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ètre | Type | Description | Exemple |
|---|---|---|---|
| FanId | string | ID du contrôleur de ventilateur | "Fan1" |
| RPM | int | Vitesse actuelle du ventilateur en tr/min | 1337 |
let rpm = ReadRPMFromDevice("Fan1");device.setRPM("Fan1", rpm);Méthodes du capteur de température
Section intitulée « Méthodes du capteur de température »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.
device.createTemperatureSensor(sensorId)
Section intitulée « device.createTemperatureSensor(sensorId) »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ètre | Type | Description | Exemple |
|---|---|---|---|
| SensorId | string | Identifiant unique pour ce capteur | "Coolant Temp" |
device.createTemperatureSensor("Coolant Temp");device.removeTemperatureSensor(sensorId)
Section intitulée « device.removeTemperatureSensor(sensorId) »Supprime le capteur de température avec l’identifiant donné.
| Paramètre | Type | Description | Exemple |
|---|---|---|---|
| SensorId | string | ID du capteur à supprimer | "Coolant Temp" |
device.SetTemperature(sensorId, temperature)
Section intitulée « device.SetTemperature(sensorId, temperature) »Rapporte la température actuelle pour le capteur donné. Appelez ceci à chaque image après avoir lu la valeur depuis l’appareil.
| Paramètre | Type | Description | Exemple |
|---|---|---|---|
| SensorId | string | ID du capteur | "Coolant Temp" |
| Temperature | float | Température actuelle en degrés Celsius | 34.5 |
let temp = ReadTemperatureFromDevice();device.SetTemperature("Coolant Temp", temp);Exemple complet
Section intitulée « Exemple complet »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");}