From 6906eca17c22ae9e233b2892f9730ebf281783be Mon Sep 17 00:00:00 2001 From: Stefan Schreistetter Date: Tue, 1 Oct 2019 12:48:10 +0200 Subject: [PATCH] Improved mock gaze input via mouse. --- GazeWebSocketServer/Program.cs | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/GazeWebSocketServer/Program.cs b/GazeWebSocketServer/Program.cs index fb12334..3c74670 100644 --- a/GazeWebSocketServer/Program.cs +++ b/GazeWebSocketServer/Program.cs @@ -1,12 +1,9 @@ using System; using System.Threading.Tasks; -using System.Threading; -using WebSocketSharp; -using WebSocketSharp.Server; -using Tobii.Research; using TrackerBridge; using System.Windows.Forms; using System.Drawing; +using System.Timers; namespace GazeWebSocketServer { @@ -20,7 +17,7 @@ namespace GazeWebSocketServer if (args.Length > 0 && args[0] == "-d") { - Task.Run(() => SimulateGazeData(300)); + Task.Run(() => SimulateGazeDataHz(120)); } else { @@ -36,21 +33,20 @@ namespace GazeWebSocketServer Console.ReadLine(); } - private static void SimulateGazeData(UInt16 frequencyHz) + private static void SimulateGazeDataHz(Int32 frequency) { - TimeSpan period = new TimeSpan(Convert.ToInt64((1.0 / frequencyHz) * 10e7)); - while (true) + System.Timers.Timer timer = new System.Timers.Timer(1.0/frequency); + timer.Elapsed += (Object sender, ElapsedEventArgs e) => { - DateTime start = DateTime.Now; Point mousePosition = Control.MousePosition; GazeData data = new GazeData(mousePosition.X, mousePosition.Y, mousePosition.X, mousePosition.Y, 0, 0); if (gazeServer != null && gazeServer.isRunning) { gazeServer.Publish(data); } - TimeSpan delay = period - (DateTime.Now - start); - Thread.Sleep(delay.Ticks >= 0 ? delay.Milliseconds : 0); - } + }; + timer.AutoReset = true; + timer.Start(); } private static void OnGazeDataAvailable(TobiiEyeTracker sender, GazeData data) -- libgit2 0.26.0