29#include "stm32h7xx_hal.h"
42typedef struct _PRESET_DATA PRESET_DATA;
50#define SENSOR_DUMP_CODE ( 0x01 )
53#if defined( A0002_REV2 )
54 #define ACCEL_G_RANGE ( 16 )
55 #define GYRO_RANGE ( 2000 )
59#define NUM_SENSORS ( 38 )
60#define SENSOR_DATA_SIZE ( 128 )
71 SENSOR_UNRECOGNIZED_OP ,
72 SENSOR_UNSUPPORTED_OP ,
82 SENSOR_UNRECOGNIZED_SENSOR_ID,
90 MOUNT_ORIENTATION_IMU_INVERTED = -1,
91 MOUNT_ORIENTATION_IMU_NORMAL = 1
134 STATE_ESTIMATION state_estimate;
141 STATE_ESTIMATION state_estimate;
145 float gps_altitude_ft;
148 float gps_dec_longitude;
149 float gps_dec_latitude;
196 PRESET_DATA* preset_data
216 MOUNT_ORIENTATION orientation
236 STATE_ESTIMATION* state_estimate
262 STATE_ESTIMATION* state_estimate
316SENSOR_STATUS sensor_start_IT
324void sensor_mutex_reserve
332void sensor_mutex_release
void sensor_conv_imu(IMU_CONVERTED *imu_converted, IMU_RAW *imu_raw)
Converts raw IMU readings into calibrated, remapped sensor data.
Definition sensor.c:405
MOUNT_ORIENTATION sensor_get_mount_orientation(void)
Get the mount orientation.
Definition sensor.c:446
void sensor_reset_velo(void)
Resets accumulated velocity values to prevent drift.
Definition sensor.c:732
void sensor_axis_remap(float *x, float *y, float *z)
Remaps sensor axes according to the flight-computer mounting orientation.
Definition sensor.c:564
void sensor_baro_alt(SENSOR_DATA *sen_data)
Calculates altitude from the current barometric pressure and temperature.
Definition sensor.c:709
SENSOR_STATUS sensor_body_state(const IMU_CONVERTED *imu_converted, STATE_ESTIMATION *state_estimate)
Integrates gyro data to update the estimated body attitude and rate.
Definition sensor.c:476
float sensor_acc_conv(int16_t readout)
Converts a raw accelerometer reading to meters per second squared.
Definition sensor.c:583
void sensor_set_mount_orientation(MOUNT_ORIENTATION orientation)
Set the mount orientation.
Definition sensor.c:461
void sensor_imu_velo(const IMU_CONVERTED *imu_converted, STATE_ESTIMATION *state_estimate)
Calculates velocity from converted accelerometer measurements.
Definition sensor.c:618
SENSOR_STATUS sensor_dump(SENSOR_DATA *sensor_data_ptr)
Reads the available sensors and fills the sensor data structure.
Definition sensor.c:244
SENSOR_STATUS sensor_cmd_execute(uint8_t subcommand)
Executes a sensor subcommand and transmits the requested readings.
Definition sensor.c:157
float sensor_gyro_conv(int16_t readout)
Converts a raw gyro reading to degrees per second.
Definition sensor.c:601
SENSOR_STATUS sensor_init(PRESET_DATA *preset_data)
Initializes sensor timing and resets velocity state.
Definition sensor.c:359
struct _IMU_DATA IMU_DATA
Aggregate struct containing converted IMU data and state estimate.
struct _IMU_CONVERTED IMU_CONVERTED
Physical-unit converted accel/gyro/mag data.
Physical-unit converted accel/gyro/mag data.
Definition sensor.h:99
Aggregate struct containing converted IMU data and state estimate.
Definition sensor.h:132