Fan Domain and Fan Panel
- Updated2025-08-04
- 2 minute(s) read
A fan domain is an area where fan panels are installed. Each fan domain contains a list of fan panels. Each fan panel contains a list of fans and temperature sensors. To control the fan speed, call SetFanDomainModeAsync and pass the expected mode from FanDomainMode as an input parameter to change the fan speed.
- FanDomainMode.High: the fan speed is set to FanDomainMaxRpm for the fans in the fan panels of the target fan domain.
- FanDomainMode.Manual: the fan speed is set to the user-defined fan RPM. To
set a user-defined fan speed, call
SetFanDomainUserDefinedRpmAsync.Note If the fan domain mode is set to FanDomainMode.Manual when a user-defined RPM is not set, the fan RPM will be set to FanDomainMinRpm. The user-defined RPM cannot be set higher than FanDomainMaxRpm or lower than FanDomainMinRpm.Note When the RCU is in standby mode, querying the fan RPM using ReadRpmAsync may return an incorrect value of 4294967295. This value is generated by the default hardware behavior and can be disregarded.
Reading Temperature Sensors and Fan Speeds from All Fan Domains
IAteCoreSession ateCoreSession;
try
{
// To create an object of IAteCoreSession.
ateCoreSession = await AteCoreSession.CreateAteCoreSessionAsync(hostname, password);
// Get the objects of Fan Domain.
IFanDomain[] fanDomains = ateCoreSession.FanDomains;
foreach (var domain in fanDomains)
{
Console.WriteLine("Fan domain type: {0}", domain.FanDomainType.ToString());
foreach(var fanPanel in domain.FanPanels)
{
Console.WriteLine("Fan panel name: {0}", fanPanel.Name);
Console.WriteLine("Fan panel location: {0}", fanPanel.Location);
Console.WriteLine("Fan panel vendor name: {0}", fanPanel.VendorName);
Console.WriteLine("Fan panel model name: {0}", fanPanel.ModelName);
Console.WriteLine("Fan panel serial number: {0}", fanPanel.SerialNumber);
foreach(var temperatureSensor in fanPanel.TemperatureSensors)
{
Console.WriteLine("Temperature sensor name: {0}", temperatureSensor.Name);
Console.WriteLine("Temperature sensor reading: {0} degree C", await temperatureSensor.ReadSensorAsync());
}
foreach(var fan in fanPanel.Fans)
{
Console.WriteLine("Fan name: {0}", fan.Name);
Console.WriteLine("Fan speed reading: {0} RPM", await fan.ReadRpmAsync());
}
}
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message); //Print the exception message.
}
finally
{
if (ateCoreSession != null)
{
// To close the session.
ateCoreSession.Dispose();
}
}