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 = ConvertLinkDirection(m.Direction);
            vm.Value     = m.Pos;

            return(vm);
        }
        public static ILinkViewModel Convert(this ILink link)
        {
            if (link == null)
            {
                return(null);
            }

            if (link is LinearPosition linPos)
            {
                return(UpdateViewModel(LinearPositionViewModel.Create(), linPos));
            }
            else if (link is LinearPneumatic pnmPos)
            {
                return(UpdateViewModel(LinearPneumaticViewModel.Create(), pnmPos));
            }
            else if (link is RotaryPneumatic pnmRot)
            {
                return(UpdateViewModel(RotaryPneumaticViewModel.Create(), pnmRot));
            }
            else
            {
                throw new NotImplementedException();
            }
        }