Skip to content

pschwed/MWorks-Eyelink-1000-Plugin

Repository files navigation

This is the first version of my Eyelink 1000 Plugin. It comes with no warranty or guarantee of proper function!!

** Installing the EyeLink Developers Kit **

In order to compile and use this plugin, you must install the required EyeLink frameworks.

First, if you have not already registered for access to the SR Research Support Site, you must do so at

  https://www.sr-support.com/forums/register.php?do=signup

Once you are registered and logged in, visit

  https://www.sr-support.com/forums/showthread.php?t=15

and download the file "EyeLink_Developers_Kit_for_Mac_OSX_x64.dmg".  Double-click the file to open it, and then drag the following to /Library/Frameworks:

  EyeLink/Frameworks/eyelink_core.framework
  SDL/Frameworks/SDL.framework
  SDL/Frameworks/SDL_gfx.framework


** Functionality **
updated Feb 28 2013:

Once a connection to the Eyelink is established at plugin load time, the tracker goes into 'Link Open' mode. It is then instructed to create a data file named YYMMMMMM.EDF, where YY is the truncated year and MMMMMM are the minutes since Jan. 1. of this year. This data file will contain the Eyelink events that are enabled in the Eyelinks system settings and also confirmation messages from MWorks. These messages can be used to estimate the sample delay and they are in the format "MSG 'time message received' SAMPLE 'time of sample' received 'MWorks time US'". MWorks sends these confirmation messages on every 512th sample, regardless of the content (i.e. also when no eye position signal is present), but only while the tracker is in recording mode and link data reception is enabled.
Link data reception will begin upon starting the IO device and this will also set the tracker to recording mode. Packages will be requested from the Eyelink driver in intervals specified by data_interval. The time_us timestamp of a package thus reflects the MWorks time a package was read from the driver. The actual time of the sample is written in tracker time units to "eye_time" (this is the same value that is also sent back to the Eyelink as 'time of sample').
Link data reception will be terminated when stopping of IO device is requested. All outputs will be set to default (missing data) values and the tracker will switch to offline mode.

This plugin also computes 3D eye position if the tracker runs in binocular mode. Parameter 'tracking_dist' specifies the maximum tracking range in arbitrary (eye tracker) units. You should adjust this value so that it is set to the maximum raw data value the tracker sends (default is 1024). Outputs "eye_x/_y/_z" are then the midpoint of the shortest line that is orthogonal to both gaze vectors and intersects both. The computed 3d-position has arbitrary values and needs to be transformed to degrees of visual angle with a 3D eye calibrator.

Known bugs:
- if the connection is lost before the experiment is unloaded or during recording (e.g. when the Eyelink is switched off), the server might crash.
- if an update interval <.5ms is requested, strange things start to happen with eye_time (although the eye position still updates). 
- depending on the configuration of your tracker, pupil coordinates might contain no values

Support:
pschwed@gwdg.de


** older stuff ** 
2011 Feb 09

If a eye tracker packet contains no data for one parameter, the MISSING_DATA value will also be written to the assigned variables. This happens only when the variable does not already contain this value.

MWLibrary entry was edited to contain predefined names for all the required variables. This is the notation we like to use in our lab and it is still possible to change that after inserting the plugin.

2011 Mar 21

minor changes in predefined varible names and types

About

this plugin has to be compiled against the eyelink framework

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages