Inject a test value directly (bypasses analogRead) Only available in unit test builds
| 122 | // Inject a test value directly (bypasses analogRead) |
| 123 | // Only available in unit test builds |
| 124 | void injectTestValue(u16 value) { |
| 125 | mCurrentValue = value; |
| 126 | // Manually trigger change detection logic |
| 127 | u16 diff = (value > mLastValue) ? (value - mLastValue) : (mLastValue - value); |
| 128 | mChangedThisFrame = (diff >= mHysteresis); |
| 129 | if (mChangedThisFrame) { |
| 130 | mLastValue = value; |
| 131 | mOnChangeCallbacks.invoke(*this); |
| 132 | float normalized_value = normalized(); |
| 133 | mOnChangeNormalizedCallbacks.invoke(normalized_value); |
| 134 | } |
| 135 | } |
| 136 | #endif |
| 137 | |
| 138 | protected: |