Пример #1
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));
        }