Esempio n. 1
0
        void SetDirection(MotorControllerCom.Direction direction)
        {
            Task.Run(() =>
            {
                bool worked = false;

                lock ( MotorLock )
                {
                    if (MotorCom.Open(MotorComPort))
                    {
                        MotorCom.SetDirection(direction);

                        MotorCom.Close();
                        worked = true;
                    }
                    else
                    {
                        Console.WriteLine("failed to SetDirection");
                    }
                }

                if (worked)
                {
                    string dir_string = "ERROR";
                    switch (direction)
                    {
                    case MotorControllerCom.Direction.Forward:
                        dir_string = "FORWARD";
                        break;

                    case MotorControllerCom.Direction.Reverse:
                        dir_string = "REVERSE";
                        break;

                    case MotorControllerCom.Direction.NoDirection:
                        dir_string = "NO DIRECTION";
                        break;
                    }

                    Action <MotorControllerCom.Direction> update_action = (d) => { UpdateDirection(d); };
                    Dispatcher.BeginInvoke(update_action, direction);
                }
            });
        }