Rack Control Unit
- Updated2025-08-04
- 1 minute(s) read
The rack control unit (RCU) communicates with components and sensors using internal electrical buses and communicates with hosts using a network connection. The RCU has various onboard sensors including current sensors, voltage sensors, and temperature sensors.
Reading the Properties and Sensors from the Rack Control Unit
IAteCoreSession ateCoreSession;
try
{
// To create an object of IAteCoreSession.
ateCoreSession = await AteCoreSession.CreateAteCoreSessionAsync(hostname, password);
// Get the object of RCU component
IRackControlUnit rackControlUnit = ateCoreSession.RackControlUnit;
Console.WriteLine("Rack control unit name: {0}", rackControlUnit.Name);
Console.WriteLine("Rack control unit location: {0}", rackControlUnit.Location);
Console.WriteLine("Rack control unit vendor name: {0}", rackControlUnit.VendorName);
Console.WriteLine("Rack control unit model name: {0}", rackControlUnit.ModelName);
Console.WriteLine("Rack control unit serial number: {0}", rackControlUnit.SerialNumber);
Console.WriteLine("Rack control unit firmware version: {0}", rackControlUnit.FirmwareVersion);
foreach (var currentSensor in rackControlUnit.CurrentSensors)
{
Console.WriteLine("Current sensor name: {0}", currentSensor.Name);
Console.WriteLine("Current sensor reading: {0} A", await currentSensor.ReadSensorAsync());
}
foreach (var voltageSensor in rackControlUnit.VoltageSensors)
{
Console.WriteLine("Voltage sensor name: {0}", voltageSensor.Name);
Console.WriteLine("Voltage sensor reading: {0} V", await voltageSensor.ReadSensorAsync());
}
foreach (var temperatureSensor in rackControlUnit.TemperatureSensors)
{
Console.WriteLine("Temperature sensor name: {0}", temperatureSensor.Name);
Console.WriteLine("Temperature sensor reading: {0} degree C", await temperatureSensor.ReadSensorAsync());
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message); //Print the exception message.
}
finally
{
if (ateCoreSession != null)
{
// To close the session.
ateCoreSession.Dispose();
}
}