22 for (
size_t i = 0; i < efi::size(
s_entries); i++) {
39 float voltsPerAdcVolt ) {
69#if EFI_PROD_CODE && HAL_USE_ADC
86 if (voltsPerAdcVolt == 0) {
110#if EFI_PROD_CODE && HAL_USE_ADC
135 for (
size_t i = 0; i < efi::size(
s_entries); i++) {
144 for (
size_t i = 0; i < efi::size(
s_entries); i++) {
173#if EFI_PROD_CODE && HAL_USE_ADC
175 for (
size_t i = 0; i < efi::size(
s_entries); i++) {
188 char pinNameBuffer[16];
191 "%s ADC%d m=%d %s adc=%.2f/input=%.2fv/divider=%.2f %s",
197 mcuVolts ?
"valid" :
"INVALID"
static AdcSubscriptionEntry * findEntry()
static AdcSubscriptionEntry s_entries[16]
void efiSetPadMode(const char *msg, brain_pin_e brainPin, iomode_t mode)
static void ResetFilters()
static AdcSubscriptionEntry * SubscribeSensor(FunctionalSensorBase &sensor, adc_channel_e channel, float lowpassCutoffHZ, float voltsPerAdcVolt=0.0f)
static void UpdateSubscribers(efitick_t nowNt)
static void UnsubscribeSensor(FunctionalSensorBase &sensor)
float filter(float input)
void cookSteadyState(float steadyStateInput)
void configureLowpass(float samplingFrequency, float cutoffFrequency, float Q=0.54f)
virtual void postRawValue(float inputValue, efitick_t timestamp)=0
const char * getSensorName() const
brain_pin_e getAdcChannelBrainPin(const char *msg, adc_channel_e hwChannel)
bool adcIsMuxedInput(adc_channel_e hwChannel)
char * getPinNameByAdcChannel(const char *msg, adc_channel_e hwChannel, char *buffer, size_t bufferSize)
void firmwareError(ObdCode code, const char *fmt,...)
float getAnalogInputDividerCoefficient(adc_channel_e hwChannel)
static Lps25Sensor sensor(device)
void efiSetPadUnused(brain_pin_e brainPin)
void efiSetPadModeWithoutOwnershipAcquisition(const char *msg, brain_pin_e brainPin, iomode_t mode)
@ AdcSubscriptionUpdateSubscribers
FunctionalSensorBase * Sensor