129 lines
5.6 KiB
C#

using Aurora.Api;
using PropertyTools.DataAnnotations;
namespace AuroraLaserScanner
{
public class ScannerConfig : IDeviceConfig
{
[Browsable(false)]
public IConnConfig ConnConfig { get; set; } = null;
[DisplayName("Simulation Mode (this device)")]
public bool IsDeviceSimul { get; set; } = false;
//RTC type도 Device로 빼자...
public eRTCType Type { get; set; }
[SelectorStyle(SelectorStyle.ComboBox)]
public eScannerNo ScannerId { get; set; } = eScannerNo.SCANNER_0;
[Category("Head")]
public uint PrimaryHeadNo { get; set; }
public uint SecondHeadNo { get; set; }
[Category("Mode")]
public uint ControlMode { get; set; }
public eLaserMode LaserMode { get; set; }
public uint LaserControl { get; set; }
[Category("Scanner Delay")]
public uint JumpDelay { get; set; }
public uint MarkDelay { get; set; }
public uint PolygonDelay { get; set; }
[Category("Laser Delay")]
public int LaserOnDelay { get; set; }
public uint LaserOffDelay { get; set; }
public uint LaserPeriod { get; set; }
public uint Laser1PulseWidth { get; set; }
[Category("Speed")]
public uint MarkSpeed { get; set; }
public uint JumpSpeed { get; set; }
public double ScaleXYFactor { get; set; }
public double ScaleZFactor { get; set; }
public uint FirstPulseKiller { get; set; }
public bool Use3DMode { get; set; }
[Category("File")]
[InputFilePath]
public string ProgramFile { get; set; }
[InputFilePath]
public string CorrectionFile { get; set; }
[InputFilePath]
public string LaserCorrectionFile { get; set; }
public bool UseEncoderFeedbackMode { get; set; }
[Category("Marking On The Fly(MOTF)")]
public bool UseMarkingOnTheFly { get; set; }
public double MarkingOnTheFlyEncoderResolutionX { get; set; }
public double MarkingOnTheFlyEncoderResolutionY { get; set; }
public double MarkingOnTheFlyEncoderResolutionRotate { get; set; }
public double MarkingOnTheFlyRotateCenterX { get; set; }
public double MarkingOnTheFlyRotateCenterY { get; set; }
public double MarkingStartEncoderPositionX { get; set; }
public double MarkingRangeMinX { get; set; }
public double MarkingRangeMaxX { get; set; }
public double MarkingRangeMaxY { get; set; }
public double MarkingRangeMinRotate { get; set; }
public double MarkingRangeMaxRotate { get; set; }
public double MarkingOntheFlyOffsetX { get; set; }
public double MarkingOntheFlyOffsetY { get; set; }
public double MarkingOntheFlyParkingPositionX { get; set; }
public double MarkingOntheFlyParkingPositionY { get; set; }
public double MarkingStartX_1 { get; set; }
public double MarkingStartX_2 { get; set; }
public double XDiff_Page1and2 { get; set; }
public double XDiff_Page3and4 { get; set; }
public eWaitEncoderMode MarkingStartWaitMode { get; set; }
public eOntheFlyCoordinate OnTheFlyCoordinate { get; set; }
public double FlySpeedInterlock { get; set; }
public double RotaryEncoderOffset { get; set; }
public double MOTFStageSpeed { get; set; }
#region 26.04.08 NDY MOTF Limit(추적 오차 한계) 변수 추가 --- RTC5에 있는 보드num 과 x,y,z에 대한 limit bit수를 입력하면 해당 오차 벗어나면 알려주는 메소드가 존재합니다. 현재는 stop을 직접하니깐 변수 추가하고 메소드 추가추가해서 사용하는 방식으로 확인 부탁드립니다.
[DisplayName("Tracking Error Limit X (mm)")]
public double FlyLimitXmm { get; set; } = 28.0; // 60 FOV 기준 약 90% 지점 - bit로 자동 변환되는지를 확인 해야함.
[DisplayName("Tracking Error Limit Y (mm)")]
public double FlyLimitYmm { get; set; } = 28.0;
[DisplayName("Tracking Error Limit Z (mm)")]
public double FlyLimitZmm { get; set; } = 10.0; // 3D 모드 사용 시
#endregion
[Category("Scan Area Size")]
public double ScanXSize { get; set; }
public double ScanYSize { get; set; }
public double ScanZSize { get; set; }
[Category("Scan Translation")]
public double TranslationXOffset { get; set; }
public double TranslationYOffset { get; set; }
public double TranslationAngle { get; set; }
[Category("Laser Signal")]
public eLaserSignal LaserSiganlPin2 { get; set; } = eLaserSignal.LASERON;
public eLaserSignal LaserSiganlPin1 { get; set; } = eLaserSignal.LASER1;
public eLaserSignal LaserSiganlPin9 { get; set; } = eLaserSignal.LASER2;
[Category("Record Siganl")]
public bool UseRecordSignal { get; set; } = false;
public eRecordSignal RecordSignalType1 { get; set; } = eRecordSignal.Encoder0;
public eRecordSignal RecordSignalType2 { get; set; } = eRecordSignal.Encoder1;
public eRecordSignal RecordSignalType3 { get; set; } = eRecordSignal.AnalogOut1;
public eRecordSignal RecordSignalType4 { get; set; } = eRecordSignal.AnalogOut2;
public uint RecordPeriod { get; set; } = 10;
[Category("Ethernet Connection")]
public eEthConfigLinkLossMode EthernetConfigLinkLoss { get; set; }
[Category("List Configuration")]
[DisplayName("List1 Memory Size")]
public uint memory1 { get; set; } = 800000;
[DisplayName("List2 Memory Size")]
public uint memory2 { get; set; } = 200000;
}
}