-
Notifications
You must be signed in to change notification settings - Fork 888
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BF: should not fix units="pix" when drawing TargetStim during calibration #6461
Conversation
In a non-Builder context, the MovieStim's state is not updated, and `.play()` would subsequently be called on every `.draw()` call.
Installed plugins were not being found on Linux/MacOS
BF: Check MovieStim's underlying player status when handling autoplay
…on-unit Fixed eyetracker calibration target units (height -> pix)
…keys BF: KeyboardComponent allowed keys from spreadsheet caused namespace errors
Ah, looks like this was fixed by d62efd5 already, and we had the exact same fix :) Nevertheless, I think the ENH commit above is worth merging, since there's no need to keep the confusing |
BF: hide that visible mouse, please
BF: fix an issue with etRecord component for Stop Only
BF: Only change Mouse visibility if explicitly asked to
…-dynamic BF: Fix "Stop only" issue regardless of Component order
FF: Remove call to `site.main()` on MacOS
FF: Add trial column names to data file when advancing
ENH: Add method to continuously dispatch hardware messages for x seconds
BF: clear keys to initialize keyboard when starting a routine
SYS: Merge release into dev
I think that code was added initially as a fix for Tobii eyetrackers, they use their own proprietary calibration code which needs to be in pixels. I'll test this branch with a Tobii next time I've got one to hand (we have one in the office), it may well be unnecessary following yours and @KirstenWilliams's other fixes but want to confirm before pulling in |
It is possible that the |
This was hell of a bug to hunt down...
The problem is as the following: when using the EyeTracker Calibration/Validation components in Builder, the GUI allows setting of Outer radius and Inner radius, and the Spatial units is grayed out as following the screen unit in the experiment settings. This is great and parsimonious design. But after some convoluted layers of overloaded
dict()
calls, we get to this part ofpsychopy.iohub.devices.eyetracker.calibration.procedure.BaseCalibrationProcedure
. And it assumes thetarget_attributes
to containouter_diameter
andinner_diameter
in pixels.This causes the strange behavior that the validation component works (because it correctly uses unit_type) while the calibration component fails to display any targets, giving the appearance of screen freezing. It is actually because the default value for these components under
height
unit setting for screen is0.01
. Since it's less than one pixel, nothing got displayed.Fortunately the fix is simple because the
unit_type
got carried all the way into this function call, and we just need to setunits=unit_type
when usinglayout.Size()
. Then everything works nicely and the calibration screen gets displayed.