Home › Forums › Eye Tracking Devices › Tobii Eye Tracker 5 on Linux › Reply To: Tobii Eye Tracker 5 on Linux
15/04/2022 at 14:22 #21810
Participant
Talon is closed source but works well. The talon API looks like this:
class TobiiEC(USBDevice, Tracker):
vendor: str
devs: Dict[ffi.CData, TobiiEC]
topic_to_enum: Any
enum_to_topic: Any
geom: Geom
streams: Set[int]
stream_types: Dict[int, Dict]
name: Any
model: Any
bus: Any
addr: Any
handle: Any
serial: str
connecting: bool
def __init__(self, dev: ffi.CData, name: str, vid: int, pid: int, bus: int, addr: int) -> None: ...
def topics(self) -> Sequence[str]: ...
version: Any
xconfig: Any
def connect(self) -> None: ...
def check_error(self) -> None: ...
def register_first(self, topic: str) -> None: ...
def unregister_last(self, topic: str) -> None: ...
def cmd(self, cmd: int, *args: Any) -> Any: ...
def enumerate_streams(self) -> None: ...
def label_stream(self, cmd: int, b: Dict) -> Dict: ...
def display_setup(self, width: float, height: float, offx: float) -> None: ...
def display_setup_diag(self, diag: float, aspect: float, offx: float) -> None: ...
def on_stream(self, typ: int, cmd: int, ebuf: ffi.CData, ts: float) -> None: ...
def close(self, shutdown: bool = ...) -> None: ...
def detached(self) -> None: ...
class EyeFrame:
name: str
validity: int
detected: int
pupil: float
gaze: Point2d
gaze3d: Point3d
rel: Point3d
pos: Point3d
def __init__(self, b: Dict, eye: str) -> None: ...
def __bool__(self): ...
class GazeFrame:
left: EyeFrame
right: EyeFrame
tracker: TobiiEC
gaze: Optional[Point2d]
ts: float
num: int
def __init__(self, b: Dict, num: int): ...
def __iter__(self) -> Iterator[EyeFrame]: ...
def __bool__(self): ...
class PresenceFrame:
tracker: TobiiEC
present: bool
ts: float
num: int
def __init__(self, b: Dict, num: int) -> None: ...
def __bool__(self): ...
class TobiiHeadModel:
accel: PointFilter
history: list[GazeFrame]
last_ts: float
def __init__(self) -> None: ...
def __call__(self, frame: GazeFrame) -> Optional[Point6d]: ...
class TobiiECWrapper(TobiiEC):
present: bool
frame: int
head_model: Any
def __init__(self, *args, **kwargs) -> None: ...
def topics(self) -> Sequence[str]: ...
def dispatch(self, topic: str, *args): ...
There is an implementation of controlling the mouse with another closed source talon plugin: https://github.com/knausj85/knausj_talon/blob/master/code/mouse.py