Jump to content

[VBS & PC VR ] How to get controller / wrist tracker tracking result status on OpenVR

Vivi Wu

Recommended Posts

 If you'd like to know whether your controller / wrist tracker is in 6Dof or 3Dof status, please follow the guidelines below.



·           VIVE Business Streaming version : 1.10.5 or later.

·           Focus 3 – FOTA version : 5.0.999.676 or later


Check OpenVR API to get status:

·           IVRSystem::GetDeviceToAbsoluteTrackingPose

·           IVRSystem::GetControllerStateWithPose

Both API can get TrackedDevicePose_t of devices with parameter-“ETrackingResult”, which is the tracking status of device.

·        6Dof = TrackingResult_Running_OK

·        3Dof = TrackingResult_Fallback_RotationOnly


The index of each device:






Right controller


Left controller


Right wrist tracker


Left wrist tracker

To access the target device and retrieve its status, please generate a large enough array and call the appropriate API. Use the index specified in the above table to obtain the status of the target device.

Sample code:

vr::IVRSystem * pvr = vr::VR_Init(&eError, vr::VRApplication_Utility);

TrackedDevicePose_t result[5];

pvr->GetDeviceToAbsoluteTrackingPose(vr::TrackingUniverseStanding, 0, &result, 5);

result[1].eTrackingResult; // right controller tracking result

result[2].eTrackingResult; // left controller tracking result

result[3].eTrackingResult; // right wrist tracker tracking result

result[4].eTrackingResult; // left wrist tracker tracking result


Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...