1#ifndef __STEERINGSYSTEM_H__
2#define __STEERINGSYSTEM_H__
9#include "TelemetryInterface.h"
15#define STEERING_DIVERGENCE_ERROR_THRESHOLD (60.0)
16#define STEERING_DIVERGENCE_WARN_THRESHOLD (8.0)
18#define DEFAULT_STEERING_ALPHA (0.0)
53 :
SteeringSystem(primarySensor, telemInterface, filterAlpha, filterAlpha)
79 const float filteredAngleEncoder,
80 const float filteredAngleAnalog,
81 const uint8_t systemStatus,
82 const uint8_t encoderStatus,
83 const uint8_t analogSensorStatus);
#define DEFAULT_STEERING_ALPHA
const SteeringSystemData_s & getSteeringSystemData()
Get a reference to the steering system's data.
void reportSteeringStatus(const float angle, const float filteredAngleEncoder, const float filteredAngleAnalog, const uint8_t systemStatus, const uint8_t encoderStatus, const uint8_t analogSensorStatus)
SteeringEncoderInterface * primarySensor_
TelemetryInterface * telemHandle_
float filteredAnglePrimary_
SteeringSystem(SteeringEncoderInterface *primarySensor, TelemetryInterface *telemInterface, float filterAlphaPrimary, float filterAlphaSecondary)
void tick(const SteeringSystemTick_s &intake)
Computes steering angle and status of the steering system.
SteeringSystem(SteeringEncoderInterface *primarySensor, TelemetryInterface *telemInterface, float filterAlpha)
SteeringEncoderConversion_s primaryConversion_
SteeringSystem(SteeringEncoderInterface *primarySensor, TelemetryInterface *telemInterface)
float filteredAngleSecondary_
SteeringSystemData_s steeringData_
Filter_IIR< float > steeringFilters_[NUM_SENSORS]
const AnalogConversion_s & secondaryConversion