This PR contains various fixes for OpenGaze / GazePoint. This has been tested with a GazePoint 3 eye tracker on Windows 10 and 11.
The ingoing and outgoing threads were blocking each other, resulting in extremely long delays (> 1 min) when initializing the eye tracker and calibration. For now, I fixed this simply by throttling the incoming thread with a short delay. A proper solution would be to merge the ingoing and outgoing threads into a single thread; after all, they're using the same socket and therefore they cannot operate in parallel anyway, and only end up blocking each other.
Calibration for monocular recording is fixed
pupil_size() is fixed (returned distance to camera instead of pupil size)
USER_DATA is set for one frame using the DUR parameter introduced in OpenGaze 2.4, as opposed to clearing it explicitly (which seemed to cause message dropping)
A remaining issue (not a bug but bothersome nonetheless) is that the number of log messages is limited to one per sample, because they ride on the USER_DATA field. This means that the user cannot send, for example, lots of messages with experimental variables to the eye tracker for later analysis. I'll open a separate issue to discuss how to improve this.
This PR contains various fixes for OpenGaze / GazePoint. This has been tested with a GazePoint 3 eye tracker on Windows 10 and 11.
pupil_size()
is fixed (returned distance to camera instead of pupil size)A remaining issue (not a bug but bothersome nonetheless) is that the number of log messages is limited to one per sample, because they ride on the
USER_DATA
field. This means that the user cannot send, for example, lots of messages with experimental variables to the eye tracker for later analysis. I'll open a separate issue to discuss how to improve this.