@@ -295,14 +295,18 @@ void BNO080::parseInputReport(void)
295295 rawMagY = data2;
296296 rawMagZ = data3;
297297 }
298- else if (shtpData[5 ] == SENSOR_REPORTID_ROTATION_VECTOR || shtpData[5 ] == SENSOR_REPORTID_GAME_ROTATION_VECTOR)
298+ else if (shtpData[5 ] == SENSOR_REPORTID_ROTATION_VECTOR || shtpData[5 ] == SENSOR_REPORTID_GAME_ROTATION_VECTOR ||
299+ shtpData[5 ] == SENSOR_REPORTID_AR_VR_STABILIZED_ROTATION_VECTOR || shtpData[5 ] == SENSOR_REPORTID_AR_VR_STABILIZED_GAME_ROTATION_VECTOR)
299300 {
300301 quatAccuracy = status;
301302 rawQuatI = data1;
302303 rawQuatJ = data2;
303304 rawQuatK = data3;
304305 rawQuatReal = data4;
305- rawQuatRadianAccuracy = data5; // Only available on rotation vector, not game rot vector
306+
307+ // Only available on rotation vector and ar/vr stabilized rotation vector,
308+ // not game rot vector and not ar/vr stabilized rotation vector
309+ rawQuatRadianAccuracy = data5;
306310 }
307311 else if (shtpData[5 ] == SENSOR_REPORTID_STEP_COUNTER)
308312 {
@@ -878,12 +882,24 @@ void BNO080::enableRotationVector(uint16_t timeBetweenReports)
878882 setFeatureCommand (SENSOR_REPORTID_ROTATION_VECTOR, timeBetweenReports);
879883}
880884
885+ // Sends the packet to enable the ar/vr stabilized rotation vector
886+ void BNO080::enableARVRStabilizedRotationVector (uint16_t timeBetweenReports)
887+ {
888+ setFeatureCommand (SENSOR_REPORTID_AR_VR_STABILIZED_ROTATION_VECTOR, timeBetweenReports);
889+ }
890+
881891// Sends the packet to enable the rotation vector
882892void BNO080::enableGameRotationVector (uint16_t timeBetweenReports)
883893{
884894 setFeatureCommand (SENSOR_REPORTID_GAME_ROTATION_VECTOR, timeBetweenReports);
885895}
886896
897+ // Sends the packet to enable the ar/vr stabilized rotation vector
898+ void BNO080::enableARVRStabilizedGameRotationVector (uint16_t timeBetweenReports)
899+ {
900+ setFeatureCommand (SENSOR_REPORTID_AR_VR_STABILIZED_GAME_ROTATION_VECTOR, timeBetweenReports);
901+ }
902+
887903// Sends the packet to enable the accelerometer
888904void BNO080::enableAccelerometer (uint16_t timeBetweenReports)
889905{
0 commit comments