Interface to an ISCAN RK-464 eye-tracker. More...
#include <Psycho/EyeTrackerISCAN.H>
Classes | |
struct | EyePosEvent |
Public Member Functions | |
EyeTrackerISCAN (OptionManager &mgr, const std::string &descrName="Eye Tracker ISCAN", const std::string &tagName="EyeTrackerISCAN") | |
Constructor. | |
virtual | ~EyeTrackerISCAN () |
Destructor. | |
virtual void | calibrate (nub::soft_ref< PsychoDisplay > d) |
Calibrate the tracker, full calibration. | |
virtual void | recalibrate (nub::soft_ref< PsychoDisplay > d, int repeats) |
Calibrate the tracker, quick re-calibration. | |
virtual void | calibrateOnline (nub::soft_ref< PsychoDisplay > d) |
Perform an online calibration. | |
virtual bool | isFixating () |
Is the subject fixating? | |
virtual bool | isSaccade () |
Is the subject in a saccade? | |
virtual Point2D< int > | getEyePos () const |
Get current eye position. | |
virtual Point2D< int > | getFixationPos () const |
Get current fixation position. | |
virtual Point2D< int > | getCalibEyePos () |
Get the current calibrated eye position. | |
virtual CalibrationTransform::Data | getCalibrationSet (nub::soft_ref< PsychoDisplay > d) const |
Get the calibration set. | |
void | requestQuickEyeS () |
save a direct eyeS file using online calib | |
Protected Member Functions | |
virtual void | startTracking () |
Start the tracker. | |
virtual void | stopTracking () |
Stop the tracker. | |
virtual void | start1 () |
device filename for parallel port | |
virtual void | start2 () |
get started | |
Protected Attributes | |
OModelParam< bool > | itsParTrig |
Use parallel-port start/stop trigger. | |
OModelParam< std::string > | itsSerDev |
OModelParam< std::string > | itsParDev |
device filename for serial port | |
bool | itsRequestQuickEyeS |
Interface to an ISCAN RK-464 eye-tracker.
There are two modes of operation which can be used with the ISCAN tracker: trigger via serial port and no data streaming, or trigger via parallel port and data streaming over serial.
Definition at line 52 of file EyeTrackerISCAN.H.
EyeTrackerISCAN::EyeTrackerISCAN | ( | OptionManager & | mgr, | |
const std::string & | descrName = "Eye Tracker ISCAN" , |
|||
const std::string & | tagName = "EyeTrackerISCAN" | |||
) |
Constructor.
Definition at line 57 of file EyeTrackerISCAN.C.
References ModelComponent::addSubComponent().
EyeTrackerISCAN::~EyeTrackerISCAN | ( | ) | [virtual] |
Destructor.
Definition at line 75 of file EyeTrackerISCAN.C.
void EyeTrackerISCAN::calibrate | ( | nub::soft_ref< PsychoDisplay > | d | ) | [virtual] |
Calibrate the tracker, full calibration.
Here we do a 9-point calibration.
Reimplemented from EyeTracker.
Definition at line 101 of file EyeTrackerISCAN.C.
void EyeTrackerISCAN::calibrateOnline | ( | nub::soft_ref< PsychoDisplay > | d | ) | [virtual] |
Perform an online calibration.
Reimplemented from EyeTracker.
Definition at line 136 of file EyeTrackerISCAN.C.
References getCalibrationSet().
Point2D< int > EyeTrackerISCAN::getCalibEyePos | ( | ) | [virtual] |
Get the current calibrated eye position.
Reimplemented from EyeTracker.
Definition at line 322 of file EyeTrackerISCAN.C.
References rutz::ix86_atomic_int::atomic_get(), OModelParam< T >::getVal(), and itsParTrig.
CalibrationTransform::Data EyeTrackerISCAN::getCalibrationSet | ( | nub::soft_ref< PsychoDisplay > | d | ) | const [virtual] |
Get the calibration set.
Implements EyeTracker.
Definition at line 341 of file EyeTrackerISCAN.C.
References abs(), stats< T >::findS(), Image< T >::getDims(), getEyePos(), Dims::h(), Point2D< T >::i, stats< T >::mean(), stats< T >::S2, sformat(), Dims::w(), and ZEROS.
Referenced by calibrateOnline().
Point2D< int > EyeTrackerISCAN::getEyePos | ( | ) | const [virtual] |
Get current eye position.
TODO: we need to think about calibration
Implements EyeTracker.
Definition at line 274 of file EyeTrackerISCAN.C.
References Point2D< T >::i.
Referenced by getCalibrationSet().
Point2D< int > EyeTrackerISCAN::getFixationPos | ( | ) | const [virtual] |
Get current fixation position.
TODO: we need to think about calibration
Implements EyeTracker.
Definition at line 315 of file EyeTrackerISCAN.C.
bool EyeTrackerISCAN::isFixating | ( | ) | [virtual] |
Is the subject fixating?
TODO: This only works in parallel trigger mode. We check that eye position remains within a tolerance over a period of time (see model parameters).
Implements EyeTracker.
Definition at line 260 of file EyeTrackerISCAN.C.
bool EyeTrackerISCAN::isSaccade | ( | ) | [virtual] |
Is the subject in a saccade?
TODO: give this some functionality
Implements EyeTracker.
Definition at line 267 of file EyeTrackerISCAN.C.
void EyeTrackerISCAN::recalibrate | ( | nub::soft_ref< PsychoDisplay > | d, | |
int | repeats | |||
) | [virtual] |
Calibrate the tracker, quick re-calibration.
Since there is no quick calibration for ISCAN, this is like a full calibration.
Reimplemented from EyeTracker.
Definition at line 116 of file EyeTrackerISCAN.C.
void EyeTrackerISCAN::requestQuickEyeS | ( | ) | [virtual] |
save a direct eyeS file using online calib
Reimplemented from EyeTracker.
Definition at line 488 of file EyeTrackerISCAN.C.
void EyeTrackerISCAN::start1 | ( | ) | [protected, virtual] |
device filename for parallel port
get started
Reimplemented from EyeTracker.
Definition at line 79 of file EyeTrackerISCAN.C.
References OModelParam< T >::getVal(), and itsParDev.
void EyeTrackerISCAN::start2 | ( | ) | [protected, virtual] |
get started
Reimplemented from ModelComponent.
Definition at line 91 of file EyeTrackerISCAN.C.
References OModelParam< T >::getVal(), and itsParTrig.
void EyeTrackerISCAN::startTracking | ( | ) | [protected, virtual] |
Start the tracker.
If serial trigger is selected, we send a single byte of value 132 to start the ISCAN tracker. Otherwise, we violently set all pins of the parallel port to 0 to start the tracker.
Implements EyeTracker.
Definition at line 148 of file EyeTrackerISCAN.C.
References OModelParam< T >::getVal(), and itsParTrig.
void EyeTrackerISCAN::stopTracking | ( | ) | [protected, virtual] |
Stop the tracker.
If serial trigger is selected, we send a single byte of value 136 to stop the ISCAN tracker. Otherwise, we violently set all pins of the parallel port to 1 to stop the tracker.
Implements EyeTracker.
Definition at line 184 of file EyeTrackerISCAN.C.
References OModelParam< T >::getVal(), itsParTrig, sec(), and sformat().
OModelParam<std::string> EyeTrackerISCAN::itsParDev [protected] |
device filename for serial port
Definition at line 118 of file EyeTrackerISCAN.H.
Referenced by start1().
OModelParam<bool> EyeTrackerISCAN::itsParTrig [protected] |
Use parallel-port start/stop trigger.
Definition at line 116 of file EyeTrackerISCAN.H.
Referenced by getCalibEyePos(), start2(), startTracking(), and stopTracking().