using Aurora.Api; using PropertyTools.DataAnnotations; namespace AuroraLaserScanner { public class ScannerConfig : IDeviceConfig { [Browsable(false)] public IConnConfig ConnConfig { get; set; } = null; //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; } public bool Modulation { 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 MarkingStartEncoderDegree { 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 eWaitEncoderMode MarkingStartWaitMode { get; set; } public eOntheFlyCoordinate OnTheFlyCoordinate { get; set; } public double FlySpeedInterlock { get; set; } public double RotaryEncoderOffset { get; set; } public double MOTFStageSpeed { get; set; } [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; } } }