esdalmaijer / PyGaze

an open-source, cross-platform toolbox for minimal-effort programming of eye tracking experiments
www.pygaze.org
GNU General Public License v3.0
670 stars 211 forks source link

Eyelink 1000+ feed not shown in Eyelink menu / opensesame pygaze init item #154

Open dev-jam opened 3 years ago

dev-jam commented 3 years ago

I recently got a bug where the eye image feed is not shown in the eye tracker menu for the eyelink 1000+ with the pygaze init item in OpenSesame.

It is similar to

https://github.com/esdalmaijer/PyGaze/issues/23

It happens on both Debian Buster and Bullseye. It worked in the past on Debian Buster, with an older pygaze / opensesame combination. The problem does not occur with Windows 10 with the latest opensesame / pygaze / python3 combination. I don't get any errors. I tried some older combinations with python2 and python3 on both Buster and Bullseye without any luck. Calibration and validation do work.

Current setup is:

Debian Bullseye amd64

OpenSesame 3.3.7b1 python 3.9.1 expyriment 0.10 pygaze 0.7.2a1 pylink 1.11 for python3.9, sent by sr-research Eyelink 1000+

esdalmaijer commented 3 years ago

Hi Bob!

This sounds familiar! To be honest, I've never fully understood why some EyeLink things that work on Windows either fail or crash completely on Linux, so I've mostly avoided testing on anything but Windows machines. (Which unfortunately means I can't debug directly; well that, and the fact that we're all working from home here :p)

Could you check whether there is an __eyelink__.jpg file in your temporary files, and what it looks like? You'll find the file at this path:

import tempfile
import os

os.path.join(tempfile.gettempdir(), "__eyelink__.jpg")

This is generated in line 86 of eyelinkgraphics.py, and is used for drawing the eye image. The temporary file is overwritten in line 559 after all new image lines have come in.

dev-jam commented 3 years ago

Hi Edwin,

No eyelink.jpg present in the tmp dir, only tga files with the menu images.

If you like, I can send you a preconfigured debian bullseye live image which you can boot on the fly. You only need to flash it to an usb stick and boot that usb stick. No need to install. After boot you only need to set the network connection for the eye tracker and everything is good to go.

esdalmaijer commented 3 years ago

Well that's very interesting, as it suggests the image lines aren't (all) coming in (i.e. the condition in line 530 is never satisfied).

Unfortunately, even with a preconfigured live image, I can't currently check on my end. (Combination of personal and lockdown circumstances.) You could opt for some good old-fashioned print-statement debugging to see whether the draw_image_line function is ever called; and if it is, what is passed to it.