Example #1
0
        public static void Main(string[] args)
        {
            switch (EyeXHost.EyeXAvailability)
            {
            case EyeXAvailability.NotAvailable:
                Console.WriteLine("This sample requires the EyeX Engine, but it isn't available.");
                Console.WriteLine("Please install the EyeX Engine and try again.");
                return;

            case EyeXAvailability.NotRunning:
                Console.WriteLine("This sample requires the EyeX Engine, but it isn't rnning.");
                Console.WriteLine("Please make sure that the EyeX Engine is started.");
                break;
            }

            using (var eyeXHost = new EyeXHost())
            {
                // Listen to state-changed events.
                eyeXHost.ScreenBoundsChanged            += (s, e) => Console.WriteLine("Screen Bounds in pixels (state-changed event): {0}", e);
                eyeXHost.DisplaySizeChanged             += (s, e) => Console.WriteLine("Display Size in millimeters (state-changed event): {0}", e);
                eyeXHost.EyeTrackingDeviceStatusChanged += (s, e) => Console.WriteLine("Eye tracking device status (state-changed event): {0}", e);
                eyeXHost.UserPresenceChanged            += (s, e) => Console.WriteLine("User presence (state-changed event): {0}", e);
                eyeXHost.UserProfileNameChanged         += (s, e) => Console.WriteLine("Active profile name (state-changed event): {0}", e);
                eyeXHost.ConfigurationStatusChanged     += (s, e) => Console.WriteLine("Configuration status is : {0}", e);

                // This state-changed event required EyeX Engine 1.4.
                eyeXHost.UserProfilesChanged += (s, e) => Console.WriteLine("User profile names (state-changed event): {0}", e);
                eyeXHost.GazeTrackingChanged += (s, e) => Console.WriteLine("Gaze tracking (state-changed event): {0}", e);

                // Start the EyeX host.
                eyeXHost.Start();
                eyeXHost.WaitUntilConnected(TimeSpan.FromSeconds(5));

                // First, let's display the current engine state. Because we're still in the
                // process of connecting to the engine, we might not get any valid state
                // information at this point.
                Console.WriteLine("Screen Bounds in pixels (initial value): {0}", eyeXHost.ScreenBounds);
                Console.WriteLine("Display Size in millimeters (initial value): {0}", eyeXHost.DisplaySize);
                Console.WriteLine("Eye tracking device status (initial value): {0}", eyeXHost.EyeTrackingDeviceStatus);
                Console.WriteLine("User presence (initial value): {0}", eyeXHost.UserPresence);
                Console.WriteLine("Active profile name (initial value): {0}", eyeXHost.UserProfileName);
                Console.WriteLine("Configuration status (initial value): {0}", eyeXHost.ConfigurationStatus);

                // This state requires EyeX Engine 1.4.
                Console.WriteLine("User profile names (initial value): {0}", eyeXHost.UserProfiles);
                Console.WriteLine("Gaze tracking (initial value): {0}", eyeXHost.GazeTracking);

                // Wait for the user to exit the application.
                Console.WriteLine("Listening for state changes, press any key to exit...");
                Console.ReadKey(true);
            }
        }
        /// <summary>
        /// Starts the EyeX host and waits for all profiles to become available.
        /// </summary>
        /// <param name="host">The host.</param>
        /// <param name="version">The engine version.</param>
        private static bool StartHost(EyeXHost host, out Version version)
        {
            // Start the host.
            host.Start();

            // Wait for the client to connect.
            if (!host.WaitUntilConnected(TimeSpan.FromSeconds(5)))
            {
                version = null;
                return(false);
            }

            // Get the engine version number.
            version = host.GetEngineVersion().Result;
            return(true);
        }
Example #3
0
        private static int startHost(EyeXHost host)
        {
            switch (EyeXHost.EyeXAvailability)
            {
            case EyeXAvailability.NotAvailable:
                Console.WriteLine("This sample requires the EyeX Engine, but it isn't available.");
                Console.WriteLine("Please install the EyeX Engine and try again.");
                return(Globs.TRACKER_ENGINE_NOT_AVAILABLE);

            case EyeXAvailability.NotRunning:
                Console.WriteLine("This sample requires the EyeX Engine, but it isn't rnning.");
                Console.WriteLine("Please make sure that the EyeX Engine is started.");
                return(Globs.TRACKER_ENGINE_NOT_RUNNING);
            }

            Version engineVersion;

            host.Start();
            if (!host.WaitUntilConnected(TimeSpan.FromSeconds(5)))
            {
                Console.WriteLine("Could not connect to EyeX Engine.");
                return(Globs.TRACKER_FAILED_TO_ACTIVATE);
            }
            else
            {
                engineVersion = host.GetEngineVersion().Result;
                if (engineVersion.Major != 1 || engineVersion.Major == 1 && engineVersion.Minor < 4)
                {
                    Console.WriteLine("This sample requires EyeX Engine 1.4.");
                    return(Globs.TRACKER_ENGINE_OUTDATED);
                }
            }

            Console.WriteLine("Tracker Activated Sucessfully");
            return(Globs.TRACKER_ACTIVATED);
        }