Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
163 lines (120 sloc) 5.16 KB

ioHub vx.x Release Notes

Eye Tracker Support



  • gazepoint.GP3
  • srresearch.eyelink
    • tested using EyeLink 1000

Still To Port (a.k.a probably not working in PsychoPy3 / Python 3):

  • Tobii
  • SMI


  • Added wintab device (Windows only, P2.7 only likely)

  • launchHubServer() should now be able to replace iohubExpRuntime class

  • other than 'data_store', launchHubServer supports updating psychopy/iohub/default_config.yaml settings by adding kwargs that match the files keys. For example, to set the iohub Server UDP port to a custom value:

    io = launchHubServer(udp_port=1234)

  • launchHubServer builds the monitor_devices list by combining devices found using the 'iohub_config_name' kwarg with any devices defined in the function's kwarg dict itself.

DataStore Changes

  • Added 'multiple_sessions' config param to datastore section of iohub_config. * If True (Default), > 1 sessions / participants data can be saved to a

    single hdf5 file.

    • If False, current session data overwrites any existing data in the hdf5 file.

Bugs Fixed

  • mouse.setPosition was not correctly setting y position
  • fixed bug in iohubdelaytest demo that was stopping it from running.
  • io.clearEvents() was not clearing any locally cached events in class.

User API Backwards Incompatibles

iohub Package

  • Importing iohub submodules and classes is no longer all in the root iohub

    module. For example:

    from psychopy.iohub import launchHubServer, EventConstants


    from psychopy.iohub.client import launchHubServer from psychopy.iohub.constants import EventConstants

    TODO: Full list of new import paths

  • Created iohub.removed module that holds any modules completely removed from psychopy.iohub. This allows user scripts that rely on this code to just change import for the short term. User scripts must switch to using alternatives ASAP since iohub.removed will be deleted in a future release.

  • Added to psychopy.iohub.util:
    • saveConfig(...): Save python dict / list to a YAML file.
    • readConfig(...): Load a config dict from a YAML file path.
  • Removed following modules from psychopy.iohub.util. All have been temporarily moved to psychopy.iohub.removed.xxxxxx:

    • dialogs module. ioHub demo's and internal code now use psychopy.gui equivalents instead.
    • images module. Was only used by util.dialogs.
    • visualUtil module. While useful functionality, out of scope for psychopy.iohub. If needed, file can be copied to same folder as user script and used.
    • targetpositionsequence module. While useful functionality, out of scope for psychopy.iohub. If needed, file can be copied to same folder as user script and used.
  • ioHubExperimentRuntime class is no longer supported. Use psychopy.iohub.client.launchHubServer() instead.

  • Removed psychopy.iohub.client.expruntime module.

(psychopy.iohub.client.expruntime -> psychopy.iohub.removed.client.expruntime)

ioHubConnection Class

  • enableHighPriority(). Use setPriority('high') instead.
  • disableHighPriority(). Use setPriority('normal') instead.
  • enableRealTimePriority(). Use setPriority('realtime') instead.
  • disableRealTimePriority(). Use setPriority('normal') instead.
  • removed initializeConditionVariableTable(). Use createTrialHandlerRecordTable() instead.
  • removed addRowToConditionVariableTable(). Use addTrialHandlerRecord() instead.
  • removed .deviceByLabel[dev_name] dict. Use .getDevice(dev_name).

ioHubDevices Class

  • getAll(): returns a list of all enabled iohub devices
  • getNames(): returns a list with the name of each enabled iohub device
  • getDevice(name): returns the iohub device identified by 'name'. If no device with that name exists, None is returned.

ioHubDeviceView Class

  • setPreRemoteMethodCallFunction(). No replacement.
  • setPostRemoteMethodCallFunction(). No replacement.

Mouse Device

Following methods have been removed. Use equivalent psychopy or pyglet functionality instead:

  • lockMouseToDisplayID
  • getLockMouseToDisplayID
  • getSystemCursorVisibility
  • setSystemCursorVisibility

Computer Device

  • renamed .sysbits to .pybits
  • renamed .system to .platform
  • removed getProcessPriority and setProcessPriority, use get/setPriority().
  • removed enableHighPriority(), use setPriority('high')
  • removed enableRealTimePriority, use setPriority('realtime')
  • removed disableRealTimePriority, use setPriority('normal')
  • removed disableHighPriority, use setPriority('normal')
  • removed currentTime(). Use getTime()
  • removed currentSec(). Use getTime()

Internal API Changes

  • _getNextEventID() moved from iohub.devices.Computer to iohub.devices.Device
  • When adding new Device and/or Event types, iohub.datastore module does not need to be changed. Adding new Device or Event types to is still required.
You can’t perform that action at this time.