From 757268065e51263dc760951c535e53f76dac2ffe Mon Sep 17 00:00:00 2001 From: "Wang.Bin" Date: Wed, 23 Oct 2024 13:29:51 +0800 Subject: [PATCH 2/2] Add power button and PSU status sensor --- fault-monitor/fru-fault-monitor.cpp | 28 +++++++++++++++++ fault-monitor/fru-fault-monitor.hpp | 48 +++++++++++++++++++++++++++-- 2 files changed, 74 insertions(+), 2 deletions(-) diff --git a/fault-monitor/fru-fault-monitor.cpp b/fault-monitor/fru-fault-monitor.cpp index 8ff5294..4946065 100644 --- a/fault-monitor/fru-fault-monitor.cpp +++ b/fault-monitor/fru-fault-monitor.cpp @@ -55,6 +55,11 @@ constexpr const char* discreteSensorNs = "No state defined"; // 10H constexpr auto SYSTEM_EVENT_LOG_CLEARED = 2; +// 14H +constexpr auto POWER_BUTTON_PRESSED = 0; +constexpr auto SLEEP_BUTTON_PRESSED = 1; +constexpr auto RESET_BUTTON_PRESSED = 2; + // 22H constexpr auto ACPI_S0_STATE = 0; constexpr auto ACPI_S5_STATE = 6; @@ -389,6 +394,29 @@ void parseSpecificSensorSelSeverity(sdbusplus::bus::bus& bus, } break; } + case SENSOR_TYPE_BUTTON_SWITCH: + { + switch (ev1Offset) + { + case POWER_BUTTON_PRESSED: + case SLEEP_BUTTON_PRESSED: + case RESET_BUTTON_PRESSED: + { + sensorStatusRec[sensorPath].alarmStatus = alarmStatus; + break; + } + default: + { + return; + } + } + break; + } + case SENSOR_TYPE_POWER_SUPPLY: + { + sensorStatusRec[sensorPath].alarmStatus = alarmStatus; + break; + } case SENSOR_TYPE_SYSTEM_ACPI_POWER_STATE: { switch (ev1Offset) diff --git a/fault-monitor/fru-fault-monitor.hpp b/fault-monitor/fru-fault-monitor.hpp index e196287..065e8c8 100644 --- a/fault-monitor/fru-fault-monitor.hpp +++ b/fault-monitor/fru-fault-monitor.hpp @@ -32,9 +32,54 @@ class Remove; */ enum SensorType { + SENSOR_TYPE_TEMPERATURE = 0x01, + SENSOR_TYPE_VOLTAGE = 0x02, + SENSOR_TYPE_CURRENT = 0x03, + SENSOR_TYPE_FAN = 0x04, + SENSOR_TYPE_PHYSICAL_SECURITY = 0x05, + SENSOR_TYPE_PLATFORM_SECURITY = 0x06, + SENSOR_TYPE_PROCESSOR = 0x07, + SENSOR_TYPE_POWER_SUPPLY = 0x08, + SENSOR_TYPE_POWER_FAULT = 0x09, + SENSOR_TYPE_COOLING_DEVICE = 0x0A, + SENSOR_TYPE_OHTER_UNITE_BASED_SENSOR = 0x0B, + SENSOR_TYPE_MEMORY = 0x0C, + SENSOR_TYPE_DRIVE_SLOT = 0x0D, + + SENSOR_TYPE_SYSTEM_FIRMWARE_PROGRESS = 0x0F, // formerly POST error SENSOR_TYPE_EVENT_LOGGING_DISABLED = 0x10, + SENSOR_TYPE_WATCHDOG_1 = 0x11, + SENSOR_TYPE_SYSTEM_EVENT = 0x12, + SENSOR_TYPE_CRITICAL_INTERRUPT = 0x13, + SENSOR_TYPE_BUTTON_SWITCH = 0x14, + SENSOR_TYPE_BOARD_MODULE = 0x15, + SENSOR_TYPE_MICROCONTROLLER_COPROCESSOR = 0x16, + SENSOR_TYPE__RESOURCERATE = 0xC1, // jss + + SENSOR_TYPE_ADD_IN_CARD = 0x17, + SENSOR_TYPE_CHASSIS = 0x18, + SENSOR_TYPE_CHIP_SET = 0x19, + + SENSOR_TYPE_CABLE_INTERCONNECT = 0x1B, + + SENSOR_TYPE_SYSTEM_BOOT = 0x1D, // Restart Initiated + SENSOR_TYPE_BOOT_ERROR = 0x1E, + SENSOR_TYPE_OS_BOOT = 0x1F, + SENSOR_TYPE_OS_STOP = 0x20, + SENSOR_TYPE_SLOT_CONNECTOR = 0x21, SENSOR_TYPE_SYSTEM_ACPI_POWER_STATE = 0x22, - SENSOR_TYPE_MEMORY = 0x0C, + SENSOR_TYPE_WATCHDOG_2 = 0x23, + SENSOR_TYPE_PLATFORM_ALERT = 0x24, + SENSOR_TYPE_ENTITY_PRESENCE = 0x25, + + SENSOR_TYPE_LAN = 0x27, + SENSOR_TYPE_MANAGEMENT_SUBSYSTEM_HEALTH = 0x28, + SENSOR_TYPE_BATTERY = 0x29, + SENSOR_TYPE_SESSION_AUDIT = 0x2A, + SENSOR_TYPE_HYPERCARD = 0xC0, + + SENSOR_TYPE_VERSION_CHANGE = 0x2B, + SENSOR_TYPE_FRU_STATE = 0x2C, SENSOR_TYPE_MAX_NUMBER = 0x100 // Senor Type 为1个byte,最大为0~255,即:256个 }; @@ -80,7 +125,6 @@ class Add std::bind(std::mem_fn(&Add::created), this, std::placeholders::_1)) { - std::cerr << "wangbin matchCreated \n"; processExistingCallouts(bus); } -- 2.25.1