1#ifndef TELEMETRYINTERFACE
2#define TELEMETRYINTERFACE
63 float mech_brake_percent);
65 const AnalogConversion_s &accel_1,
66 const AnalogConversion_s &accel_2,
67 const AnalogConversion_s &brake_1,
68 const AnalogConversion_s &brake_2);
70 const AnalogConversion_s &lc_fl,
71 const AnalogConversion_s &lc_fr,
72 const AnalogConversion_s &pots_fl,
73 const AnalogConversion_s &pots_fr);
76 const AnalogConversion_s &steer2,
77 const AnalogConversion_s ¤t,
78 const AnalogConversion_s &reference,
79 const AnalogConversion_s &glv);
112 const AnalogConversion_s ¤t,
113 const AnalogConversion_s &reference);
116 const float filtered_angle_encoder,
117 const float filtered_angle_analog,
118 const uint8_t steering_system_status,
119 const uint8_t steering_encoder_status,
120 const uint8_t steering_analog_status);
122 template <
typename T>
125 template <
typename U>
126 void enqueue_new_CAN(U *structure, uint32_t (*pack_function)(U *, uint8_t *, uint8_t *, uint8_t *));
131 const AnalogConversionPacket_s<8> &adc1,
132 const AnalogConversionPacket_s<4> &adc2,
133 const AnalogConversionPacket_s<4> &adc3,
143 const AnalogConversion_s &accel_1,
144 const AnalogConversion_s &accel_2,
145 const AnalogConversion_s &brake_1,
146 const AnalogConversion_s &brake_2,
147 float mech_brake_active_percent,
Circular_Buffer< uint8_t,(uint32_t) 128, sizeof(CAN_message_t)> CANBufferType
TorqueControllerMuxError
Defines errors for TC Mux to use to maintain system safety.
void update_drivetrain_rpms_CAN_msg(InvInt_t *fl, InvInt_t *fr, InvInt_t *rl, InvInt_t *rr)
void update_pedal_readings_CAN_msg(float accel_percent, float brake_percent, float mech_brake_percent)
void update_steering_status_CAN_msg(const float steering_system_angle, const float filtered_angle_encoder, const float filtered_angle_analog, const uint8_t steering_system_status, const uint8_t steering_encoder_status, const uint8_t steering_analog_status)
void update_suspension_CAN_msg(const AnalogConversion_s &lc_fl, const AnalogConversion_s &lc_fr, const AnalogConversion_s &pots_fl, const AnalogConversion_s &pots_fr)
CANBufferType * msg_queue_
void update_drivetrain_torque_telem_CAN_msg(InvInt_t *fl, InvInt_t *fr, InvInt_t *rl, InvInt_t *rr)
void enqueue_new_CAN(U *structure, uint32_t(*pack_function)(U *, uint8_t *, uint8_t *, uint8_t *))
void update_penthouse_accum_CAN_msg(const AnalogConversion_s ¤t, const AnalogConversion_s &reference)
TelemetryInterfaceReadChannels channels_
void enqueue_CAN(T can_msg, uint32_t id)
MCU_analog_readings mcu_analog_readings_
void update_drivetrain_status_telem_CAN_msg(InvInt_t *fl, InvInt_t *fr, InvInt_t *rl, InvInt_t *rr, bool accel_implaus, bool brake_implaus, float accel_per, float brake_per)
TelemetryInterface(CANBufferType *msg_output_queue, const TelemetryInterfaceReadChannels &channels)
void update_analog_readings_CAN_msg(const SteeringEncoderConversion_s &steer1, const AnalogConversion_s &steer2, const AnalogConversion_s ¤t, const AnalogConversion_s &reference, const AnalogConversion_s &glv)
void update_pedal_readings_raw_CAN_msg(const AnalogConversion_s &accel_1, const AnalogConversion_s &accel_2, const AnalogConversion_s &brake_1, const AnalogConversion_s &brake_2)
AnalogConversion_s get_glv_voltage(const AnalogConversionPacket_s< 8 > &adc1)
void tick(const AnalogConversionPacket_s< 8 > &adc1, const AnalogConversionPacket_s< 4 > &adc2, const AnalogConversionPacket_s< 4 > &adc3, const SteeringEncoderConversion_s &encoder, InvInt_t *fl, InvInt_t *fr, InvInt_t *rl, InvInt_t *rr, bool accel_implaus, bool brake_implaus, float accel_per, float brake_per, const AnalogConversion_s &accel_1, const AnalogConversion_s &accel_2, const AnalogConversion_s &brake_1, const AnalogConversion_s &brake_2, float mech_brake_active_percent, const TorqueControllerMuxError ¤t_mux_status)
void update_drivetrain_err_status_CAN_msg(InvInt_t *fl, InvInt_t *fr, InvInt_t *rl, InvInt_t *rr)
void update_drivetrain_torque_filter_out_telem_CAN_msg(InvInt_t *fl, InvInt_t *fr, InvInt_t *rl, InvInt_t *rr)
const int FIXED_POINT_PRECISION
int analog_steering_channel