fixed confusing gyro fxn names
This commit is contained in:
parent
4b781f2d12
commit
c2906795b4
|
|
@ -52,19 +52,21 @@ class BNO08x
|
||||||
void enable_ARVR_stabilized_rotation_vector(uint32_t time_between_reports);
|
void enable_ARVR_stabilized_rotation_vector(uint32_t time_between_reports);
|
||||||
void enable_ARVR_stabilized_game_rotation_vector(uint32_t time_between_reports);
|
void enable_ARVR_stabilized_game_rotation_vector(uint32_t time_between_reports);
|
||||||
void enable_gyro_integrated_rotation_vector(uint32_t time_between_reports);
|
void enable_gyro_integrated_rotation_vector(uint32_t time_between_reports);
|
||||||
|
|
||||||
|
void enable_uncalibrated_gyro(uint32_t time_between_reports);
|
||||||
|
void enable_calibrated_gyro(uint32_t time_between_reports);
|
||||||
|
void enable_raw_mems_gyro(uint32_t time_between_reports);
|
||||||
|
|
||||||
void enable_accelerometer(uint32_t time_between_reports);
|
void enable_accelerometer(uint32_t time_between_reports);
|
||||||
void enable_linear_accelerometer(uint32_t time_between_reports);
|
void enable_linear_accelerometer(uint32_t time_between_reports);
|
||||||
void enable_gravity(uint32_t time_between_reports);
|
void enable_gravity(uint32_t time_between_reports);
|
||||||
void enable_gyro(uint32_t time_between_reports);
|
|
||||||
void enable_uncalibrated_gyro(uint32_t time_between_reports);
|
|
||||||
void enable_magnetometer(uint32_t time_between_reports);
|
void enable_magnetometer(uint32_t time_between_reports);
|
||||||
void enable_tap_detector(uint32_t time_between_reports);
|
void enable_tap_detector(uint32_t time_between_reports);
|
||||||
void enable_step_counter(uint32_t time_between_reports);
|
void enable_step_counter(uint32_t time_between_reports);
|
||||||
void enable_stability_classifier(uint32_t time_between_reports);
|
void enable_stability_classifier(uint32_t time_between_reports);
|
||||||
void enable_activity_classifier(uint32_t time_between_reports, uint32_t activities_to_enable, uint8_t (&activity_confidence_vals)[9]);
|
void enable_activity_classifier(uint32_t time_between_reports, uint32_t activities_to_enable, uint8_t (&activity_confidence_vals)[9]);
|
||||||
void enable_raw_accelerometer(uint32_t time_between_reports);
|
void enable_raw_mems_accelerometer(uint32_t time_between_reports);
|
||||||
void enable_raw_gyro(uint32_t time_between_reports);
|
void enable_raw_mems_magnetometer(uint32_t time_between_reports);
|
||||||
void enable_raw_magnetometer(uint32_t time_between_reports);
|
|
||||||
|
|
||||||
void disable_rotation_vector();
|
void disable_rotation_vector();
|
||||||
void disable_game_rotation_vector();
|
void disable_game_rotation_vector();
|
||||||
|
|
@ -74,16 +76,16 @@ class BNO08x
|
||||||
void disable_accelerometer();
|
void disable_accelerometer();
|
||||||
void disable_linear_accelerometer();
|
void disable_linear_accelerometer();
|
||||||
void disable_gravity();
|
void disable_gravity();
|
||||||
void disable_gyro();
|
void disable_calibrated_gyro();
|
||||||
void disable_uncalibrated_gyro();
|
void disable_uncalibrated_gyro();
|
||||||
void disable_magnetometer();
|
void disable_magnetometer();
|
||||||
void disable_tap_detector();
|
void disable_tap_detector();
|
||||||
void disable_step_counter();
|
void disable_step_counter();
|
||||||
void disable_stability_classifier();
|
void disable_stability_classifier();
|
||||||
void disable_activity_classifier();
|
void disable_activity_classifier();
|
||||||
void disable_raw_accelerometer();
|
void disable_raw_mems_accelerometer();
|
||||||
void disable_raw_gyro();
|
void disable_raw_mems_gyro();
|
||||||
void disable_raw_magnetometer();
|
void disable_raw_mems_magnetometer();
|
||||||
|
|
||||||
void tare_now(uint8_t axis_sel = TARE_AXIS_ALL, uint8_t rotation_vector_basis = TARE_ROTATION_VECTOR);
|
void tare_now(uint8_t axis_sel = TARE_AXIS_ALL, uint8_t rotation_vector_basis = TARE_ROTATION_VECTOR);
|
||||||
void save_tare();
|
void save_tare();
|
||||||
|
|
@ -136,37 +138,40 @@ class BNO08x
|
||||||
float get_linear_accel_Z();
|
float get_linear_accel_Z();
|
||||||
BNO08xAccuracy get_linear_accel_accuracy();
|
BNO08xAccuracy get_linear_accel_accuracy();
|
||||||
|
|
||||||
int16_t get_raw_accel_X();
|
void get_raw_mems_accel(uint16_t &x, uint16_t &y, uint16_t &z);
|
||||||
int16_t get_raw_accel_Y();
|
uint16_t get_raw_mems_accel_X();
|
||||||
int16_t get_raw_accel_Z();
|
uint16_t get_raw_mems_accel_Y();
|
||||||
|
uint16_t get_raw_mems_accel_Z();
|
||||||
|
|
||||||
int16_t get_raw_gyro_X();
|
void get_raw_mems_gyro(uint16_t &x, uint16_t &y, uint16_t &z);
|
||||||
int16_t get_raw_gyro_Y();
|
uint16_t get_raw_mems_gyro_X();
|
||||||
int16_t get_raw_gyro_Z();
|
uint16_t get_raw_mems_gyro_Y();
|
||||||
|
uint16_t get_raw_mems_gyro_Z();
|
||||||
|
|
||||||
int16_t get_raw_magf_X();
|
void get_raw_mems_magf(uint16_t &x, uint16_t &y, uint16_t &z);
|
||||||
int16_t get_raw_magf_Y();
|
uint16_t get_raw_mems_magf_X();
|
||||||
int16_t get_raw_magf_Z();
|
uint16_t get_raw_mems_magf_Y();
|
||||||
|
uint16_t get_raw_mems_magf_Z();
|
||||||
|
|
||||||
void get_gyro_calibrated_velocity(float& x, float& y, float& z, BNO08xAccuracy& accuracy);
|
void get_calibrated_gyro_velocity(float& x, float& y, float& z, BNO08xAccuracy& accuracy);
|
||||||
float get_gyro_calibrated_velocity_X();
|
float get_calibrated_gyro_velocity_X();
|
||||||
float get_gyro_calibrated_velocity_Y();
|
float get_calibrated_gyro_velocity_Y();
|
||||||
float get_gyro_calibrated_velocity_Z();
|
float get_calibrated_gyro_velocity_Z();
|
||||||
BNO08xAccuracy get_gyro_accuracy();
|
BNO08xAccuracy get_calibrated_gyro_accuracy();
|
||||||
|
|
||||||
void get_uncalibrated_gyro(float& x, float& y, float& z, float& bx, float& by, float& bz, BNO08xAccuracy& accuracy);
|
void get_uncalibrated_gyro_velocity(float& x, float& y, float& z, float& bx, float& by, float& bz, BNO08xAccuracy& accuracy);
|
||||||
float get_uncalibrated_gyro_X();
|
float get_uncalibrated_gyro_velocity_X();
|
||||||
float get_uncalibrated_gyro_Y();
|
float get_uncalibrated_gyro_velocity_Y();
|
||||||
float get_uncalibrated_gyro_Z();
|
float get_uncalibrated_gyro_velocity_Z();
|
||||||
float get_uncalibrated_gyro_bias_X();
|
float get_uncalibrated_gyro_bias_X();
|
||||||
float get_uncalibrated_gyro_bias_Y();
|
float get_uncalibrated_gyro_bias_Y();
|
||||||
float get_uncalibrated_gyro_bias_Z();
|
float get_uncalibrated_gyro_bias_Z();
|
||||||
BNO08xAccuracy get_uncalibrated_gyro_accuracy();
|
BNO08xAccuracy get_uncalibrated_gyro_accuracy();
|
||||||
|
|
||||||
void get_gyro_velocity(float& x, float& y, float& z);
|
void get_integrated_gyro_velocity(float& x, float& y, float& z);
|
||||||
float get_gyro_velocity_X();
|
float get_integrated_gyro_velocity_X();
|
||||||
float get_gyro_velocity_Y();
|
float get_integrated_gyro_velocity_Y();
|
||||||
float get_gyro_velocity_Z();
|
float get_integrated_gyro_velocity_Z();
|
||||||
|
|
||||||
uint8_t get_tap_detector();
|
uint8_t get_tap_detector();
|
||||||
uint16_t get_step_count();
|
uint16_t get_step_count();
|
||||||
|
|
@ -323,8 +328,8 @@ class BNO08x
|
||||||
// functions to update data returned to user
|
// functions to update data returned to user
|
||||||
void update_accelerometer_data(uint16_t* data, uint8_t status);
|
void update_accelerometer_data(uint16_t* data, uint8_t status);
|
||||||
void update_lin_accelerometer_data(uint16_t* data, uint8_t status);
|
void update_lin_accelerometer_data(uint16_t* data, uint8_t status);
|
||||||
void update_gyro_data(uint16_t* data, uint8_t status);
|
void update_calibrated_gyro_data(uint16_t* data, uint8_t status);
|
||||||
void update_uncalib_gyro_data(uint16_t* data, uint8_t status);
|
void update_uncalibrated_gyro_data(uint16_t* data, uint8_t status);
|
||||||
void update_magf_data(uint16_t* data, uint8_t status);
|
void update_magf_data(uint16_t* data, uint8_t status);
|
||||||
void update_gravity_data(uint16_t* data, uint8_t status);
|
void update_gravity_data(uint16_t* data, uint8_t status);
|
||||||
void update_rotation_vector_data(uint16_t* data, uint8_t status);
|
void update_rotation_vector_data(uint16_t* data, uint8_t status);
|
||||||
|
|
@ -386,11 +391,11 @@ class BNO08x
|
||||||
accel_accuracy; ///<Raw acceleration readings (See SH-2 Ref. Manual 6.5.8)
|
accel_accuracy; ///<Raw acceleration readings (See SH-2 Ref. Manual 6.5.8)
|
||||||
uint16_t raw_lin_accel_X, raw_lin_accel_Y, raw_lin_accel_Z,
|
uint16_t raw_lin_accel_X, raw_lin_accel_Y, raw_lin_accel_Z,
|
||||||
accel_lin_accuracy; ///<Raw linear acceleration (See SH-2 Ref. Manual 6.5.10)
|
accel_lin_accuracy; ///<Raw linear acceleration (See SH-2 Ref. Manual 6.5.10)
|
||||||
uint16_t raw_gyro_X, raw_gyro_Y, raw_gyro_Z, gyro_accuracy; ///<Raw gyro reading (See SH-2 Ref. Manual 6.5.13)
|
uint16_t raw_calib_gyro_X, raw_calib_gyro_Y, raw_calib_gyro_Z, calib_gyro_accuracy; ///<Raw gyro reading (See SH-2 Ref. Manual 6.5.13)
|
||||||
uint16_t raw_quat_I, raw_quat_J, raw_quat_K, raw_quat_real, raw_quat_radian_accuracy,
|
uint16_t raw_quat_I, raw_quat_J, raw_quat_K, raw_quat_real, raw_quat_radian_accuracy,
|
||||||
quat_accuracy; ///<Raw quaternion reading (See SH-2 Ref. Manual 6.5.44)
|
quat_accuracy; ///<Raw quaternion reading (See SH-2 Ref. Manual 6.5.44)
|
||||||
uint16_t raw_velocity_gyro_X, raw_velocity_gyro_Y,
|
uint16_t integrated_gyro_velocity_X, integrated_gyro_velocity_Y,
|
||||||
raw_velocity_gyro_Z; ///<Raw gyro angular velocity reading (See SH-2 Ref. Manual 6.5.44)
|
integrated_gyro_velocity_Z; ///<Raw gyro angular velocity reading from integrated gyro rotation vector (See SH-2 Ref. Manual 6.5.44)
|
||||||
uint16_t gravity_X, gravity_Y, gravity_Z,
|
uint16_t gravity_X, gravity_Y, gravity_Z,
|
||||||
gravity_accuracy; ///<Gravity reading in m/s^2 (See SH-2 Ref. Manual 6.5.11)
|
gravity_accuracy; ///<Gravity reading in m/s^2 (See SH-2 Ref. Manual 6.5.11)
|
||||||
uint16_t raw_uncalib_gyro_X, raw_uncalib_gyro_Y, raw_uncalib_gyro_Z, raw_bias_X, raw_bias_Y, raw_bias_Z,
|
uint16_t raw_uncalib_gyro_X, raw_uncalib_gyro_Y, raw_uncalib_gyro_Z, raw_bias_X, raw_bias_Y, raw_bias_Z,
|
||||||
|
|
|
||||||
|
|
@ -23,15 +23,31 @@ class BNO08xTestHelper
|
||||||
float quat_radian_accuracy;
|
float quat_radian_accuracy;
|
||||||
BNO08xAccuracy quat_accuracy;
|
BNO08xAccuracy quat_accuracy;
|
||||||
|
|
||||||
float gyro_vel_x;
|
float integrated_gyro_vel_x;
|
||||||
float gyro_vel_y;
|
float integrated_gyro_vel_y;
|
||||||
float gyro_vel_z;
|
float integrated_gyro_vel_z;
|
||||||
|
|
||||||
float accel_x;
|
float accel_x;
|
||||||
float accel_y;
|
float accel_y;
|
||||||
float accel_z;
|
float accel_z;
|
||||||
BNO08xAccuracy accel_accuracy;
|
BNO08xAccuracy accel_accuracy;
|
||||||
|
|
||||||
|
float lin_accel_x;
|
||||||
|
float lin_accel_y;
|
||||||
|
float lin_accel_z;
|
||||||
|
BNO08xAccuracy lin_accel_accuracy;
|
||||||
|
|
||||||
|
float grav_x;
|
||||||
|
float grav_y;
|
||||||
|
float grav_z;
|
||||||
|
BNO08xAccuracy grav_accuracy;
|
||||||
|
|
||||||
|
float calib_gyro_vel_x;
|
||||||
|
float calib_gyro_vel_y;
|
||||||
|
float calib_gyro_vel_z;
|
||||||
|
BNO08xAccuracy calib_gyro_accuracy;
|
||||||
|
|
||||||
|
|
||||||
} imu_report_data_t;
|
} imu_report_data_t;
|
||||||
|
|
||||||
static void print_test_start_banner(const char* TEST_TAG)
|
static void print_test_start_banner(const char* TEST_TAG)
|
||||||
|
|
@ -157,13 +173,13 @@ class BNO08xTestHelper
|
||||||
if (report_data->quat_real != 1.0f)
|
if (report_data->quat_real != 1.0f)
|
||||||
new_data = true;
|
new_data = true;
|
||||||
|
|
||||||
if (report_data->gyro_vel_x != 0.0f)
|
if (report_data->integrated_gyro_vel_x != 0.0f)
|
||||||
new_data = true;
|
new_data = true;
|
||||||
|
|
||||||
if (report_data->gyro_vel_y != 0.0f)
|
if (report_data->integrated_gyro_vel_y != 0.0f)
|
||||||
new_data = true;
|
new_data = true;
|
||||||
|
|
||||||
if (report_data->gyro_vel_z != 0.0f)
|
if (report_data->integrated_gyro_vel_z != 0.0f)
|
||||||
new_data = true;
|
new_data = true;
|
||||||
|
|
||||||
return new_data;
|
return new_data;
|
||||||
|
|
@ -188,12 +204,53 @@ class BNO08xTestHelper
|
||||||
return new_data;
|
return new_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool linear_accelerometer_data_is_default(imu_report_data_t* report_data)
|
||||||
|
{
|
||||||
|
bool new_data = false;
|
||||||
|
|
||||||
|
if (report_data->lin_accel_x != 0.0f)
|
||||||
|
new_data = true;
|
||||||
|
|
||||||
|
if (report_data->lin_accel_y != 0.0f)
|
||||||
|
new_data = true;
|
||||||
|
|
||||||
|
if (report_data->lin_accel_z != 0.0f)
|
||||||
|
new_data = true;
|
||||||
|
|
||||||
|
if (report_data->lin_accel_accuracy != BNO08xAccuracy::UNDEFINED)
|
||||||
|
new_data = true;
|
||||||
|
|
||||||
|
return new_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool gravity_data_is_default(imu_report_data_t* report_data)
|
||||||
|
{
|
||||||
|
bool new_data = false;
|
||||||
|
|
||||||
|
if (report_data->grav_x != 0.0f)
|
||||||
|
new_data = true;
|
||||||
|
|
||||||
|
if (report_data->grav_y != 0.0f)
|
||||||
|
new_data = true;
|
||||||
|
|
||||||
|
if (report_data->grav_z != 0.0f)
|
||||||
|
new_data = true;
|
||||||
|
|
||||||
|
if (report_data->grav_accuracy != BNO08xAccuracy::UNDEFINED)
|
||||||
|
new_data = true;
|
||||||
|
|
||||||
|
return new_data;
|
||||||
|
}
|
||||||
|
|
||||||
static void update_report_data(imu_report_data_t* report_data, BNO08x* imu)
|
static void update_report_data(imu_report_data_t* report_data, BNO08x* imu)
|
||||||
{
|
{
|
||||||
|
|
||||||
imu->get_quat(report_data->quat_I, report_data->quat_J, report_data->quat_K, report_data->quat_real, report_data->quat_radian_accuracy,
|
imu->get_quat(report_data->quat_I, report_data->quat_J, report_data->quat_K, report_data->quat_real, report_data->quat_radian_accuracy,
|
||||||
report_data->quat_accuracy);
|
report_data->quat_accuracy);
|
||||||
imu->get_gyro_velocity(report_data->gyro_vel_x, report_data->gyro_vel_y, report_data->gyro_vel_z);
|
imu->get_integrated_gyro_velocity(report_data->integrated_gyro_vel_x, report_data->integrated_gyro_vel_y, report_data->integrated_gyro_vel_z);
|
||||||
imu->get_accel(report_data->accel_x, report_data->accel_y, report_data->accel_z, report_data->accel_accuracy);
|
imu->get_accel(report_data->accel_x, report_data->accel_y, report_data->accel_z, report_data->accel_accuracy);
|
||||||
|
imu->get_linear_accel(report_data->lin_accel_x, report_data->lin_accel_y, report_data->lin_accel_z, report_data->lin_accel_accuracy);
|
||||||
|
imu->get_gravity(report_data->grav_x, report_data->grav_y, report_data->grav_z, report_data->grav_accuracy);
|
||||||
|
imu->get_calibrated_gyro_velocity(report_data->calib_gyro_vel_x, report_data->calib_gyro_vel_y, report_data->calib_gyro_vel_z, report_data->calib_gyro_accuracy);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -1527,11 +1527,11 @@ uint16_t BNO08x::parse_input_report(bno08x_rx_packet_t* packet)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SENSOR_REPORT_ID_GYROSCOPE:
|
case SENSOR_REPORT_ID_GYROSCOPE:
|
||||||
update_gyro_data(data, status);
|
update_calibrated_gyro_data(data, status);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SENSOR_REPORT_ID_UNCALIBRATED_GYRO:
|
case SENSOR_REPORT_ID_UNCALIBRATED_GYRO:
|
||||||
update_uncalib_gyro_data(data, status);
|
update_uncalibrated_gyro_data(data, status);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SENSOR_REPORT_ID_MAGNETIC_FIELD:
|
case SENSOR_REPORT_ID_MAGNETIC_FIELD:
|
||||||
|
|
@ -1716,12 +1716,12 @@ void BNO08x::update_lin_accelerometer_data(uint16_t* data, uint8_t status)
|
||||||
*
|
*
|
||||||
* @return void, nothing to return
|
* @return void, nothing to return
|
||||||
*/
|
*/
|
||||||
void BNO08x::update_gyro_data(uint16_t* data, uint8_t status)
|
void BNO08x::update_calibrated_gyro_data(uint16_t* data, uint8_t status)
|
||||||
{
|
{
|
||||||
gyro_accuracy = status;
|
calib_gyro_accuracy = status;
|
||||||
raw_gyro_X = data[0];
|
raw_calib_gyro_X = data[0];
|
||||||
raw_gyro_Y = data[1];
|
raw_calib_gyro_Y = data[1];
|
||||||
raw_gyro_Z = data[2];
|
raw_calib_gyro_Z = data[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -1732,7 +1732,7 @@ void BNO08x::update_gyro_data(uint16_t* data, uint8_t status)
|
||||||
*
|
*
|
||||||
* @return void, nothing to return
|
* @return void, nothing to return
|
||||||
*/
|
*/
|
||||||
void BNO08x::update_uncalib_gyro_data(uint16_t* data, uint8_t status)
|
void BNO08x::update_uncalibrated_gyro_data(uint16_t* data, uint8_t status)
|
||||||
{
|
{
|
||||||
uncalib_gyro_accuracy = status;
|
uncalib_gyro_accuracy = status;
|
||||||
raw_uncalib_gyro_X = data[0];
|
raw_uncalib_gyro_X = data[0];
|
||||||
|
|
@ -1922,9 +1922,9 @@ void BNO08x::update_integrated_gyro_rotation_vector_data(bno08x_rx_packet_t* pac
|
||||||
raw_quat_J = PARSE_GYRO_REPORT_RAW_QUAT_J(packet);
|
raw_quat_J = PARSE_GYRO_REPORT_RAW_QUAT_J(packet);
|
||||||
raw_quat_K = PARSE_GYRO_REPORT_RAW_QUAT_K(packet);
|
raw_quat_K = PARSE_GYRO_REPORT_RAW_QUAT_K(packet);
|
||||||
raw_quat_real = PARSE_GYRO_REPORT_RAW_QUAT_REAL(packet);
|
raw_quat_real = PARSE_GYRO_REPORT_RAW_QUAT_REAL(packet);
|
||||||
raw_velocity_gyro_X = PARSE_GYRO_REPORT_RAW_GYRO_VEL_X(packet);
|
integrated_gyro_velocity_X = PARSE_GYRO_REPORT_RAW_GYRO_VEL_X(packet);
|
||||||
raw_velocity_gyro_Y = PARSE_GYRO_REPORT_RAW_GYRO_VEL_Y(packet);
|
integrated_gyro_velocity_Y = PARSE_GYRO_REPORT_RAW_GYRO_VEL_Y(packet);
|
||||||
raw_velocity_gyro_Z = PARSE_GYRO_REPORT_RAW_GYRO_VEL_Z(packet);
|
integrated_gyro_velocity_Z = PARSE_GYRO_REPORT_RAW_GYRO_VEL_Z(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -2021,7 +2021,7 @@ void BNO08x::enable_gravity(uint32_t time_between_reports)
|
||||||
* @param time_between_reports Desired time between reports in microseconds.
|
* @param time_between_reports Desired time between reports in microseconds.
|
||||||
* @return void, nothing to return
|
* @return void, nothing to return
|
||||||
*/
|
*/
|
||||||
void BNO08x::enable_gyro(uint32_t time_between_reports)
|
void BNO08x::enable_calibrated_gyro(uint32_t time_between_reports)
|
||||||
{
|
{
|
||||||
enable_report(SENSOR_REPORT_ID_GYROSCOPE, time_between_reports, EVT_GRP_RPT_GYRO_BIT);
|
enable_report(SENSOR_REPORT_ID_GYROSCOPE, time_between_reports, EVT_GRP_RPT_GYRO_BIT);
|
||||||
}
|
}
|
||||||
|
|
@ -2101,18 +2101,18 @@ void BNO08x::enable_activity_classifier(uint32_t time_between_reports, uint32_t
|
||||||
* @param time_between_reports Desired time between reports in microseconds.
|
* @param time_between_reports Desired time between reports in microseconds.
|
||||||
* @return void, nothing to return
|
* @return void, nothing to return
|
||||||
*/
|
*/
|
||||||
void BNO08x::enable_raw_accelerometer(uint32_t time_between_reports)
|
void BNO08x::enable_raw_mems_accelerometer(uint32_t time_between_reports)
|
||||||
{
|
{
|
||||||
enable_report(SENSOR_REPORT_ID_RAW_ACCELEROMETER, time_between_reports, EVT_GRP_RPT_RAW_ACCELEROMETER_BIT);
|
enable_report(SENSOR_REPORT_ID_RAW_ACCELEROMETER, time_between_reports, EVT_GRP_RPT_RAW_ACCELEROMETER_BIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Sends command to enable raw gyro reports (See Ref. Manual 6.5.12)
|
* @brief Sends command to enable raw MEMs gyro reports (See Ref. Manual 6.5.12)
|
||||||
*
|
*
|
||||||
* @param time_between_reports Desired time between reports in microseconds.
|
* @param time_between_reports Desired time between reports in microseconds.
|
||||||
* @return void, nothing to return
|
* @return void, nothing to return
|
||||||
*/
|
*/
|
||||||
void BNO08x::enable_raw_gyro(uint32_t time_between_reports)
|
void BNO08x::enable_raw_mems_gyro(uint32_t time_between_reports)
|
||||||
{
|
{
|
||||||
enable_report(SENSOR_REPORT_ID_RAW_GYROSCOPE, time_between_reports, EVT_GRP_RPT_RAW_GYRO_BIT);
|
enable_report(SENSOR_REPORT_ID_RAW_GYROSCOPE, time_between_reports, EVT_GRP_RPT_RAW_GYRO_BIT);
|
||||||
}
|
}
|
||||||
|
|
@ -2123,7 +2123,7 @@ void BNO08x::enable_raw_gyro(uint32_t time_between_reports)
|
||||||
* @param time_between_reports Desired time between reports in microseconds.
|
* @param time_between_reports Desired time between reports in microseconds.
|
||||||
* @return void, nothing to return
|
* @return void, nothing to return
|
||||||
*/
|
*/
|
||||||
void BNO08x::enable_raw_magnetometer(uint32_t time_between_reports)
|
void BNO08x::enable_raw_mems_magnetometer(uint32_t time_between_reports)
|
||||||
{
|
{
|
||||||
enable_report(SENSOR_REPORT_ID_RAW_MAGNETOMETER, time_between_reports, EVT_GRP_RPT_RAW_MAGNETOMETER_BIT);
|
enable_report(SENSOR_REPORT_ID_RAW_MAGNETOMETER, time_between_reports, EVT_GRP_RPT_RAW_MAGNETOMETER_BIT);
|
||||||
}
|
}
|
||||||
|
|
@ -2213,7 +2213,7 @@ void BNO08x::disable_gravity()
|
||||||
*
|
*
|
||||||
* @return void, nothing to return
|
* @return void, nothing to return
|
||||||
*/
|
*/
|
||||||
void BNO08x::disable_gyro()
|
void BNO08x::disable_calibrated_gyro()
|
||||||
{
|
{
|
||||||
disable_report(SENSOR_REPORT_ID_GYROSCOPE, EVT_GRP_RPT_GYRO_BIT);
|
disable_report(SENSOR_REPORT_ID_GYROSCOPE, EVT_GRP_RPT_GYRO_BIT);
|
||||||
}
|
}
|
||||||
|
|
@ -2283,7 +2283,7 @@ void BNO08x::disable_activity_classifier()
|
||||||
*
|
*
|
||||||
* @return void, nothing to return
|
* @return void, nothing to return
|
||||||
*/
|
*/
|
||||||
void BNO08x::disable_raw_accelerometer()
|
void BNO08x::disable_raw_mems_accelerometer()
|
||||||
{
|
{
|
||||||
disable_report(SENSOR_REPORT_ID_RAW_ACCELEROMETER, EVT_GRP_RPT_RAW_ACCELEROMETER_BIT);
|
disable_report(SENSOR_REPORT_ID_RAW_ACCELEROMETER, EVT_GRP_RPT_RAW_ACCELEROMETER_BIT);
|
||||||
}
|
}
|
||||||
|
|
@ -2293,7 +2293,7 @@ void BNO08x::disable_raw_accelerometer()
|
||||||
*
|
*
|
||||||
* @return void, nothing to return
|
* @return void, nothing to return
|
||||||
*/
|
*/
|
||||||
void BNO08x::disable_raw_gyro()
|
void BNO08x::disable_raw_mems_gyro()
|
||||||
{
|
{
|
||||||
disable_report(SENSOR_REPORT_ID_RAW_GYROSCOPE, EVT_GRP_RPT_RAW_GYRO_BIT);
|
disable_report(SENSOR_REPORT_ID_RAW_GYROSCOPE, EVT_GRP_RPT_RAW_GYRO_BIT);
|
||||||
}
|
}
|
||||||
|
|
@ -2303,7 +2303,7 @@ void BNO08x::disable_raw_gyro()
|
||||||
*
|
*
|
||||||
* @return void, nothing to return
|
* @return void, nothing to return
|
||||||
*/
|
*/
|
||||||
void BNO08x::disable_raw_magnetometer()
|
void BNO08x::disable_raw_mems_magnetometer()
|
||||||
{
|
{
|
||||||
disable_report(SENSOR_REPORT_ID_RAW_MAGNETOMETER, EVT_GRP_RPT_RAW_MAGNETOMETER_BIT);
|
disable_report(SENSOR_REPORT_ID_RAW_MAGNETOMETER, EVT_GRP_RPT_RAW_MAGNETOMETER_BIT);
|
||||||
}
|
}
|
||||||
|
|
@ -2392,10 +2392,10 @@ void BNO08x::reset_all_data()
|
||||||
raw_lin_accel_Z = 0U;
|
raw_lin_accel_Z = 0U;
|
||||||
accel_lin_accuracy = static_cast<uint16_t>(BNO08xAccuracy::UNDEFINED);
|
accel_lin_accuracy = static_cast<uint16_t>(BNO08xAccuracy::UNDEFINED);
|
||||||
|
|
||||||
raw_gyro_X = 0U;
|
raw_calib_gyro_X = 0U;
|
||||||
raw_gyro_Y = 0U;
|
raw_calib_gyro_Y = 0U;
|
||||||
raw_gyro_Z = 0U;
|
raw_calib_gyro_Z = 0U;
|
||||||
gyro_accuracy = static_cast<uint16_t>(BNO08xAccuracy::UNDEFINED);
|
calib_gyro_accuracy = static_cast<uint16_t>(BNO08xAccuracy::UNDEFINED);
|
||||||
|
|
||||||
// reset quaternion to nan
|
// reset quaternion to nan
|
||||||
raw_quat_I = 0U;
|
raw_quat_I = 0U;
|
||||||
|
|
@ -2405,9 +2405,9 @@ void BNO08x::reset_all_data()
|
||||||
raw_quat_radian_accuracy = static_cast<uint16_t>(BNO08xAccuracy::UNDEFINED);
|
raw_quat_radian_accuracy = static_cast<uint16_t>(BNO08xAccuracy::UNDEFINED);
|
||||||
quat_accuracy = static_cast<uint16_t>(BNO08xAccuracy::UNDEFINED);
|
quat_accuracy = static_cast<uint16_t>(BNO08xAccuracy::UNDEFINED);
|
||||||
|
|
||||||
raw_velocity_gyro_X = 0U;
|
integrated_gyro_velocity_X = 0U;
|
||||||
raw_velocity_gyro_Y = 0U;
|
integrated_gyro_velocity_Y = 0U;
|
||||||
raw_velocity_gyro_Z = 0U;
|
integrated_gyro_velocity_Z = 0U;
|
||||||
|
|
||||||
gravity_X = 0U;
|
gravity_X = 0U;
|
||||||
gravity_Y = 0U;
|
gravity_Y = 0U;
|
||||||
|
|
@ -2880,12 +2880,28 @@ BNO08xAccuracy BNO08x::get_linear_accel_accuracy()
|
||||||
return static_cast<BNO08xAccuracy>(accel_lin_accuracy);
|
return static_cast<BNO08xAccuracy>(accel_lin_accuracy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get full raw mems acceleration.
|
||||||
|
*
|
||||||
|
* @param x Reference variable to save raw X axis acceleration.
|
||||||
|
* @param y Reference variable to save raw Y axis acceleration.
|
||||||
|
* @param z Reference variable to save raw Z axis acceleration.
|
||||||
|
*
|
||||||
|
* @return void, nothing to return
|
||||||
|
*/
|
||||||
|
void BNO08x::get_raw_mems_accel(uint16_t& x, uint16_t &y, uint16_t &z)
|
||||||
|
{
|
||||||
|
x = mems_raw_accel_X;
|
||||||
|
y = mems_raw_accel_X;
|
||||||
|
z = mems_raw_accel_X;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get raw accelerometer x axis reading from physical accelerometer MEMs sensor (See Ref. Manual 6.5.8)
|
* @brief Get raw accelerometer x axis reading from physical accelerometer MEMs sensor (See Ref. Manual 6.5.8)
|
||||||
*
|
*
|
||||||
* @return Reported raw accelerometer x axis reading from physical MEMs sensor.
|
* @return Reported raw accelerometer x axis reading from physical MEMs sensor.
|
||||||
*/
|
*/
|
||||||
int16_t BNO08x::get_raw_accel_X()
|
uint16_t BNO08x::get_raw_mems_accel_X()
|
||||||
{
|
{
|
||||||
return mems_raw_accel_X;
|
return mems_raw_accel_X;
|
||||||
}
|
}
|
||||||
|
|
@ -2895,7 +2911,7 @@ int16_t BNO08x::get_raw_accel_X()
|
||||||
*
|
*
|
||||||
* @return Reported raw accelerometer y axis reading from physical MEMs sensor.
|
* @return Reported raw accelerometer y axis reading from physical MEMs sensor.
|
||||||
*/
|
*/
|
||||||
int16_t BNO08x::get_raw_accel_Y()
|
uint16_t BNO08x::get_raw_mems_accel_Y()
|
||||||
{
|
{
|
||||||
return mems_raw_accel_Y;
|
return mems_raw_accel_Y;
|
||||||
}
|
}
|
||||||
|
|
@ -2905,17 +2921,33 @@ int16_t BNO08x::get_raw_accel_Y()
|
||||||
*
|
*
|
||||||
* @return Reported raw accelerometer z axis reading from physical MEMs sensor.
|
* @return Reported raw accelerometer z axis reading from physical MEMs sensor.
|
||||||
*/
|
*/
|
||||||
int16_t BNO08x::get_raw_accel_Z()
|
uint16_t BNO08x::get_raw_mems_accel_Z()
|
||||||
{
|
{
|
||||||
return mems_raw_accel_Z;
|
return mems_raw_accel_Z;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get full raw mems gyro data.
|
||||||
|
*
|
||||||
|
* @param x Reference variable to save raw X axis data.
|
||||||
|
* @param y Reference variable to save raw Y axis data.
|
||||||
|
* @param z Reference variable to save raw Z axis data.
|
||||||
|
*
|
||||||
|
* @return void, nothing to return
|
||||||
|
*/
|
||||||
|
void BNO08x::get_raw_mems_gyro(uint16_t& x, uint16_t &y, uint16_t &z)
|
||||||
|
{
|
||||||
|
x = mems_raw_gyro_X;
|
||||||
|
y = mems_raw_gyro_Y;
|
||||||
|
z = mems_raw_gyro_Z;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get raw gyroscope x axis reading from physical gyroscope MEMs sensor (See Ref. Manual 6.5.12)
|
* @brief Get raw gyroscope x axis reading from physical gyroscope MEMs sensor (See Ref. Manual 6.5.12)
|
||||||
*
|
*
|
||||||
* @return Reported raw gyroscope x axis reading from physical MEMs sensor.
|
* @return Reported raw gyroscope x axis reading from physical MEMs sensor.
|
||||||
*/
|
*/
|
||||||
int16_t BNO08x::get_raw_gyro_X()
|
uint16_t BNO08x::get_raw_mems_gyro_X()
|
||||||
{
|
{
|
||||||
return mems_raw_gyro_X;
|
return mems_raw_gyro_X;
|
||||||
}
|
}
|
||||||
|
|
@ -2925,7 +2957,7 @@ int16_t BNO08x::get_raw_gyro_X()
|
||||||
*
|
*
|
||||||
* @return Reported raw gyroscope y axis reading from physical MEMs sensor.
|
* @return Reported raw gyroscope y axis reading from physical MEMs sensor.
|
||||||
*/
|
*/
|
||||||
int16_t BNO08x::get_raw_gyro_Y()
|
uint16_t BNO08x::get_raw_mems_gyro_Y()
|
||||||
{
|
{
|
||||||
return mems_raw_gyro_Y;
|
return mems_raw_gyro_Y;
|
||||||
}
|
}
|
||||||
|
|
@ -2935,17 +2967,33 @@ int16_t BNO08x::get_raw_gyro_Y()
|
||||||
*
|
*
|
||||||
* @return Reported raw gyroscope z axis reading from physical MEMs sensor.
|
* @return Reported raw gyroscope z axis reading from physical MEMs sensor.
|
||||||
*/
|
*/
|
||||||
int16_t BNO08x::get_raw_gyro_Z()
|
uint16_t BNO08x::get_raw_mems_gyro_Z()
|
||||||
{
|
{
|
||||||
return mems_raw_gyro_Z;
|
return mems_raw_gyro_Z;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get full raw mems magnetometer data.
|
||||||
|
*
|
||||||
|
* @param x Reference variable to save raw X axis data.
|
||||||
|
* @param y Reference variable to save raw Y axis data.
|
||||||
|
* @param z Reference variable to save raw Z axis data.
|
||||||
|
*
|
||||||
|
* @return void, nothing to return
|
||||||
|
*/
|
||||||
|
void BNO08x::get_raw_mems_magf(uint16_t& x, uint16_t &y, uint16_t &z)
|
||||||
|
{
|
||||||
|
x = mems_raw_magf_X;
|
||||||
|
y = mems_raw_magf_Y;
|
||||||
|
z = mems_raw_magf_Z;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get raw magnetometer x axis reading from physical magnetometer sensor (See Ref. Manual 6.5.15)
|
* @brief Get raw magnetometer x axis reading from physical magnetometer sensor (See Ref. Manual 6.5.15)
|
||||||
*
|
*
|
||||||
* @return Reported raw magnetometer x axis reading from physical magnetometer sensor.
|
* @return Reported raw magnetometer x axis reading from physical magnetometer sensor.
|
||||||
*/
|
*/
|
||||||
int16_t BNO08x::get_raw_magf_X()
|
uint16_t BNO08x::get_raw_mems_magf_X()
|
||||||
{
|
{
|
||||||
return mems_raw_magf_X;
|
return mems_raw_magf_X;
|
||||||
}
|
}
|
||||||
|
|
@ -2955,7 +3003,7 @@ int16_t BNO08x::get_raw_magf_X()
|
||||||
*
|
*
|
||||||
* @return Reported raw magnetometer y axis reading from physical magnetometer sensor.
|
* @return Reported raw magnetometer y axis reading from physical magnetometer sensor.
|
||||||
*/
|
*/
|
||||||
int16_t BNO08x::get_raw_magf_Y()
|
uint16_t BNO08x::get_raw_mems_magf_Y()
|
||||||
{
|
{
|
||||||
return mems_raw_magf_Y;
|
return mems_raw_magf_Y;
|
||||||
}
|
}
|
||||||
|
|
@ -2965,7 +3013,7 @@ int16_t BNO08x::get_raw_magf_Y()
|
||||||
*
|
*
|
||||||
* @return Reported raw magnetometer z axis reading from physical magnetometer sensor.
|
* @return Reported raw magnetometer z axis reading from physical magnetometer sensor.
|
||||||
*/
|
*/
|
||||||
int16_t BNO08x::get_raw_magf_Z()
|
uint16_t BNO08x::get_raw_mems_magf_Z()
|
||||||
{
|
{
|
||||||
return mems_raw_magf_Z;
|
return mems_raw_magf_Z;
|
||||||
}
|
}
|
||||||
|
|
@ -2980,12 +3028,12 @@ int16_t BNO08x::get_raw_magf_Z()
|
||||||
*
|
*
|
||||||
* @return void, nothing to return
|
* @return void, nothing to return
|
||||||
*/
|
*/
|
||||||
void BNO08x::get_gyro_calibrated_velocity(float& x, float& y, float& z, BNO08xAccuracy& accuracy)
|
void BNO08x::get_calibrated_gyro_velocity(float& x, float& y, float& z, BNO08xAccuracy& accuracy)
|
||||||
{
|
{
|
||||||
x = q_to_float(raw_gyro_X, GYRO_Q1);
|
x = q_to_float(raw_calib_gyro_X, GYRO_Q1);
|
||||||
y = q_to_float(raw_gyro_Y, GYRO_Q1);
|
y = q_to_float(raw_calib_gyro_Y, GYRO_Q1);
|
||||||
z = q_to_float(raw_gyro_Z, GYRO_Q1);
|
z = q_to_float(raw_calib_gyro_Z, GYRO_Q1);
|
||||||
accuracy = static_cast<BNO08xAccuracy>(gyro_accuracy);
|
accuracy = static_cast<BNO08xAccuracy>(calib_gyro_accuracy);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -2993,9 +3041,9 @@ void BNO08x::get_gyro_calibrated_velocity(float& x, float& y, float& z, BNO08xAc
|
||||||
*
|
*
|
||||||
* @return The angular reported x axis angular velocity from calibrated gyro (drift compensation applied).
|
* @return The angular reported x axis angular velocity from calibrated gyro (drift compensation applied).
|
||||||
*/
|
*/
|
||||||
float BNO08x::get_gyro_calibrated_velocity_X()
|
float BNO08x::get_calibrated_gyro_velocity_X()
|
||||||
{
|
{
|
||||||
return q_to_float(raw_gyro_X, GYRO_Q1);
|
return q_to_float(raw_calib_gyro_X, GYRO_Q1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -3003,9 +3051,9 @@ float BNO08x::get_gyro_calibrated_velocity_X()
|
||||||
*
|
*
|
||||||
* @return The angular reported y axis angular velocity from calibrated gyro (drift compensation applied).
|
* @return The angular reported y axis angular velocity from calibrated gyro (drift compensation applied).
|
||||||
*/
|
*/
|
||||||
float BNO08x::get_gyro_calibrated_velocity_Y()
|
float BNO08x::get_calibrated_gyro_velocity_Y()
|
||||||
{
|
{
|
||||||
return q_to_float(raw_gyro_Y, GYRO_Q1);
|
return q_to_float(raw_calib_gyro_Y, GYRO_Q1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -3013,9 +3061,9 @@ float BNO08x::get_gyro_calibrated_velocity_Y()
|
||||||
*
|
*
|
||||||
* @return The angular reported z axis angular velocity from calibrated gyro (drift compensation applied).
|
* @return The angular reported z axis angular velocity from calibrated gyro (drift compensation applied).
|
||||||
*/
|
*/
|
||||||
float BNO08x::get_gyro_calibrated_velocity_Z()
|
float BNO08x::get_calibrated_gyro_velocity_Z()
|
||||||
{
|
{
|
||||||
return q_to_float(raw_gyro_Z, GYRO_Q1);
|
return q_to_float(raw_calib_gyro_Z, GYRO_Q1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -3023,9 +3071,9 @@ float BNO08x::get_gyro_calibrated_velocity_Z()
|
||||||
*
|
*
|
||||||
* @return Accuracy of calibrated gyro.
|
* @return Accuracy of calibrated gyro.
|
||||||
*/
|
*/
|
||||||
BNO08xAccuracy BNO08x::get_gyro_accuracy()
|
BNO08xAccuracy BNO08x::get_calibrated_gyro_accuracy()
|
||||||
{
|
{
|
||||||
return static_cast<BNO08xAccuracy>(gyro_accuracy);
|
return static_cast<BNO08xAccuracy>(calib_gyro_accuracy);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -3042,7 +3090,7 @@ BNO08xAccuracy BNO08x::get_gyro_accuracy()
|
||||||
*
|
*
|
||||||
* @return void, nothing to return
|
* @return void, nothing to return
|
||||||
*/
|
*/
|
||||||
void BNO08x::get_uncalibrated_gyro(float& x, float& y, float& z, float& b_x, float& b_y, float& b_z, BNO08xAccuracy& accuracy)
|
void BNO08x::get_uncalibrated_gyro_velocity(float& x, float& y, float& z, float& b_x, float& b_y, float& b_z, BNO08xAccuracy& accuracy)
|
||||||
{
|
{
|
||||||
x = q_to_float(raw_uncalib_gyro_X, GYRO_Q1);
|
x = q_to_float(raw_uncalib_gyro_X, GYRO_Q1);
|
||||||
y = q_to_float(raw_uncalib_gyro_Y, GYRO_Q1);
|
y = q_to_float(raw_uncalib_gyro_Y, GYRO_Q1);
|
||||||
|
|
@ -3058,7 +3106,7 @@ void BNO08x::get_uncalibrated_gyro(float& x, float& y, float& z, float& b_x, flo
|
||||||
*
|
*
|
||||||
* @return The angular reported x axis angular velocity from uncalibrated gyro.
|
* @return The angular reported x axis angular velocity from uncalibrated gyro.
|
||||||
*/
|
*/
|
||||||
float BNO08x::get_uncalibrated_gyro_X()
|
float BNO08x::get_uncalibrated_gyro_velocity_X()
|
||||||
{
|
{
|
||||||
return q_to_float(raw_uncalib_gyro_X, GYRO_Q1);
|
return q_to_float(raw_uncalib_gyro_X, GYRO_Q1);
|
||||||
}
|
}
|
||||||
|
|
@ -3068,7 +3116,7 @@ float BNO08x::get_uncalibrated_gyro_X()
|
||||||
*
|
*
|
||||||
* @return The angular reported Y axis angular velocity from uncalibrated gyro.
|
* @return The angular reported Y axis angular velocity from uncalibrated gyro.
|
||||||
*/
|
*/
|
||||||
float BNO08x::get_uncalibrated_gyro_Y()
|
float BNO08x::get_uncalibrated_gyro_velocity_Y()
|
||||||
{
|
{
|
||||||
return q_to_float(raw_uncalib_gyro_Y, GYRO_Q1);
|
return q_to_float(raw_uncalib_gyro_Y, GYRO_Q1);
|
||||||
}
|
}
|
||||||
|
|
@ -3078,7 +3126,7 @@ float BNO08x::get_uncalibrated_gyro_Y()
|
||||||
*
|
*
|
||||||
* @return The angular reported Z axis angular velocity from uncalibrated gyro.
|
* @return The angular reported Z axis angular velocity from uncalibrated gyro.
|
||||||
*/
|
*/
|
||||||
float BNO08x::get_uncalibrated_gyro_Z()
|
float BNO08x::get_uncalibrated_gyro_velocity_Z()
|
||||||
{
|
{
|
||||||
return q_to_float(raw_uncalib_gyro_Z, GYRO_Q1);
|
return q_to_float(raw_uncalib_gyro_Z, GYRO_Q1);
|
||||||
}
|
}
|
||||||
|
|
@ -3132,11 +3180,11 @@ BNO08xAccuracy BNO08x::get_uncalibrated_gyro_accuracy()
|
||||||
*
|
*
|
||||||
* @return void, nothing to return
|
* @return void, nothing to return
|
||||||
*/
|
*/
|
||||||
void BNO08x::get_gyro_velocity(float& x, float& y, float& z)
|
void BNO08x::get_integrated_gyro_velocity(float& x, float& y, float& z)
|
||||||
{
|
{
|
||||||
x = q_to_float(raw_velocity_gyro_X, ANGULAR_VELOCITY_Q1);
|
x = q_to_float(integrated_gyro_velocity_X, ANGULAR_VELOCITY_Q1);
|
||||||
y = q_to_float(raw_velocity_gyro_Y, ANGULAR_VELOCITY_Q1);
|
y = q_to_float(integrated_gyro_velocity_Y, ANGULAR_VELOCITY_Q1);
|
||||||
z = q_to_float(raw_velocity_gyro_Z, ANGULAR_VELOCITY_Q1);
|
z = q_to_float(integrated_gyro_velocity_Z, ANGULAR_VELOCITY_Q1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -3144,9 +3192,9 @@ void BNO08x::get_gyro_velocity(float& x, float& y, float& z)
|
||||||
*
|
*
|
||||||
* @return The reported x axis angular velocity.
|
* @return The reported x axis angular velocity.
|
||||||
*/
|
*/
|
||||||
float BNO08x::get_gyro_velocity_X()
|
float BNO08x::get_integrated_gyro_velocity_X()
|
||||||
{
|
{
|
||||||
return q_to_float(raw_velocity_gyro_X, ANGULAR_VELOCITY_Q1);
|
return q_to_float(integrated_gyro_velocity_X, ANGULAR_VELOCITY_Q1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -3154,9 +3202,9 @@ float BNO08x::get_gyro_velocity_X()
|
||||||
*
|
*
|
||||||
* @return The reported y axis angular velocity.
|
* @return The reported y axis angular velocity.
|
||||||
*/
|
*/
|
||||||
float BNO08x::get_gyro_velocity_Y()
|
float BNO08x::get_integrated_gyro_velocity_Y()
|
||||||
{
|
{
|
||||||
return q_to_float(raw_velocity_gyro_Y, ANGULAR_VELOCITY_Q1);
|
return q_to_float(integrated_gyro_velocity_Y, ANGULAR_VELOCITY_Q1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -3164,9 +3212,9 @@ float BNO08x::get_gyro_velocity_Y()
|
||||||
*
|
*
|
||||||
* @return The reported Z axis angular velocity.
|
* @return The reported Z axis angular velocity.
|
||||||
*/
|
*/
|
||||||
float BNO08x::get_gyro_velocity_Z()
|
float BNO08x::get_integrated_gyro_velocity_Z()
|
||||||
{
|
{
|
||||||
return q_to_float(raw_velocity_gyro_Z, ANGULAR_VELOCITY_Q1);
|
return q_to_float(integrated_gyro_velocity_Z, ANGULAR_VELOCITY_Q1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -355,8 +355,8 @@ TEST_CASE("Enable/Disable Gyro Integrated Roation Vector", "[SingleReportEnableD
|
||||||
sprintf(msg_buff,
|
sprintf(msg_buff,
|
||||||
"Enabled Report Rx Data Trial %d Success: I: %.2lf J: %.2lf K: %.2lf real: %.2lf gyro vel X: %.2lf gyro vel Y: %.2lf gyro vel Z: "
|
"Enabled Report Rx Data Trial %d Success: I: %.2lf J: %.2lf K: %.2lf real: %.2lf gyro vel X: %.2lf gyro vel Y: %.2lf gyro vel Z: "
|
||||||
"%.2lf ",
|
"%.2lf ",
|
||||||
(i + 1), report_data.quat_I, report_data.quat_J, report_data.quat_K, report_data.quat_real, report_data.gyro_vel_x,
|
(i + 1), report_data.quat_I, report_data.quat_J, report_data.quat_K, report_data.quat_real, report_data.integrated_gyro_vel_x,
|
||||||
report_data.gyro_vel_y, report_data.gyro_vel_z);
|
report_data.integrated_gyro_vel_y, report_data.integrated_gyro_vel_z);
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, msg_buff);
|
BNO08xTestHelper::print_test_msg(TEST_TAG, msg_buff);
|
||||||
|
|
||||||
// reset all data used in report test
|
// reset all data used in report test
|
||||||
|
|
@ -474,4 +474,164 @@ TEST_CASE("Enable/Disable Accelerometer", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report disabled testing phase completed.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report disabled testing phase completed.");
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_end_banner(TEST_TAG);
|
BNO08xTestHelper::print_test_end_banner(TEST_TAG);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE("Enable/Disable Linear Accelerometer", "[SingleReportEnableDisable]")
|
||||||
|
{
|
||||||
|
const constexpr char* TEST_TAG = "Enable/Disable Linear Accelerometer";
|
||||||
|
BNO08x* imu = nullptr;
|
||||||
|
BNO08xTestHelper::imu_report_data_t report_data;
|
||||||
|
bool new_data = false;
|
||||||
|
char msg_buff[200] = {};
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_start_banner(TEST_TAG);
|
||||||
|
|
||||||
|
imu = BNO08xTestHelper::get_test_imu();
|
||||||
|
|
||||||
|
// reset all data used in report test
|
||||||
|
imu->reset_all_data();
|
||||||
|
BNO08xTestHelper::update_report_data(&report_data, imu);
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
||||||
|
/*enable respective report to test and ensure it reports new data */
|
||||||
|
imu->enable_linear_accelerometer(100000UL);
|
||||||
|
|
||||||
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
|
{
|
||||||
|
new_data = false;
|
||||||
|
|
||||||
|
if (imu->data_available())
|
||||||
|
{
|
||||||
|
BNO08xTestHelper::update_report_data(&report_data, imu);
|
||||||
|
|
||||||
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
|
new_data = BNO08xTestHelper::linear_accelerometer_data_is_default(&report_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
// assert that new data from respective report has been received
|
||||||
|
TEST_ASSERT_EQUAL(true, new_data);
|
||||||
|
|
||||||
|
sprintf(msg_buff,
|
||||||
|
"Enabled Report Rx Data Trial %d Success: lin accel X: %.2lf lin accel Y: %.2lf lin accel Z: "
|
||||||
|
"%.2lf ",
|
||||||
|
(i + 1), report_data.lin_accel_x, report_data.lin_accel_y, report_data.lin_accel_z);
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, msg_buff);
|
||||||
|
|
||||||
|
// reset all data used in report test
|
||||||
|
imu->reset_all_data();
|
||||||
|
BNO08xTestHelper::update_report_data(&report_data, imu);
|
||||||
|
}
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase completed.");
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report disabled testing phase started.");
|
||||||
|
/*disable respective report to test and ensure it stops reporting new data */
|
||||||
|
imu->disable_linear_accelerometer();
|
||||||
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
|
{
|
||||||
|
new_data = false;
|
||||||
|
|
||||||
|
if (imu->data_available())
|
||||||
|
{
|
||||||
|
BNO08xTestHelper::update_report_data(&report_data, imu);
|
||||||
|
|
||||||
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
|
new_data = BNO08xTestHelper::linear_accelerometer_data_is_default(&report_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
// assert that no new data from respective report has been received
|
||||||
|
TEST_ASSERT_NOT_EQUAL(true, new_data);
|
||||||
|
|
||||||
|
sprintf(msg_buff, "Disabled Report No Rx Data Trial %d Success", (i + 1));
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, msg_buff);
|
||||||
|
|
||||||
|
// reset all data used in report test
|
||||||
|
imu->reset_all_data();
|
||||||
|
BNO08xTestHelper::update_report_data(&report_data, imu);
|
||||||
|
}
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report disabled testing phase completed.");
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_end_banner(TEST_TAG);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE("Enable/Disable Gravity", "[SingleReportEnableDisable]")
|
||||||
|
{
|
||||||
|
const constexpr char* TEST_TAG = "Enable/Disable Gravity";
|
||||||
|
BNO08x* imu = nullptr;
|
||||||
|
BNO08xTestHelper::imu_report_data_t report_data;
|
||||||
|
bool new_data = false;
|
||||||
|
char msg_buff[200] = {};
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_start_banner(TEST_TAG);
|
||||||
|
|
||||||
|
imu = BNO08xTestHelper::get_test_imu();
|
||||||
|
|
||||||
|
// reset all data used in report test
|
||||||
|
imu->reset_all_data();
|
||||||
|
BNO08xTestHelper::update_report_data(&report_data, imu);
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
||||||
|
/*enable respective report to test and ensure it reports new data */
|
||||||
|
imu->enable_gravity(100000UL);
|
||||||
|
|
||||||
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
|
{
|
||||||
|
new_data = false;
|
||||||
|
|
||||||
|
if (imu->data_available())
|
||||||
|
{
|
||||||
|
BNO08xTestHelper::update_report_data(&report_data, imu);
|
||||||
|
|
||||||
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
|
new_data = BNO08xTestHelper::gravity_data_is_default(&report_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
// assert that new data from respective report has been received
|
||||||
|
TEST_ASSERT_EQUAL(true, new_data);
|
||||||
|
|
||||||
|
sprintf(msg_buff,
|
||||||
|
"Enabled Report Rx Data Trial %d Success: grav X: %.2lf grav Y: %.2lf grav Z: "
|
||||||
|
"%.2lf ",
|
||||||
|
(i + 1), report_data.grav_x, report_data.grav_y, report_data.grav_z);
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, msg_buff);
|
||||||
|
|
||||||
|
// reset all data used in report test
|
||||||
|
imu->reset_all_data();
|
||||||
|
BNO08xTestHelper::update_report_data(&report_data, imu);
|
||||||
|
}
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase completed.");
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report disabled testing phase started.");
|
||||||
|
/*disable respective report to test and ensure it stops reporting new data */
|
||||||
|
imu->disable_gravity();
|
||||||
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
|
{
|
||||||
|
new_data = false;
|
||||||
|
|
||||||
|
if (imu->data_available())
|
||||||
|
{
|
||||||
|
BNO08xTestHelper::update_report_data(&report_data, imu);
|
||||||
|
|
||||||
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
|
new_data = BNO08xTestHelper::gravity_data_is_default(&report_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
// assert that no new data from respective report has been received
|
||||||
|
TEST_ASSERT_NOT_EQUAL(true, new_data);
|
||||||
|
|
||||||
|
sprintf(msg_buff, "Disabled Report No Rx Data Trial %d Success", (i + 1));
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, msg_buff);
|
||||||
|
|
||||||
|
// reset all data used in report test
|
||||||
|
imu->reset_all_data();
|
||||||
|
BNO08xTestHelper::update_report_data(&report_data, imu);
|
||||||
|
}
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report disabled testing phase completed.");
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_end_banner(TEST_TAG);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue