硬件
1、Tobii eye tracker 4C(淘宝改装版)
2、主机配置:MacBook pro14款
Intel® Core™ i7-4870HQ CPU @ 2.50GHz 2.50 GHz
软件
1、win10 专业版 新建管理员账户
2、visual studio 2022 (新写软件一定要加壳)
3、dotPeek 反编译脱壳工具
C#
驱动:
Tobii_Eye_Tracking_Core_v2.16.8.214_x86.exe
核心SDK:
官网或github搜索下载
tobii_stream_engine.dll
Tobii.EyeX.Client.dll
Tobii.Interaction.Model.dll
Tobii.Interaction.Net.dll
参考案例
可识别眼珠坐标
C:\Users\ZEWIN\source\repos\TobiiDev-master\RecordingEyeGaze
每秒大概记录60下
AI编程指导:
A:Tobii是眼动追踪技术的全球领先厂商,其产品和服务能够通过用户的眼球移动来控制电脑或设备。在C#中模拟使用Tobii眼动仪进行点击操作通常涉及与Tobii SDK(软件开发套件)集成,并编写代码来处理眼球注视点数据,进而转换成相应的鼠标交互事件。
以下是一个基本的概念性步骤:
安装和引用Tobii Pro SDK:
首先需要从Tobii官网获取并安装适用于您应用程序的眼动追踪SDK。
在您的C#项目中引用对应的SDK库。
初始化和连接眼动仪:
使用SDK提供的API创建一个连接到Tobii眼动追踪设备的对象实例。
确保设备已连接并且可以正常工作。
监听注视点数据:
订阅或者定期轮询眼动仪提供的注视点位置数据。
SDK通常会提供方法来实时获取用户的视线焦点坐标。
模拟点击行为:
根据接收到的注视点坐标,计算屏幕上的目标区域。
当检测到用户长时间注视某个可交互元素时,模拟一次鼠标点击操作,这可以通过调用Windows API函数如mouse_event或SendInput实现(对于较旧版本的Windows),或者是Cursor.Position = new Point(x, y);后跟鼠标点击事件模拟(对于现代.NET Framework或.NET Core应用)。
示例代码无法直接给出,因为这依赖于特定版本的Tobii SDK接口,但大致逻辑如下:// 假设 TobiiEyeTracker 是 Tobii SDK 提供的一个类 using Tobii.EyeX.Client; // 初始化并连接眼动仪 var eyeTracker = new TobiiEyeTracker(); eyeTracker.Connect(); // 订阅注视点更新事件 eyeTracker.GazePointData.OnGazePointChanged += OnGazePointChanged; // 监听注视点变化的处理函数 private void OnGazePointChanged(object sender, GazePointEventArgs e) { var gazePoint = e.GazePoint; // 获取注视点坐标 if (gazePoint.IsValid) // 检查坐标是否有效 { // 将注视点坐标转换为屏幕坐标(根据SDK文档) var screenPoint = ConvertToScreenCoordinates(gazePoint); // 模拟点击 MouseSimulator.MoveAndClick(screenPoint.X, screenPoint.Y); } } // 假设 MouseSimulator 是一个自定义类,封装了鼠标移动和点击的操作 class MouseSimulator { public static void MoveAndClick(int x, int y) { Cursor.Position = new Point(x, y); // 移动鼠标指针 InputSimulator.SimulateMouseButton Down(MouseButtons.Left); // 按下左键 Thread.Sleep(50); // 等待一定时间模拟点击停留 InputSimulator.SimulateMouseButtonUp(MouseButtons.Left); // 抬起左键 } }
请注意上述代码仅作为概念说明,实际编程时需要参考Tobii Pro SDK的具体文档和API结构,并确保正确导入和使用相应库中的功能。另外,InputSimulator可能需要额外引入如Microsoft.Windows.SDK.Contracts等库以支持输入模拟。
B、使用C#开发基于Tobii 4C眼动仪的应用程序,你需要遵循以下步骤:
安装和配置SDK:
首先从Tobii开发者中心(https://developer.tobiipro.com/)获取适用于Windows的Tobii眼动追踪SDK。根据你的需求,可能是Tobii Gaming SDK或者Tobii Pro SDK,它们可能有不同的API接口和功能。
引用SDK库:
在你的C#项目中添加对Tobii SDK NuGet包或本地安装文件的引用。
初始化眼动仪:
使用SDK中的类和方法来初始化并连接到Tobii 4C设备。例如,在Tobii.Gaming.SDK中,你可能会使用TobiiGazePointWatchdog或类似的类来监听注视点数据。// 假设 TobiiGazePointWatchdog 是 Tobii Gaming SDK 提供的一个类 using Tobii.Gaming; // 初始化 watchdog 对象 var watchdog = new TobiiGazePointWatchdog(); // 连接至 Tobii 眼动仪 watchdog.Start(); // 订阅 gaze point 更新事件 watchdog.GazePointChanged += OnGazePointChanged;
处理眼动数据:
编写一个事件处理器函数,该函数将被调用每当用户的眼球移动时,并提供新的注视点坐标。private void OnGazePointChanged(object sender, GazePointEventArgs e) { var gazePoint = e.GazePoint; // 获取注视点坐标 if (gazePoint.IsValid) // 检查坐标是否有效 { // 处理注视点信息,例如模拟鼠标点击、改变UI元素状态等 } } // 或者在Tobii Pro SDK中类似的数据接收逻辑
应用逻辑:
根据获取到的眼动数据编写应用程序的具体逻辑,如视线交互、游戏控制或其他自定义行为。
清理资源:
当不再需要眼动追踪功能时,确保正确地停止监听和断开与眼动仪的连接。
请记住,上述代码仅为示例,实际使用的API可能会因Tobii SDK版本的不同而有所变化。因此,请始终参考官方文档以获得最新的API使用指南和示例代码。