Fan characterization table and interpolation helpers.
Definition fan_curve.cpp:41
constexpr uint8_t kPlausibilityTolerancePercent
RPM tolerance around the expected curve.
Definition fan_curve.h:39
bool isPlausibilityRegion(uint8_t pwmPercent)
Checks whether a PWM command is high enough for RPM plausibility checks.
Definition fan_curve.cpp:90
constexpr uint8_t kMinimumHoldPwmPercent
Lowest PWM used after the fan is spinning.
Definition fan_curve.h:37
const FanCurvePoint * points()
Returns the measured fan-curve table.
Definition fan_curve.cpp:47
uint16_t rpmToleranceForExpected(uint16_t expectedRpm)
Calculates the tolerated RPM deviation for an expected speed.
Definition fan_curve.cpp:80
size_t pointCount()
Returns the number of measured fan-curve points.
Definition fan_curve.cpp:43
uint16_t expectedRpmForPwm(uint8_t pwmPercent)
Interpolates the expected RPM for a PWM command.
Definition fan_curve.cpp:51
constexpr uint8_t kMinimumPlausibilityPwmPercent
Minimum PWM where RPM plausibility is checked.
Definition fan_curve.h:38
constexpr uint8_t kStartPwmPercent
PWM where the fan reliably starts.
Definition fan_curve.h:36
One measured point in the fan curve.
Definition fan_curve.h:21
uint16_t rpm
Measured fan speed at the PWM command.
Definition fan_curve.h:23
uint8_t pwmPercent
Fan PWM command in percent.
Definition fan_curve.h:22