2026-06-05 13:44:39 +09:00

113 lines
4.0 KiB
C#

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";
}
}