USB I/O units (SimpleGazeTracker 0.7.0 or later)¶
SimpleGazeTracker 0.7.0 came to support Measurement Computing's USB I/O units. Connecting a USB I/O unit to the recording computer, SimpleGazeTracker can record digital/analog inputs simultaneously with gaze data.
Supported units¶
Windows version of SimpleGazeTracker uses Universal Library (UL) to control USB IO units, while Linux version uses DAQFlex. So, supported units are different between Windows version and Linux version.
Version |
Supported units |
---|---|
Windows |
USB IO units supported by UL |
Linux |
USB IO units supported by DAQFlex |
USB-IO support of SimpleGazeTracker is tested with USB-1208FS-Plus. This unit can be used from both UL and DAQFlex.
Data acuisition speed of UL is better than that of DAQFlex (as comparison chart says). With a Core i7 2600k machine, data acquisition takes less than 1 millisecond on Windows 7 (i.e. using UL) while takes several milliseconds on Ubuntu 12.04LTS (i.e. using DAQFlex).
注釈
UL supports All Measurement Computing's DAQ Devices (see comparison chart). Therefore, Windows version of SimpleGazeTraker may be able to work with Measurement Computing's non-USB (such as PCI, PCIe) devices although they haven't be tested.
Configuring SimpleGazeTracker (Windows/UL)¶
Parameter |
Description |
---|---|
USBIO_BOARD |
Specify Board number of USB I/O units. Board number can be confirmed by InstaCal utility, which is installed with UL. If you have connected only one units to the PC, board number is 0 in usual. |
USBIO_AD |
Specify channel and range of analog input channels. Following ranges are supported. Of course, ranges unsupported by your unit don't work.
Pairs of channel and range must be separated by semicolon. For example, if you want to use channel 0 at bipolar 5V, value of USBIO_AD is 0;BIP5VOLTS. If you want to use channel 0 at bipolar 5V and channel 1 at unipolar 10V, value of USBIO_AD is 0;BIP5VOLTS;1;UNI10VOLTS. If you don't use analog input, leave this parameter empty (i.e. USBIO_AD=). |
USBIO_DI |
Specify digital input port. One pf following ports can be given. Valid ports depend on your unit.
If you don't use digital input, leave this parameter empty (i.e. USBIO_DI=). |
USB_USE_THREAD |
This parameter must be 0 or 1. A saparate thread is used to read analog/digital inputs from USB I/O device if the value is 1. |
Configuring SimpleGazeTracker (Linux/DAQFlex)¶
Parameter |
Description |
---|---|
USBIO_BOARD |
Specify product ID of USB I/O unit. Following units can be specified by model name instead of product ID. See below to examine product ID.
|
USBIO_AD |
Specify channel and range of analog input channels. Supported ranges depend on unit. In case of USB-1208FS-Plus, following ranges are supported.
Pairs of channel and range must be separated by semicolon. For example, if you want to use channel 0 at bipolar 5V, value of USBIO_AD is 0;BIP5V. If you want to use channel 0 at bipolar 5V and channel 1 at bipolar 10V, value of USBIO_AD is 0;BIP5V;1;UNI10V. If you don't use analog input, leave this parameter empty (i.e. USBIO_AD=). |
USBIO_DI |
Specify digital input port. If your unit has two digital input ports, you chan specify 0 or 1. If you don't use digital input, leave this parameter empty (i.e. USBIO_DI=). |
USB_USE_THREAD |
This parameter must be 0 or 1. A saparate thread is used to read analog/digital inputs from USB I/O device if the value is 1. |
How to examine product ID of your USB I/O unit¶
To examine product ID of your unit, connect the unit to PC and type 'lsusb' from terminal. Then find a line which ends with "Measurement Computing Corp." as following.
- ::
Bus 002 Device 003: ID 09db:00e8 Measurement Computing Corp.
In this example, 09db is the vendor ID and 00e8 is the product ID.
How to allow for standard users to access to USB I/O unit¶
If you want to give standard users privilege to access DAQFlex USB I/O device, add udev rules. Here is an example of udev rules. Save following lines as "60-daqflex.rules" and copy it to udev rules directory (e.g. /etc/udev/rules.d).
# allow access to usb devices by non-root users
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="00f0", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="00f2", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="00f9", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="00fd", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="00fe", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="0110", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="0111", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="0112", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="0113", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="0114", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="00ea", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="00e8", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="00e9", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="0116", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="09db", ATTR{idProduct}=="0117", MODE="0666"
注釈
These rules allows any user to read/write the devices. If you want to give privilege to a user group, change MODE="0666" to MODE="0660" and add GROUP="FOO" at the end of the lines (FOO is the group name).