diff --git a/src/core/domain/signals.cpp b/src/core/domain/signals.cpp index 3ebd27b..13fb00b 100644 --- a/src/core/domain/signals.cpp +++ b/src/core/domain/signals.cpp @@ -48,7 +48,8 @@ namespace { // SENSOR never trip on EN / SENSE. const char *const kPowerControlTokens[] = { "SENSE", "SNS", "KELVIN", // remote / Kelvin sense - "FB", "FDBK", "FEEDBACK", // regulator feedback + "FB", "FBK", "FDB", "FDBK", "VFB", // regulator feedback + "FEEDBACK", "EN", "ENA", "ENABLE", "INH", "INHIBIT", // enable / inhibit "PG", "PGOOD", "PWRGD", "PWROK", // power-good "GOOD", "OK", "FAIL", "FAULT", "FLT", // status / fault @@ -57,9 +58,14 @@ const char *const kPowerControlTokens[] = { "DET", "DETECT", "PRSNT", "PRESENT", // presence detection "OC", "OCP", "OV", "OVP", "UV", "UVP", // protection trips "TRIP", "SHDN", "SHUTDOWN", - "SEQ", "CTRL", "CTL", // sequencing / control + "ADJ", "ADJUST", "VADJ", "TRIM", // regulator adjust / trim + "MARG", "MARGIN", // voltage margining + "SET", "VSET", "ISET", // set-point pins + "SEQ", "CTRL", "CTL", "CMD", // sequencing / control / command "STAT", "STATUS", "ON", "OFF", "BTN", // on/off request + "REF", "VREF", // voltage reference + "LED", // indicator drive "CS", "IRQ", }; diff --git a/tests/test_signal_type.cpp b/tests/test_signal_type.cpp index 8a7ce52..01aa352 100644 --- a/tests/test_signal_type.cpp +++ b/tests/test_signal_type.cpp @@ -75,6 +75,16 @@ TEST_CASE("classify_signal_name: rail vs power-adjacent control signals") { CHECK(classify_signal_name("POWER_FAIL").verdict == NameVerdict::PowerAdjacent); CHECK(classify_signal_name("VDD_VSENSE").verdict == NameVerdict::PowerAdjacent); // fused suffix CHECK(classify_signal_name("PWR_NFAULT").verdict == NameVerdict::PowerAdjacent); // active-low + CHECK(classify_signal_name("VDD_ADJ").verdict == NameVerdict::PowerAdjacent); // regulator adjust + CHECK(classify_signal_name("VCC_TRIM").verdict == NameVerdict::PowerAdjacent); + CHECK(classify_signal_name("VDD_VTRIM").verdict == NameVerdict::PowerAdjacent); // fused suffix + CHECK(classify_signal_name("VCC_VSET").verdict == NameVerdict::PowerAdjacent); + CHECK(classify_signal_name("VCC_FBK").verdict == NameVerdict::PowerAdjacent); // feedback variants + CHECK(classify_signal_name("VDD_FDB").verdict == NameVerdict::PowerAdjacent); + CHECK(classify_signal_name("PWR_CMD").verdict == NameVerdict::PowerAdjacent); // command + CHECK(classify_signal_name("PWR_LED").verdict == NameVerdict::PowerAdjacent); // indicator + CHECK(classify_signal_name("VDD_REF").verdict == NameVerdict::PowerAdjacent); // reference + CHECK(classify_signal_name("VCC_VREF").verdict == NameVerdict::PowerAdjacent); // Whole-token matching: SENSOR is not SENSE, GREEN is not EN — // these stay genuine rails.