PgInitparam.xaml.cs 8.57 KB
Newer Older
潘栩锋's avatar
潘栩锋 committed
1 2
using CommunityToolkit.Mvvm.Input;
using FLY.Thick.Base.Common;
3 4 5 6 7
using FLY.Thick.Base.UI;
using System;
using System.ComponentModel;
using System.Windows.Controls;
using Unity;
潘栩锋's avatar
潘栩锋 committed
8
using IInitParamService = FLY.Thick.FilmCasting.IService.IInitParamService;
9 10 11 12 13 14 15 16 17 18 19 20 21
namespace FLY.Thick.FilmCasting.UI
{
    /// <summary>
    /// Page_Initparam.xaml 的交互逻辑
    /// </summary>
    public partial class PgInitparam : Page
    {
        PgInitParamVm viewModel;
        public PgInitparam()
        {
            InitializeComponent();
        }
        [InjectionMethod]
潘栩锋's avatar
潘栩锋 committed
22
        public void Init(FLY.Thick.Base.IService.IInitParamService initParamService)
23 24
        {
            viewModel = new PgInitParamVm();
潘栩锋's avatar
潘栩锋 committed
25
            viewModel.Init((IInitParamService)initParamService);
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
            this.DataContext = viewModel;
        }
    }
    public class PgInitParamVm : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        #region 参数
        /// <summary>
        /// 扫描架长
        /// </summary>
        public int PosLength { get; set; }

        public bool IsTimeGridAdvEnabled { get; set; }
        /// <summary>
        /// 自动归原点间距,次数
        /// </summary>
        public int AutoOrgInterval { get; set; }


        /// <summary>
        /// 编码器1 mm/pulse
        /// </summary>
        public double Encoder1_mmpp { get; set; }

        /// <summary>
        /// 设置的速度,与 实际速度比例 Speed1 = VScan*Speed1Scale
        /// </summary>
        public double Speed1Scale { get; set; }

        /// <summary>
        /// 线速度来源
        /// </summary>
        public FilmVSRC FilmVSrc { get; set; }

        /// <summary>
        /// 最小线速度 m/min
        /// </summary>
        public int FilmVThreshold { get; set; }
        /// <summary>
        /// 线速度:编码器2 mm/pulse
        /// </summary>
        public double Encoder2_mmpp { get; set; }

        /// <summary>
        /// 线速度:1圈多少mm
        /// </summary>
        public double MmOfR { get; set; }

        /// <summary>
        /// 数据有效源
        /// </summary>
        public DATAVALIDSRC DataValidSrc { get; set; }



        /// <summary>
        /// 当数据有效状态改变,自动按F1,F3
        /// </summary>
        public bool AutoF1F3 { get; set; }

        /// <summary>
        /// 当数据有效状态  无效->有效 ,等待多久重新扫描 ,单位s
        /// </summary>
        public int ReStartDelay { get; set; }


        #region 速度

        /// <summary>
        /// 扫描时速度 Velocity Of Scan 
        /// </summary>
        public UInt32 VScan { get; set; }
        /// <summary>
        /// 调试时速度,向前走,向后走 Velocity Of JOG
        /// </summary>
        public UInt32 VJOG { get; set; }
        /// <summary>
        /// 精确速度 Velocity Of Accuracy  如: 机架修正, 样品取样, 机架信息获取
        /// </summary>
        public UInt32 VAccuracy { set; get; }
        /// <summary>
        /// 开始速度 Start Velocity
        /// </summary>
        public UInt32 SVelocity { set; get; }
        /// <summary>
        /// 加速时间
        /// </summary>
        public UInt32 ATime { set; get; }
        /// <summary>
        /// 减速时间
        /// </summary>
        public UInt32 DTime { set; get; }
        /// <summary>
        /// 归0速度1
        /// </summary>
        public UInt32 HVelocity1 { set; get; }
        /// <summary>
        /// 归0速度2
        /// </summary>
        public UInt32 HVelocity2 { set; get; }

        #endregion

潘栩锋's avatar
潘栩锋 committed
130 131 132 133 134 135 136 137 138 139

        /// <summary>
        /// 有拉伸前速度
        /// </summary>
        public bool HasVBeforeStretching { get; set; }

        /// <summary>
        /// 拉伸前速度:1圈多少mm
        /// </summary>
        public double MmOfR_VBefore { get; set; }
140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
        #endregion

        #region Command
        public RelayCommand ApplyCmd { get; }
        #endregion


        IInitParamService initParamService;

        public PgInitParamVm()
        {
            ApplyCmd = new RelayCommand(Apply);
        }


        public void Init(IInitParamService initParamService)
        {
            this.initParamService = initParamService;

            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.PosLength), this, nameof(PosLength));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.IsTimeGridAdvEnabled), this, nameof(IsTimeGridAdvEnabled));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.AutoOrgInterval), this, nameof(AutoOrgInterval));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.Encoder1_mmpp), this, nameof(Encoder1_mmpp));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.Speed1Scale), this, nameof(Speed1Scale));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.FilmVSrc), this, nameof(FilmVSrc));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.FilmVThreshold), this, nameof(FilmVThreshold));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.Encoder2_mmpp), this, nameof(Encoder2_mmpp));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.MmOfR), this, nameof(MmOfR));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.DataValidSrc), this, nameof(DataValidSrc));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.AutoF1F3), this, nameof(AutoF1F3));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.ReStartDelay), this, nameof(ReStartDelay));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.VScan), this, nameof(VScan));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.VJOG), this, nameof(VJOG));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.VAccuracy), this, nameof(VAccuracy));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.SVelocity), this, nameof(SVelocity));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.ATime), this, nameof(ATime));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.DTime), this, nameof(DTime));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.HVelocity1), this, nameof(HVelocity1));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.HVelocity2), this, nameof(HVelocity2));
潘栩锋's avatar
潘栩锋 committed
179 180 181

            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.HasVBeforeStretching), this, nameof(HasVBeforeStretching));
            Misc.BindingOperations.SetBinding(initParamService, nameof(initParamService.MmOfR_VBefore), this, nameof(MmOfR_VBefore));
182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
        }

        private void Apply()
        {
            if (!WdPassword.Authorize("InitParam"))
                return;

            initParamService.PosLength = this.PosLength;
            initParamService.IsTimeGridAdvEnabled = this.IsTimeGridAdvEnabled;
            initParamService.AutoOrgInterval = this.AutoOrgInterval;
            initParamService.Encoder1_mmpp = this.Encoder1_mmpp;
            initParamService.Speed1Scale = this.Speed1Scale;
            initParamService.FilmVSrc = this.FilmVSrc;
            initParamService.FilmVThreshold = this.FilmVThreshold;
            initParamService.Encoder2_mmpp = this.Encoder2_mmpp;
            initParamService.MmOfR = this.MmOfR;
            initParamService.DataValidSrc = this.DataValidSrc;
            initParamService.AutoF1F3 = this.AutoF1F3;
            initParamService.ReStartDelay = this.ReStartDelay;
            initParamService.VScan = this.VScan;
            initParamService.VJOG = this.VJOG;
            initParamService.VAccuracy = this.VAccuracy;
            initParamService.SVelocity = this.SVelocity;
            initParamService.ATime = this.ATime;
            initParamService.DTime = this.DTime;
            initParamService.HVelocity1 = this.HVelocity1;
            initParamService.HVelocity2 = this.HVelocity2;

潘栩锋's avatar
潘栩锋 committed
210 211 212
            initParamService.HasVBeforeStretching = HasVBeforeStretching;
            initParamService.MmOfR_VBefore = MmOfR_VBefore;

213 214 215 216 217 218 219 220 221
            initParamService.Apply();
            FLY.ControlLibrary.Window_Tip.Show("应用成功",
                null,
                TimeSpan.FromSeconds(2));

        }

    }
}