MultiReportTests, unit test refactoring
This commit is contained in:
parent
04dd72a4b3
commit
2c6f309a83
10
README.md
10
README.md
|
|
@ -78,7 +78,7 @@ To access the menu:
|
||||||
1. Within esp-idf enabled terminal, execute the menuconfig command:
|
1. Within esp-idf enabled terminal, execute the menuconfig command:
|
||||||
```sh
|
```sh
|
||||||
idf.py menuconfig
|
idf.py menuconfig
|
||||||
|
```
|
||||||
2. Scroll down to the esp_BNO08x menu and enter it, if you're using vsCode you may have to use the "j" and "k" keys instead of the arrow keys.
|
2. Scroll down to the esp_BNO08x menu and enter it, if you're using vsCode you may have to use the "j" and "k" keys instead of the arrow keys.
|
||||||

|

|
||||||
|
|
||||||
|
|
@ -89,12 +89,12 @@ To access the menu:
|
||||||
### Examples
|
### Examples
|
||||||
There are two ways data returned from the BNO08x can be accessed with this library:
|
There are two ways data returned from the BNO08x can be accessed with this library:
|
||||||
|
|
||||||
1. Polling Method with `data_available()` Function:
|
1. **Polling Method with** `data_available()` **Function**:
|
||||||
- Use the `data_available()` function to poll for new data, similar to the SparkFun library.
|
- Use the `data_available()` function to poll for new data, similar to the SparkFun library.
|
||||||
- Behavior: It is a blocking function that returns `true` when new data is received or `false` if a timeout occurs.
|
- Behavior: It is a blocking function that returns `true` when new data is received or `false` if a timeout occurs.
|
||||||
- See the **Polling Example** below.
|
- See the **Polling Example** below.
|
||||||
|
|
||||||
2. Callback Registration with `register_cb()` Function:
|
2. **Callback Registration with** `register_cb()` **Function**:
|
||||||
- Register callback functions that automatically execute upon receiving new data.
|
- Register callback functions that automatically execute upon receiving new data.
|
||||||
- Behavior: The registered callback will be invoked whenever new data is available.
|
- Behavior: The registered callback will be invoked whenever new data is available.
|
||||||
- See the **Call-Back Function Example** below.
|
- See the **Call-Back Function Example** below.
|
||||||
|
|
@ -198,8 +198,8 @@ extern "C" void app_main(void)
|
||||||
<p align="right">(<a href="#readme-top">back to top</a>)</p>
|
<p align="right">(<a href="#readme-top">back to top</a>)</p>
|
||||||
|
|
||||||
## Unit Tests
|
## Unit Tests
|
||||||
A basic unit testing suite is included with this library, but it is very rudimentary.
|
A basic unit testing suite is included with this library, but it is very rudimentary.
|
||||||
It can be used to verify some of the basic features of a BNO08x device.
|
It can be used to verify some of the basic features of a BNO08x device.
|
||||||
<p align="right">(<a href="#readme-top">back to top</a>)</p>
|
<p align="right">(<a href="#readme-top">back to top</a>)</p>
|
||||||
|
|
||||||
### Running Tests
|
### Running Tests
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
#include "stdio.h"
|
#include "stdio.h"
|
||||||
#include "BNO08x.hpp"
|
#include "BNO08x.hpp"
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @class BNO08xTestHelper
|
* @class BNO08xTestHelper
|
||||||
* @brief BNO08x unit test helper class.
|
* @brief BNO08x unit test helper class.
|
||||||
|
|
@ -234,9 +235,9 @@ class BNO08xTestHelper
|
||||||
* @param report_data Current report data.
|
* @param report_data Current report data.
|
||||||
* @param default_report_data Default report data to compare (should always contain default values)
|
* @param default_report_data Default report data to compare (should always contain default values)
|
||||||
*
|
*
|
||||||
* @return ESP_OK if init succeeded.
|
* @return True if new data was received for respective report.
|
||||||
*/
|
*/
|
||||||
static bool rotation_vector_data_is_default(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
static bool rotation_vector_data_is_new(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
||||||
{
|
{
|
||||||
bool new_data = false;
|
bool new_data = false;
|
||||||
|
|
||||||
|
|
@ -268,9 +269,9 @@ class BNO08xTestHelper
|
||||||
* @param report_data Current report data.
|
* @param report_data Current report data.
|
||||||
* @param default_report_data Default report data to compare (should always contain default values)
|
* @param default_report_data Default report data to compare (should always contain default values)
|
||||||
*
|
*
|
||||||
* @return ESP_OK if init succeeded.
|
* @return True if new data was received for respective report.
|
||||||
*/
|
*/
|
||||||
static bool gyro_integrated_rotation_vector_data_is_default(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
static bool gyro_integrated_rotation_vector_data_is_new(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
||||||
{
|
{
|
||||||
bool new_data = false;
|
bool new_data = false;
|
||||||
|
|
||||||
|
|
@ -304,9 +305,9 @@ class BNO08xTestHelper
|
||||||
* @param report_data Current report data.
|
* @param report_data Current report data.
|
||||||
* @param default_report_data Default report data to compare (should always contain default values)
|
* @param default_report_data Default report data to compare (should always contain default values)
|
||||||
*
|
*
|
||||||
* @return ESP_OK if init succeeded.
|
* @return True if new data was received for respective report.
|
||||||
*/
|
*/
|
||||||
static bool uncalibrated_gyro_data_is_default(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
static bool uncalibrated_gyro_data_is_new(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
||||||
{
|
{
|
||||||
bool new_data = false;
|
bool new_data = false;
|
||||||
|
|
||||||
|
|
@ -337,9 +338,9 @@ class BNO08xTestHelper
|
||||||
* @param report_data Current report data.
|
* @param report_data Current report data.
|
||||||
* @param default_report_data Default report data to compare (should always contain default values)
|
* @param default_report_data Default report data to compare (should always contain default values)
|
||||||
*
|
*
|
||||||
* @return ESP_OK if init succeeded.
|
* @return True if new data was received for respective report.
|
||||||
*/
|
*/
|
||||||
static bool calibrated_gyro_data_is_default(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
static bool calibrated_gyro_data_is_new(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
||||||
{
|
{
|
||||||
bool new_data = false;
|
bool new_data = false;
|
||||||
|
|
||||||
|
|
@ -361,9 +362,9 @@ class BNO08xTestHelper
|
||||||
* @param report_data Current report data.
|
* @param report_data Current report data.
|
||||||
* @param default_report_data Default report data to compare (should always contain default values)
|
* @param default_report_data Default report data to compare (should always contain default values)
|
||||||
*
|
*
|
||||||
* @return ESP_OK if init succeeded.
|
* @return True if new data was received for respective report.
|
||||||
*/
|
*/
|
||||||
static bool accelerometer_data_is_default(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
static bool accelerometer_data_is_new(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
||||||
{
|
{
|
||||||
bool new_data = false;
|
bool new_data = false;
|
||||||
|
|
||||||
|
|
@ -388,9 +389,9 @@ class BNO08xTestHelper
|
||||||
* @param report_data Current report data.
|
* @param report_data Current report data.
|
||||||
* @param default_report_data Default report data to compare (should always contain default values)
|
* @param default_report_data Default report data to compare (should always contain default values)
|
||||||
*
|
*
|
||||||
* @return ESP_OK if init succeeded.
|
* @return True if new data was received for respective report.
|
||||||
*/
|
*/
|
||||||
static bool linear_accelerometer_data_is_default(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
static bool linear_accelerometer_data_is_new(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
||||||
{
|
{
|
||||||
bool new_data = false;
|
bool new_data = false;
|
||||||
|
|
||||||
|
|
@ -415,9 +416,9 @@ class BNO08xTestHelper
|
||||||
* @param report_data Current report data.
|
* @param report_data Current report data.
|
||||||
* @param default_report_data Default report data to compare (should always contain default values)
|
* @param default_report_data Default report data to compare (should always contain default values)
|
||||||
*
|
*
|
||||||
* @return ESP_OK if init succeeded.
|
* @return True if new data was received for respective report.
|
||||||
*/
|
*/
|
||||||
static bool gravity_data_is_default(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
static bool gravity_data_is_new(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
||||||
{
|
{
|
||||||
bool new_data = false;
|
bool new_data = false;
|
||||||
|
|
||||||
|
|
@ -442,9 +443,9 @@ class BNO08xTestHelper
|
||||||
* @param report_data Current report data.
|
* @param report_data Current report data.
|
||||||
* @param default_report_data Default report data to compare (should always contain default values)
|
* @param default_report_data Default report data to compare (should always contain default values)
|
||||||
*
|
*
|
||||||
* @return ESP_OK if init succeeded.
|
* @return True if new data was received for respective report.
|
||||||
*/
|
*/
|
||||||
static bool magnetometer_data_is_default(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
static bool magnetometer_data_is_new(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
||||||
{
|
{
|
||||||
bool new_data = false;
|
bool new_data = false;
|
||||||
|
|
||||||
|
|
@ -469,9 +470,9 @@ class BNO08xTestHelper
|
||||||
* @param report_data Current report data.
|
* @param report_data Current report data.
|
||||||
* @param default_report_data Default report data to compare (should always contain default values)
|
* @param default_report_data Default report data to compare (should always contain default values)
|
||||||
*
|
*
|
||||||
* @return ESP_OK if init succeeded.
|
* @return True if new data was received for respective report.
|
||||||
*/
|
*/
|
||||||
static bool step_detector_data_is_default(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
static bool step_detector_data_is_new(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
||||||
{
|
{
|
||||||
bool new_data = false;
|
bool new_data = false;
|
||||||
|
|
||||||
|
|
@ -487,9 +488,9 @@ class BNO08xTestHelper
|
||||||
* @param report_data Current report data.
|
* @param report_data Current report data.
|
||||||
* @param default_report_data Default report data to compare (should always contain default values)
|
* @param default_report_data Default report data to compare (should always contain default values)
|
||||||
*
|
*
|
||||||
* @return ESP_OK if init succeeded.
|
* @return True if new data was received for respective report.
|
||||||
*/
|
*/
|
||||||
static bool stability_classifier_data_is_default(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
static bool stability_classifier_data_is_new(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
||||||
{
|
{
|
||||||
bool new_data = false;
|
bool new_data = false;
|
||||||
|
|
||||||
|
|
@ -505,9 +506,9 @@ class BNO08xTestHelper
|
||||||
* @param report_data Current report data.
|
* @param report_data Current report data.
|
||||||
* @param default_report_data Default report data to compare (should always contain default values)
|
* @param default_report_data Default report data to compare (should always contain default values)
|
||||||
*
|
*
|
||||||
* @return ESP_OK if init succeeded.
|
* @return True if new data was received for respective report.
|
||||||
*/
|
*/
|
||||||
static bool activity_classifier_data_is_default(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
static bool activity_classifier_data_is_new(imu_report_data_t* report_data, imu_report_data_t* default_report_data)
|
||||||
{
|
{
|
||||||
bool new_data = false;
|
bool new_data = false;
|
||||||
|
|
||||||
|
|
@ -522,7 +523,7 @@ class BNO08xTestHelper
|
||||||
*
|
*
|
||||||
* @param report_data Pointer to imu_report_data_t struct to save report data.
|
* @param report_data Pointer to imu_report_data_t struct to save report data.
|
||||||
*
|
*
|
||||||
* @return ESP_OK if init succeeded.
|
* @return void, noting to return.
|
||||||
*/
|
*/
|
||||||
static void update_report_data(imu_report_data_t* report_data)
|
static void update_report_data(imu_report_data_t* report_data)
|
||||||
{
|
{
|
||||||
|
|
@ -548,7 +549,7 @@ class BNO08xTestHelper
|
||||||
/**
|
/**
|
||||||
* @brief Resets internal test imu data with test defaults.
|
* @brief Resets internal test imu data with test defaults.
|
||||||
*
|
*
|
||||||
* @return ESP_OK if init succeeded.
|
* @return void, nothing to return.
|
||||||
*/
|
*/
|
||||||
static void reset_all_imu_data_to_test_defaults()
|
static void reset_all_imu_data_to_test_defaults()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@
|
||||||
#include "unity.h"
|
#include "unity.h"
|
||||||
#include "BNO08xTestHelper.hpp"
|
#include "BNO08xTestHelper.hpp"
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @class BNO08xTestSuite
|
* @class BNO08xTestSuite
|
||||||
* @brief BNO08x unit test launch point class.
|
* @brief BNO08x unit test launch point class.
|
||||||
|
|
@ -35,7 +36,8 @@ class BNO08xTestSuite
|
||||||
{
|
{
|
||||||
UNITY_BEGIN();
|
UNITY_BEGIN();
|
||||||
run_init_deinit_tests(false);
|
run_init_deinit_tests(false);
|
||||||
run_report_tests(false);
|
run_single_report_tests(false);
|
||||||
|
run_multi_report_tests(false);
|
||||||
UNITY_END();
|
UNITY_END();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -55,9 +57,9 @@ class BNO08xTestSuite
|
||||||
print_end_tests_banner("init_denit_tests");
|
print_end_tests_banner("init_denit_tests");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void run_report_tests(bool call_unity_end_begin = true)
|
static void run_single_report_tests(bool call_unity_end_begin = true)
|
||||||
{
|
{
|
||||||
print_begin_tests_banner("report_tests");
|
print_begin_tests_banner("single_report_tests");
|
||||||
|
|
||||||
if (call_unity_end_begin)
|
if (call_unity_end_begin)
|
||||||
UNITY_BEGIN();
|
UNITY_BEGIN();
|
||||||
|
|
@ -67,6 +69,21 @@ class BNO08xTestSuite
|
||||||
if (call_unity_end_begin)
|
if (call_unity_end_begin)
|
||||||
UNITY_END();
|
UNITY_END();
|
||||||
|
|
||||||
print_end_tests_banner("report_tests");
|
print_end_tests_banner("single_report_tests");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void run_multi_report_tests(bool call_unity_end_begin = true)
|
||||||
|
{
|
||||||
|
print_begin_tests_banner("multi_report_tests");
|
||||||
|
|
||||||
|
if (call_unity_end_begin)
|
||||||
|
UNITY_BEGIN();
|
||||||
|
|
||||||
|
unity_run_tests_by_tag("[MultiReportEnableDisable]", false);
|
||||||
|
|
||||||
|
if (call_unity_end_begin)
|
||||||
|
UNITY_END();
|
||||||
|
|
||||||
|
print_end_tests_banner("multi_report_tests");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -101,18 +101,18 @@ TEST_CASE("Init & Deinit", "[InitDenit]")
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_start_banner(TEST_TAG);
|
BNO08xTestHelper::print_test_start_banner(TEST_TAG);
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Initializing IMU attempt 1.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Initializing BNO08x Driver Object attempt 1.");
|
||||||
BNO08xTestHelper::create_test_imu();
|
BNO08xTestHelper::create_test_imu();
|
||||||
imu = BNO08xTestHelper::get_test_imu();
|
imu = BNO08xTestHelper::get_test_imu();
|
||||||
TEST_ASSERT_EQUAL(true, imu->initialize());
|
TEST_ASSERT_EQUAL(true, imu->initialize());
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Success, deinitializing IMU.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Success, deinitializing BNO08x Driver Object.");
|
||||||
BNO08xTestHelper::destroy_test_imu();
|
BNO08xTestHelper::destroy_test_imu();
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Initializing IMU attempt 2.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Initializing BNO08x Driver Object attempt 2.");
|
||||||
BNO08xTestHelper::create_test_imu();
|
BNO08xTestHelper::create_test_imu();
|
||||||
imu = BNO08xTestHelper::get_test_imu();
|
imu = BNO08xTestHelper::get_test_imu();
|
||||||
TEST_ASSERT_EQUAL(true, imu->initialize());
|
TEST_ASSERT_EQUAL(true, imu->initialize());
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Success, deinitializing IMU.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Success, deinitializing BNO08x Driver Object.");
|
||||||
BNO08xTestHelper::destroy_test_imu();
|
BNO08xTestHelper::destroy_test_imu();
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_end_banner(TEST_TAG);
|
BNO08xTestHelper::print_test_end_banner(TEST_TAG);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,141 @@
|
||||||
|
#include "unity.h"
|
||||||
|
#include "../include/BNO08xTestHelper.hpp"
|
||||||
|
|
||||||
|
TEST_CASE("BNO08x Driver Creation for [MultiReportEnableDisable] Tests", "[MultiReportEnableDisable]")
|
||||||
|
{
|
||||||
|
const constexpr char* TEST_TAG = "BNO08x Driver Creation for [MultiReportEnableDisable] Tests";
|
||||||
|
BNO08x* imu = nullptr;
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Creating & initializing BNO08x driver.");
|
||||||
|
BNO08xTestHelper::create_test_imu();
|
||||||
|
imu = BNO08xTestHelper::get_test_imu();
|
||||||
|
|
||||||
|
// ensure IMU initialized successfully
|
||||||
|
TEST_ASSERT_EQUAL(true, imu->initialize());
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE("Dual Report Enable/Disable", "[MultiReportEnableDisable]")
|
||||||
|
{
|
||||||
|
const constexpr char* TEST_TAG = "Dual Report Enable/Disable";
|
||||||
|
BNO08x* imu = nullptr;
|
||||||
|
BNO08xTestHelper::imu_report_data_t report_data;
|
||||||
|
BNO08xTestHelper::imu_report_data_t prev_report_data;
|
||||||
|
char msg_buff[200] = {};
|
||||||
|
const constexpr uint8_t ENABLED_REPORT_CNT = 2;
|
||||||
|
const constexpr uint8_t RX_REPORT_TRIAL_CNT = ENABLED_REPORT_CNT + 1;
|
||||||
|
const constexpr uint32_t REPORT_PERIOD = 100000UL; // 100ms
|
||||||
|
|
||||||
|
bool new_data[ENABLED_REPORT_CNT] = {false, false};
|
||||||
|
|
||||||
|
imu = BNO08xTestHelper::get_test_imu();
|
||||||
|
|
||||||
|
// reset all data used in report test
|
||||||
|
BNO08xTestHelper::reset_all_imu_data_to_test_defaults();
|
||||||
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Enabling Accelerometer and Linear Accelerometer reports, checking for new data on both.");
|
||||||
|
|
||||||
|
imu->enable_accelerometer(REPORT_PERIOD);
|
||||||
|
imu->enable_linear_accelerometer(REPORT_PERIOD);
|
||||||
|
|
||||||
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
|
{
|
||||||
|
if (imu->data_available())
|
||||||
|
{
|
||||||
|
prev_report_data = report_data;
|
||||||
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
|
if (BNO08xTestHelper::accelerometer_data_is_new(&report_data, &prev_report_data))
|
||||||
|
{
|
||||||
|
new_data[0] = true;
|
||||||
|
|
||||||
|
sprintf(msg_buff,
|
||||||
|
"Rx Data Trial %d Success: AngularAccel: aX: %.2lf accel aY: %.2lf accel aZ: "
|
||||||
|
"%.2lf Accuracy %s",
|
||||||
|
(i + 1), report_data.accel_x, report_data.accel_y, report_data.accel_z,
|
||||||
|
BNO08xTestHelper::BNO08xAccuracy_to_str(report_data.accel_accuracy));
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, msg_buff);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (BNO08xTestHelper::linear_accelerometer_data_is_new(&report_data, &prev_report_data))
|
||||||
|
{
|
||||||
|
new_data[1] = true;
|
||||||
|
|
||||||
|
sprintf(msg_buff,
|
||||||
|
"Rx Data Trial %d Success: LinearAccel: laX: %.2lf laY: %.2lf laZ: "
|
||||||
|
"%.2lf Accuracy: %s",
|
||||||
|
(i + 1), report_data.lin_accel_x, report_data.lin_accel_y, report_data.lin_accel_z,
|
||||||
|
BNO08xTestHelper::BNO08xAccuracy_to_str(report_data.lin_accel_accuracy));
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, msg_buff);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// check that new data was received for each report
|
||||||
|
TEST_ASSERT_EQUAL(true, new_data[0]);
|
||||||
|
TEST_ASSERT_EQUAL(true, new_data[1]);
|
||||||
|
|
||||||
|
// reset all data used in report test
|
||||||
|
new_data[0] = false;
|
||||||
|
new_data[1] = false;
|
||||||
|
BNO08xTestHelper::reset_all_imu_data_to_test_defaults();
|
||||||
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Test completed, disabling only Linear Accelerometer report and checking for new data on both.");
|
||||||
|
imu->disable_linear_accelerometer();
|
||||||
|
|
||||||
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
|
{
|
||||||
|
if (imu->data_available())
|
||||||
|
{
|
||||||
|
prev_report_data = report_data;
|
||||||
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
|
if (BNO08xTestHelper::accelerometer_data_is_new(&report_data, &prev_report_data))
|
||||||
|
{
|
||||||
|
new_data[0] = true;
|
||||||
|
|
||||||
|
sprintf(msg_buff,
|
||||||
|
"Rx Data Trial %d Success: AngularAccel: aX: %.2lf accel aY: %.2lf accel aZ: "
|
||||||
|
"%.2lf Accuracy %s",
|
||||||
|
(i + 1), report_data.accel_x, report_data.accel_y, report_data.accel_z,
|
||||||
|
BNO08xTestHelper::BNO08xAccuracy_to_str(report_data.accel_accuracy));
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, msg_buff);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (BNO08xTestHelper::linear_accelerometer_data_is_new(&report_data, &prev_report_data))
|
||||||
|
{
|
||||||
|
// no new data should be detected here, report is disabled.
|
||||||
|
new_data[1] = true;
|
||||||
|
|
||||||
|
sprintf(msg_buff,
|
||||||
|
"Rx Data Trial %d Failure (REPORT DISABLED): LinearAccel: laX: %.2lf laY: %.2lf laZ: "
|
||||||
|
"%.2lf Accuracy: %s",
|
||||||
|
(i + 1), report_data.lin_accel_x, report_data.lin_accel_y, report_data.lin_accel_z,
|
||||||
|
BNO08xTestHelper::BNO08xAccuracy_to_str(report_data.lin_accel_accuracy));
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, msg_buff);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// check that new data was received only for accelerometer report
|
||||||
|
TEST_ASSERT_EQUAL(true, new_data[0]);
|
||||||
|
TEST_ASSERT_NOT_EQUAL(true, new_data[1]);
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Test completed, disabling Accelerometer and Linear Accelerometer report");
|
||||||
|
imu->disable_accelerometer();
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE("BNO08x Driver Cleanup for [MultiReportEnableDisable] Tests", "[MultiReportEnableDisable]")
|
||||||
|
{
|
||||||
|
const constexpr char* TEST_TAG = "BNO08x Driver Cleanup for [MultiReportEnableDisable] Tests";
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Destroying BNO08x Driver.");
|
||||||
|
|
||||||
|
BNO08xTestHelper::destroy_test_imu();
|
||||||
|
}
|
||||||
|
|
@ -2,6 +2,20 @@
|
||||||
#include "../include/BNO08xTestHelper.hpp"
|
#include "../include/BNO08xTestHelper.hpp"
|
||||||
|
|
||||||
static const constexpr uint8_t RX_REPORT_TRIAL_CNT = 5;
|
static const constexpr uint8_t RX_REPORT_TRIAL_CNT = 5;
|
||||||
|
static const constexpr uint32_t REPORT_PERIOD = 100000UL; // 100ms
|
||||||
|
|
||||||
|
TEST_CASE("BNO08x Driver Creation for [SingleReportEnableDisable] Tests", "[SingleReportEnableDisable]")
|
||||||
|
{
|
||||||
|
const constexpr char* TEST_TAG = "BNO08x Driver Creation for [SingleReportEnableDisable] Tests";
|
||||||
|
BNO08x* imu = nullptr;
|
||||||
|
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Creating & initializing BNO08x driver.");
|
||||||
|
BNO08xTestHelper::create_test_imu();
|
||||||
|
imu = BNO08xTestHelper::get_test_imu();
|
||||||
|
|
||||||
|
// ensure IMU initialized successfully
|
||||||
|
TEST_ASSERT_EQUAL(true, imu->initialize());
|
||||||
|
}
|
||||||
|
|
||||||
TEST_CASE("Enable Incorrect Report", "[SingleReportEnableDisable]")
|
TEST_CASE("Enable Incorrect Report", "[SingleReportEnableDisable]")
|
||||||
{
|
{
|
||||||
|
|
@ -14,20 +28,15 @@ TEST_CASE("Enable Incorrect Report", "[SingleReportEnableDisable]")
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_start_banner(TEST_TAG);
|
BNO08xTestHelper::print_test_start_banner(TEST_TAG);
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Creating & initializing IMU for Enable/Disable report tests.");
|
|
||||||
BNO08xTestHelper::create_test_imu();
|
|
||||||
imu = BNO08xTestHelper::get_test_imu();
|
imu = BNO08xTestHelper::get_test_imu();
|
||||||
|
|
||||||
// ensure IMU initialized successfully
|
|
||||||
TEST_ASSERT_EQUAL(true, imu->initialize());
|
|
||||||
|
|
||||||
// reset all data used in report test
|
// reset all data used in report test
|
||||||
BNO08xTestHelper::reset_all_imu_data_to_test_defaults();
|
BNO08xTestHelper::reset_all_imu_data_to_test_defaults();
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
||||||
/*enable linear accelerometer report but check for angular accelerometer data (should remain as default test values) */
|
/*enable linear accelerometer report but check for angular accelerometer data (should remain as default test values) */
|
||||||
imu->enable_linear_accelerometer(100000UL);
|
imu->enable_linear_accelerometer(REPORT_PERIOD);
|
||||||
|
|
||||||
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
{
|
{
|
||||||
|
|
@ -39,7 +48,7 @@ TEST_CASE("Enable Incorrect Report", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::accelerometer_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::accelerometer_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that new data from accelerometer has not been rx'd, only linear accelerometer data should have been rx'd
|
// assert that new data from accelerometer has not been rx'd, only linear accelerometer data should have been rx'd
|
||||||
|
|
@ -81,7 +90,7 @@ TEST_CASE("Enable/Disable Rotation Vector", "[SingleReportEnableDisable]")
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
||||||
/*enable respective report to test and ensure it reports new data */
|
/*enable respective report to test and ensure it reports new data */
|
||||||
imu->enable_rotation_vector(100000UL);
|
imu->enable_rotation_vector(REPORT_PERIOD);
|
||||||
|
|
||||||
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
{
|
{
|
||||||
|
|
@ -93,7 +102,7 @@ TEST_CASE("Enable/Disable Rotation Vector", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::rotation_vector_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::rotation_vector_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that new data from respective report has been received
|
// assert that new data from respective report has been received
|
||||||
|
|
@ -124,7 +133,7 @@ TEST_CASE("Enable/Disable Rotation Vector", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::rotation_vector_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::rotation_vector_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that no new data from respective report has been received
|
// assert that no new data from respective report has been received
|
||||||
|
|
@ -165,7 +174,7 @@ TEST_CASE("Enable/Disable Game Rotation Vector", "[SingleReportEnableDisable]")
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
||||||
/*enable respective report to test and ensure it reports new data */
|
/*enable respective report to test and ensure it reports new data */
|
||||||
imu->enable_game_rotation_vector(100000UL);
|
imu->enable_game_rotation_vector(REPORT_PERIOD);
|
||||||
|
|
||||||
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
{
|
{
|
||||||
|
|
@ -177,7 +186,7 @@ TEST_CASE("Enable/Disable Game Rotation Vector", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::rotation_vector_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::rotation_vector_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that new data from respective report has been received
|
// assert that new data from respective report has been received
|
||||||
|
|
@ -208,7 +217,7 @@ TEST_CASE("Enable/Disable Game Rotation Vector", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::rotation_vector_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::rotation_vector_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that no new data from respective report has been received
|
// assert that no new data from respective report has been received
|
||||||
|
|
@ -249,7 +258,7 @@ TEST_CASE("Enable/Disable ARVR Stabilized Rotation Vector", "[SingleReportEnable
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
||||||
/*enable respective report to test and ensure it reports new data */
|
/*enable respective report to test and ensure it reports new data */
|
||||||
imu->enable_ARVR_stabilized_rotation_vector(100000UL);
|
imu->enable_ARVR_stabilized_rotation_vector(REPORT_PERIOD);
|
||||||
|
|
||||||
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
{
|
{
|
||||||
|
|
@ -261,7 +270,7 @@ TEST_CASE("Enable/Disable ARVR Stabilized Rotation Vector", "[SingleReportEnable
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::rotation_vector_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::rotation_vector_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that new data from respective report has been received
|
// assert that new data from respective report has been received
|
||||||
|
|
@ -292,7 +301,7 @@ TEST_CASE("Enable/Disable ARVR Stabilized Rotation Vector", "[SingleReportEnable
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::rotation_vector_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::rotation_vector_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that no new data from respective report has been received
|
// assert that no new data from respective report has been received
|
||||||
|
|
@ -333,7 +342,7 @@ TEST_CASE("Enable/Disable ARVR Stabilized Game Rotation Vector", "[SingleReportE
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
||||||
/*enable respective report to test and ensure it reports new data */
|
/*enable respective report to test and ensure it reports new data */
|
||||||
imu->enable_ARVR_stabilized_game_rotation_vector(100000UL);
|
imu->enable_ARVR_stabilized_game_rotation_vector(REPORT_PERIOD);
|
||||||
|
|
||||||
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
{
|
{
|
||||||
|
|
@ -345,7 +354,7 @@ TEST_CASE("Enable/Disable ARVR Stabilized Game Rotation Vector", "[SingleReportE
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::rotation_vector_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::rotation_vector_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that new data from respective report has been received
|
// assert that new data from respective report has been received
|
||||||
|
|
@ -376,7 +385,7 @@ TEST_CASE("Enable/Disable ARVR Stabilized Game Rotation Vector", "[SingleReportE
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::rotation_vector_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::rotation_vector_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that no new data from respective report has been received
|
// assert that no new data from respective report has been received
|
||||||
|
|
@ -417,7 +426,7 @@ TEST_CASE("Enable/Disable Gyro Integrated Rotation Vector", "[SingleReportEnable
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
||||||
/*enable respective report to test and ensure it reports new data */
|
/*enable respective report to test and ensure it reports new data */
|
||||||
imu->enable_gyro_integrated_rotation_vector(100000UL);
|
imu->enable_gyro_integrated_rotation_vector(REPORT_PERIOD);
|
||||||
|
|
||||||
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
{
|
{
|
||||||
|
|
@ -429,7 +438,7 @@ TEST_CASE("Enable/Disable Gyro Integrated Rotation Vector", "[SingleReportEnable
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::gyro_integrated_rotation_vector_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::gyro_integrated_rotation_vector_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that new data from respective report has been received
|
// assert that new data from respective report has been received
|
||||||
|
|
@ -465,7 +474,7 @@ TEST_CASE("Enable/Disable Gyro Integrated Rotation Vector", "[SingleReportEnable
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::gyro_integrated_rotation_vector_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::gyro_integrated_rotation_vector_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that no new data from respective report has been received
|
// assert that no new data from respective report has been received
|
||||||
|
|
@ -510,7 +519,7 @@ TEST_CASE("Enable/Disable Uncalibrated Gyro", "[SingleReportEnableDisable]")
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
||||||
/*enable respective report to test and ensure it reports new data */
|
/*enable respective report to test and ensure it reports new data */
|
||||||
imu->enable_uncalibrated_gyro(100000UL);
|
imu->enable_uncalibrated_gyro(REPORT_PERIOD);
|
||||||
|
|
||||||
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
{
|
{
|
||||||
|
|
@ -522,7 +531,7 @@ TEST_CASE("Enable/Disable Uncalibrated Gyro", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::uncalibrated_gyro_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::uncalibrated_gyro_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that new data from respective report has been received
|
// assert that new data from respective report has been received
|
||||||
|
|
@ -556,7 +565,7 @@ TEST_CASE("Enable/Disable Uncalibrated Gyro", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::uncalibrated_gyro_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::uncalibrated_gyro_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that no new data from respective report has been received
|
// assert that no new data from respective report has been received
|
||||||
|
|
@ -599,7 +608,7 @@ TEST_CASE("Enable/Disable Calibrated Gyro", "[SingleReportEnableDisable]")
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
||||||
/*enable respective report to test and ensure it reports new data */
|
/*enable respective report to test and ensure it reports new data */
|
||||||
imu->enable_calibrated_gyro(100000UL);
|
imu->enable_calibrated_gyro(REPORT_PERIOD);
|
||||||
|
|
||||||
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
{
|
{
|
||||||
|
|
@ -611,7 +620,7 @@ TEST_CASE("Enable/Disable Calibrated Gyro", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::calibrated_gyro_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::calibrated_gyro_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that new data from respective report has been received
|
// assert that new data from respective report has been received
|
||||||
|
|
@ -644,7 +653,7 @@ TEST_CASE("Enable/Disable Calibrated Gyro", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::calibrated_gyro_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::calibrated_gyro_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that no new data from respective report has been received
|
// assert that no new data from respective report has been received
|
||||||
|
|
@ -686,7 +695,7 @@ TEST_CASE("Enable/Disable Accelerometer", "[SingleReportEnableDisable]")
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
||||||
/*enable respective report to test and ensure it reports new data */
|
/*enable respective report to test and ensure it reports new data */
|
||||||
imu->enable_accelerometer(100000UL);
|
imu->enable_accelerometer(REPORT_PERIOD);
|
||||||
|
|
||||||
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
{
|
{
|
||||||
|
|
@ -698,7 +707,7 @@ TEST_CASE("Enable/Disable Accelerometer", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::accelerometer_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::accelerometer_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that new data from respective report has been received
|
// assert that new data from respective report has been received
|
||||||
|
|
@ -732,7 +741,7 @@ TEST_CASE("Enable/Disable Accelerometer", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::accelerometer_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::accelerometer_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that no new data from respective report has been received
|
// assert that no new data from respective report has been received
|
||||||
|
|
@ -775,7 +784,7 @@ TEST_CASE("Enable/Disable Linear Accelerometer", "[SingleReportEnableDisable]")
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
||||||
/*enable respective report to test and ensure it reports new data */
|
/*enable respective report to test and ensure it reports new data */
|
||||||
imu->enable_linear_accelerometer(100000UL);
|
imu->enable_linear_accelerometer(REPORT_PERIOD);
|
||||||
|
|
||||||
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
{
|
{
|
||||||
|
|
@ -787,7 +796,7 @@ TEST_CASE("Enable/Disable Linear Accelerometer", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::linear_accelerometer_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::linear_accelerometer_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that new data from respective report has been received
|
// assert that new data from respective report has been received
|
||||||
|
|
@ -821,7 +830,7 @@ TEST_CASE("Enable/Disable Linear Accelerometer", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::linear_accelerometer_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::linear_accelerometer_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that no new data from respective report has been received
|
// assert that no new data from respective report has been received
|
||||||
|
|
@ -864,7 +873,7 @@ TEST_CASE("Enable/Disable Gravity", "[SingleReportEnableDisable]")
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
||||||
/*enable respective report to test and ensure it reports new data */
|
/*enable respective report to test and ensure it reports new data */
|
||||||
imu->enable_gravity(100000UL);
|
imu->enable_gravity(REPORT_PERIOD);
|
||||||
|
|
||||||
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
{
|
{
|
||||||
|
|
@ -876,7 +885,7 @@ TEST_CASE("Enable/Disable Gravity", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::gravity_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::gravity_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that new data from respective report has been received
|
// assert that new data from respective report has been received
|
||||||
|
|
@ -910,7 +919,7 @@ TEST_CASE("Enable/Disable Gravity", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::gravity_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::gravity_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that no new data from respective report has been received
|
// assert that no new data from respective report has been received
|
||||||
|
|
@ -953,7 +962,7 @@ TEST_CASE("Enable/Disable Magnetometer", "[SingleReportEnableDisable]")
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
||||||
/*enable respective report to test and ensure it reports new data */
|
/*enable respective report to test and ensure it reports new data */
|
||||||
imu->enable_magnetometer(100000UL);
|
imu->enable_magnetometer(REPORT_PERIOD);
|
||||||
|
|
||||||
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
{
|
{
|
||||||
|
|
@ -965,7 +974,7 @@ TEST_CASE("Enable/Disable Magnetometer", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::magnetometer_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::magnetometer_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that new data from respective report has been received
|
// assert that new data from respective report has been received
|
||||||
|
|
@ -999,7 +1008,7 @@ TEST_CASE("Enable/Disable Magnetometer", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::magnetometer_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::magnetometer_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that no new data from respective report has been received
|
// assert that no new data from respective report has been received
|
||||||
|
|
@ -1042,7 +1051,7 @@ TEST_CASE("Enable/Disable Step Counter", "[SingleReportEnableDisable]")
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
||||||
/*enable respective report to test and ensure it reports new data */
|
/*enable respective report to test and ensure it reports new data */
|
||||||
imu->enable_step_counter(100000UL);
|
imu->enable_step_counter(REPORT_PERIOD);
|
||||||
|
|
||||||
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
{
|
{
|
||||||
|
|
@ -1054,7 +1063,7 @@ TEST_CASE("Enable/Disable Step Counter", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::step_detector_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::step_detector_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that new data from respective report has been received
|
// assert that new data from respective report has been received
|
||||||
|
|
@ -1084,7 +1093,7 @@ TEST_CASE("Enable/Disable Step Counter", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::step_detector_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::step_detector_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that no new data from respective report has been received
|
// assert that no new data from respective report has been received
|
||||||
|
|
@ -1123,7 +1132,7 @@ TEST_CASE("Enable/Disable Stability Classifier", "[SingleReportEnableDisable]")
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
||||||
/*enable respective report to test and ensure it reports new data */
|
/*enable respective report to test and ensure it reports new data */
|
||||||
imu->enable_stability_classifier(100000UL);
|
imu->enable_stability_classifier(REPORT_PERIOD);
|
||||||
|
|
||||||
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
{
|
{
|
||||||
|
|
@ -1135,7 +1144,7 @@ TEST_CASE("Enable/Disable Stability Classifier", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::stability_classifier_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::stability_classifier_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that new data from respective report has been received
|
// assert that new data from respective report has been received
|
||||||
|
|
@ -1165,7 +1174,7 @@ TEST_CASE("Enable/Disable Stability Classifier", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::stability_classifier_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::stability_classifier_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that no new data from respective report has been received
|
// assert that no new data from respective report has been received
|
||||||
|
|
@ -1205,11 +1214,7 @@ TEST_CASE("Enable/Disable Activity Classifier", "[SingleReportEnableDisable]")
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Report enabled testing phase started.");
|
||||||
/*enable respective report to test and ensure it reports new data */
|
/*enable respective report to test and ensure it reports new data */
|
||||||
imu->enable_activity_classifier(1000000UL, BNO08x::ACTIVITY_CLASSIFIER_ALL_EN, activity_confidence_vals);
|
imu->enable_activity_classifier(5*REPORT_PERIOD, BNO08x::ACTIVITY_CLASSIFIER_ALL_EN, activity_confidence_vals);
|
||||||
imu->enable_stability_classifier(50000UL);
|
|
||||||
imu->enable_step_counter(2000000UL);
|
|
||||||
imu->disable_stability_classifier();
|
|
||||||
imu->disable_step_counter();
|
|
||||||
|
|
||||||
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
for (int i = 0; i < RX_REPORT_TRIAL_CNT; i++)
|
||||||
{
|
{
|
||||||
|
|
@ -1221,7 +1226,7 @@ TEST_CASE("Enable/Disable Activity Classifier", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::activity_classifier_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::activity_classifier_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that new data from respective report has been received
|
// assert that new data from respective report has been received
|
||||||
|
|
@ -1251,7 +1256,7 @@ TEST_CASE("Enable/Disable Activity Classifier", "[SingleReportEnableDisable]")
|
||||||
BNO08xTestHelper::update_report_data(&report_data);
|
BNO08xTestHelper::update_report_data(&report_data);
|
||||||
|
|
||||||
// check if any default values have been overwritten, implying new data from respective report
|
// check if any default values have been overwritten, implying new data from respective report
|
||||||
new_data = BNO08xTestHelper::activity_classifier_data_is_default(&report_data, &prev_report_data);
|
new_data = BNO08xTestHelper::activity_classifier_data_is_new(&report_data, &prev_report_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert that no new data from respective report has been received
|
// assert that no new data from respective report has been received
|
||||||
|
|
@ -1270,3 +1275,11 @@ TEST_CASE("Enable/Disable Activity Classifier", "[SingleReportEnableDisable]")
|
||||||
|
|
||||||
BNO08xTestHelper::print_test_end_banner(TEST_TAG);
|
BNO08xTestHelper::print_test_end_banner(TEST_TAG);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE("BNO08x Driver Cleanup for [SingleReportEnableDisable] Tests", "[SingleReportEnableDisable]")
|
||||||
|
{
|
||||||
|
const constexpr char* TEST_TAG = "BNO08x Driver Cleanup for [SingleReportEnableDisable] Tests";
|
||||||
|
BNO08xTestHelper::print_test_msg(TEST_TAG, "Destroying BNO08x Driver.");
|
||||||
|
|
||||||
|
BNO08xTestHelper::destroy_test_imu();
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue