Fan Control
Fan Control can be easily added to USB devices with the following functions. The general process for a plugin to enable Fan Control using our Cooling System's API is to:
- Detect the Fans Connected to the device though build in detection commands, or RPM checks.
- Create FanControllers for each detected fan.
- Regularly poll the fans RPM from the device and give it to SignalRGB using device.setRPM()
- Regularly poll the desired fan speed from device.getFanLevel() and set it on the device.
Failure to do so will result in locked fan speeds and confused users.
device.fanControlDisabled()
This function tells if the current user has Fan Control enabled. This being true doesn't prevent the creation of FanControls, but does prevent access to device.getNormalizedFanLevel() and device.getFanLevel().
This will be true if the user doesn't have SignalRGB Pro access, or if the system has been manually disabled by the user.
return | type | description |
---|---|---|
ControlDisabled | boolean | True if the Cooling API is disabled |
if(device.fanControlDisabled()) {
// Don't touch'a the fans
return;
}
device.createFanControl()
Creates a FanController with the given Id. This Id will need used to interact with the FanController and should be stored.
parameter | type | Description | Example |
---|---|---|---|
FanId | string | FanId to be used to reference the FanController | "Fan1" |
device.removeFanControl()
Removes the FanController with the given Id if one exists.
parameter | type | Description | Example |
---|---|---|---|
FanId | string | FanController Id to be removed | "Fan1" |
device.getFanLevel()
Returns the desired speed of the FanController Id given. This value is slightly interpolated between the speed given by the current Fan Curve settings and the last value returned.
Always check device.fanControlDisabled() before using this function.
parameter | type | description | example |
---|---|---|---|
FanId | string | FanController id to return the speed for | "Fan1" |
Return | Type | Description | Example |
---|---|---|---|
FanSpeed | int | Desired Fan Speed in the range 0-100 | 42 |
let speed = device.getFanLevel("Fan1")
// do stuff with speed
device.getNormalizedFanLevel()
Returns the desired speed of the FanController Id given. This value is slightly interpolated between the speed given by the current Fan Curve settings and the last value returned.
Always check device.fanControlDisabled() before using this function.
parameter | type | description | example |
---|---|---|---|
FanId | string | FanController id to return the speed for | "Fan1" |
Return | Type | Description | Example |
---|---|---|---|
FanSpeed | int | Desired Fan Speed in the range 0-1 | .4251 |
let speed = device.getFanLevel("Fan1")
// do stuff with speed
device.setRPM()
Sets the current FanController RPM. This is displayed to the user in the Cooling UI and System Monitoring Graphs.
The FanControllers desired speed will hardlock if this value isn't being updated.
parameter | type | description | example |
---|---|---|---|
FanId | string | FanController id to return the speed for | "Fan1" |
RPM | int | Current Fan RPM | 1337 |
let RPM = FancyGetRPMFromDeviceFunction();
device.setRPM("Fan1", RPM);