using Aurora.Api; using Aurora.Api.Devices; using PropertyTools.DataAnnotations; namespace AuroraLaser { public class LaserConfig : IDeviceConfig { protected Logger Log = new Logger("Laser"); [DisplayName("Simulation Mode (this device)")] public bool IsSimul { get; set; } = false; public IConnConfig ConnConfig { get; set; } [VisibleBy("SocketConfig", false)] public SocketConnConfig SocketConfig { get; set; } [VisibleBy("SerialConfig", false)] public SerialConnConfig SerialConfig { get; set; } public eLaserType Type { get; set; } public LaserConfig() { SocketConfig = new SocketConnConfig(); SerialConfig = new SerialConnConfig(); // 초기값을 넣을것인지 setting 에서 받아올것인지는 테스트해서 결정하자. switch (Type) { case eLaserType.ArmLaser: // UDP ConnConfig = SocketConfig; //ConnConfig = new SocketConnConfig(); //var config = ConnConfig as SocketConnConfig; //config.Address = new SocketAddress() //{ // IpAddress = "10.10.16.80", // PortNumber = 5022 //}; //config.Protocol = SocketProtocol.UDP; //config.ResponseTimeMS = 1000; break; case eLaserType.TrueDiskLaser: // TCPIP ConnConfig = SocketConfig; break; case eLaserType.CoherentHyperRapidLaser: ConnConfig = SerialConfig; //ConnConfig = new SerialConnConfig() //{ // BaudRate = 19200, // DataBits = 8, // StopBits = StopBits.One, // Parity = Parity.None, // PortNum = 1, // NewLine = "\r\n" //}; break; case eLaserType.LaserRapidLX: ConnConfig = SocketConfig; break; case eLaserType.NL202: ConnConfig = SerialConfig; break; case eLaserType.IPG_YLPN: ConnConfig = SerialConfig; //ConnConfig = new SerialConnConfig() //{ // PortNum = 1, // BaudRate = 57600, // Parity = Parity.None, // StopBits = StopBits.One, // DataBits = 8, // ReadTimeout = 1000, //}; break; case eLaserType.IPG_YLS: ConnConfig = SocketConfig; break; default: Log.E(string.Format("Check Laser Type Setting")); ConnConfig = SerialConfig; //ConnConfig = new SerialConnConfig() //{ // PortNum = 8, // BaudRate = 9600, // Parity = System.IO.Ports.Parity.Odd, // StopBits = System.IO.Ports.StopBits.One, // DataBits = 8, // NewLine = "\n", // ReadRetryCount = 5 //}; break; } } // Laser Config 에 추가할 property 는 아래에 추가 // [Category("TitleName")] 의 양식으로 묶을것 // public PowerProfileParam powerProfileParam { get; set; } = new PowerProfileParam(); [Category("Trumpf_IO")] public string Program_No { get; set; } = "1"; [Category("TruFiber")] public eTruFiberType TruFiberType { get; set; } [Category("Trumpf_OPC")] public string Opcua_Slot_No { get; set; } = "1"; } }