Пример #1
0
 /// <summary>Called when [connect command].</summary>
 private void OnConnectCommand()
 {
     if (cm == null)
     {
         // First connect
         cm = new ConnectModel();
     }
     else if (!cm.IP.Equals(Properties.Settings.Default.FlightServerIP) ||
              !cm.Port.Equals(Properties.Settings.Default.FlightCommandPort))
     {
         // Values changed
         // Stop running thread
         cm.stop();
         // Create new connect model
         cm = new ConnectModel();
     }
 }
Пример #2
0
        public string GetInfo(string ip, int port)
        {
            // Load model
            ConnectModel model = new ConnectModel(ip, port);

            // Wait for update event
            bool rudderChanged   = false;
            bool throttleChanged = false;

            AutoResetEvent waitHandle = new AutoResetEvent(false);
            // create and attach event handler for the "Completed" event
            EventHandler eventHandler = delegate(object sender, EventArgs e)
            {
                string propertyName = ((PropertyChangedEventArgs)e).PropertyName;
                if (propertyName == "Rudder" && !rudderChanged)
                {
                    waitHandle.Set();
                    rudderChanged = true;
                }
                else if (propertyName == "Throttle" && !throttleChanged)
                {
                    waitHandle.Set();
                    throttleChanged = true;
                }
            };

            model.positionChanged += eventHandler;

            model.updateRudder();
            model.updateThrottle();

            waitHandle.WaitOne();
            waitHandle.WaitOne();

            float rudder   = model.Rudder;
            float throttle = model.Throttle;

            model.stop();
            // Return the values
            return(String.Format("{0},{1}", rudder, throttle));
        }
Пример #3
0
        public string GetLocation(string ip, int port)
        {
            // Get model
            ConnectModel model = new ConnectModel(ip, port);

            // Wait for update event
            bool lonChanged = false;
            bool latChanged = false;


            AutoResetEvent waitHandle = new AutoResetEvent(false);
            // create and attach event handler for the "Completed" event
            EventHandler eventHandler = delegate(object sender, EventArgs e)
            {
                string propertyName = ((PropertyChangedEventArgs)e).PropertyName;
                if ((propertyName == "Lat" && !latChanged))
                {
                    waitHandle.Set();
                    latChanged = true;
                }
                else if (propertyName == "Lon" && !lonChanged)
                {
                    waitHandle.Set();
                    lonChanged = true;
                }
            };

            model.positionChanged += eventHandler;

            model.updatePosition();

            waitHandle.WaitOne();
            waitHandle.WaitOne();

            float lat = model.Lat;
            float lon = model.Lon;

            model.stop();
            // Return the position
            return(String.Format("{0},{1}", lon, lat));
        }