Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Supported by

eyetracking w SMI - use PyGaze or libsmi?

Hi everyone,
this may or may not be a basic question :smiley:
I would like to perform eye-tacking in OS and our lab has an SMI tracker. The PyGaze support for SMI is labelled as "experimental" (http://osdoc.cogsci.nl/2.9/devices/pygaze/) and there is some other OS documentation that suggests using the python library libsmi instead (http://osdoc.cogsci.nl/2.8/devices/smi/). What would you currently suggest using? (I thought the documentation on libsmi was maybe a bit older i.e. before PyGaze supported SMI at all because the GitHub updates are from 5 years ago).

Thanks a lot!
Jo

Comments

  • edited August 2016

    Hi Jo,

    The PyGaze support for SMI is experimental. In practice, this means that I have tested it with a RED-m (where it works), but not with other devices (because I do not have access to them). Other people might have, though.

    As far as I can tell, the main difference between the libraries is with the implementation: PyGaze uses the SMI API, which communicates through a socket connection, whereas libsmi interfaces with the tracker through the serial port. This is an important distinction, as not all SMI devices support both of these options. Perhaps you could check what your device supports, and decide based on that? (Or report back if your device does both; and perhaps @sebastiaan can shed some light on other potential issues in the meantime?)

    Cheers,
    Edwin

  • Thanks a lot Edwin!
    Based on your advice, I tried to communicate with the SMI tracker via the trackers IP address (since we cannot establish a socket connection). I got this warning message:

    File "C:\Program Files (x86)\OpenSesame\lib\site-packages\pygaze_eyetracker\libsmi.py", line 220, in init
    raise Exception("Error in libsmi.SMItracker.init: establishing connection failed; %s" % err)
    Exception: Error in libsmi.SMItracker.init: establishing connection failed; BIND_SOCKET: failed to bind sockets

    I have carefully checked that I entered the IP address and the ports correctly.

    Sorry for my really basic understanding of what may be hapenning here, but it seems to me that PyGaze calls libsmi? Does that mean I cannot use PyGaze if I cannot establish a socket connection, is that the problem here?

    Cheers,
    Jo

  • Hi Jo,

    I wouldn't use my old libsmi, or at least not if you don't have some programming knowledge yourself. I wrote it a long time ago to run an experiment on an SMI eye tracker that I no longer have access to, so I wouldn't be able to help you if anything goes wrong.

    I'm not sure about the error (@edwin?), but just to some clear things up:

    I tried to communicate with the SMI tracker via the trackers IP address (since we cannot establish a socket connection).

    A socket connection uses IP addresses.

    but it seems to me that PyGaze calls libsmi?

    The name is the same, but it's a different library!

    Cheers,
    Sebastiaan

Sign In or Register to comment.