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
671 stars 211 forks source link

Indexing error in Tobii Pro SDK #108

Closed esdalmaijer closed 6 years ago

esdalmaijer commented 6 years ago

Dear Tobii devs (@grebdems @pedrotari7 ;) ),

An error was reported on the OpenSesame forum. I've copied the relevant error message below:

Traceback:
  File "C:\Users\Daniela\Desktop\OPENSESAME3.2 PY2.7\New folder\opensesame_3.2.0a30-py2.7-win32-1\lib\site-packages\libqtopensesame\misc\process.py", line 154, in run
    exp.run()
  File "C:\Users\Daniela\Desktop\OPENSESAME3.2 PY2.7\New folder\opensesame_3.2.0a30-py2.7-win32-1\lib\site-packages\libopensesame\experiment.py", line 410, in run
    self.items.execute(self.var.start)
  File "C:\Users\Daniela\Desktop\OPENSESAME3.2 PY2.7\New folder\opensesame_3.2.0a30-py2.7-win32-1\lib\site-packages\libopensesame\item_store.py", line 96, in execute
    self.run(name)
  File "C:\Users\Daniela\Desktop\OPENSESAME3.2 PY2.7\New folder\opensesame_3.2.0a30-py2.7-win32-1\lib\site-packages\libopensesame\item_store.py", line 115, in run
    self[name].run()
  File "C:\Users\Daniela\Desktop\OPENSESAME3.2 PY2.7\New folder\opensesame_3.2.0a30-py2.7-win32-1\lib\site-packages\libopensesame\sequence.py", line 51, in run
    self.experiment.items.run(_item)
  File "C:\Users\Daniela\Desktop\OPENSESAME3.2 PY2.7\New folder\opensesame_3.2.0a30-py2.7-win32-1\lib\site-packages\libopensesame\item_store.py", line 115, in run
    self[name].run()
  File "C:\Users\Daniela\Desktop\OPENSESAME3.2 PY2.7\New folder\opensesame_3.2.0a30-py2.7-win32-1\share\opensesame_plugins\pygaze_init\pygaze_init.py", line 227, in run
    self.experiment.pygaze_eyetracker.calibrate()
  File "C:\Users\Daniela\Desktop\OPENSESAME3.2 PY2.7\New folder\opensesame_3.2.0a30-py2.7-win32-1\lib\site-packages\pygaze\_eyetracker\libtobii.py", line 366, in calibrate
    calibration_result = calibration.compute_and_apply()
  File "C:\Users\Daniela\Desktop\OPENSESAME3.2 PY2.7\New folder\opensesame_3.2.0a30-py2.7-win32-1\lib\site-packages\tobiiresearch\implementation\ScreenBasedCalibration.py", line 248, in compute_and_apply
    interop_result = tobii_pro.screen_based_calibration_compute_and_apply(self.__core_eyetracker)
  File "C:\Users\Daniela\Desktop\OPENSESAME3.2 PY2.7\New folder\opensesame_3.2.0a30-py2.7-win32-1\lib\site-packages\tobiiresearch\interop\tobii_pro.py", line 268, in screen_based_calibration_compute_and_apply
    return (status[1], [TobiiProCalibrationPoint(x) for x in result[1]])
IndexError: tuple index out of range

To me, it seems like an issue in the tobii_pro module, where either status has a length of less than two, or TobiiProCalibrationPoint has a length of less than result[1]. Any thoughts?

Thanks for your consideration! Edwin

pedrotari7 commented 6 years ago

Yes we are aware of it! Currently working on a fix for this bug.

esdalmaijer commented 6 years ago

That's amazing! Thanks! :)

vmoscati commented 6 years ago

Thanks Edwin for signaling this bug. We got a Tobii X2-60 and we are actually stuck because of this, I hope it will be fixed soon.

pedrotari7 commented 6 years ago

@esdalmaijer @vmoscati I've published a new version of the Tobii Pro SDK (1.3.1). It's available both in Tobii Pro's website and in pypi! Thank you for bringing this bug to our attention 👍

esdalmaijer commented 6 years ago

Wow, that is incredibly quick! Thanks, guys! :)

vmoscati commented 6 years ago

@pedrotari7 @esdalmaijer Now calibration works, many thanks!