diff --git a/cmake/Depthai/DepthaiDeviceRVC4Config.cmake b/cmake/Depthai/DepthaiDeviceRVC4Config.cmake index 9953f64898..7124fd7c58 100644 --- a/cmake/Depthai/DepthaiDeviceRVC4Config.cmake +++ b/cmake/Depthai/DepthaiDeviceRVC4Config.cmake @@ -3,4 +3,4 @@ set(DEPTHAI_DEVICE_RVC4_MATURITY "snapshot") # "version if applicable" -set(DEPTHAI_DEVICE_RVC4_VERSION "0.0.1+b96987e20d3e015dae8854b5fa8faa599c8d5ea8") +set(DEPTHAI_DEVICE_RVC4_VERSION "0.0.1+40ac229a57372612e96393b2a6bf595a51b8ae88") diff --git a/tests/src/ondevice_tests/pipeline/node/imu_test.cpp b/tests/src/ondevice_tests/pipeline/node/imu_test.cpp index 9d46b71e9c..5c288adda7 100644 --- a/tests/src/ondevice_tests/pipeline/node/imu_test.cpp +++ b/tests/src/ondevice_tests/pipeline/node/imu_test.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include "depthai/depthai.hpp" @@ -40,3 +41,39 @@ TEST_CASE("Test IMU, all sensors") { TEST_CASE("Test IMU, gyroscope 480 Hz") { basicIMUTest(480.0f, {dai::IMUSensor::GYROSCOPE_RAW}, 0.8f); // TODO(Morato) - debug why some devices need so much tolerance } + +TEST_CASE("At least one measurement should be updated") { + dai::Pipeline pipeline; + auto imu = pipeline.create(); + imu->enableIMUSensor(dai::IMUSensor::ACCELEROMETER_RAW, 400); + imu->enableIMUSensor(dai::IMUSensor::GYROSCOPE_RAW, 400); + + imu->setBatchReportThreshold(10); + imu->setMaxBatchReports(20); + + auto imuQueue = imu->out.createOutputQueue(50, false); + + pipeline.start(); + + auto start = std::chrono::steady_clock::now(); + + dai::IMUPacket previousPacket; + + uint32_t numMessages = 0; + + while(pipeline.isRunning() && std::chrono::steady_clock::now() - start <= std::chrono::seconds(10)) { + auto imuData = imuQueue->get(); + if(imuData == nullptr) continue; + + ++numMessages; + + for(const auto& imuPacket : imuData->packets) { + REQUIRE((imuPacket.acceleroMeter.sequence > previousPacket.acceleroMeter.sequence || imuPacket.gyroscope.sequence > previousPacket.gyroscope.sequence)); + previousPacket = imuPacket; + } + } + + REQUIRE(numMessages > 0); + + pipeline.stop(); +}