コード例 #1
0
        /// <summary>
        /// Запускает перемещение плеча робота в ручном режиме управления.
        /// </summary>
        /// <param name="stepLever">Тип перемещаемого плеча и количество импульсов</param>
        public void ManulControlRun(StepLever stepLever)
        {
            if (leverMovement.IsRunning)
            {
                return;
            }

            if (stepLever.StepsCount == 0)
            {
                stepLever.StepsCount = Calculation.CalculateStepsToLeverZero(stepLever.Lever);
            }
            else
            {
                stepLever.StepsCount = Calculation.CalculateStepsByDirection(stepLever.Lever, stepLever.StepsCount == 1);
            }

            leverMovement.Move(stepLever);
        }
コード例 #2
0
        private void Worker_OnStop(object sender, EventArgs e)
        {
            var stepLever = new StepLever(movingLever.Type, movingLever.Stepper.CurrentStepsCount);

            movingLever = null;

            OnMovingEnd(this, new LeverMovingEndEventArgs(stepLever, worker.StopReason));

            if (IsQueueMoving)
            {
                if (worker.StopReason != StepperStopReason.WorkDone)
                {
                    steppersQueue.Clear();
                }
                else
                {
                    new Task(Continue).Start();
                }
            }
        }
コード例 #3
0
 /// <summary>
 /// Предоставляет класс, содержащий данные о событии окончания движения плеча робота
 /// </summary>
 /// <param name="stepLever">Экземпляр класса, содержащий данные о количестве шагов шагового двигателя, который управляет плечом.</param>
 /// <param name="stopReason">Причина окончания движения плеча робота</param>
 public LeverMovingEndEventArgs(StepLever stepLever, StepperStopReason stopReason) : this(stepLever.Lever, stepLever.StepsCount, stopReason)
 {
 }
コード例 #4
0
 private void LeverMovement_OnMovingStart(object sender, StepLever e)
 {
     OnMovingStart(this, e);
 }
コード例 #5
0
 private void LeverMovement_OnStepsIntervalElapsed(object sender, StepLever e)
 {
     Location = Calculation.GetLocation(Location, e);
 }