public static LinearPosition UpdateModel(LinearPosition m, LinearPositionViewModel vm)
        {
            m.Id        = vm.Id;
            m.Max       = vm.Max;
            m.Min       = vm.Min;
            m.Pos       = vm.Pos;
            m.Direction = vm.Direction;

            return(m);
        }
        public static LinearPositionViewModel UpdateViewModel(LinearPositionViewModel vm, LinearPosition m)
        {
            vm.Id        = m.Id;
            vm.Max       = m.Max;
            vm.Min       = m.Min;
            vm.Pos       = m.Pos;
            vm.Direction = m.Direction;
            vm.Value     = m.Pos;

            return(vm);
        }
예제 #3
0
        public static MachineViewModels.ViewModels.Links.ILinkViewModel Convert(this ILink link, MachineElementViewModel mevm, Transform3DGroup transformGroup, Point3D rotationCenter)
        {
            if (link == null)
            {
                return(null);
            }

            if (link is LinearPosition linPos)
            {
                var vm     = new LinearPositionViewModel();
                var action = GetLinearPositionLinkAction(transformGroup, linPos.Direction, linPos.Pos);

                MachineViewModels.Extensions.LinkExtensions.UpdateViewModel(vm, linPos);
                vm.Description = mevm.Name;
                if (action != null)
                {
                    vm.ValueChanged += (s, e) => action(e);
                }

                return(vm);
            }
            else if (link is LinearPneumatic pnmPos)
            {
                var vm = new LinearPneumaticViewModel();

                MachineViewModels.Extensions.LinkExtensions.UpdateViewModel(vm, pnmPos);
                vm.Description = mevm.Name;
                ApplyLinearPneumaticLinkAction(transformGroup, vm, mevm);

                return(vm);
            }
            else if (link is RotaryPneumatic pnmRot)
            {
                var vm = new RotaryPneumaticViewModel();

                MachineViewModels.Extensions.LinkExtensions.UpdateViewModel(vm, pnmRot);
                vm.Description = mevm.Name;
                ApplyRotaryPneumaticLinkAction(transformGroup, rotationCenter, vm);

                return(vm);
            }
            else
            {
                throw new NotImplementedException();
            }
        }
        private GantryLinearPositionViewModel CreateViewModel(LinearPositionViewModel master, IEnumerable <LinearPositionViewModel> links)
        {
            var vm = new GantryLinearPositionViewModel()
            {
                Master = master.Id, Slave = -1, CompatibleLinks = new List <int>()
                {
                    -1
                }
            };

            foreach (var item in links)
            {
                if ((item.Id != master.Id) && (item.Direction == master.Direction))
                {
                    vm.CompatibleLinks.Add(item.Id);
                }
            }

            return(vm);
        }