Пример #1
0
 public static BaseAction CreateBackStepAction(this TurnOnInverterAction a)
 {
     return(new TurnOffInverterAction()
     {
         Head = a.Head,
         Order = a.Order,
         RotationSpeed = a.RotationSpeed
     });
 }
Пример #2
0
 private BaseAction CreateBackStepAction(TurnOnInverterAction action)
 {
     return(new TurnOffInverterAction()
     {
         Head = action.Head,
         Order = action.Order,
         RotationSpeed = action.RotationSpeed
     });
 }
Пример #3
0
 public static void ExecuteAction(this TurnOnInverterAction a, int actionId = 0)
 {
     Messenger.Default.Send(new TurnOnInverterMessage()
     {
         Head          = a.Head,
         Order         = a.Order,
         Duration      = a.Duration,
         RotationSpeed = a.RotationSpeed,
         BackNotifyId  = actionId
     });
 }
Пример #4
0
        private string GetInverterName(TurnOnInverterAction action)
        {
            int invId = 0;

            if (action.Order == 0)
            {
                switch (action.Head)
                {
                case 1:
                case 2:
                case 12:
                case 21:
                    invId = 2;
                    break;

                default:
                    throw new ArgumentException("Invalid head id!!!");
                }
            }
            else if (action.Head == 1)
            {
                switch (action.Order)
                {
                case 1:
                    invId = 1;
                    break;

                case 2:
                    invId = 3;
                    break;

                default:
                    throw new ArgumentException("Invalid order id!!!");
                }
            }
            else
            {
                throw new InvalidOperationException("Invalid inverter id!!!");
            }

            return($"S{invId}");
        }
Пример #5
0
 private void Execute(TurnOnInverterAction action, int notifyId)
 {
     InverterController.TurnOn(GetInverterName(action), action.RotationSpeed);
     NotifyExecuted(notifyId);
 }