public Tracker()
 {
     _tracker = new TrackerRemote("Isense900@" + VPRNHostIP);
     _tracker.PositionChanged += TrackerStateChanged;
     _tracker.VelocityChanged += TrackerVelocityChanged;
     _tracker.AccelerationChanged += TrackerAccelerationChanged;
 }
 public Tracker()
 {
     _tracker = new TrackerRemote("Isense900@" + VPRNHostIP);
     _tracker.PositionChanged     += TrackerStateChanged;
     _tracker.VelocityChanged     += TrackerVelocityChanged;
     _tracker.AccelerationChanged += TrackerAccelerationChanged;
 }
Exemplo n.º 3
0
 public UIVA_OculusRift(String ID)
 {
     quat      = new Quaternion();
     timeStamp = new DateTime();
     remote    = new TrackerRemote(ID);
     // Register the callback function for TrackerRemote
     remote.PositionChanged += new TrackerChangeEventHandler(OculusRiftTrackerChanged);
     remote.MuteWarnings     = true;
 }
Exemplo n.º 4
0
 public UIVA_PhaseSpace(String ID)
 {
     pos       = new Vector3[32];
     quat      = new Quaternion[32];
     timeStamp = new DateTime[32];
     remote    = new TrackerRemote(ID);
     // Register the callback function for TrackerRemote
     remote.PositionChanged += new TrackerChangeEventHandler(PhaseSpaceTrackerChanged);
     remote.MuteWarnings     = true;
 }
Exemplo n.º 5
0
        public UIVA_SpacePointFusion(String ID)
        {
            trkRemote = new TrackerRemote(ID);
            // Register the callback function for TrackerRemote
            trkRemote.PositionChanged += new TrackerChangeEventHandler(FusionTrackerChanged);
            trkRemote.MuteWarnings     = true;

            buttRemote = new ButtonRemote(ID);
            // Register the callback function for ButtonRemote
            buttRemote.ButtonChanged += new ButtonChangeEventHandler(FusionButtonChanged);
            buttRemote.MuteWarnings   = true;
        }
Exemplo n.º 6
0
        static void Main(string[] args)
        {
            TrackerRemote tracker = new TrackerRemote("Tracker0@localhost");
            tracker.PositionChanged += new TrackerChangeEventHandler(PositionChanged);
            tracker.MuteWarnings = false;

            ButtonRemote button = new ButtonRemote("Button0@localhost");
            button.ButtonChanged += new ButtonChangeEventHandler(ButtonChanged);
            button.MuteWarnings = true;

            while (true)
            {
                tracker.Update();
                button.Update();
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// The constructor for the VRPN tracker
        /// </summary>
        public VRPNTracker()
        {
            identifier   = "VRPNTracker";
            trackerName  = "Tracker 1";
            ipAddress    = "localhost";
            tracker      = new TrackerRemote(trackerName + "@" + ipAddress);
            isAvailable  = true;
            _orientation = Microsoft.Xna.Framework.Quaternion.Identity;
            _yaw         = 0;
            _pitch       = 0;
            _roll        = 0;

            _position = Microsoft.Xna.Framework.Vector3.One;
            _xpos     = 0;
            _ypos     = 0;
            _zpos     = 0;
        }
        public static void Main(string[] args)
        {
            var hmdTracker = new TrackerRemote("Isense900@" + VPRNHostIP);
            hmdTracker.PositionChanged += TestHMDChanged;

            //            var wandButtons = new ButtonRemote("Wand0@" + VPRNHostIP);
            //            wandButtons.WandButtonsChanged += WandButtonsChanged;
            //            wandButtons.MuteWarnings = true;

            //            var wandJoystick = new AnalogRemote("Wand0" + VPRNHostIP);
            //            wandJoystick.AnalogChanged += WandJoystickChanged;

            while (true)
            {
                hmdTracker.Update();
            }
        }
        static void Main(string[] args)
        {
            TrackerRemote tracker = new TrackerRemote("Tracker0@localhost");

            tracker.PositionChanged += new TrackerChangeEventHandler(PositionChanged);
            tracker.MuteWarnings     = false;

            ButtonRemote button = new ButtonRemote("Button0@localhost");

            button.ButtonChanged += new ButtonChangeEventHandler(ButtonChanged);
            button.MuteWarnings   = true;

            while (true)
            {
                tracker.Update();
                button.Update();
            }
        }
        public static void Main(string[] args)
        {
            var hmdTracker = new TrackerRemote("Isense900@" + VPRNHostIP);

            hmdTracker.PositionChanged += TestHMDChanged;

//            var wandButtons = new ButtonRemote("Wand0@" + VPRNHostIP);
//            wandButtons.WandButtonsChanged += WandButtonsChanged;
//            wandButtons.MuteWarnings = true;

//            var wandJoystick = new AnalogRemote("Wand0" + VPRNHostIP);
//            wandJoystick.AnalogChanged += WandJoystickChanged;

            while (true)
            {
                hmdTracker.Update();
            }
        }
Exemplo n.º 11
0
        private void RunFeedbackCore()
        {
            Connection    clientConnection = Connection.GetConnectionByName(serverName);
            TrackerRemote client           = new TrackerRemote(serverName, clientConnection);

            client.PositionChanged += client_PositionChanged;
            clientState             = ServerRunState.Running;

            while (!forceStop)
            {
                clientConnection.Update();
                client.Update();
                Thread.Yield();
            }

            clientState             = ServerRunState.Stopping;
            client.PositionChanged -= client_PositionChanged;
            client.Dispose();
            clientConnection.Dispose();
            clientState = ServerRunState.Stopped;
        }
Exemplo n.º 12
0
        public override void Load()
        {
            try
            {
                IsEnabled = true;
                PositionScaleFactor = 0.001;

                _tracker = new TrackerRemote(_trackerAddress);
                _tracker.PositionChanged += PositionChanged;
                _tracker.MuteWarnings = true;

                _button = new ButtonRemote(_buttonAddress);
                _button.ButtonChanged += ButtonChanged;
                _button.MuteWarnings = true;
            }
            catch (Exception exc)
            {
                Logger.Instance.Error(exc.Message, exc);
                IsEnabled = false;
            }
            _timer.Start();
        }
Exemplo n.º 13
0
        public override void Load()
        {
            try
            {
                IsEnabled           = true;
                PositionScaleFactor = 0.001;

                _tracker = new TrackerRemote(_trackerAddress);
                _tracker.PositionChanged += PositionChanged;
                _tracker.MuteWarnings     = true;

                _button = new ButtonRemote(_buttonAddress);
                _button.ButtonChanged += ButtonChanged;
                _button.MuteWarnings   = true;
            }
            catch (Exception exc)
            {
                Logger.Instance.Error(exc.Message, exc);
                IsEnabled = false;
            }
            _timer.Start();
        }
Exemplo n.º 14
0
 public void Dispose()
 {
     tracker.Dispose();
     tracker = null;
 }
Exemplo n.º 15
0
        private void RunNetworkKinect(string serverName, string rhServerName, string lhServerName)
        {
            using (TrackerRemote client = new TrackerRemote(serverName))
            {
                client.PositionChanged += client_PositionChanged;

                //Start the rh server, if needed
                if (rhServerName != null && lhServerName != null)
                {
                    if (rhServerName != null || lhServerName != null)
                    {
                        if (rhServerName != null)
                        {
                            //Only the right hand server should be used
                            using (ButtonRemote rhClient = new ButtonRemote(rhServerName))
                            {
                                rhClient.ButtonChanged += rhClient_ButtonChanged;
                                isRunning = true;

                                while (!forceStop)
                                {
                                    client.Update();
                                    rhClient.Update();
                                    Thread.Yield();
                                }

                                rhClient.ButtonChanged -= rhClient_ButtonChanged;
                            }
                        }
                        else
                        {
                            //Only the left hand server should be used
                            using (ButtonRemote lhClient = new ButtonRemote(lhServerName))
                            {
                                lhClient.ButtonChanged += lhClient_ButtonChanged;
                                isRunning = true;

                                while (!forceStop)
                                {
                                    client.Update();
                                    lhClient.Update();
                                    Thread.Yield();
                                }

                                lhClient.ButtonChanged -= lhClient_ButtonChanged;
                            }
                        }
                    }
                    else
                    {
                        if (rhServerName == lhServerName)
                        {
                            //The left and right hand should be used, but they are on the same server
                            using (ButtonRemote handClient = new ButtonRemote(rhServerName))
                            {
                                handClient.ButtonChanged += rhClient_ButtonChanged;
                                isRunning = true;

                                while (!forceStop)
                                {
                                    client.Update();
                                    handClient.Update();
                                    Thread.Yield();
                                }

                                handClient.ButtonChanged -= rhClient_ButtonChanged;
                            }
                        }
                        else
                        {
                            //Both the left and right hand should be used, and they are on different servers
                            using (ButtonRemote rhClient = new ButtonRemote(rhServerName))
                            {
                                using (ButtonRemote lhClient = new ButtonRemote(lhServerName))
                                {
                                    rhClient.ButtonChanged += rhClient_ButtonChanged;
                                    lhClient.ButtonChanged += lhClient_ButtonChanged;
                                    isRunning = true;

                                    while (!forceStop)
                                    {
                                        client.Update();
                                        rhClient.Update();
                                        lhClient.Update();
                                        Thread.Yield();
                                    }

                                    rhClient.ButtonChanged -= rhClient_ButtonChanged;
                                    lhClient.ButtonChanged -= lhClient_ButtonChanged;
                                }
                            }
                        }
                    }
                }
                else
                {
                    //No hand servers case
                    isRunning = true;

                    while (!forceStop)
                    {
                        client.Update();
                        Thread.Yield();
                    }
                }

                client.PositionChanged -= client_PositionChanged;
            }

            isRunning = false;
        }
Exemplo n.º 16
0
        private void RunNetworkKinect(string serverName, string rhServerName, string lhServerName)
        {
            using (TrackerRemote client = new TrackerRemote(serverName))
            {
                client.PositionChanged += client_PositionChanged;

                //Start the rh server, if needed
                if (rhServerName != null && lhServerName != null)
                {
                    if (rhServerName != null || lhServerName != null)
                    {
                        if (rhServerName != null)
                        {
                            //Only the right hand server should be used
                            using (ButtonRemote rhClient = new ButtonRemote(rhServerName))
                            {
                                rhClient.ButtonChanged += rhClient_ButtonChanged;
                                isRunning = true;

                                while (!forceStop)
                                {
                                    client.Update();
                                    rhClient.Update();
                                    Thread.Yield();
                                }

                                rhClient.ButtonChanged -= rhClient_ButtonChanged;
                            }
                        }
                        else
                        {
                            //Only the left hand server should be used
                            using (ButtonRemote lhClient = new ButtonRemote(lhServerName))
                            {
                                lhClient.ButtonChanged += lhClient_ButtonChanged;
                                isRunning = true;

                                while (!forceStop)
                                {
                                    client.Update();
                                    lhClient.Update();
                                    Thread.Yield();
                                }

                                lhClient.ButtonChanged -= lhClient_ButtonChanged;
                            }

                        }
                    }
                    else
                    {
                        if (rhServerName == lhServerName)
                        {
                            //The left and right hand should be used, but they are on the same server
                            using (ButtonRemote handClient = new ButtonRemote(rhServerName))
                            {
                                handClient.ButtonChanged += rhClient_ButtonChanged;
                                isRunning = true;

                                while (!forceStop)
                                {
                                    client.Update();
                                    handClient.Update();
                                    Thread.Yield();
                                }

                                handClient.ButtonChanged -= rhClient_ButtonChanged;
                            }
                        }
                        else
                        {
                            //Both the left and right hand should be used, and they are on different servers
                            using (ButtonRemote rhClient = new ButtonRemote(rhServerName))
                            {
                                using (ButtonRemote lhClient = new ButtonRemote(lhServerName))
                                {
                                    rhClient.ButtonChanged += rhClient_ButtonChanged;
                                    lhClient.ButtonChanged += lhClient_ButtonChanged;
                                    isRunning = true;

                                    while (!forceStop)
                                    {
                                        client.Update();
                                        rhClient.Update();
                                        lhClient.Update();
                                        Thread.Yield();
                                    }

                                    rhClient.ButtonChanged -= rhClient_ButtonChanged;
                                    lhClient.ButtonChanged -= lhClient_ButtonChanged;
                                }
                            }
                        }
                    }
                }
                else
                {
                    //No hand servers case
                    isRunning = true;

                    while (!forceStop)
                    {
                        client.Update();
                        Thread.Yield();
                    }
                }

                client.PositionChanged -= client_PositionChanged;
            }

            isRunning = false;
        }
Exemplo n.º 17
0
        private void RunFeedbackCore()
        {
            Connection clientConnection = Connection.GetConnectionByName(serverName);
            TrackerRemote client = new TrackerRemote(serverName, clientConnection);
            client.PositionChanged += client_PositionChanged;
            clientState = ServerRunState.Running;

            while (!forceStop)
            {
                clientConnection.Update();
                client.Update();
                Thread.Yield();
            }

            clientState = ServerRunState.Stopping;
            client.PositionChanged -= client_PositionChanged;
            client.Dispose();
            clientConnection.Dispose();
            clientState = ServerRunState.Stopped;
        }
Exemplo n.º 18
0
 /// <summary>
 /// Initializes the VRPN tracker.
 /// </summary>
 public void Initialize()
 {
     tracker = new TrackerRemote(trackerName + "@" + ipAddress);
     tracker.PositionChanged += new TrackerChangeEventHandler(PositionChanged);
     tracker.MuteWarnings     = false;
 }