From 72042763bfcaa75d5dc8f3d33f8b171a0f9ea537 Mon Sep 17 00:00:00 2001 From: myles Date: Sun, 6 Apr 2025 13:22:19 -0700 Subject: [PATCH] Revert "timestamp feature" This reverts commit 3422227f32d66624b2383a8463985e015d34f2c1. --- .clang-format | 3 + README.md | 72 +++++++++---------- include/report/BNO08xRpt.hpp | 4 -- source/BNO08xRpt.cpp | 24 ------- .../report/BNO08xRptARVRStabilizedGameRV.cpp | 1 - source/report/BNO08xRptARVRStabilizedRV.cpp | 1 - source/report/BNO08xRptAcceleration.cpp | 1 - source/report/BNO08xRptActivityClassifier.cpp | 1 - source/report/BNO08xRptCalGyro.cpp | 1 - source/report/BNO08xRptCalMagnetometer.cpp | 1 - source/report/BNO08xRptGameRV.cpp | 1 - source/report/BNO08xRptGravity.cpp | 1 - source/report/BNO08xRptIGyroRV.cpp | 1 - source/report/BNO08xRptLinearAcceleration.cpp | 1 - source/report/BNO08xRptRV.cpp | 1 - source/report/BNO08xRptRVGeomag.cpp | 1 - .../report/BNO08xRptRawMEMSAccelerometer.cpp | 1 - source/report/BNO08xRptRawMEMSGyro.cpp | 1 - .../report/BNO08xRptRawMEMSMagnetometer.cpp | 1 - source/report/BNO08xRptShakeDetector.cpp | 1 - .../report/BNO08xRptStabilityClassifier.cpp | 1 - source/report/BNO08xRptStepCounter.cpp | 1 - source/report/BNO08xRptTapDetector.cpp | 1 - source/report/BNO08xRptUncalGyro.cpp | 1 - source/report/BNO08xRptUncalMagnetometer.cpp | 1 - 25 files changed, 38 insertions(+), 86 deletions(-) diff --git a/.clang-format b/.clang-format index f7f7344..eb3a2ff 100644 --- a/.clang-format +++ b/.clang-format @@ -27,6 +27,9 @@ SpaceAfterCStyleCast: true CommentPragmas: '^[/!]<' ColumnLimit: 130 +WrapComments: true +AllowShortCommentsOnASingleLine: true +AlignConsecutiveComments: true BreakBeforeBraces: Allman IndentAccessModifiers: true diff --git a/README.md b/README.md index f855531..65fadc1 100644 --- a/README.md +++ b/README.md @@ -171,7 +171,7 @@ extern "C" void app_main(void) #include #include "BNO08x.hpp" -static const constexpr char* TAG = "Main"; +static const constexpr char *TAG = "Main"; extern "C" void app_main(void) { @@ -196,52 +196,50 @@ extern "C" void app_main(void) // enable game rotation vector and calibrated gyro reports imu.rpt.rv_game.enable(100000UL); // 100,000us == 100ms report interval imu.rpt.cal_gyro.enable(100000UL); // 100,000us == 100ms report interval + // There are 3 different flavors of callbacks available: // 1) register a callback to execute when new data is received for any report - imu.register_cb( - []() - { - // check for game rotation vector report - if (imu.rpt.rv_game.has_new_data()) - { - // get absolute heading in degrees - bno08x_euler_angle_t euler = imu.rpt.rv_game.get_euler(); - // display heading - ESP_LOGI(TAG, "Euler Angle: x (roll): %.2f y (pitch): %.2f z (yaw): %.2f", euler.x, euler.y, euler.z); - } - }); + imu.register_cb([&imu]() + { + // check for game rotation vector report + if (imu.rpt.rv_game.has_new_data()) + { + // get absolute heading in degrees + bno08x_euler_angle_t euler = imu.rpt.rv_game.get_euler(); + // display heading + ESP_LOGI(TAG, "Euler Angle: x (roll): %.2f y (pitch): %.2f z (yaw): %.2f", euler.x, euler.y, euler.z); + } + }); // 2) register a callback that is only executed for a specific report - imu.rpt.cal_gyro.register_cb( - []() - { - // get angular velocity in rad/s - bno08x_gyro_t velocity = imu.rpt.cal_gyro.get(); - // display velocity - ESP_LOGI(TAG, "Velocity: x: %.2f y: %.2f z: %.2f", velocity.x, velocity.y, velocity.z); - }); + imu.rpt.cal_gyro.register_cb([&imu]() + { + // get angular velocity in rad/s + bno08x_gyro_t velocity = imu.rpt.cal_gyro.get(); + // display velocity + ESP_LOGI(TAG, "Velocity: x: %.2f y: %.2f z: %.2f", velocity.x, velocity.y, velocity.z); + }); - // 3) register a callback that is passed report ID of report that asserted callback - imu.register_cb( - [](uint8_t rpt_ID) - { - switch (rpt_ID) - { - case SH2_GAME_ROTATION_VECTOR: - ESP_LOGW(TAG, "Game RV report RX"); - break; + // 3) register a callback this passed report ID of report that asserted callback + imu.register_cb([](uint8_t rpt_ID) + { + switch (rpt_ID) + { + case SH2_GAME_ROTATION_VECTOR: + ESP_LOGW(TAG, "Game RV report RX"); + break; - case SH2_CAL_GYRO: - ESP_LOGW(TAG, "Cal Gyro report RX"); - break; + case SH2_CAL_GYRO: + ESP_LOGW(TAG, "Cal Gyro report RX"); + break; - default: + default: - break; - } - }); + break; + } + }); while (1) { diff --git a/include/report/BNO08xRpt.hpp b/include/report/BNO08xRpt.hpp index a1c8deb..e59c3e5 100644 --- a/include/report/BNO08xRpt.hpp +++ b/include/report/BNO08xRpt.hpp @@ -29,7 +29,6 @@ class BNO08xRpt bool register_cb(std::function cb_fxn); bool has_new_data(); bool flush(); - uint64_t get_timestamp_us(); bool get_sample_counts(bno08x_sample_counts_t& sample_counts); bool clear_sample_counts(); bool get_meta_data(bno08x_meta_data_t& meta_data); @@ -40,12 +39,10 @@ class BNO08xRpt uint8_t ID; ///< Report ID, ex. SH2_ACCELERATION. EventBits_t rpt_bit; ///< Respective enable and data bit for report in evt_grp_rpt_en and evt_grp_rpt_data uint32_t period_us; ///< The period/interval of the report in microseconds. - uint64_t time_stamp_us; ///< Timestamp sent in SHTP header, updated with each respective resport rx'd. BNO08xPrivateTypes::bno08x_sync_ctx_t* sync_ctx; bool rpt_enable(uint32_t time_between_reports, sh2_SensorConfig_t sensor_cfg = BNO08xPrivateTypes::default_sensor_cfg); virtual void update_data(sh2_SensorValue_t* sensor_val) = 0; - void update_timestamp(sh2_SensorValue_t* sensor_val); /** * @brief BNO08xRpt report constructor. @@ -63,7 +60,6 @@ class BNO08xRpt : ID(ID) , rpt_bit(rpt_bit) , period_us(0UL) - , time_stamp_us(0ULL) , sync_ctx(sync_ctx) { diff --git a/source/BNO08xRpt.cpp b/source/BNO08xRpt.cpp index 827b8cc..bb8aa52 100644 --- a/source/BNO08xRpt.cpp +++ b/source/BNO08xRpt.cpp @@ -125,20 +125,6 @@ bool BNO08xRpt::register_cb(std::function cb_fxn) return false; } -/** - * @brief Updates timestamp of data of respective report. - * - * @note User data should be locked when this fxn is called. - * - * @param sensor_val The sh2_SensorValue_t struct used in sh2_decodeSensorEvent() call. - * - * @return void, nothing to return - */ -void BNO08xRpt::update_timestamp(sh2_SensorValue_t* sensor_val) -{ - time_stamp_us = sensor_val->timestamp; -} - /** * @brief Checks if a new report has been received since the last time this function was called. * @@ -174,16 +160,6 @@ bool BNO08xRpt::flush() return (success != SH2_OK) ? false : true; } -/** - * @brief Returns timestamp of most recently received report for this type. - * - * @return Timestamp of most recently received report. - */ -uint64_t BNO08xRpt::get_timestamp_us() -{ - return time_stamp_us; -} - /** * @brief Gets sample counts for this sensor (see SH-2 ref manual 6.4.3.1) * diff --git a/source/report/BNO08xRptARVRStabilizedGameRV.cpp b/source/report/BNO08xRptARVRStabilizedGameRV.cpp index f290cee..8342124 100644 --- a/source/report/BNO08xRptARVRStabilizedGameRV.cpp +++ b/source/report/BNO08xRptARVRStabilizedGameRV.cpp @@ -17,7 +17,6 @@ void BNO08xRptARVRStabilizedGameRV::update_data(sh2_SensorValue_t* sensor_val) lock_user_data(); data = sensor_val->un.arvrStabilizedGRV; data.accuracy = static_cast(sensor_val->status); - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptARVRStabilizedRV.cpp b/source/report/BNO08xRptARVRStabilizedRV.cpp index d438894..fa86afc 100644 --- a/source/report/BNO08xRptARVRStabilizedRV.cpp +++ b/source/report/BNO08xRptARVRStabilizedRV.cpp @@ -17,7 +17,6 @@ void BNO08xRptARVRStabilizedRV::update_data(sh2_SensorValue_t* sensor_val) lock_user_data(); data = sensor_val->un.arvrStabilizedRV; data.accuracy = static_cast(sensor_val->status); - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptAcceleration.cpp b/source/report/BNO08xRptAcceleration.cpp index 2fb3374..25cf030 100644 --- a/source/report/BNO08xRptAcceleration.cpp +++ b/source/report/BNO08xRptAcceleration.cpp @@ -17,7 +17,6 @@ void BNO08xRptAcceleration::update_data(sh2_SensorValue_t* sensor_val) lock_user_data(); data = sensor_val->un.accelerometer; data.accuracy = static_cast(sensor_val->status); - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptActivityClassifier.cpp b/source/report/BNO08xRptActivityClassifier.cpp index ab31c46..769bbe4 100644 --- a/source/report/BNO08xRptActivityClassifier.cpp +++ b/source/report/BNO08xRptActivityClassifier.cpp @@ -17,7 +17,6 @@ void BNO08xRptActivityClassifier::update_data(sh2_SensorValue_t* sensor_val) lock_user_data(); data = sensor_val->un.personalActivityClassifier; data.accuracy = static_cast(sensor_val->status); - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptCalGyro.cpp b/source/report/BNO08xRptCalGyro.cpp index 649da9d..81a4f14 100644 --- a/source/report/BNO08xRptCalGyro.cpp +++ b/source/report/BNO08xRptCalGyro.cpp @@ -17,7 +17,6 @@ void BNO08xRptCalGyro::update_data(sh2_SensorValue_t* sensor_val) lock_user_data(); data = sensor_val->un.gyroscope; data.accuracy = static_cast(sensor_val->status); - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptCalMagnetometer.cpp b/source/report/BNO08xRptCalMagnetometer.cpp index b338719..2d216af 100644 --- a/source/report/BNO08xRptCalMagnetometer.cpp +++ b/source/report/BNO08xRptCalMagnetometer.cpp @@ -17,7 +17,6 @@ void BNO08xRptCalMagnetometer::update_data(sh2_SensorValue_t* sensor_val) lock_user_data(); data = sensor_val->un.magneticField; data.accuracy = static_cast(sensor_val->status); - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptGameRV.cpp b/source/report/BNO08xRptGameRV.cpp index 32b9c63..0d14d7b 100644 --- a/source/report/BNO08xRptGameRV.cpp +++ b/source/report/BNO08xRptGameRV.cpp @@ -17,7 +17,6 @@ void BNO08xRptGameRV::update_data(sh2_SensorValue_t* sensor_val) lock_user_data(); data = sensor_val->un.gameRotationVector; data.accuracy = static_cast(sensor_val->status); - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptGravity.cpp b/source/report/BNO08xRptGravity.cpp index 90495c8..a86dbb6 100644 --- a/source/report/BNO08xRptGravity.cpp +++ b/source/report/BNO08xRptGravity.cpp @@ -17,7 +17,6 @@ void BNO08xRptGravity::update_data(sh2_SensorValue_t* sensor_val) lock_user_data(); data = sensor_val->un.gravity; data.accuracy = static_cast(sensor_val->status); - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptIGyroRV.cpp b/source/report/BNO08xRptIGyroRV.cpp index 42677ef..b359b0e 100644 --- a/source/report/BNO08xRptIGyroRV.cpp +++ b/source/report/BNO08xRptIGyroRV.cpp @@ -18,7 +18,6 @@ void BNO08xRptIGyroRV::update_data(sh2_SensorValue_t* sensor_val) data = sensor_val->un.gyroIntegratedRV; data.accuracy = static_cast(sensor_val->status); data_vel = sensor_val->un.gyroIntegratedRV; - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptLinearAcceleration.cpp b/source/report/BNO08xRptLinearAcceleration.cpp index 8fa53eb..10177b4 100644 --- a/source/report/BNO08xRptLinearAcceleration.cpp +++ b/source/report/BNO08xRptLinearAcceleration.cpp @@ -17,7 +17,6 @@ void BNO08xRptLinearAcceleration::update_data(sh2_SensorValue_t* sensor_val) lock_user_data(); data = sensor_val->un.linearAcceleration; data.accuracy = static_cast(sensor_val->status); - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptRV.cpp b/source/report/BNO08xRptRV.cpp index 2690775..fc8eb49 100644 --- a/source/report/BNO08xRptRV.cpp +++ b/source/report/BNO08xRptRV.cpp @@ -17,7 +17,6 @@ void BNO08xRptRV::update_data(sh2_SensorValue_t* sensor_val) lock_user_data(); data = sensor_val->un.rotationVector; data.accuracy = static_cast(sensor_val->status); - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptRVGeomag.cpp b/source/report/BNO08xRptRVGeomag.cpp index 69174a7..f378020 100644 --- a/source/report/BNO08xRptRVGeomag.cpp +++ b/source/report/BNO08xRptRVGeomag.cpp @@ -17,7 +17,6 @@ void BNO08xRptRVGeomag::update_data(sh2_SensorValue_t* sensor_val) lock_user_data(); data = sensor_val->un.geoMagRotationVector; data.accuracy = static_cast(sensor_val->status); - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptRawMEMSAccelerometer.cpp b/source/report/BNO08xRptRawMEMSAccelerometer.cpp index 0870c11..76049d8 100644 --- a/source/report/BNO08xRptRawMEMSAccelerometer.cpp +++ b/source/report/BNO08xRptRawMEMSAccelerometer.cpp @@ -17,7 +17,6 @@ void BNO08xRptRawMEMSAccelerometer::update_data(sh2_SensorValue_t* sensor_val) lock_user_data(); data = sensor_val->un.rawAccelerometer; data.accuracy = static_cast(sensor_val->status); - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptRawMEMSGyro.cpp b/source/report/BNO08xRptRawMEMSGyro.cpp index 8337caa..13dff64 100644 --- a/source/report/BNO08xRptRawMEMSGyro.cpp +++ b/source/report/BNO08xRptRawMEMSGyro.cpp @@ -17,7 +17,6 @@ void BNO08xRptRawMEMSGyro::update_data(sh2_SensorValue_t* sensor_val) lock_user_data(); data = sensor_val->un.rawGyroscope; data.accuracy = static_cast(sensor_val->status); - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptRawMEMSMagnetometer.cpp b/source/report/BNO08xRptRawMEMSMagnetometer.cpp index 0d82a14..4bba5a7 100644 --- a/source/report/BNO08xRptRawMEMSMagnetometer.cpp +++ b/source/report/BNO08xRptRawMEMSMagnetometer.cpp @@ -17,7 +17,6 @@ void BNO08xRptRawMEMSMagnetometer::update_data(sh2_SensorValue_t* sensor_val) lock_user_data(); data = sensor_val->un.rawMagnetometer; data.accuracy = static_cast(sensor_val->status); - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptShakeDetector.cpp b/source/report/BNO08xRptShakeDetector.cpp index 8adcb1c..e41f8d2 100644 --- a/source/report/BNO08xRptShakeDetector.cpp +++ b/source/report/BNO08xRptShakeDetector.cpp @@ -17,7 +17,6 @@ void BNO08xRptShakeDetector::update_data(sh2_SensorValue_t* sensor_val) lock_user_data(); data = sensor_val->un.shakeDetector; data.accuracy = static_cast(sensor_val->status); - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptStabilityClassifier.cpp b/source/report/BNO08xRptStabilityClassifier.cpp index 779c928..d4a2cb0 100644 --- a/source/report/BNO08xRptStabilityClassifier.cpp +++ b/source/report/BNO08xRptStabilityClassifier.cpp @@ -17,7 +17,6 @@ void BNO08xRptStabilityClassifier::update_data(sh2_SensorValue_t* sensor_val) lock_user_data(); data = sensor_val->un.stabilityClassifier; data.accuracy = static_cast(sensor_val->status); - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptStepCounter.cpp b/source/report/BNO08xRptStepCounter.cpp index a1665c7..d49be93 100644 --- a/source/report/BNO08xRptStepCounter.cpp +++ b/source/report/BNO08xRptStepCounter.cpp @@ -28,7 +28,6 @@ void BNO08xRptStepCounter::update_data(sh2_SensorValue_t* sensor_val) prev_steps = data.steps; data.accuracy = static_cast(sensor_val->status); - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptTapDetector.cpp b/source/report/BNO08xRptTapDetector.cpp index 8651936..7de9981 100644 --- a/source/report/BNO08xRptTapDetector.cpp +++ b/source/report/BNO08xRptTapDetector.cpp @@ -35,7 +35,6 @@ void BNO08xRptTapDetector::update_data(sh2_SensorValue_t* sensor_val) lock_user_data(); data = sensor_val->un.tapDetector; data.accuracy = static_cast(sensor_val->status); - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptUncalGyro.cpp b/source/report/BNO08xRptUncalGyro.cpp index 62aeff7..3d364c5 100644 --- a/source/report/BNO08xRptUncalGyro.cpp +++ b/source/report/BNO08xRptUncalGyro.cpp @@ -18,7 +18,6 @@ void BNO08xRptUncalGyro::update_data(sh2_SensorValue_t* sensor_val) data = sensor_val->un.gyroscopeUncal; data.accuracy = static_cast(sensor_val->status); bias_data = sensor_val->un.gyroscopeUncal; - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en)) diff --git a/source/report/BNO08xRptUncalMagnetometer.cpp b/source/report/BNO08xRptUncalMagnetometer.cpp index 36766ad..c2076b4 100644 --- a/source/report/BNO08xRptUncalMagnetometer.cpp +++ b/source/report/BNO08xRptUncalMagnetometer.cpp @@ -18,7 +18,6 @@ void BNO08xRptUncalMagnetometer::update_data(sh2_SensorValue_t* sensor_val) data = sensor_val->un.magneticFieldUncal; data.accuracy = static_cast(sensor_val->status); bias_data = sensor_val->un.magneticFieldUncal; - update_timestamp(sensor_val); unlock_user_data(); if (rpt_bit & xEventGroupGetBits(sync_ctx->evt_grp_rpt_en))