添加 MX-PD-盘古 项目文件

将 MX-PD-盘古 - new 目录下的所有文件添加到主仓库
This commit is contained in:
Shi.Ji
2026-05-18 11:43:09 +08:00
parent 03632a379d
commit e31d3560bb
739 changed files with 99783 additions and 0 deletions

View File

@@ -0,0 +1,110 @@
using MainShell.Filewritable;
using MXJM.FileWritable;
using Stylet;
using System.Collections.Generic;
namespace MainShell.ParaSetting.Model
{
public class AxisSoftLimitSetting : JsonFileWritableBase
{
private List<AxisSoftLimitItem> _axisSoftLimitItems = new List<AxisSoftLimitItem>();
public override string Dir => Paths.CalibSettingPath;
public override string FileName => "AxisSoftLimitSetting.json";
public List<AxisSoftLimitItem> AxisSoftLimitItems
{
get
{
return _axisSoftLimitItems;
}
set
{
_axisSoftLimitItems = value ?? new List<AxisSoftLimitItem>();
}
}
}
public class AxisSoftLimitItem : PropertyChangedBase
{
private string _axisName;
private string _cardName;
private int _cardNum;
private int _axisNum;
private double _negativeSoftLimit;
private double _positiveSoftLimit;
public string AxisName
{
get
{
return _axisName;
}
set
{
SetAndNotify(ref _axisName, value);
}
}
public string CardName
{
get
{
return _cardName;
}
set
{
SetAndNotify(ref _cardName, value);
}
}
public int CardNum
{
get
{
return _cardNum;
}
set
{
SetAndNotify(ref _cardNum, value);
}
}
public int AxisNum
{
get
{
return _axisNum;
}
set
{
SetAndNotify(ref _axisNum, value);
}
}
public double NegativeSoftLimit
{
get
{
return _negativeSoftLimit;
}
set
{
SetAndNotify(ref _negativeSoftLimit, value);
}
}
public double PositiveSoftLimit
{
get
{
return _positiveSoftLimit;
}
set
{
SetAndNotify(ref _positiveSoftLimit, value);
}
}
}
}

View File

@@ -0,0 +1,447 @@
using MwFramework.Controls.UIControl;
using MwFramework.ManagerService;
using Stylet;
using System.ComponentModel.Composition;
namespace MainShell.ParaSetting.Model
{
[Export(typeof(IParameter))]
public class DeviceFoundationSetting : ParameterBase
{
public DeviceFoundationSetting()
{
SaveSettingItem = new DeviceSaveSettingItem();
CameraSettingItem = new DeviceCameraSettingItem();
}
public DeviceSaveSettingItem SaveSettingItem { get; set; }
public DeviceCameraSettingItem CameraSettingItem { get; set; }
public override void Copy(IParameter source)
{
DeviceFoundationSetting setting = source as DeviceFoundationSetting;
if (setting == null)
{
return;
}
if (SaveSettingItem == null)
{
SaveSettingItem = new DeviceSaveSettingItem();
}
if (CameraSettingItem == null)
{
CameraSettingItem = new DeviceCameraSettingItem();
}
SaveSettingItem.CopyFrom(setting.SaveSettingItem);
CameraSettingItem.CopyFrom(setting.CameraSettingItem);
}
}
public class DeviceSaveSettingItem : PropertyChangedBase, IParameterItem
{
private FileSaveSettingItem _fileSaveSetting = new FileSaveSettingItem();
public FileSaveSettingItem FileSaveSetting
{
get
{
return _fileSaveSetting;
}
set
{
SetAndNotify(ref _fileSaveSetting, value);
}
}
private ImageSaveSettingItem _imageSaveSetting = new ImageSaveSettingItem();
public ImageSaveSettingItem ImageSaveSetting
{
get
{
return _imageSaveSetting;
}
set
{
SetAndNotify(ref _imageSaveSetting, value);
}
}
public void CopyFrom(DeviceSaveSettingItem source)
{
if (source == null)
{
return;
}
if (FileSaveSetting == null)
{
FileSaveSetting = new FileSaveSettingItem();
}
if (ImageSaveSetting == null)
{
ImageSaveSetting = new ImageSaveSettingItem();
}
FileSaveSetting.CopyFrom(source.FileSaveSetting);
ImageSaveSetting.CopyFrom(source.ImageSaveSetting);
}
public IParameterItem Clone()
{
DeviceSaveSettingItem item = new DeviceSaveSettingItem();
item.CopyFrom(this);
return item;
}
}
public class FileSaveSettingItem : PropertyChangedBase, IParameterItem
{
private bool _isSaveEnabled = true;
public bool IsSaveEnabled
{
get
{
return _isSaveEnabled;
}
set
{
SetAndNotify(ref _isSaveEnabled, value);
}
}
private string _saveFolder = @"D:\RecordData\File\";
public string SaveFolder
{
get
{
return _saveFolder;
}
set
{
SetAndNotify(ref _saveFolder, value);
}
}
private bool _isCreateDateFolder = true;
public bool IsCreateDateFolder
{
get
{
return _isCreateDateFolder;
}
set
{
SetAndNotify(ref _isCreateDateFolder, value);
}
}
public void CopyFrom(FileSaveSettingItem source)
{
if (source == null)
{
return;
}
IsSaveEnabled = source.IsSaveEnabled;
SaveFolder = source.SaveFolder;
IsCreateDateFolder = source.IsCreateDateFolder;
}
public IParameterItem Clone()
{
FileSaveSettingItem item = new FileSaveSettingItem();
item.CopyFrom(this);
return item;
}
}
public class ImageSaveSettingItem : PropertyChangedBase, IParameterItem
{
private bool _isSaveEnabled = true;
public bool IsSaveEnabled
{
get
{
return _isSaveEnabled;
}
set
{
SetAndNotify(ref _isSaveEnabled, value);
}
}
private string _saveFolder = @"D:\RecordData\Image\";
public string SaveFolder
{
get
{
return _saveFolder;
}
set
{
SetAndNotify(ref _saveFolder, value);
}
}
private bool _isCreateDateFolder = true;
public bool IsCreateDateFolder
{
get
{
return _isCreateDateFolder;
}
set
{
SetAndNotify(ref _isCreateDateFolder, value);
}
}
private bool _isSaveUpCameraImage = true;
public bool IsSaveUpCameraImage
{
get
{
return _isSaveUpCameraImage;
}
set
{
SetAndNotify(ref _isSaveUpCameraImage, value);
}
}
private bool _isSaveDownCameraImage = true;
public bool IsSaveDownCameraImage
{
get
{
return _isSaveDownCameraImage;
}
set
{
SetAndNotify(ref _isSaveDownCameraImage, value);
}
}
private bool _isSaveMapCameraImage = true;
public bool IsSaveMapCameraImage
{
get
{
return _isSaveMapCameraImage;
}
set
{
SetAndNotify(ref _isSaveMapCameraImage, value);
}
}
public void CopyFrom(ImageSaveSettingItem source)
{
if (source == null)
{
return;
}
IsSaveEnabled = source.IsSaveEnabled;
SaveFolder = source.SaveFolder;
IsCreateDateFolder = source.IsCreateDateFolder;
IsSaveUpCameraImage = source.IsSaveUpCameraImage;
IsSaveDownCameraImage = source.IsSaveDownCameraImage;
IsSaveMapCameraImage = source.IsSaveMapCameraImage;
}
public IParameterItem Clone()
{
ImageSaveSettingItem item = new ImageSaveSettingItem();
item.CopyFrom(this);
return item;
}
}
public class DeviceCameraSettingItem : PropertyChangedBase, IParameterItem
{
private CameraFovSettingItem _upCamera = new CameraFovSettingItem("上相机");
public CameraFovSettingItem UpCamera
{
get
{
return _upCamera;
}
set
{
SetAndNotify(ref _upCamera, value);
}
}
private CameraFovSettingItem _downCamera = new CameraFovSettingItem("下相机");
public CameraFovSettingItem DownCamera
{
get
{
return _downCamera;
}
set
{
SetAndNotify(ref _downCamera, value);
}
}
private CameraFovSettingItem _mapCamera = new CameraFovSettingItem("Map相机");
public CameraFovSettingItem MapCamera
{
get
{
return _mapCamera;
}
set
{
SetAndNotify(ref _mapCamera, value);
}
}
public void EnsureDefaultCameras()
{
if (UpCamera == null)
{
UpCamera = new CameraFovSettingItem("上相机");
}
else if (string.IsNullOrWhiteSpace(UpCamera.CameraName))
{
UpCamera.CameraName = "上相机";
}
if (DownCamera == null)
{
DownCamera = new CameraFovSettingItem("下相机");
}
else if (string.IsNullOrWhiteSpace(DownCamera.CameraName))
{
DownCamera.CameraName = "下相机";
}
if (MapCamera == null)
{
MapCamera = new CameraFovSettingItem("Map相机");
}
else if (string.IsNullOrWhiteSpace(MapCamera.CameraName))
{
MapCamera.CameraName = "Map相机";
}
}
public void CopyFrom(DeviceCameraSettingItem source)
{
if (source == null)
{
return;
}
EnsureDefaultCameras();
source.EnsureDefaultCameras();
UpCamera.CopyFrom(source.UpCamera);
DownCamera.CopyFrom(source.DownCamera);
MapCamera.CopyFrom(source.MapCamera);
}
public IParameterItem Clone()
{
DeviceCameraSettingItem item = new DeviceCameraSettingItem();
item.CopyFrom(this);
return item;
}
}
public class CameraFovSettingItem : PropertyChangedBase, IParameterItem
{
public CameraFovSettingItem()
{
}
public CameraFovSettingItem(string cameraName)
{
_cameraName = cameraName;
_fovX = 1.0;
_fovY = 1.0;
}
private string _cameraName;
public string CameraName
{
get
{
return _cameraName;
}
set
{
SetAndNotify(ref _cameraName, value);
}
}
private double _fovX;
public double FovX
{
get
{
return _fovX;
}
set
{
SetAndNotify(ref _fovX, value);
}
}
private double _fovY;
public double FovY
{
get
{
return _fovY;
}
set
{
SetAndNotify(ref _fovY, value);
}
}
public void CopyFrom(CameraFovSettingItem source)
{
if (source == null)
{
return;
}
CameraName = source.CameraName;
FovX = source.FovX;
FovY = source.FovY;
}
public IParameterItem Clone()
{
CameraFovSettingItem item = new CameraFovSettingItem();
item.CopyFrom(this);
return item;
}
}
}

View File

@@ -0,0 +1,245 @@
using MwFramework.Controls.UIControl;
using MwFramework.ManagerService;
using Stylet;
using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MainShell.ParaSetting.Model
{
[Export(typeof(IParameter))]
public class EquipmentParaSysSetting : ParameterBase
{
public SafeParaSysItem SafeParaSysItem { get; set; }=new SafeParaSysItem();
public override void Copy(IParameter source)
{
if(source is EquipmentParaSysSetting equipmentParaSys)
{
ReflectionExtension.Copy(this.SafeParaSysItem, equipmentParaSys.SafeParaSysItem);
}
}
}
public class SafeParaSysItem : PropertyChangedBase, IParameterItem
{
private double _z1GeneralSafeHeight = 200.0;
[WatchValue("Z1通用安全高度")]
public double Z1GeneralSafeHeight
{
get { return _z1GeneralSafeHeight; }
set { SetAndNotify(ref _z1GeneralSafeHeight, value); }
}
private double _z3GeneralSafeHeight = 200.0;
[WatchValue("Z3通用安全高度")]
public double Z3GeneralSafeHeight
{
get { return _z3GeneralSafeHeight; }
set { SetAndNotify(ref _z3GeneralSafeHeight, value); }
}
private double _z4GeneralSafeHeight = 200.0;
[WatchValue("Z4通用安全高度")]
public double Z4GeneralSafeHeight
{
get { return _z4GeneralSafeHeight; }
set { SetAndNotify(ref _z4GeneralSafeHeight, value); }
}
private double _z5GeneralSafeHeight = 200.0;
[WatchValue("Z5通用安全高度")]
public double Z5GeneralSafeHeight
{
get { return _z5GeneralSafeHeight; }
set { SetAndNotify(ref _z5GeneralSafeHeight, value); }
}
private double _z6GeneralSafeHeight = 200.0;
[WatchValue("Z6通用安全高度")]
public double Z6GeneralSafeHeight
{
get { return _z6GeneralSafeHeight; }
set { SetAndNotify(ref _z6GeneralSafeHeight, value); }
}
private double _z1InRingSafeHeight = 200.0;
[WatchValue("Z1环内最低安全高度")]
public double Z1InRingSafeHeight
{
get
{
return _z1InRingSafeHeight;
}
set
{
SetAndNotify(ref _z1InRingSafeHeight, value);
}
}
private double _z1OutRingSafeHeight = 100.0;
[WatchValue("Z1环外最低安全高度")]
public double Z1OutRingSafeHeight
{
get
{
return _z1OutRingSafeHeight;
}
set
{
SetAndNotify(ref _z1OutRingSafeHeight, value);
}
}
private double _z1OnRingSafeHeight = 100.0;
[WatchValue("Z1环上最低安全高度")]
public double Z1OnRingSafeHeight
{
get
{
return _z1OnRingSafeHeight;
}
set
{
SetAndNotify(ref _z1OnRingSafeHeight, value);
}
}
private double _z3OutRingSafeHeight = 100.0;
[WatchValue("Z3环外最低安全高度")]
public double Z3OutRingSafeHeight
{
get
{
return _z3OutRingSafeHeight;
}
set
{
SetAndNotify(ref _z3OutRingSafeHeight, value);
}
}
private double _z4OutRingSafeHeight = 100.0;
[WatchValue("Z4环外最低安全高度")]
public double Z4OutRingSafeHeight
{
get
{
return _z4OutRingSafeHeight;
}
set
{
SetAndNotify(ref _z4OutRingSafeHeight, value);
}
}
private double _z5OutRingSafeHeight = 100.0;
[WatchValue("Z5环外最低安全高度")]
public double Z5OutRingSafeHeight
{
get
{
return _z5OutRingSafeHeight;
}
set
{
SetAndNotify(ref _z5OutRingSafeHeight, value);
}
}
private double _z6OutRingSafeHeight = 100.0;
[WatchValue("Z6环外最低安全高度")]
public double Z6OutRingSafeHeight
{
get
{
return _z6OutRingSafeHeight;
}
set
{
SetAndNotify(ref _z6OutRingSafeHeight, value);
}
}
private double _needleReferenceX1X3Max = 100.0;
[WatchValue("刺晶头基准X1-X3最大值")]
public double NeedleReferenceX1X3Max
{
get { return _needleReferenceX1X3Max; }
set { SetAndNotify(ref _needleReferenceX1X3Max, value); }
}
private double _needleReferenceX1X3Min = 0.0;
[WatchValue("刺晶头基准X1-X3最小值")]
public double NeedleReferenceX1X3Min
{
get { return _needleReferenceX1X3Min; }
set { SetAndNotify(ref _needleReferenceX1X3Min, value); }
}
private double _positionLightReferenceX1X3Max = 100.0;
[WatchValue("定位光源基准X1-X3最大值")]
public double PositionLightReferenceX1X3Max
{
get { return _positionLightReferenceX1X3Max; }
set { SetAndNotify(ref _positionLightReferenceX1X3Max, value); }
}
private double _positionLightReferenceX1X3Min = 0.0;
[WatchValue("定位光源基准X1-X3最小值")]
public double PositionLightReferenceX1X3Min
{
get { return _positionLightReferenceX1X3Min; }
set { SetAndNotify(ref _positionLightReferenceX1X3Min, value); }
}
private double _wideFieldLightX2X3Max = 100.0;
[WatchValue("大视野光源X2-X3最大值")]
public double WideFieldLightX2X3Max
{
get { return _wideFieldLightX2X3Max; }
set { SetAndNotify(ref _wideFieldLightX2X3Max, value); }
}
private double _wideFieldLightX2X3Min = 0.0;
[WatchValue("大视野光源X2-X3最小值")]
public double WideFieldLightX2X3Min
{
get { return _wideFieldLightX2X3Min; }
set { SetAndNotify(ref _wideFieldLightX2X3Min, value); }
}
private double _wsInnerRingRadius = 0.0;
[WatchValue("WS内环半径")]
public double WsInnerRingRadius
{
get { return _wsInnerRingRadius; }
set { SetAndNotify(ref _wsInnerRingRadius, value); }
}
private double _needleRadius = 0.0;
[WatchValue("刺晶头半径")]
public double NeedleRadius
{
get { return _needleRadius; }
set { SetAndNotify(ref _needleRadius, value); }
}
private double _needleCalibSafeHeight;
[WatchValue("刺晶头对刀安全高度")]
public double NeedleCalibSafeHeight
{
get { return _needleCalibSafeHeight; }
set { SetAndNotify(ref _needleCalibSafeHeight, value); }
}
public IParameterItem Clone()
{
return this.MemberwiseClone() as IParameterItem;
}
}
}

View File

@@ -0,0 +1,34 @@
using MainShell.Models;
using MwFramework.ManagerService;
using Stylet;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MainShell.ParaSetting.Model
{
public class EquipmentPointSetting : ParameterBase
{
}
public class EquipmentPointItem : PropertyChangedBase, IParameterItem
{
private double _substrateLoadY1;
public double SubstrateLoadY1
{
get { return _substrateLoadY1; }
set { SetAndNotify(ref _substrateLoadY1, value); }
}
public IParameterItem Clone()
{
return (IParameterItem)this.MemberwiseClone();
}
}
}

View File

@@ -0,0 +1,220 @@
using MainShell.Common;
using MwFramework.Controls.UIControl;
using MwFramework.ManagerService;
using Stylet;
namespace MainShell.ParaSetting.Model
{
public abstract class RunProcessParameterItemBase : PropertyChangedBase, IParameterItem
{
private bool _enableProcess;
public bool EnableProcess
{
get { return _enableProcess; }
set { SetAndNotify(ref _enableProcess, value); }
}
public IParameterItem Clone()
{
return this.MemberwiseClone() as IParameterItem;
}
}
public class ProductLoadProcessParameter : RunProcessParameterItemBase
{
}
public class ProductUnloadProcessParameter : RunProcessParameterItemBase
{
}
public class ProductPositionProcessParameter : RunProcessParameterItemBase
{
private double _glassMarkDisMaxOffset = 0.01;
[WatchValue("<22><>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>")]
public double GlassMarkDisMaxOffset
{
get { return _glassMarkDisMaxOffset; }
set { SetAndNotify(ref _glassMarkDisMaxOffset, value); }
}
private double _pcbLimitAngle = 0.5;
public double PcbLimitAngle
{
get { return _pcbLimitAngle; }
set { SetAndNotify(ref _pcbLimitAngle, value); }
}
}
public class ProductHeightMeasureProcessParameter : RunProcessParameterItemBase
{
private double _heightMeasureLimit = 0.04;
public double HeightMeasureLimit
{
get { return _heightMeasureLimit; }
set { SetAndNotify(ref _heightMeasureLimit, value); }
}
private bool _useHeightOffset = true;
[WatchValue("ʹ<>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>")]
public bool UseHeightOffset
{
get { return _useHeightOffset; }
set { SetAndNotify(ref _useHeightOffset, value); }
}
}
public class WaferLoadProcessParameter : RunProcessParameterItemBase
{
}
public class WaferUnloadProcessParameter : RunProcessParameterItemBase
{
}
public class WaferStraightenProcessParameter : RunProcessParameterItemBase
{
private bool _useSingleStraighten;
[WatchValue("ʹ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>ֱ")]
public bool UseSingleStraighten
{
get { return _useSingleStraighten; }
set { SetAndNotify(ref _useSingleStraighten, value); }
}
private bool _straightAngleDirX = true;
[WatchValue("<22><>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>X")]
public bool StraightAngleDirX
{
get { return _straightAngleDirX; }
set { SetAndNotify(ref _straightAngleDirX, value); }
}
private int _maxBadDieCount = 100;
public int MaxBadDieCount
{
get { return _maxBadDieCount; }
set { SetAndNotify(ref _maxBadDieCount, value); }
}
}
public class DieRecognizeProcessParameter : RunProcessParameterItemBase
{
private bool _useSingleWaferPosition;
[WatchValue("ʹ<>õ<EFBFBD><C3B5><EFBFBD>оƬ<D0BE><C6AC>λ")]
public bool UseSingleWaferPosition
{
get { return _useSingleWaferPosition; }
set { SetAndNotify(ref _useSingleWaferPosition, value); }
}
private bool _useWaferWaveCheck;
public bool UseWaferWaveCheck
{
get { return _useWaferWaveCheck; }
set { SetAndNotify(ref _useWaferWaveCheck, value); }
}
private bool _changePid = true;
[WatchValue("PID<49>л<EFBFBD>")]
public bool ChangePid
{
get { return _changePid; }
set { SetAndNotify(ref _changePid, value); }
}
private double _dieAngleThreshold = 3;
[WatchValue("<22><><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD>ֵ")]
public double DieAngleThreshold
{
get { return _dieAngleThreshold; }
set { SetAndNotify(ref _dieAngleThreshold, value); }
}
private WaferScanMode _waferScanMode = WaferScanMode.FullScan;
[WatchValue("оƬɨ<C6AC><C9A8>ģʽ")]
public WaferScanMode WaferScanMode
{
get { return _waferScanMode; }
set { SetAndNotify(ref _waferScanMode, value); }
}
}
public class BondingProcessParameter : RunProcessParameterItemBase
{
private bool _isNeedleUpWhenBonding;
[WatchValue("<22><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>̧<EFBFBD><CCA7>")]
public bool IsNeedleUpWhenBonding
{
get { return _isNeedleUpWhenBonding; }
set { SetAndNotify(ref _isNeedleUpWhenBonding, value); }
}
private bool _useAllDie;
[WatchValue("<22><><EFBFBD><EFBFBD>100%<25><><EFBFBD><EFBFBD>")]
public bool UseAllDie
{
get { return _useAllDie; }
set { SetAndNotify(ref _useAllDie, value); }
}
private bool _useAirCoolAllProduce = true;
[WatchValue("ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")]
public bool UseAirCoolAllProduce
{
get { return _useAirCoolAllProduce; }
set { SetAndNotify(ref _useAirCoolAllProduce, value); }
}
}
public class RecheckProcessParameter : RunProcessParameterItemBase
{
private bool _useIrregularRecheck;
[WatchValue("<22>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD>򸴼<EFBFBD>")]
public bool UseIrregularRecheck
{
get { return _useIrregularRecheck; }
set { SetAndNotify(ref _useIrregularRecheck, value); }
}
}
public class GlobalRunParameter : RunProcessParameterItemBase
{
private int _needleCheckBondingGlassNum;
[WatchValue("<22>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҪBonding<6E><67><EFBFBD><EFBFBD>")]
public int NeedleCheckBondingGlassNum
{
get { return _needleCheckBondingGlassNum; }
set { SetAndNotify(ref _needleCheckBondingGlassNum, value); }
}
private bool _isUseMesLeiMan;
[WatchValue("<22>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>MES-<2D><><EFBFBD><EFBFBD>")]
public bool IsUseMesLeiMan
{
get { return _isUseMesLeiMan; }
set { SetAndNotify(ref _isUseMesLeiMan, value); }
}
private RunningMode _runningMode = RunningMode.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
[WatchValue("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")]
public RunningMode RunningMode
{
get { return _runningMode; }
set { SetAndNotify(ref _runningMode, value); }
}
}
}

View File

@@ -0,0 +1,177 @@
using MainShell.Common;
using MwFramework.Controls.UIControl;
using MwFramework.ManagerService;
using Newtonsoft.Json;
using Stylet;
using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;
using static MainShell.ParaSetting.Model.SpeedSetting;
namespace MainShell.ParaSetting.Model
{
[Export(typeof(IParameter))]
public class RunSetting : ParameterBase
{
public ProductLoadProcessParameter ProductLoadProcessParameter { get; set; } = new ProductLoadProcessParameter();
public ProductUnloadProcessParameter ProductUnloadProcessParameter { get; set; } = new ProductUnloadProcessParameter();
public ProductPositionProcessParameter ProductPositionProcessParameter { get; set; } = new ProductPositionProcessParameter();
public ProductHeightMeasureProcessParameter ProductHeightMeasureProcessParameter { get; set; } = new ProductHeightMeasureProcessParameter();
public WaferLoadProcessParameter WaferLoadProcessParameter { get; set; } = new WaferLoadProcessParameter();
public WaferUnloadProcessParameter WaferUnloadProcessParameter { get; set; } = new WaferUnloadProcessParameter();
public WaferStraightenProcessParameter WaferStraightenProcessParameter { get; set; } = new WaferStraightenProcessParameter();
public DieRecognizeProcessParameter DieRecognizeProcessParameter { get; set; } = new DieRecognizeProcessParameter();
public BondingProcessParameter BondingProcessParameter { get; set; } = new BondingProcessParameter();
public RecheckProcessParameter RecheckProcessParameter { get; set; } = new RecheckProcessParameter();
public GlobalRunParameter GlobalRunParameter { get; set; } = new GlobalRunParameter();
[JsonIgnore]
[XmlIgnore]
public FlowControlItem FlowControlItem
{
get
{
FlowControlItem item = new FlowControlItem();
item.SubStrateLoadEnable = ProductLoadProcessParameter.EnableProcess;
item.SubStrateUnLoadEnable = ProductUnloadProcessParameter.EnableProcess;
item.SubstratePositionEnable = ProductPositionProcessParameter.EnableProcess;
item.SubstrateHeightMeasureEnable = ProductHeightMeasureProcessParameter.EnableProcess;
item.WaferLoadEnable = WaferLoadProcessParameter.EnableProcess;
item.WaferUnLoadEnable = WaferUnloadProcessParameter.EnableProcess;
item.WaferStraightenEnable = WaferStraightenProcessParameter.EnableProcess;
item.WaferPositionEnable = DieRecognizeProcessParameter.EnableProcess;
item.BondingEnable = BondingProcessParameter.EnableProcess;
item.SubstrateRecheckEnable = RecheckProcessParameter.EnableProcess;
return item;
}
set
{
if (value == null)
{
return;
}
ProductLoadProcessParameter.EnableProcess = value.SubStrateLoadEnable;
ProductUnloadProcessParameter.EnableProcess = value.SubStrateUnLoadEnable;
ProductPositionProcessParameter.EnableProcess = value.SubstratePositionEnable;
ProductHeightMeasureProcessParameter.EnableProcess = value.SubstrateHeightMeasureEnable;
WaferLoadProcessParameter.EnableProcess = value.WaferLoadEnable;
WaferUnloadProcessParameter.EnableProcess = value.WaferUnLoadEnable;
WaferStraightenProcessParameter.EnableProcess = value.WaferStraightenEnable;
DieRecognizeProcessParameter.EnableProcess = value.WaferPositionEnable;
BondingProcessParameter.EnableProcess = value.BondingEnable;
RecheckProcessParameter.EnableProcess = value.SubstrateRecheckEnable;
}
}
public override void Copy(IParameter source)
{
if (source is RunSetting setting)
{
ReflectionExtension.Copy(ProductLoadProcessParameter, setting.ProductLoadProcessParameter);
ReflectionExtension.Copy(ProductUnloadProcessParameter, setting.ProductUnloadProcessParameter);
ReflectionExtension.Copy(ProductPositionProcessParameter, setting.ProductPositionProcessParameter);
ReflectionExtension.Copy(ProductHeightMeasureProcessParameter, setting.ProductHeightMeasureProcessParameter);
ReflectionExtension.Copy(WaferLoadProcessParameter, setting.WaferLoadProcessParameter);
ReflectionExtension.Copy(WaferUnloadProcessParameter, setting.WaferUnloadProcessParameter);
ReflectionExtension.Copy(WaferStraightenProcessParameter, setting.WaferStraightenProcessParameter);
ReflectionExtension.Copy(DieRecognizeProcessParameter, setting.DieRecognizeProcessParameter);
ReflectionExtension.Copy(BondingProcessParameter, setting.BondingProcessParameter);
ReflectionExtension.Copy(RecheckProcessParameter, setting.RecheckProcessParameter);
ReflectionExtension.Copy(GlobalRunParameter, setting.GlobalRunParameter);
}
}
}
public class FlowControlItem : PropertyChangedBase, IParameterItem
{
private bool _substrateLoadEnable;
public bool SubStrateLoadEnable
{
get { return _substrateLoadEnable; }
set { SetAndNotify(ref _substrateLoadEnable, value); }
}
private bool _substrateUnLoadEnable;
public bool SubStrateUnLoadEnable
{
get { return _substrateUnLoadEnable; }
set { SetAndNotify(ref _substrateUnLoadEnable, value); }
}
private bool _substratePositionEnable;
public bool SubstratePositionEnable
{
get { return _substratePositionEnable; }
set { SetAndNotify(ref _substratePositionEnable, value); }
}
private bool _substrateHeightMeasureEnable;
public bool SubstrateHeightMeasureEnable
{
get { return _substrateHeightMeasureEnable; }
set { SetAndNotify(ref _substrateHeightMeasureEnable, value); }
}
private bool _waferLoadEnable;
public bool WaferLoadEnable
{
get { return _waferLoadEnable; }
set { SetAndNotify(ref _waferLoadEnable, value); }
}
private bool _waferUnLoadEnable;
public bool WaferUnLoadEnable
{
get { return _waferUnLoadEnable; }
set { SetAndNotify(ref _waferUnLoadEnable, value); }
}
private bool _waferStraightenEnable;
public bool WaferStraightenEnable
{
get { return _waferStraightenEnable; }
set { SetAndNotify(ref _waferStraightenEnable, value); }
}
private bool _waferPositionEnable;
public bool WaferPositionEnable
{
get { return _waferPositionEnable; }
set { SetAndNotify(ref _waferPositionEnable, value); }
}
private bool _bondingEnable;
public bool BondingEnable
{
get { return _bondingEnable; }
set { SetAndNotify(ref _bondingEnable, value); }
}
private bool _substrateRecheckEnable;
public bool SubstrateRecheckEnable
{
get { return _substrateRecheckEnable; }
set { SetAndNotify(ref _substrateRecheckEnable, value); }
}
public IParameterItem Clone()
{
return this.MemberwiseClone() as IParameterItem;
}
}
}

View File

@@ -0,0 +1,136 @@
using MainShell.Common;
using MainShell.Hardware;
using MwFramework.Controls.UIControl;
using MwFramework.Device;
using MwFramework.ManagerService;
using Stylet;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.ComponentModel.Composition;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MainShell.ParaSetting.Model
{
[Export(typeof(IParameter))]
public class SpeedSetting : ParameterBase
{
[Export(typeof(IParameter))]
public class SpeedParaSysSetting : ParameterBase
{
[WatchValue("速度参数")]
public SpeedTypeItemCollection SpeedTypeItemCollection { get; set; } = new SpeedTypeItemCollection();
public SpeedType CurrentSpeedType { get; set; } = SpeedType.Low;
public override void Copy(IParameter source)
{
if (source is SpeedParaSysSetting setting)
{
ReflectionExtension.Copy(SpeedTypeItemCollection, setting.SpeedTypeItemCollection);
CurrentSpeedType = setting.CurrentSpeedType;
}
}
}
public class SpeedTypeItemCollection : PropertyChangedBase, IParameterItem
{
private ObservableCollection<SpeedTypeItem> _speedTypeItemList = new ObservableCollection<SpeedTypeItem>();
[WatchValue("SpeedTypeItemList")]
public ObservableCollection<SpeedTypeItem> SpeedTypeItemList
{
get { return _speedTypeItemList; }
set { if (_speedTypeItemList != value) { _speedTypeItemList = value; OnPropertyChanged(nameof(SpeedTypeItemList)); } }
}
private SpeedTypeItem _currentSelectSpeedTypeItemList = new SpeedTypeItem();
public SpeedTypeItem CurrentSelectSpeedTypeItemList
{
get { return _currentSelectSpeedTypeItemList; }
set { if (_currentSelectSpeedTypeItemList != value) { _currentSelectSpeedTypeItemList = value; OnPropertyChanged(nameof(CurrentSelectSpeedTypeItemList)); } }
}
public IParameterItem Clone()
{
return this.MemberwiseClone() as IParameterItem;
}
}
public class SpeedTypeItem : PropertyChangedBase, IParameterItem
{
private string _axisName;
[WatchValue("轴名称")]
public string AxisName
{
get { return _axisName; }
set { SetAndNotify(ref _axisName, value); }
}
private double _speed = 10.0;
[WatchValue("速度")]
public double Speed
{
get { return _speed; }
set { if (_speed != value) { _speed = value; OnPropertyChanged(nameof(Speed)); } }
}
private double _acc = 100.0;
[WatchValue("加速度")]
public double Acc
{
get { return _acc; }
set { if (_acc != value) { _acc = value; OnPropertyChanged(nameof(Acc)); } }
}
private double _dec = 100.0;
[WatchValue("减速度")]
public double Dec
{
get { return _dec; }
set { if (_dec != value) { _dec = value; OnPropertyChanged(nameof(Dec)); } }
}
private double _jerk = 1000.0;
[WatchValue("加加速度")]
public double Jerk
{
get { return _jerk; }
set { if (_jerk != value) { _jerk = value; OnPropertyChanged(nameof(Jerk)); } }
}
private double _lowPercent = 20;
[WatchValue("低速")]
public double LowPercent
{
get { return _lowPercent; }
set { LimitPercent(ref value); SetAndNotify(ref _lowPercent, value); }
}
private double _medianPercent = 50;
[WatchValue("中速")]
public double MedianPercent
{
get { return _medianPercent; }
set { LimitPercent(ref value); SetAndNotify(ref _medianPercent, value); }
}
private double _highPercent = 100;
[WatchValue("高速")]
public double HighPercent
{
get { return _highPercent; }
set { LimitPercent(ref value); SetAndNotify(ref _highPercent, value); }
}
private void LimitPercent(ref double percent)
{
if (percent < 0) percent = 1;
else if (percent > 100) percent = 100;
}
public IParameterItem Clone()
{
return this.MemberwiseClone() as IParameterItem;
}
}
}
}