Aquarium Cooling Controller
ESP32 firmware for aquarium cooling fan control, monitoring, telemetry, and fault handling.
Loading...
Searching...
No Matches
fault_policy.h
Go to the documentation of this file.
1#pragma once
2
12#include <Arduino.h>
13
14#include "control_engine.h"
15#include "fault_monitor.h"
16
24enum class AlarmCode : uint8_t {
25 kNone,
27 kFanFault,
29};
30
37enum class FaultSeverity : uint8_t {
38 kNone,
39 kWarning,
40 kCritical,
41};
42
56
74
75namespace FaultPolicy {
76
93FaultPolicySnapshot evaluate(const ControlSnapshot& controlSnapshot,
94 const FaultMonitorSnapshot& faultSnapshot);
95
102const char* alarmCodeLabel(AlarmCode alarmCode);
103
110const char* severityLabel(FaultSeverity severity);
111
118const char* responseLabel(FaultResponse response);
119
120} // namespace FaultPolicy
Computes cooling PWM commands from temperature inputs and policy limits.
Fan RPM plausibility monitor with latched fault recovery.
FaultResponse
Control response selected for the current fault state.
Definition fault_policy.h:50
@ kNormalControl
Continue normal control behavior.
@ kWaterFallback
Use fallback PWM because water input is invalid.
@ kWaterFallbackAndReportFanFault
Use fallback PWM and report fan fault.
@ kReportFanFault
Continue commanding cooling but report fan fault.
FaultSeverity
Severity assigned to the current fault state.
Definition fault_policy.h:37
@ kCritical
Cooling is degraded or requires service attention.
@ kWarning
Degraded input but cooling can continue.
AlarmCode
Stable alarm identifiers for telemetry and diagnostics.
Definition fault_policy.h:24
@ kWaterSensorFault
Water sensor is invalid.
@ kNone
No active alarm.
@ kWaterSensorAndFanFault
Water sensor and fan faults are active together.
@ kFanFault
Fan RPM plausibility fault is active.
Fault classification and telemetry labeling helpers.
Definition fault_policy.cpp:52
FaultPolicySnapshot evaluate(const ControlSnapshot &controlSnapshot, const FaultMonitorSnapshot &faultSnapshot)
Evaluates alarms and fault response from control and fan-monitor state.
Definition fault_policy.cpp:54
const char * alarmCodeLabel(AlarmCode alarmCode)
Converts an alarm code to a telemetry-safe label.
Definition fault_policy.cpp:74
const char * severityLabel(FaultSeverity severity)
Converts a severity value to a telemetry-safe label.
Definition fault_policy.cpp:89
const char * responseLabel(FaultResponse response)
Converts a fault response to a telemetry-safe label.
Definition fault_policy.cpp:102
Complete result of one control calculation.
Definition control_engine.h:80
Diagnostic result from one fan fault-monitor evaluation.
Definition fault_monitor.h:35
Complete policy decision for diagnostics and telemetry.
Definition fault_policy.h:64
AlarmCode alarmCode
Selected alarm code.
Definition fault_policy.h:65
bool coolingDegraded
True when cooling capacity or control quality is degraded.
Definition fault_policy.h:70
FaultSeverity severity
Selected severity.
Definition fault_policy.h:66
bool fanOk
True when fan plausibility is healthy.
Definition fault_policy.h:69
uint8_t effectivePwmPercent
PWM currently used by the control snapshot.
Definition fault_policy.h:72
bool serviceRequired
True when any alarm should be surfaced to the user.
Definition fault_policy.h:71
FaultResponse response
Recommended control response.
Definition fault_policy.h:67
bool waterSensorOk
True when water temperature input is valid.
Definition fault_policy.h:68