Esempio n. 1
0
        /// <summary>
        /// Set motor Speed between 0 and 1.0.
        /// </summary>
        /// <param name="speed"></param>
        void SetSpeed(double speed)
        {
            Task.Run(() =>
            {
                bool worked = false;

                if (speed < 0)
                {
                    speed = 0;
                }

                lock ( MotorLock )
                {
                    if (MotorCom.Open(MotorComPort))
                    {
                        MotorCom.SetSpeed(speed);
                        MotorCom.Close();
                        worked = true;
                    }
                    else
                    {
                        Console.WriteLine("failed to SetSpeed");
                    }
                }

                if (worked)
                {
                    Action <double> update_action = (s) => { BoatSpeedLbl.Content = speed.ToString("0.00"); };
                    Dispatcher.BeginInvoke(update_action, speed);
                }
            });
        }