InitParam.cs 5.67 KB
Newer Older
潘栩锋's avatar
潘栩锋 committed
1 2 3 4 5 6 7 8 9 10 11 12 13
using System;
using System.Collections.Generic;
using System.Text;
using Misc;
using System.Net;
using System.IO;
using System.ComponentModel;
using System.Xml.Linq;
using FLY.Thick.Base.Common;
using FLY.Thick.Base.IService;

namespace FLY.Thick.Base.Server
{
潘栩锋's avatar
潘栩锋 committed
14 15 16 17
    /// <summary>
    /// 硬件配置参数
    /// </summary>
    public class InitParam: IInitParamService,  INotifyPropertyChanged
潘栩锋's avatar
潘栩锋 committed
18 19 20 21 22
    {
        #region 属性,成员变量的代理
        /// <summary>
        /// 扫描架长
        /// </summary>
23 24
        public int PosLength { get; set; } = 8900;

潘栩锋's avatar
潘栩锋 committed
25 26 27
        /// <summary>
        /// 从 flyad7 获取的
        /// </summary>
28
        public int PosOfGrid { get; set; } = 10;
潘栩锋's avatar
潘栩锋 committed
29 30 31 32 33 34

        /// <summary>
        /// timeGridAdv 使能
        /// </summary>
        public bool IsTimeGridAdvEnabled { get; set; }

潘栩锋's avatar
潘栩锋 committed
35
        /// <summary>
潘栩锋's avatar
潘栩锋 committed
36
        /// ad 滞后量  1.28ms
潘栩锋's avatar
潘栩锋 committed
37
        /// </summary>
38
        public int ADLag { get; set; }
潘栩锋's avatar
潘栩锋 committed
39 40 41 42

        /// <summary>
        /// 自动归原点间距
        /// </summary>
43 44 45
        public int AutoOrgInterval { get; set; } = 10;
       

潘栩锋's avatar
潘栩锋 committed
46 47 48 49

        /// <summary>
        /// 线速度来源
        /// </summary>
50 51
        public FilmVSRC FilmVSrc { get; set; } = FilmVSRC.ROUND;
        
潘栩锋's avatar
潘栩锋 committed
52 53 54
        /// <summary>
        /// 最小线速度 m/min
        /// </summary>
55 56
        public int FilmVThreshold { get; set; } = 5;

潘栩锋's avatar
潘栩锋 committed
57 58 59 60 61 62



        /// <summary>
        /// 编码器2 mm/pulse
        /// </summary>
63
        public double Encoder2_mmpp { get; set; } = 0.1;
潘栩锋's avatar
潘栩锋 committed
64

65
        
潘栩锋's avatar
潘栩锋 committed
66 67 68
        /// <summary>
        /// 编码器2 放大
        /// </summary>
69 70
        public float Encoder2_comp { get; set; } = 1;
        
潘栩锋's avatar
潘栩锋 committed
71 72 73
        /// <summary>
        /// //1圈多少mm
        /// </summary>
74
        public double MmOfR { get; set; } = 376.8;
潘栩锋's avatar
潘栩锋 committed
75 76 77 78

        /// <summary>
        /// 编码器1 mm/pulse
        /// </summary>
79
        public double Encoder1_mmpp { get; set; } = 0.1;
潘栩锋's avatar
潘栩锋 committed
80 81 82 83 84 85 86




        /// <summary>
        /// 设置的速度,与 实际速度比例
        /// </summary>
87
        public double Speed1Scale { get; set; } = 1;
潘栩锋's avatar
潘栩锋 committed
88 89 90 91 92


        /// <summary>
        /// 扫描时速度
        /// </summary>
93 94 95
        public UInt32 VScan { get; set; } = 8000;


潘栩锋's avatar
潘栩锋 committed
96 97 98 99

        /// <summary>
        /// 调试时速度,向前走,向后走
        /// </summary>
100
        public UInt32 VJOG { get; set; } = 5000;
潘栩锋's avatar
潘栩锋 committed
101 102 103 104

        /// <summary>
        /// 精确速度 Velocity Of Accuracy  如: 机架修正, 样品取样, 机架信息获取
        /// </summary>
105
        public UInt32 VAccuracy { get; set; } = 3000;
潘栩锋's avatar
潘栩锋 committed
106

107
        
潘栩锋's avatar
潘栩锋 committed
108 109 110
        /// <summary>
        /// 开始速度 Start Velocity
        /// </summary>
111 112
        public UInt32 SVelocity { get; set; } = 500;
        
潘栩锋's avatar
潘栩锋 committed
113 114 115
        /// <summary>
        /// 加速时间
        /// </summary>
116 117
        public UInt32 ATime { get; set; } = 200;
        
潘栩锋's avatar
潘栩锋 committed
118 119 120
        /// <summary>
        /// 减速时间
        /// </summary>
121 122
        public UInt32 DTime { get; set; } = 200;
        
潘栩锋's avatar
潘栩锋 committed
123 124 125
        /// <summary>
        /// 归0速度1
        /// </summary>
126 127
        public UInt32 HVelocity1 { get; set; } = 5000;
        
潘栩锋's avatar
潘栩锋 committed
128 129 130
        /// <summary>
        /// 归0速度2
        /// </summary>
131
        public UInt32 HVelocity2 { get; set; } = 1000;
潘栩锋's avatar
潘栩锋 committed
132 133 134 135 136 137 138




        /// <summary>
        /// 数据有效源
        /// </summary>
139
        public DATAVALIDSRC DataValidSrc { get; set; } = DATAVALIDSRC.VALID;
潘栩锋's avatar
潘栩锋 committed
140 141 142 143

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

潘栩锋's avatar
潘栩锋 committed
146 147 148 149

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


潘栩锋's avatar
潘栩锋 committed
153 154 155 156

        /// <summary>
        /// 有按样标定硬件
        /// </summary>
157 158
        public bool HasProfileSample { get; set; }

潘栩锋's avatar
潘栩锋 committed
159 160 161 162

        /// <summary>
        /// 有小托辊
        /// </summary>
163 164 165 166 167
        public bool HasHold { get; set; } = true;

        /// <summary>
        /// 数据库保存的月数
        /// </summary>
168
        public int DBKeepMonth { get; set; } = 6;
169

潘栩锋's avatar
潘栩锋 committed
170 171 172 173 174
        /// <summary>
        /// 数据库路径
        /// </summary>
        public string DbPath { get; set; } = @"D:\flydata\history.sqlite3";

潘栩锋's avatar
潘栩锋 committed
175 176
        #endregion

潘栩锋's avatar
潘栩锋 committed
177 178 179 180
        private string param_path = "initparam.json";
        /// <summary>
        /// 
        /// </summary>
潘栩锋's avatar
潘栩锋 committed
181 182 183 184
        public InitParam()
        {

        }
潘栩锋's avatar
潘栩锋 committed
185 186 187 188
        /// <summary>
        /// 
        /// </summary>
        /// <param name="param_path"></param>
潘栩锋's avatar
潘栩锋 committed
189 190 191 192 193 194 195
        public InitParam(string param_path)
        {
            if (!string.IsNullOrEmpty(param_path))
                this.param_path = param_path;

            Load();
        }
潘栩锋's avatar
潘栩锋 committed
196 197 198 199
        /// <summary>
        /// 加载
        /// </summary>
        /// <returns></returns>
潘栩锋's avatar
潘栩锋 committed
200 201
        public bool Load() 
        {
潘栩锋's avatar
潘栩锋 committed
202 203 204 205 206 207 208 209 210 211 212 213 214 215
            //return Misc.SaveToXmlHepler.Load(param_path, this);
            if (!File.Exists(param_path)) 
            {
                return false;
            }
            try
            {
                string json = File.ReadAllText(param_path);
                Newtonsoft.Json.JsonConvert.PopulateObject(json, this);
            }
            catch {
                return false;
            }
            return true;
潘栩锋's avatar
潘栩锋 committed
216
        }
潘栩锋's avatar
潘栩锋 committed
217 218 219 220
        /// <summary>
        /// 保存
        /// </summary>
        void Save() 
潘栩锋's avatar
潘栩锋 committed
221
        {
潘栩锋's avatar
潘栩锋 committed
222 223
            string json = Newtonsoft.Json.JsonConvert.SerializeObject(this);
            File.WriteAllText(param_path, json);
潘栩锋's avatar
潘栩锋 committed
224 225 226 227
        }


        #region INotifyPropertyChanged 成员
228

潘栩锋's avatar
潘栩锋 committed
229 230 231 232
        public event PropertyChangedEventHandler PropertyChanged;

        #endregion

潘栩锋's avatar
潘栩锋 committed
233 234 235
        /// <summary>
        /// 应用
        /// </summary>
潘栩锋's avatar
潘栩锋 committed
236 237 238 239 240 241 242 243
        public void Apply()
        {
            Save();
        }
    }
    
    
}