Get HMD Gaze Data
clear;
Tobii = EyeTrackingOperations();
eyetracker_address = 'Address of the desired device';
try
eyetracker = Tobii.get_eyetracker(eyetracker_address);
catch ME
if (strcmp(ME.identifier,'EyeTrackerGet:error204'))
fprintf('Unable to connect eye tracker.\n');
return
end
end
try
eyetracker.get_hmd_gaze_data();
catch ME
fprintf(ME.message);
return
end
pause(1);
result = eyetracker.get_hmd_gaze_data();
if isa(result,'StreamError')
fprintf('Error: %s\n',string(result.Error.value));
fprintf('Source: %s\n',string(result.Source.value));
fprintf('SystemTimeStamp: %d\n',result.SystemTimeStamp);
fprintf('Message: %s\n',result.Message);
elseif isa(result,'HMDGazeData')
pause(1);
hmd_gaze_data = eyetracker.get_hmd_gaze_data();
eyetracker.stop_hmd_gaze_data();
fprintf('Collected %d data points\n',size(hmd_gaze_data,2));
latest_hmd_gaze_data = hmd_gaze_data(end);
fprintf('SystemRequestTimeStamp: %d\n',latest_hmd_gaze_data.SystemTimeStamp);
fprintf('DeviceTimeStamp: %d\n',latest_hmd_gaze_data.DeviceTimeStamp);
disp('Left Eye');
fprintf('GazeDirection.UnitVector: %.2f %.2f %.2f\n',latest_hmd_gaze_data.LeftEye.GazeDirection.UnitVector);
fprintf('GazeDirection.Validity: %s\n',latest_hmd_gaze_data.LeftEye.GazeOrigin.Validity.Value);
fprintf('GazeOrigin.PositionInHMDCoordinates: %.2f %.2f %.2f\n',latest_hmd_gaze_data.LeftEye.GazeOrigin.PositionInHMDCoordinates);
fprintf('GazeOrigin.Validity: %s\n',latest_hmd_gaze_data.LeftEye.GazeOrigin.Validity.Value);
fprintf('Pupil.Diameter: %.2f\n',latest_hmd_gaze_data.LeftEye.Pupil.Diameter);
fprintf('Pupil.Validity: %s\n',string(latest_hmd_gaze_data.LeftEye.Pupil.Validity.Value));
fprintf('PupilPosition.PositionInTrackingArea: %.2f %.2f\n',latest_hmd_gaze_data.LeftEye.PupilPosition.PositionInTrackingArea);
fprintf('PupilPosition.Validity: %s\n',string(latest_hmd_gaze_data.LeftEye.PupilPosition.Validity.Value));
disp('Right Eye');
fprintf('GazeDirection.UnitVector: %.2f %.2f %.2f\n',latest_hmd_gaze_data.RightEye.GazeDirection.UnitVector);
fprintf('GazeDirection.Validity: %s\n',string(latest_hmd_gaze_data.RightEye.GazeOrigin.Validity.Value));
fprintf('GazeOrigin.PositionInHMDCoordinates: %.2f %.2f %.2f\n',latest_hmd_gaze_data.RightEye.GazeOrigin.PositionInHMDCoordinates);
fprintf('GazeOrigin.Validity: %s\n',string(latest_hmd_gaze_data.RightEye.GazeOrigin.Validity.Value));
fprintf('Pupil.Diameter: %.2f\n',latest_hmd_gaze_data.RightEye.Pupil.Diameter);
fprintf('Pupil.Validity: %s\n',string(latest_hmd_gaze_data.RightEye.Pupil.Validity.Value));
fprintf('PupilPosition.PositionInTrackingArea: %.2f %.2f\n',latest_hmd_gaze_data.LeftEye.PupilPosition.PositionInTrackingArea);
fprintf('PupilPosition.Validity: %s\n',string(latest_hmd_gaze_data.LeftEye.PupilPosition.Validity.Value));
end