582 lines
20 KiB
C#
582 lines
20 KiB
C#
|
|
using MainShell.Common;
|
|||
|
|
using MainShell.EventArgsFolder;
|
|||
|
|
using MainShell.Hardware;
|
|||
|
|
using MainShell.HeightMeasure.Model;
|
|||
|
|
using MainShell.HeightMeasure.Service;
|
|||
|
|
using MainShell.Log;
|
|||
|
|
using MainShell.Parameter;
|
|||
|
|
using MaxwellControl.Tools;
|
|||
|
|
using MaxwellFramework.Core.Interfaces;
|
|||
|
|
using MwFramework.Controls.Components;
|
|||
|
|
using MwFramework.Controls.UIControl;
|
|||
|
|
using MwFramework.Device;
|
|||
|
|
using MwFramework.ManagerService;
|
|||
|
|
using MXJM.Parameter.Maintance;
|
|||
|
|
using Stylet;
|
|||
|
|
using StyletIoC;
|
|||
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Reflection;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Threading;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
using System.Windows;
|
|||
|
|
using System.Windows.Input;
|
|||
|
|
using MessageBox = MaxwellControl.Controls.MessageBox;
|
|||
|
|
|
|||
|
|
namespace MainShell.HeightMeasure.ViewModel
|
|||
|
|
{
|
|||
|
|
public class HeightViewModel : Screen, IPage, IHandle<NeedleCalibrationHeightTestEventArgs>, IHandle<DiastimeterSampleChangedEventArgs>
|
|||
|
|
{
|
|||
|
|
public string Name { get; set; } = "HeightMaint";
|
|||
|
|
|
|||
|
|
private ParameterHelper _parameterHelper = new ParameterHelper();
|
|||
|
|
public ParameterHelper ParameterHelper
|
|||
|
|
{
|
|||
|
|
get
|
|||
|
|
{
|
|||
|
|
return _parameterHelper;
|
|||
|
|
}
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_parameterHelper = value;
|
|||
|
|
OnPropertyChanged(nameof(ParameterHelper));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//private bool _isHaveDia;
|
|||
|
|
///// <summary>
|
|||
|
|
///// 是否有激光测距仪
|
|||
|
|
///// </summary>
|
|||
|
|
//public bool IsHaveDia
|
|||
|
|
//{
|
|||
|
|
// get
|
|||
|
|
// {
|
|||
|
|
// return _isHaveDia;
|
|||
|
|
// }
|
|||
|
|
// set
|
|||
|
|
// {
|
|||
|
|
// _isHaveDia = value;
|
|||
|
|
// OnPropertyChanged(nameof(IsHaveDia));
|
|||
|
|
// }
|
|||
|
|
//}
|
|||
|
|
|
|||
|
|
private IHeightMeasure _heightMeasureManager;
|
|||
|
|
public IHeightMeasure HeightMeasureManager
|
|||
|
|
{
|
|||
|
|
get
|
|||
|
|
{
|
|||
|
|
return _heightMeasureManager;
|
|||
|
|
}
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_heightMeasureManager = value;
|
|||
|
|
OnPropertyChanged(nameof(Parameter));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private HeightBaseSetting _heightTestSetting = new HeightBaseSetting();
|
|||
|
|
public HeightBaseSetting HeightTestSetting
|
|||
|
|
{
|
|||
|
|
get
|
|||
|
|
{
|
|||
|
|
return _heightTestSetting;
|
|||
|
|
}
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_heightTestSetting = value;
|
|||
|
|
OnPropertyChanged(nameof(Parameter));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private HeightBaseItem _heightBaseItem = new HeightBaseItem();
|
|||
|
|
public HeightBaseItem HeightBaseItem
|
|||
|
|
{
|
|||
|
|
get
|
|||
|
|
{
|
|||
|
|
return _heightBaseItem;
|
|||
|
|
}
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_heightBaseItem = value;
|
|||
|
|
OnPropertyChanged(nameof(HeightBaseItem));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//private CapHeightItem _capHeightItem = new CapHeightItem();
|
|||
|
|
//public CapHeightItem CapHeightItem
|
|||
|
|
//{
|
|||
|
|
// get
|
|||
|
|
// {
|
|||
|
|
// return _capHeightItem;
|
|||
|
|
// }
|
|||
|
|
// set
|
|||
|
|
// {
|
|||
|
|
// _capHeightItem = value;
|
|||
|
|
// OnPropertyChanged(nameof(CapHeightItem));
|
|||
|
|
// }
|
|||
|
|
//}
|
|||
|
|
|
|||
|
|
private DiaHeightItem _diaHeightItem = new DiaHeightItem();
|
|||
|
|
public DiaHeightItem DiaHeightItem
|
|||
|
|
{
|
|||
|
|
get
|
|||
|
|
{
|
|||
|
|
return _diaHeightItem;
|
|||
|
|
}
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_diaHeightItem = value;
|
|||
|
|
OnPropertyChanged(nameof(DiaHeightItem));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private TeachPoint _selectedGlassPoint = null;
|
|||
|
|
public TeachPoint SelectedGlassPoint
|
|||
|
|
{
|
|||
|
|
get
|
|||
|
|
{
|
|||
|
|
return _selectedGlassPoint;
|
|||
|
|
}
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_selectedGlassPoint = value;
|
|||
|
|
OnPropertyChanged(nameof(SelectedGlassPoint));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private TeachPoint _selectedWaferPoint = null;
|
|||
|
|
public TeachPoint SelectedWaferPoint
|
|||
|
|
{
|
|||
|
|
get
|
|||
|
|
{
|
|||
|
|
return _selectedWaferPoint;
|
|||
|
|
}
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_selectedWaferPoint = value;
|
|||
|
|
OnPropertyChanged(nameof(SelectedWaferPoint));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//private GlassCraftParItem _glassCraftParItem;
|
|||
|
|
//public GlassCraftParItem GlassCraftParItem
|
|||
|
|
//{
|
|||
|
|
// get { return _glassCraftParItem; }
|
|||
|
|
// set { _glassCraftParItem = value; OnPropertyChanged(nameof(GlassCraftParItem)); }
|
|||
|
|
//}
|
|||
|
|
|
|||
|
|
|
|||
|
|
//private GlassRecipeContentItem _glassRecipeContentItem;
|
|||
|
|
//public GlassRecipeContentItem GlassRecipeContentItem
|
|||
|
|
//{
|
|||
|
|
// get { return _glassRecipeContentItem; }
|
|||
|
|
// set { if (_glassRecipeContentItem != value) { _glassRecipeContentItem = value; OnPropertyChanged(nameof(GlassRecipeContentItem)); } }
|
|||
|
|
//}
|
|||
|
|
|
|||
|
|
private HardwareManager _hardware;
|
|||
|
|
private readonly GlobalParameterContext _gp;
|
|||
|
|
private readonly HeightMeasureMotionService _heightMeasureMotionService;
|
|||
|
|
private readonly IEventAggregator _eventAggregator;
|
|||
|
|
private readonly DiastimeterPollingService _diastimeterPollingService;
|
|||
|
|
private double _currentDiastimeterDistance;
|
|||
|
|
private string _diastimeterStatus;
|
|||
|
|
private bool _isDiastimeterPolling;
|
|||
|
|
|
|||
|
|
public HeightViewModel(GlobalParameterContext gp, HardwareManager hardware, IParameterManager parameterManager, IHeightMeasure heightMeasure, HeightMeasureMotionService heightMeasureMotionService, IEventAggregator eventAggregator, DiastimeterPollingService diastimeterPollingService)
|
|||
|
|
{
|
|||
|
|
_gp = gp;
|
|||
|
|
_hardware = hardware;
|
|||
|
|
_heightMeasureMotionService = heightMeasureMotionService ?? throw new ArgumentNullException(nameof(heightMeasureMotionService));
|
|||
|
|
_eventAggregator = eventAggregator ?? throw new ArgumentNullException(nameof(eventAggregator));
|
|||
|
|
_diastimeterPollingService = diastimeterPollingService ?? throw new ArgumentNullException(nameof(diastimeterPollingService));
|
|||
|
|
var _paramlist = parameterManager as IParamList;
|
|||
|
|
HeightTestSetting = _paramlist.GetParameter<HeightBaseSetting>();
|
|||
|
|
HeightBaseItem = HeightTestSetting.HeightBaseItem;
|
|||
|
|
DiaHeightItem = HeightTestSetting.DiaHeightItem;
|
|||
|
|
HeightMeasureManager = heightMeasure;
|
|||
|
|
DiastimeterStatus = "未启动";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public double CurrentDiastimeterDistance
|
|||
|
|
{
|
|||
|
|
get
|
|||
|
|
{
|
|||
|
|
return _currentDiastimeterDistance;
|
|||
|
|
}
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_currentDiastimeterDistance = value;
|
|||
|
|
OnPropertyChanged(nameof(CurrentDiastimeterDistance));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public string DiastimeterStatus
|
|||
|
|
{
|
|||
|
|
get
|
|||
|
|
{
|
|||
|
|
return _diastimeterStatus;
|
|||
|
|
}
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_diastimeterStatus = value;
|
|||
|
|
OnPropertyChanged(nameof(DiastimeterStatus));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public bool IsDiastimeterPolling
|
|||
|
|
{
|
|||
|
|
get
|
|||
|
|
{
|
|||
|
|
return _isDiastimeterPolling;
|
|||
|
|
}
|
|||
|
|
set
|
|||
|
|
{
|
|||
|
|
_isDiastimeterPolling = value;
|
|||
|
|
OnPropertyChanged(nameof(IsDiastimeterPolling));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
protected override void OnInitialActivate()
|
|||
|
|
{
|
|||
|
|
base.OnInitialActivate();
|
|||
|
|
_eventAggregator.Subscribe(this);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
protected override void OnDeactivate()
|
|||
|
|
{
|
|||
|
|
_eventAggregator.Unsubscribe(this);
|
|||
|
|
_diastimeterPollingService.Stop();
|
|||
|
|
IsDiastimeterPolling = false;
|
|||
|
|
base.OnDeactivate();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void StartDiastimeterPolling()
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
_diastimeterPollingService.Start();
|
|||
|
|
IsDiastimeterPolling = true;
|
|||
|
|
DiastimeterStatus = "采集中";
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
DiastimeterStatus = $"启动失败:{ex.Message}";
|
|||
|
|
LogManager.LogSysError(ex, true);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void StopDiastimeterPolling()
|
|||
|
|
{
|
|||
|
|
_diastimeterPollingService.Stop();
|
|||
|
|
IsDiastimeterPolling = false;
|
|||
|
|
DiastimeterStatus = "已停止";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#region 第一步
|
|||
|
|
public void btnMoveCZAndStagePlatform()
|
|||
|
|
{
|
|||
|
|
if (MessageBox.Show("是否移动到当前位置", null, "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel) == MessageBoxResult.OK)
|
|||
|
|
{
|
|||
|
|
CommonUti.RunOnUi(() =>
|
|||
|
|
{
|
|||
|
|
_heightMeasureMotionService.MoveCalibrationAndStagePlatformHeights(HeightBaseItem.CZCalibrationHeight, HeightBaseItem.StageDatumHeight);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region 第二步
|
|||
|
|
public void btnReadAvoidancePosition()
|
|||
|
|
{
|
|||
|
|
if (MessageBox.Show("是否读取当前位置", null, "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel) == MessageBoxResult.OK)
|
|||
|
|
{
|
|||
|
|
CommonUti.RunOnUi(() =>
|
|||
|
|
{
|
|||
|
|
HeightBaseItem.AvoidancePositionX21 = _hardware.Axis_X2.State.ActualPos;
|
|||
|
|
HeightBaseItem.AvoidancePositionY21 = _hardware.Axis_Y2.State.ActualPos;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void btnMoveAvoidancePosition()
|
|||
|
|
{
|
|||
|
|
if (MessageBox.Show("是否移动到当前位置", null, "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel) == MessageBoxResult.OK)
|
|||
|
|
{
|
|||
|
|
CommonUti.RunOnUi(() =>
|
|||
|
|
{
|
|||
|
|
_heightMeasureMotionService.MoveWsAvoidance(HeightBaseItem.AvoidancePositionX21, HeightBaseItem.AvoidancePositionY21);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void btnReadLaserToKnifePosition()
|
|||
|
|
{
|
|||
|
|
if (MessageBox.Show("是否读取当前位置", null, "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel) == MessageBoxResult.OK)
|
|||
|
|
{
|
|||
|
|
CommonUti.RunOnUi(() =>
|
|||
|
|
{
|
|||
|
|
DiaHeightItem.CaliZHeightPositionX = _hardware.Axis_X1.State.ActualPos;
|
|||
|
|
DiaHeightItem.CaliZHeightPositionY = _hardware.Axis_Y1.State.ActualPos;
|
|||
|
|
DiaHeightItem.CaliZHeightPositionZ = _hardware.Axis_Z1.State.ActualPos;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void btnMoveLaserToKnifePosition()
|
|||
|
|
{
|
|||
|
|
if (MessageBox.Show("是否移动到当前位置", null, "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel) == MessageBoxResult.OK)
|
|||
|
|
{
|
|||
|
|
CommonUti.RunOnUi(() =>
|
|||
|
|
{
|
|||
|
|
_heightMeasureMotionService.MovePhsAndNeedle(DiaHeightItem.CaliZHeightPositionX, DiaHeightItem.CaliZHeightPositionY, DiaHeightItem.CaliZHeightPositionZ);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void btnHeightMeasure()
|
|||
|
|
{
|
|||
|
|
CommonUti.RunOnUi(() =>
|
|||
|
|
{
|
|||
|
|
DiaHeightItem.CaliZHeightLaserReading = HeightMeasureManager.GetDistance();
|
|||
|
|
Thread.Sleep(500);
|
|||
|
|
|
|||
|
|
//1107-暂时注释:目前没有_equipmentParaSysSetting对象
|
|||
|
|
|
|||
|
|
//SafeAxisMotion.MoveAbs(_hardware.Axis_Z1, _equipmentParaSysSetting.SafeParaSysItem.Z1GeneralSafeHeight, false, true);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region 第三步
|
|||
|
|
|
|||
|
|
public void BtnGlassAdd()
|
|||
|
|
{
|
|||
|
|
TeachPoint teachPoint = new TeachPoint();
|
|||
|
|
teachPoint.Id = HeightBaseItem.GlassHeightMeasureList.Count + 1;
|
|||
|
|
teachPoint.X = 0;
|
|||
|
|
teachPoint.Y = 0;
|
|||
|
|
HeightBaseItem.GlassHeightMeasureList.Add(teachPoint);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void BtnGlassDelete()
|
|||
|
|
{
|
|||
|
|
if (SelectedGlassPoint == null)
|
|||
|
|
{
|
|||
|
|
MessageBox.Show("请先选中要设置的点");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
if (MessageBox.Show("是否删除", null, "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel) == MessageBoxResult.OK)
|
|||
|
|
{
|
|||
|
|
HeightBaseItem.GlassHeightMeasureList.Remove(SelectedGlassPoint);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void btnSetPositionGlass()
|
|||
|
|
{
|
|||
|
|
if (SelectedGlassPoint == null)
|
|||
|
|
{
|
|||
|
|
MessageBox.Show("请先选中要设置的点");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
if (MessageBox.Show("是否使用当前位置", null, "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel) == MessageBoxResult.OK)
|
|||
|
|
{
|
|||
|
|
CommonUti.RunOnUi(() =>
|
|||
|
|
{
|
|||
|
|
SelectedGlassPoint.X = _hardware.Axis_X1.State.ActualPos;
|
|||
|
|
SelectedGlassPoint.Y = _hardware.Axis_Y1.State.ActualPos;
|
|||
|
|
SelectedGlassPoint.Z = _hardware.Axis_Z1.State.ActualPos;
|
|||
|
|
SelectedGlassPoint.LaserZ = 0.0;
|
|||
|
|
SelectedGlassPoint.Height = 0;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void btnMovePositionGlass()
|
|||
|
|
{
|
|||
|
|
if (SelectedGlassPoint == null)
|
|||
|
|
{
|
|||
|
|
MessageBox.Show("请先选中要设置的点");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
if (MessageBox.Show("是否移动到选中点", null, "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel) == MessageBoxResult.OK)
|
|||
|
|
{
|
|||
|
|
CommonUti.RunOnUi(() =>
|
|||
|
|
{
|
|||
|
|
_heightMeasureMotionService.MoveGlassMeasurePoint(SelectedGlassPoint);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void btnTestGlassHeightGlass()
|
|||
|
|
{
|
|||
|
|
if (SelectedGlassPoint == null)
|
|||
|
|
{
|
|||
|
|
MessageBox.Show("请先选中要设置的点");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
if (MessageBox.Show("是否测量", null, "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel) == MessageBoxResult.OK)
|
|||
|
|
{
|
|||
|
|
CommonUti.RunOnUi(() =>
|
|||
|
|
{
|
|||
|
|
var Distance = HeightMeasureManager.GetDistance();
|
|||
|
|
SelectedGlassPoint.LaserZ = Distance + SelectedGlassPoint.Z;
|
|||
|
|
SelectedGlassPoint.Height = Distance;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/////////Wafer/////////////
|
|||
|
|
|
|||
|
|
public void BtnWaferAdd()
|
|||
|
|
{
|
|||
|
|
TeachPoint teachPoint = new TeachPoint();
|
|||
|
|
teachPoint.Id = HeightBaseItem.WaferHeightMeasureList.Count + 1;
|
|||
|
|
teachPoint.X = 0;
|
|||
|
|
teachPoint.Y = 0;
|
|||
|
|
HeightBaseItem.WaferHeightMeasureList.Add(teachPoint);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void BtnWaferDelete()
|
|||
|
|
{
|
|||
|
|
if (SelectedWaferPoint == null)
|
|||
|
|
{
|
|||
|
|
MessageBox.Show("请先选中要设置的点");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
if (MessageBox.Show("是否删除", null, "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel) == MessageBoxResult.OK)
|
|||
|
|
{
|
|||
|
|
HeightBaseItem.WaferHeightMeasureList.Remove(SelectedWaferPoint);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void btnSetPositionWafer()
|
|||
|
|
{
|
|||
|
|
if (SelectedWaferPoint == null)
|
|||
|
|
{
|
|||
|
|
MessageBox.Show("请先选中要设置的点");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
if (MessageBox.Show("是否使用当前位置", null, "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel) == MessageBoxResult.OK)
|
|||
|
|
{
|
|||
|
|
CommonUti.RunOnUi(() =>
|
|||
|
|
{
|
|||
|
|
SelectedWaferPoint.X = _hardware.Axis_X2.State.ActualPos;
|
|||
|
|
SelectedWaferPoint.Y = _hardware.Axis_Y2.State.ActualPos;
|
|||
|
|
SelectedWaferPoint.Z = _hardware.Axis_Z1.State.ActualPos;
|
|||
|
|
SelectedWaferPoint.LaserZ = 0.0;
|
|||
|
|
SelectedWaferPoint.Height = 0.0;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void btnMovePositionWafer()
|
|||
|
|
{
|
|||
|
|
if (SelectedWaferPoint == null)
|
|||
|
|
{
|
|||
|
|
MessageBox.Show("请先选中要设置的点");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
if (MessageBox.Show("是否移动到选中点", null, "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel) == MessageBoxResult.OK)
|
|||
|
|
{
|
|||
|
|
CommonUti.RunOnUi(() =>
|
|||
|
|
{
|
|||
|
|
_heightMeasureMotionService.MoveWaferMeasurePoint(SelectedWaferPoint);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void btnTestWaferHeight()
|
|||
|
|
{
|
|||
|
|
if (SelectedWaferPoint == null)
|
|||
|
|
{
|
|||
|
|
MessageBox.Show("请先选中要设置的点");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
if (MessageBox.Show("是否测量", null, "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel) == MessageBoxResult.OK)
|
|||
|
|
{
|
|||
|
|
CommonUti.RunOnUi(() =>
|
|||
|
|
{
|
|||
|
|
var Distance = HeightMeasureManager.GetDistance();
|
|||
|
|
SelectedWaferPoint.LaserZ = Distance + SelectedWaferPoint.Z;
|
|||
|
|
SelectedWaferPoint.Height = Distance;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void btnMoveGantry1()
|
|||
|
|
{
|
|||
|
|
if (MessageBox.Show("是否移动到该位置", null, "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel) == MessageBoxResult.OK)
|
|||
|
|
{
|
|||
|
|
CommonUti.RunOnUi(() =>
|
|||
|
|
{
|
|||
|
|
_heightMeasureMotionService.MoveWaferMeasurePose(HeightBaseItem.MeasureWaferHeightX11, HeightBaseItem.MeasureWaferHeightY11);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region 第四步
|
|||
|
|
public void BtnCalculateHeight()
|
|||
|
|
{
|
|||
|
|
CommonUti.RunOnUi(() =>
|
|||
|
|
{
|
|||
|
|
HeightMeasureManager.CalculateHeight();
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
public void btnSave()
|
|||
|
|
{
|
|||
|
|
var a=_gp.HeightBaseSetting.HeightBaseItem;
|
|||
|
|
if (MessageBox.Show("是否保存", null, "确认保存", MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel) == MessageBoxResult.OK)
|
|||
|
|
{
|
|||
|
|
CommonUti.RunOnUi(() =>
|
|||
|
|
{
|
|||
|
|
HeightMeasureManager.HeightBaseItem = HeightBaseItem;
|
|||
|
|
//HeightMeasureManager.CapHeightItem = CapHeightItem;
|
|||
|
|
HeightMeasureManager.DiaHeightItem = DiaHeightItem;
|
|||
|
|
HeightTestSetting.Write();
|
|||
|
|
SaveParaLog();
|
|||
|
|
ParameterHelper.RaiseValueAccept();
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void SaveParaLog()
|
|||
|
|
{
|
|||
|
|
LogWatchValueManager.Save(HeightBaseItem, "HeightTestPara_测高参数");
|
|||
|
|
LogWatchValueManager.Save(DiaHeightItem, "HeightTestPara_测高参数");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
|
|||
|
|
public void Handle(NeedleCalibrationHeightTestEventArgs message)
|
|||
|
|
{
|
|||
|
|
throw new NotImplementedException();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void Handle(DiastimeterSampleChangedEventArgs message)
|
|||
|
|
{
|
|||
|
|
if (message == null)
|
|||
|
|
{
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (message.IsValid)
|
|||
|
|
{
|
|||
|
|
CurrentDiastimeterDistance = message.Distance;
|
|||
|
|
DiastimeterStatus = $"采样时间:{message.SampleTime:HH:mm:ss.fff}";
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
DiastimeterStatus = string.IsNullOrWhiteSpace(message.Message) ? "采样失败" : message.Message;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|