From 4f0e71dca18241d3f999d4370fa773e5fae4c6ee Mon Sep 17 00:00:00 2001 From: likun17 Date: Tue, 11 Feb 2025 21:52:16 +0800 Subject: [PATCH] drivers/sensors: Add new features. add nine-axis(Accerometer Magnetic Field and Gyroscope) uncalibrated type. Signed-off-by: likun17 --- include/nuttx/uorb.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/include/nuttx/uorb.h b/include/nuttx/uorb.h index 0b04e08b324..4db10dce601 100644 --- a/include/nuttx/uorb.h +++ b/include/nuttx/uorb.h @@ -654,6 +654,18 @@ struct sensor_accel /* Type: Accerometer */ float temperature; /* Temperature in degrees celsius */ }; +struct sensor_accel_uncal /* Type: Accerometer Uncalibrated */ +{ + uint64_t timestamp; /* Units is microseconds */ + float x; /* Axis X in m/s^2 */ + float y; /* Axis Y in m/s^2 */ + float z; /* Axis Z in m/s^2 */ + float x_bias; /* Axis X bias in m/s^2 */ + float y_bias; /* Axis Y bias in m/s^2 */ + float z_bias; /* Axis Z bias in m/s^2 */ + float temperature; /* Temperature in degrees celsius */ +}; + struct sensor_mag /* Type: Magnetic Field */ { uint64_t timestamp; /* Units is microseconds */ @@ -664,6 +676,19 @@ struct sensor_mag /* Type: Magnetic Field */ int32_t status; /* Status of calibration */ }; +struct sensor_mag_uncal /* Type: Magnetic Field Uncalibrated */ +{ + uint64_t timestamp; /* Units is microseconds */ + float x; /* Axis X in Gauss or micro Tesla (uT) */ + float y; /* Axis Y in Gauss or micro Tesla (uT) */ + float z; /* Axis Z in Gauss or micro Tesla (uT) */ + float x_bias; /* Axis X bias in Gauss or micro Tesla (uT) */ + float y_bias; /* Axis Y bias in Gauss or micro Tesla (uT) */ + float z_bias; /* Axis Z bias in Gauss or micro Tesla (uT) */ + float temperature; /* Temperature in degrees celsius */ + int32_t status; /* Status of calibration */ +}; + struct sensor_orientation /* Type: Orientation */ { uint64_t timestamp; /* Units is microseconds */ @@ -681,6 +706,18 @@ struct sensor_gyro /* Type: Gyroscope */ float temperature; /* Temperature in degrees celsius */ }; +struct sensor_gyro_uncal /* Type: Gyroscope Uncalibrated */ +{ + uint64_t timestamp; /* Units is microseconds */ + float x; /* Axis X in rad/s */ + float y; /* Axis Y in rad/s */ + float z; /* Axis Z in rad/s */ + float x_bias; /* Axis X bias in rad/s */ + float y_bias; /* Axis Y bias in rad/s */ + float z_bias; /* Axis Z bias in rad/s */ + float temperature; /* Temperature in degrees celsius */ +}; + struct sensor_light /* Type: Light */ { uint64_t timestamp; /* Units is microseconds */