98 lines
2.5 KiB
C#
98 lines
2.5 KiB
C#
|
|
using MainShell.Filewritable;
|
||
|
|
using Newtonsoft.Json;
|
||
|
|
using System;
|
||
|
|
using System.ComponentModel;
|
||
|
|
using System.Runtime.CompilerServices;
|
||
|
|
|
||
|
|
namespace MainShell.DeviceMaintance.Model
|
||
|
|
{
|
||
|
|
public class LaserCompensationSetting : MXJM.FileWritable.JsonFileWritableBase, INotifyPropertyChanged
|
||
|
|
{
|
||
|
|
private string _axisName = "Axis_Stage_Y3";
|
||
|
|
public string AxisName
|
||
|
|
{
|
||
|
|
get { return _axisName; }
|
||
|
|
set { SetAndNotify(ref _axisName, value); }
|
||
|
|
}
|
||
|
|
|
||
|
|
private double _startPos;
|
||
|
|
public double StartPos
|
||
|
|
{
|
||
|
|
get { return _startPos; }
|
||
|
|
set { SetAndNotify(ref _startPos, value); }
|
||
|
|
}
|
||
|
|
|
||
|
|
private double _steps = 1.0d;
|
||
|
|
public double Steps
|
||
|
|
{
|
||
|
|
get { return _steps; }
|
||
|
|
set { SetAndNotify(ref _steps, value); }
|
||
|
|
}
|
||
|
|
|
||
|
|
private int _stepsCount = 5;
|
||
|
|
public int StepsCount
|
||
|
|
{
|
||
|
|
get { return _stepsCount; }
|
||
|
|
set { SetAndNotify(ref _stepsCount, value); }
|
||
|
|
}
|
||
|
|
|
||
|
|
private double _jumpPos = 1.0d;
|
||
|
|
public double JumpPos
|
||
|
|
{
|
||
|
|
get { return _jumpPos; }
|
||
|
|
set { SetAndNotify(ref _jumpPos, value); }
|
||
|
|
}
|
||
|
|
|
||
|
|
private int _workCount = 1;
|
||
|
|
public int WorkCount
|
||
|
|
{
|
||
|
|
get { return _workCount; }
|
||
|
|
set { SetAndNotify(ref _workCount, value); }
|
||
|
|
}
|
||
|
|
|
||
|
|
private double _speed = 5.0d;
|
||
|
|
public double Speed
|
||
|
|
{
|
||
|
|
get { return _speed; }
|
||
|
|
set { SetAndNotify(ref _speed, value); }
|
||
|
|
}
|
||
|
|
|
||
|
|
private double _dwellTime = 0.5d;
|
||
|
|
public double DwellTime
|
||
|
|
{
|
||
|
|
get { return _dwellTime; }
|
||
|
|
set { SetAndNotify(ref _dwellTime, value); }
|
||
|
|
}
|
||
|
|
|
||
|
|
[JsonIgnore]
|
||
|
|
public override string Dir => Paths.CalibSettingPath;
|
||
|
|
|
||
|
|
[JsonIgnore]
|
||
|
|
public override string FileName => "LaserCompensationSetting.json";
|
||
|
|
|
||
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
||
|
|
|
||
|
|
public void LoadFromFile()
|
||
|
|
{
|
||
|
|
Read();
|
||
|
|
}
|
||
|
|
|
||
|
|
public void SaveToFile()
|
||
|
|
{
|
||
|
|
Write();
|
||
|
|
}
|
||
|
|
|
||
|
|
protected bool SetAndNotify<T>(ref T field, T value, [CallerMemberName] string propertyName = null)
|
||
|
|
{
|
||
|
|
if (Equals(field, value))
|
||
|
|
{
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
field = value;
|
||
|
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|