添加 MX-PD-盘古 项目文件
将 MX-PD-盘古 - new 目录下的所有文件添加到主仓库
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
using MainShell.Hardware;
|
||||
using MainShell.Motion;
|
||||
using MainShell.HeightMeasure.Model;
|
||||
using MaxwellFramework.Core.Attributes;
|
||||
using MXJM.Parameter.Maintance;
|
||||
using System;
|
||||
|
||||
namespace MainShell.HeightMeasure.Service
|
||||
{
|
||||
[Singleton]
|
||||
public class HeightMeasureMotionService
|
||||
{
|
||||
private readonly HardwareManager _hardware;
|
||||
private readonly SafeAxisMotion _safeAxisMotion;
|
||||
private readonly StagePlatformMotionService _stagePlatformMotionService;
|
||||
|
||||
public HeightMeasureMotionService(HardwareManager hardware, SafeAxisMotion safeAxisMotion, StagePlatformMotionService stagePlatformMotionService)
|
||||
{
|
||||
_hardware = hardware ?? throw new ArgumentNullException(nameof(hardware));
|
||||
_safeAxisMotion = safeAxisMotion ?? throw new ArgumentNullException(nameof(safeAxisMotion));
|
||||
_stagePlatformMotionService = stagePlatformMotionService ?? throw new ArgumentNullException(nameof(stagePlatformMotionService));
|
||||
}
|
||||
|
||||
public void MoveCalibrationAndStagePlatformHeights(double czCalibrationHeight, double stageDatumHeight)
|
||||
{
|
||||
_safeAxisMotion.MoveAbs(AxisName.Axis_SZ, czCalibrationHeight);
|
||||
_stagePlatformMotionService.MoveFlat(stageDatumHeight);
|
||||
}
|
||||
|
||||
public void MoveWsAvoidance(double xPosition, double yPosition)
|
||||
{
|
||||
_safeAxisMotion.SafeMove(
|
||||
MotionMoveRequest.ForAxis(GetRequiredAxis(_hardware.Axis_X2, nameof(_hardware.Axis_X2)), xPosition),
|
||||
MotionMoveRequest.ForAxis(GetRequiredAxis(_hardware.Axis_Y2, nameof(_hardware.Axis_Y2)), yPosition));
|
||||
}
|
||||
|
||||
public void MovePhsAndNeedle(double xPosition, double yPosition, double zPosition)
|
||||
{
|
||||
_safeAxisMotion.SafeMove(
|
||||
MotionMoveRequest.ForAxis(GetRequiredAxis(_hardware.Axis_X1, nameof(_hardware.Axis_X1)), xPosition),
|
||||
MotionMoveRequest.ForAxis(GetRequiredAxis(_hardware.Axis_Y1, nameof(_hardware.Axis_Y1)), yPosition));
|
||||
_safeAxisMotion.MoveAbs(GetRequiredAxis(_hardware.Axis_Z1, nameof(_hardware.Axis_Z1)), zPosition);
|
||||
}
|
||||
|
||||
public void MoveGlassMeasurePoint(TeachPoint point)
|
||||
{
|
||||
if (point == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(point));
|
||||
}
|
||||
|
||||
MovePhsAndNeedle(point.X, point.Y, point.Z);
|
||||
}
|
||||
|
||||
public void MoveWaferMeasurePoint(TeachPoint point)
|
||||
{
|
||||
if (point == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(point));
|
||||
}
|
||||
|
||||
MoveWsAvoidance(point.X, point.Y);
|
||||
_safeAxisMotion.MoveAbs(GetRequiredAxis(_hardware.Axis_Z1, nameof(_hardware.Axis_Z1)), point.Z);
|
||||
}
|
||||
|
||||
public void MoveWaferMeasurePose(double xPosition, double yPosition)
|
||||
{
|
||||
_safeAxisMotion.SafeMove(
|
||||
MotionMoveRequest.ForAxis(GetRequiredAxis(_hardware.Axis_X1, nameof(_hardware.Axis_X1)), xPosition),
|
||||
MotionMoveRequest.ForAxis(GetRequiredAxis(_hardware.Axis_Y1, nameof(_hardware.Axis_Y1)), yPosition));
|
||||
}
|
||||
|
||||
private static MwFramework.Device.IAxis GetRequiredAxis(MwFramework.Device.IAxis axis, string axisPropertyName)
|
||||
{
|
||||
if (axis == null)
|
||||
{
|
||||
throw new InvalidOperationException(string.Format("Axis '{0}' is not available.", axisPropertyName));
|
||||
}
|
||||
|
||||
return axis;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user