..
This commit is contained in:
604
Handler/Sub/Setting/Model/Common.cs
Normal file
604
Handler/Sub/Setting/Model/Common.cs
Normal file
@@ -0,0 +1,604 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing.Design;
|
||||
using System.Linq;
|
||||
using System.Management;
|
||||
using System.Security.Policy;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AR
|
||||
{
|
||||
public class CommonSetting : Setting
|
||||
{
|
||||
public CommonSetting()
|
||||
{
|
||||
this.filename = UTIL.MakePath("Data", "Setting.xml");
|
||||
}
|
||||
public string WebAPI_R1 { get; set; }
|
||||
public string WebAPI_R2 { get; set; }
|
||||
public string WebAPI_R3 { get; set; }
|
||||
|
||||
#region "log"
|
||||
|
||||
[Category("System Log - Main")]
|
||||
public Boolean Log_CameraConn { get; set; }
|
||||
[Category("System Log - Main"), DisplayName("Digital Input"),
|
||||
Description("입/출력 장치의 상태 변화를 기록 합니다.")]
|
||||
public Boolean Log_DI { get; set; }
|
||||
[Category("System Log - Main"), DisplayName("Digital Output"),
|
||||
Description("입/출력 장치의 상태 변화를 기록 합니다.")]
|
||||
public Boolean Log_DO { get; set; }
|
||||
[Category("System Log - Main"), DisplayName("Network Alive Check(Ping)"),
|
||||
Description("디버그 메세지 사용")]
|
||||
public Boolean Log_Debug { get; set; }
|
||||
[Category("System Log - Main"), DisplayName("S/M Step Change"),
|
||||
Description("상태머신의 변화 상태를 기록 합니다.")]
|
||||
public Boolean Log_StepChange { get; set; }
|
||||
[Category("System Log - Main"), DisplayName("Motion State Change"),
|
||||
Description("모션 상태 변화를 기록 합니다.")]
|
||||
public Boolean Log_motState { get; set; }
|
||||
[Category("System Log - Main")]
|
||||
public Boolean Log_flag { get; set; }
|
||||
[Category("System Log - Main")]
|
||||
public Boolean Log_ILock { get; set; }
|
||||
[Category("System Log - Function"), DisplayName("Inter Lock")]
|
||||
public Boolean Enable_Log_ILock { get; set; }
|
||||
[Category("System Log - Function"), DisplayName("Flag")]
|
||||
public Boolean Enable_Log_Flag { get; set; }
|
||||
[Category("System Log - Function"), DisplayName("Motor Stop Message")]
|
||||
public Boolean Enable_Log_MotStopReason { get; set; }
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region "Communication"
|
||||
|
||||
|
||||
|
||||
[Category("Communication"), DisplayName("Keynece IP(Front)"), Description("Keyence Barcode IP Address")]
|
||||
public string Keyence_IPF { get; set; }
|
||||
[Category("Communication"), DisplayName("Keyence IP(Rear)"), Description("Keyence Barcode IP Address")]
|
||||
public string Keyence_IPR { get; set; }
|
||||
|
||||
[Category("Communication"), DisplayName("Keyence Port"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int Keyence_Port { get; set; }
|
||||
|
||||
[Category("Communication"), DisplayName("Left Printer (Port)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public string PrintL_Port { get; set; }
|
||||
[Category("Communication"), DisplayName("Left Printer (Baud)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int PrintL_Baud { get; set; }
|
||||
[Category("Communication"), DisplayName("Right Printer (Port)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public string PrintR_Port { get; set; }
|
||||
[Category("Communication"), DisplayName("Right Printer (Baud)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int PrintR_Baud { get; set; }
|
||||
|
||||
|
||||
|
||||
[Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public string Barcode_Port { get; set; }
|
||||
[Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int Barcode_Baud { get; set; }
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region "Time Out"
|
||||
|
||||
[Category("Timeout Setting"), DisplayName(), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int Timeout_AutoConfirm { get; set; }
|
||||
|
||||
[Category("Timeout Setting"), DisplayName("작업 완료 대기시간(단위:초)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int Timeout_JOBEnd { get; set; }
|
||||
|
||||
[Category("Timeout Setting"), DisplayName("최대비젼분석시간(로더)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int Timeout_VisionProcessL { get; set; }
|
||||
|
||||
[Category("Timeout Setting"), DisplayName("최대비젼분석시간(언로더)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int Timeout_VisionProcessU { get; set; }
|
||||
|
||||
[Category("Timeout Setting"), DisplayName("장비 초기화 대기시간(단위:초)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int Timeout_HomeSearch { get; set; }
|
||||
|
||||
[Category("Timeout Setting"), DisplayName("개별 동작의 대기시간(단위:초)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public double Timeout_StepMaxTime { get; set; }
|
||||
|
||||
[Category("Timeout Setting"), DisplayName("모션의 최대 동작시간(단위:초)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int Timeout_MotionCommand { get; set; }
|
||||
|
||||
[Category("Timeout Setting"), DisplayName("DIO의 최대 동작시간(단위:초)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int Timeout_DIOCommand { get; set; }
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
[Category("WMS")]
|
||||
public bool WMS_DB_PROD { get; set; }
|
||||
[Category("WMS")]
|
||||
public string WMS_PROGRAM_ID { get; set; }
|
||||
[Category("WMS")]
|
||||
public string WMS_CENTER_CD { get; set; }
|
||||
[Category("WMS")]
|
||||
public string WMS_REG_USERID { get; set; }
|
||||
|
||||
#region "Advanced Parameter"
|
||||
|
||||
|
||||
[Category("Advanced Parameter"), DisplayName("Remote Contoller Port"), Description("디버그 포트 정보(시리얼통신), 입력 예) COM1:9600"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public string Serial_Remocon { get; set; }
|
||||
|
||||
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int RetryPickOnMaxCount { get; set; }
|
||||
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int RetryPickOnAngle { get; set; }
|
||||
|
||||
|
||||
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public float JOG_Speed { get; set; }
|
||||
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public float JOG_Acc { get; set; }
|
||||
[Category("Advanced Parameter")]
|
||||
public Boolean Disable_HomePortDown { get; set; }
|
||||
|
||||
[Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_PrinterL { get; set; }
|
||||
[Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_PrinterR { get; set; }
|
||||
|
||||
[Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_PLVac { get; set; }
|
||||
[Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_PRVac { get; set; }
|
||||
[Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_PKVac { get; set; }
|
||||
|
||||
[Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_PLAir { get; set; }
|
||||
[Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_PRAir { get; set; }
|
||||
|
||||
[Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_PortL { get; set; }
|
||||
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_PortC { get; set; }
|
||||
[Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_PortR { get; set; }
|
||||
|
||||
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_SIDReferenceCheck { get; set; }
|
||||
|
||||
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_BottomAirBlow { get; set; }
|
||||
|
||||
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Enable_ButtonStart { get; set; }
|
||||
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_RequestJobSeqNo { get; set; }
|
||||
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean DisableSensor_AIRCheck { get; set; }
|
||||
|
||||
[Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_TowerLamp { get; set; }
|
||||
|
||||
[Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_RoomLight { get; set; }
|
||||
|
||||
|
||||
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public bool Disable_vacum { get; set; }
|
||||
|
||||
[Category("Advanced Parameter"), DisplayName("*.속도제한")]
|
||||
public Boolean Enable_SpeedLimit { get; set; }
|
||||
[Category("Advanced Parameter"), DisplayName("*.최대속도"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int LimitSpeed { get; set; }
|
||||
|
||||
[Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_SidQtyCheck { get; set; }
|
||||
|
||||
|
||||
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_Axis0 { get; set; }
|
||||
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_Axis1 { get; set; }
|
||||
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_Axis2 { get; set; }
|
||||
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_Axis3 { get; set; }
|
||||
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_Axis4 { get; set; }
|
||||
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_Axis5 { get; set; }
|
||||
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_Axis6 { get; set; }
|
||||
[Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean EnableDebugMode { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region "function"
|
||||
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Force_JobEndBuzzer { get; set; }
|
||||
|
||||
|
||||
[Browsable(false)]
|
||||
public Boolean Disable_Buzzer { get; set; }
|
||||
|
||||
[Browsable(false)]
|
||||
public Boolean Enable_Magnet0 { get; set; }
|
||||
|
||||
[Browsable(false)]
|
||||
public Boolean Enable_Magnet1 { get; set; }
|
||||
|
||||
[Browsable(false)]
|
||||
public Boolean Enable_Magnet2 { get; set; }
|
||||
[Browsable(false)]
|
||||
public Boolean Enable_PickerCylinder { get; set; }
|
||||
|
||||
|
||||
public string GetDataPath()
|
||||
{
|
||||
var di = new System.IO.DirectoryInfo(this.Path_Data);
|
||||
return di.FullName;
|
||||
}
|
||||
|
||||
[Category("Function"), DisplayName("라벨QR코드검증"), Description("부착된 라벨의 QR코드를 인쇄데이터와 검증 합니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Enable_Unloader_QRValidation { get; set; }
|
||||
|
||||
[Category("Function"), DisplayName("촬영이미지저장"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Save_Image { get; set; }
|
||||
|
||||
[Category("Function"), DisplayName("피커자동이동(전면도어)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean PickerAutoMoveForDoor { get; set; }
|
||||
|
||||
[Category("Function"), DisplayName("Data Save Path"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public string Path_Data { get; set; }
|
||||
|
||||
[Category("Function"), Browsable(false), DisplayName("실내등 자동 제어"),
|
||||
Description("도어 상태에 따라서 내부 조명을 자동 ON/OFF 합니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Enable_AutoLight { get; set; }
|
||||
|
||||
//[Category("Function"), DisplayName("AIR OFF Timer(ms)"),
|
||||
//Description("공압 OFF시 유지 시간(ms), 지정 시간 동안 스위치를 ON 시켜야 공압이 OFF 됩니다.")]
|
||||
//public int AirOFFTimer { get; set; }
|
||||
|
||||
[Category("Function"), DisplayName("부저 동작시간(ms)"),
|
||||
Description("부저 발생시 지정된 시간(ms) 동안 부저가 울립니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int buzz_run_ms { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region "Vision"
|
||||
[Category("Vision"), DisplayName("13' 이미지 중앙 위치"), Description("키엔스 이미지의 회전축 좌표")]
|
||||
public System.Drawing.Point CenterPosition13 { get; set; }
|
||||
[Category("Vision"), DisplayName("7' 이미지 중앙 위치"), Description("키엔트 이미지의 회전축 좌표")]
|
||||
public System.Drawing.Point CenterPosition7 { get; set; }
|
||||
|
||||
[Category("Vision"), DisplayName("Disable Left Camera"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_Left { get; set; }
|
||||
[Category("Vision"), DisplayName("Disable Right Camera"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Disable_Right { get; set; }
|
||||
[Category("Vision"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public string HostIPL { get; set; }
|
||||
[Category("Vision"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public string HostIPR { get; set; }
|
||||
[Category("Vision"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int HostPortL { get; set; }
|
||||
[Category("Vision"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int HostPortR { get; set; }
|
||||
[Category("Vision"), DisplayName("Camera Filename"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public string CameraLFile { get; set; }
|
||||
[Category("Vision"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public float AngleOffsetL { get; set; }
|
||||
[Category("Vision"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public float AngleOffsetR { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region "Count Reset Setting"
|
||||
|
||||
[Category("Count Reset Setting"), Browsable(false), DisplayName("A/M Clear Enable"),
|
||||
Description("오전 초기화 여부\n작업수량을 초기화 하려면 True 로 설정하세요"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean datetime_Check_1 { get; set; }
|
||||
[Category("Count Reset Setting"), Browsable(false), DisplayName("P/M Clear Enable"),
|
||||
Description("오후 초기화 여부\n작업수량을 초기화 하려면 True 로 설정하세요"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean datetime_Check_2 { get; set; }
|
||||
[Category("Count Reset Setting"), Browsable(false), DisplayName("A/M Clear Time(HH:mm)"),
|
||||
Description("오전 초기화 시간(시:분)\n예) 09:00"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public string datetime_Reset_1 { get; set; }
|
||||
[Category("Count Reset Setting"), Browsable(false), DisplayName("P/M Clear Time(HH:mm)"),
|
||||
Description("오후 초기화 시간(시:분)\n예) 19:00"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public string datetime_Reset_2 { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region "Sensitive"
|
||||
[Category("Sensitive"), DisplayName("언/로더포트 감지(fall)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public ushort PortDetectFall { get; set; }
|
||||
[Category("Sensitive"), DisplayName("언/로더포트 감지(rise)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public ushort PortDetectRise { get; set; }
|
||||
[Category("Sensitive"), DisplayName("도어 감지센서(rise)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public ushort SaftyDetectRise { get; set; }
|
||||
[Category("Sensitive"), DisplayName("도어 감지센서(rise)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public ushort SaftyDetectFall { get; set; }
|
||||
[Category("Sensitive"), DisplayName("AIR 버튼(rise/fall)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public ushort AirChange { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region "Operation Delay"
|
||||
[Category("Operation Delay(ms)"), DisplayName("라벨 붙인 후 대기 시간"), Description("라벨 부착 후 PURGE 대기 시간"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int PrintVacOffPurgeMS { get; set; }
|
||||
[Category("Operation Delay(sec)"), DisplayName("카트감지대기시간(좌)"), Description("지정된 시간 이후에 카트가 HOLD 됩니다- ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public ushort WaitTime_Magnet0 { get; set; }
|
||||
[Category("Operation Delay(sec)"), DisplayName("카트감지대기시간(중앙)"), Description("지정된 시간 이후에 카트가 HOLD 됩니다- ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public ushort WaitTime_Magnet1 { get; set; }
|
||||
[Category("Operation Delay(sec)"), DisplayName("카트감지대기시간(우)"), Description("지정된 시간 이후에 카트가 HOLD 됩니다 - ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public ushort WaitTime_Magnet2 { get; set; }
|
||||
[Category("Operation Delay(sec)"), DisplayName("프린트후대기시간(좌s)"), Description("프린터 라벨 출력 후 대기 시간(좌)- ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int PrintLWaitMS { get; set; }
|
||||
[Category("Operation Delay(sec)"), DisplayName("프린트후대기시간(우)"), Description("프린터 라벨 출력 후 대기 시간(우)- ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int PrintRWaitMS { get; set; }
|
||||
[Category("Operation Delay(sec)"), DisplayName("포트 하강 시간(Unloader)"), Description("포트 정렬시 지정된 시간동안 하강 합니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public float PortAlignDownTimeU { get; set; }
|
||||
[Category("Operation Delay(sec)"), DisplayName("포트 하강 시간(Loader)"), Description("포트 정렬시 지정된 시간동안 하강 합니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public float PortAlignDownTimeL { get; set; }
|
||||
[Category("Operation Delay(sec)"), DisplayName("Loder포트 하강 시간(Finish)"), Description("작업 완료 후 지정된 시간(ms) 만큼 하강 합니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public ushort Port1FisnishDownTime { get; set; }
|
||||
#endregion
|
||||
|
||||
#region "GENERAL
|
||||
[Category("General Setting"), DisplayName("내부조명자동OFF시간(분)")]
|
||||
public int AutoOffRoomLightMin { get; set; }
|
||||
|
||||
[Category("General Setting"), DisplayName("장비 자산 번호"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public string Asset { get; set; }
|
||||
|
||||
[Category("General Setting"), DisplayName("장비식별이름"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public string McName { get; set; }
|
||||
|
||||
[Category("General Setting"), DisplayName("무시바코드"), Description("입려된 값으로 시작하는 바코드를 무시합니다. 여러개 입력하려면 콤마(,) 로 구분 하세요"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public string IgnoreBarcode { get; set; }
|
||||
|
||||
[Category("General Setting"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public string ReelIdDeviceID { get; set; }
|
||||
[Category("General Setting"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public string ReelIdDeviceLoc { get; set; }
|
||||
[Category("General Setting"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public bool Enable_AutoChangeModelbyHandBarcode { get; set; }
|
||||
|
||||
#endregion
|
||||
//public Boolean MoveYForPaperVaccume { get; set; }
|
||||
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public float MoveYForPaperVaccumeValue { get; set; }
|
||||
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public uint MoveYForPaperVaccumeVel { get; set; }
|
||||
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public uint MoveYForPaperVaccumeAcc { get; set; }
|
||||
[Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean OnlineMode { get; set; }
|
||||
|
||||
//public Boolean STDLabelFormat7 { get; set; }
|
||||
#region "Printer"
|
||||
[Category("Printer"), DisplayName("바코드 외곽 박스 그리기"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean DrawOutbox { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
[Category("Joystick"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int Jostick_vid { get; set; }
|
||||
[Category("Joystick"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int Jostick_pid { get; set; }
|
||||
|
||||
[DisplayName("바코드위치별회전(뒤)")]
|
||||
public float RearBarcodeRotate { get; set; }
|
||||
[DisplayName("바코드위치별회전(앞)")]
|
||||
public float FrontBarcodeRotate { get; set; }
|
||||
|
||||
[Browsable(false)]
|
||||
public bool SystemBypass { get; set; }
|
||||
|
||||
|
||||
#region "general"
|
||||
|
||||
[Category("General Setting"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public string Sidinfofilename { get; set; }
|
||||
[Category("General Setting"), DisplayName("버그리포트수신자"), Description("버그리포트 수신자 목록, 다중 목록의 각 대상은 세미콜론으로 구분 합니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public string BugreportToList { get; set; }
|
||||
|
||||
[Category("General Setting"), Browsable(false),
|
||||
Description("데이터 자동 소거 기간(일) 비활성=0"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int AutoDeleteDay { get; set; }
|
||||
[Category("General Setting"), Browsable(false),
|
||||
Description("데이터 자동 소거 조건(남은용량 %)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public int AutoDeleteThreshold { get; set; }
|
||||
|
||||
[Category("General Setting"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public string Password_Setup { get; set; }
|
||||
|
||||
[Category("General Setting"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public string Language { get; set; }
|
||||
|
||||
[Category("General Setting"), DisplayName("Full Screen Window State"),
|
||||
Description("화면을 전체화면으로 사용 합니다."), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean FullScreen { get; set; }
|
||||
|
||||
|
||||
#region "표시안함"
|
||||
[Category("Sensor Detect"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Detect_CartL { get; set; }
|
||||
[Category("Sensor Detect"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Detect_CartC { get; set; }
|
||||
[Category("Sensor Detect"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Detect_CartR { get; set; }
|
||||
[Category("Sensor Detect"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Detect_PrintL { get; set; }
|
||||
[Category("Sensor Detect"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
|
||||
public Boolean Detect_PrintR { get; set; }
|
||||
//[Category("Sensor Detect"), Browsable(false)]
|
||||
//public Boolean Detect_CenterSafty { get; set; }
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
||||
#region "Report"
|
||||
[Category("Report"),
|
||||
Description("상태기록시 장비 식별코드(4자리)"),
|
||||
DisplayName("M/C ID")]
|
||||
public string MCID { get; set; }
|
||||
|
||||
[Category("Report"),
|
||||
Description("작업 기록을 장비기술(EE) Database 에 기록 합니다. 원격으로 장비 현황을 모니터링 할 수 있습니다"),
|
||||
DisplayName("SAVE EE-DB")]
|
||||
public Boolean Save_EEDatabase { get; set; }
|
||||
[Category("Report"), Description("상태값을 전송하는 간격(초)")]
|
||||
public int StatusInterval { get; set; }
|
||||
#endregion
|
||||
|
||||
#region "swplc"
|
||||
public string swplc_name { get; set; }
|
||||
public int swplc_size { get; set; }
|
||||
#endregion
|
||||
|
||||
[Category("Develop")]
|
||||
public string Bugreport_mail { get; set; }
|
||||
|
||||
public override void AfterLoad()
|
||||
{
|
||||
if (WMS_CENTER_CD.isEmpty()) WMS_CENTER_CD = "V1";
|
||||
if (WMS_PROGRAM_ID.isEmpty()) WMS_PROGRAM_ID = "LABEL ATTACH";
|
||||
if (WMS_REG_USERID.isEmpty()) WMS_REG_USERID = "ATVLA1";
|
||||
|
||||
if (WebAPI_R1.isEmpty()) WebAPI_R1 = "http://10.131.32.31:9001";
|
||||
if (WebAPI_R2.isEmpty()) WebAPI_R2 = "http://10.131.32.24:9001";
|
||||
if (WebAPI_R3.isEmpty()) WebAPI_R3 = "http://10.131.32.22:9001";
|
||||
|
||||
if (swplc_size < 1) swplc_size = 100;
|
||||
if (swplc_name.isEmpty()) swplc_name = "swplc";
|
||||
|
||||
|
||||
if (StatusInterval < 10) StatusInterval = 300; //5분간격
|
||||
|
||||
var currentpath = AppDomain.CurrentDomain.BaseDirectory;
|
||||
if (AutoOffRoomLightMin == 0) AutoOffRoomLightMin = 5;
|
||||
|
||||
if (RetryPickOnAngle == 0) RetryPickOnAngle = 79;
|
||||
|
||||
if (Barcode_Baud == 0) Barcode_Baud = 9600;
|
||||
if (JOG_Speed < 1) JOG_Speed = 200;
|
||||
if (JOG_Acc < 1) JOG_Acc = 500;
|
||||
|
||||
if (PrintL_Baud == 0) PrintL_Baud = 115200;
|
||||
if (PrintR_Baud == 0) PrintR_Baud = 115200;
|
||||
|
||||
|
||||
if (BugreportToList.isEmpty()) BugreportToList = "chikyun.kim@amkor.co.kr";
|
||||
if (HostIPL.isEmpty() && HostPortL < 1)
|
||||
{
|
||||
HostIPL = "127.0.0.1";
|
||||
HostPortL = 7979;
|
||||
}
|
||||
if (HostIPR.isEmpty() && HostPortR < 1)
|
||||
{
|
||||
HostIPR = "127.0.0.1";
|
||||
HostPortR = 7980;
|
||||
}
|
||||
if (ReelIdDeviceLoc.isEmpty()) ReelIdDeviceLoc = "4";
|
||||
if (ReelIdDeviceID.isEmpty()) ReelIdDeviceID = "A";
|
||||
if (IgnoreBarcode.isEmpty()) IgnoreBarcode = "{{{";
|
||||
if (Timeout_AutoConfirm == 0) Timeout_AutoConfirm = 5;
|
||||
//if (PrintVacOffPurgesec <= 0.0) PrintVacOffPurgesec = 1.1f;
|
||||
if (PrintVacOffPurgeMS == 0) PrintVacOffPurgeMS = 500;
|
||||
if (MoveYForPaperVaccumeVel == 0) MoveYForPaperVaccumeVel = 10;
|
||||
if (MoveYForPaperVaccumeAcc == 0) MoveYForPaperVaccumeAcc = 1000;
|
||||
|
||||
//포트얼라인시간 210401
|
||||
if (PortAlignDownTimeU == 0f &&
|
||||
PortAlignDownTimeL == 0f)
|
||||
{
|
||||
PortAlignDownTimeL = 1.5f;
|
||||
PortAlignDownTimeU = 1.0f;
|
||||
}
|
||||
|
||||
if (Jostick_vid == 0) Jostick_vid = 121;
|
||||
if (Jostick_pid == 0) Jostick_pid = 17;
|
||||
|
||||
if (PrintLWaitMS == 0) PrintLWaitMS = 1500;
|
||||
if (PrintRWaitMS == 0) PrintRWaitMS = 1500;
|
||||
|
||||
if (WaitTime_Magnet0 == 0) WaitTime_Magnet0 = 3000;
|
||||
if (WaitTime_Magnet1 == 0) WaitTime_Magnet1 = 3000;
|
||||
if (WaitTime_Magnet2 == 0) WaitTime_Magnet2 = 3000;
|
||||
|
||||
//if (PrintLeftName.isEmpty()) PrintLeftName = "PrinterL";
|
||||
//if (PrintRightName.isEmpty()) PrintRightName = "PrinterR";
|
||||
|
||||
if (SaftyDetectRise == 0) SaftyDetectRise = 20;
|
||||
if (SaftyDetectFall == 0) SaftyDetectFall = 1000; //안전센서는 느리게 해제 한다
|
||||
|
||||
if (Timeout_JOBEnd == 0) Timeout_JOBEnd = 10;
|
||||
|
||||
if (Timeout_VisionProcessL == 0) Timeout_VisionProcessL = 10000;
|
||||
if (Timeout_VisionProcessU == 0) Timeout_VisionProcessU = 10000;
|
||||
if (PortDetectFall == 0) PortDetectFall = 50;
|
||||
if (PortDetectRise == 0) PortDetectRise = 10;
|
||||
|
||||
if (AirChange == 0) AirChange = 3000;
|
||||
|
||||
if (Keyence_IPF.isEmpty()) Keyence_IPF = "192.168.100.100";
|
||||
//if (Keyence_IPR.isEmpty()) Keyence_IPR = "192.168.100.101";
|
||||
if (Keyence_Port == 0) Keyence_Port = 9004;
|
||||
|
||||
//데이터베이스
|
||||
//if (Keyence_IPL.isEmpty() == true) Keyence_IPL = "net.pipe://127.0.0.1/barcode";
|
||||
//if (Keyence_IPR.isEmpty() == true) Keyence_IPR = "net.pipe://127.0.0.1/barcode";
|
||||
|
||||
if (Timeout_MotionCommand == 0) Timeout_MotionCommand = 10;
|
||||
if (Timeout_DIOCommand == 0) Timeout_DIOCommand = 10;
|
||||
|
||||
if (AutoDeleteThreshold == 0) AutoDeleteThreshold = 20;
|
||||
if (Timeout_HomeSearch == 0) Timeout_HomeSearch = 50;
|
||||
//if (AirOFFTimer == 0) AirOFFTimer = 3000; //181226
|
||||
if (Asset == "") Asset = "DEV_SPLIT";
|
||||
if (Language.isEmpty()) Language = "Kor";
|
||||
//if (Password_Setup.isEmpty()) Password_Setup = "0000";
|
||||
|
||||
if (Path_Data == "") Path_Data = @".\SaveData";
|
||||
try
|
||||
{
|
||||
if (System.IO.Directory.Exists(GetDataPath()) == false)
|
||||
System.IO.Directory.CreateDirectory(GetDataPath());
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
//if (Password_User.isEmpty()) Password_User = "9999";
|
||||
}
|
||||
|
||||
public override void AfterSave()
|
||||
{
|
||||
//throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void CopyTo(CommonSetting dest)
|
||||
{
|
||||
//이곳의 모든 쓰기가능한 속성값을 대상에 써준다.
|
||||
Type thClass = this.GetType();
|
||||
foreach (var method in thClass.GetMethods())
|
||||
{
|
||||
var parameters = method.GetParameters();
|
||||
if (!method.Name.StartsWith("get_")) continue;
|
||||
|
||||
string keyname = method.Name.Substring(4);
|
||||
string methodName = method.Name;
|
||||
|
||||
object odata = GetType().GetMethod(methodName).Invoke(this, null);
|
||||
var wMethod = dest.GetType().GetMethod(Convert.ToString("set_") + keyname);
|
||||
if (wMethod != null) wMethod.Invoke(dest, new object[] { odata });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
78
Handler/Sub/Setting/Model/CounterSetting.cs
Normal file
78
Handler/Sub/Setting/Model/CounterSetting.cs
Normal file
@@ -0,0 +1,78 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace AR
|
||||
{
|
||||
public class CounterSetting : Setting
|
||||
{
|
||||
public int seq { get; set; }
|
||||
public string DateStr { get; set; }
|
||||
|
||||
|
||||
|
||||
public void ClearP()
|
||||
{
|
||||
CountV0 = CountV1 = CountV2 = CountE = CountP0 = CountP1 = CountP2 = CountPrintL = CountPrintR = 0;
|
||||
this.Save();
|
||||
}
|
||||
|
||||
public void ClearDay()
|
||||
{
|
||||
DateStr = string.Empty;
|
||||
CountDP0 = CountDP1 = CountDP2 = CountDP3 = CountDP4 = 0;
|
||||
this.Save();
|
||||
}
|
||||
|
||||
public int CountD
|
||||
{
|
||||
get
|
||||
{
|
||||
return CountDP0 + CountDP1 + CountDP2 + CountDP3 + CountDP4;
|
||||
}
|
||||
}
|
||||
public int Count
|
||||
{
|
||||
get
|
||||
{
|
||||
return CountP0 + CountP1 + CountP2 + CountPrintL + CountPrintR;
|
||||
}
|
||||
}
|
||||
|
||||
public int CountDP0 { get; set; }
|
||||
public int CountDP1 { get; set; }
|
||||
public int CountDP2 { get; set; }
|
||||
public int CountDP3 { get; set; }
|
||||
public int CountDP4 { get; set; }
|
||||
|
||||
|
||||
|
||||
|
||||
//메인카운터
|
||||
public int CountP0 { get; set; }
|
||||
public int CountP1 { get; set; }
|
||||
public int CountP2 { get; set; }
|
||||
public int CountPrintL { get; set; }
|
||||
public int CountPrintR { get; set; }
|
||||
public int CountE { get; set; }
|
||||
public int CountV0 { get; set; }
|
||||
public int CountV1 { get; set; }
|
||||
public int CountV2 { get; set; }
|
||||
|
||||
|
||||
public CounterSetting()
|
||||
{
|
||||
this.filename = AR.UTIL.MakePath("Data", "counter.xml");
|
||||
}
|
||||
public override void AfterLoad()
|
||||
{
|
||||
//if (CountReset == null) CountReset = DateTime.Parse("1982-11-23");
|
||||
}
|
||||
public override void AfterSave()
|
||||
{
|
||||
//throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
82
Handler/Sub/Setting/Model/System_Setting.cs
Normal file
82
Handler/Sub/Setting/Model/System_Setting.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace AR
|
||||
{
|
||||
|
||||
public class SystemSetting : Setting
|
||||
{
|
||||
public int SaftySensor_Threshold { get; set; }
|
||||
|
||||
#region "System Setting"
|
||||
public int MotaxisCount { get; set; }
|
||||
#endregion
|
||||
|
||||
#region "Signal Reverse"
|
||||
|
||||
|
||||
[Category("Signal Reverse")]
|
||||
public Boolean ReverseSIG_Emgergency { get; set; }
|
||||
[Category("Signal Reverse")]
|
||||
public Boolean ReverseSIG_ButtonAir { get; set; }
|
||||
[Category("Signal Reverse")]
|
||||
public Boolean ReverseSIG_DoorF { get; set; }
|
||||
[Category("Signal Reverse")]
|
||||
public Boolean ReverseSIG_DoorR { get; set; }
|
||||
[Category("Signal Reverse")]
|
||||
public Boolean ReverseSIG_AirCheck { get; set; }
|
||||
[Category("Signal Reverse")]
|
||||
public Boolean ReverseSIG_PortLimitUp { get; set; }
|
||||
[Category("Signal Reverse")]
|
||||
public Boolean ReverseSIG_PortLimitDn { get; set; }
|
||||
[Category("Signal Reverse")]
|
||||
public Boolean ReverseSIG_PortDetect0Up { get; set; }
|
||||
[Category("Signal Reverse")]
|
||||
public Boolean ReverseSIG_PortDetect1Up { get; set; }
|
||||
[Category("Signal Reverse")]
|
||||
public Boolean ReverseSIG_PortDetect2Up { get; set; }
|
||||
[Category("Signal Reverse")]
|
||||
public Boolean ReverseSIG_PickerSafe { get; set; }
|
||||
|
||||
[Category("Signal Reverse")]
|
||||
public Boolean ReverseSIG_ExtConvReady { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
[Category("Door Safty"), DisplayName("Disable Front - Left")]
|
||||
|
||||
public Boolean Disable_safty_F0 { get; set; }
|
||||
[Category("Door Safty"), DisplayName("Disable Front - Center")]
|
||||
|
||||
public Boolean Disable_safty_F1 { get; set; }
|
||||
[Category("Door Safty"), DisplayName("Disable Front - Right")]
|
||||
|
||||
public Boolean Disable_safty_F2 { get; set; }
|
||||
[Category("Door Safty"), DisplayName("Disable Rear - Left")]
|
||||
|
||||
public Boolean Disable_safty_R0 { get; set; }
|
||||
[Category("Door Safty"), DisplayName("Disable Rear - Center")]
|
||||
|
||||
public Boolean Disable_safty_R1 { get; set; }
|
||||
[Category("Door Safty"), DisplayName("Disable Rear - Right")]
|
||||
|
||||
public Boolean Disable_safty_R2 { get; set; }
|
||||
|
||||
public SystemSetting()
|
||||
{
|
||||
this.filename = UTIL.MakePath("Data", "system.xml");
|
||||
}
|
||||
public override void AfterLoad()
|
||||
{
|
||||
MotaxisCount = 7;
|
||||
}
|
||||
public override void AfterSave()
|
||||
{
|
||||
//throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
72
Handler/Sub/Setting/Model/UserSetting.cs
Normal file
72
Handler/Sub/Setting/Model/UserSetting.cs
Normal file
@@ -0,0 +1,72 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.ComponentModel;
|
||||
|
||||
|
||||
namespace AR
|
||||
{
|
||||
public class UserSetting : Setting
|
||||
{
|
||||
public string customerlist { get; set; }
|
||||
public Boolean Option_QtyUpdate1 { get; set; }
|
||||
public Boolean Option_PartUpdate { get; set; }
|
||||
public Boolean Option_printforce1 { get; set; }
|
||||
public Boolean Option_Confirm1 { get; set; }
|
||||
public Boolean Option_AutoConfirm { get; set; }
|
||||
public Boolean Option_vname { get; set; }
|
||||
public Boolean Option_FixPrint1 { get; set; }
|
||||
public string Option_PrintPos1 { get; set; }
|
||||
public Boolean Option_SidConv { get; set; }
|
||||
|
||||
//public Boolean Option_QtyUpdate3 { get; set; }
|
||||
//public Boolean Option_printforce3 { get; set; }
|
||||
//public Boolean Option_Confirm3 { get; set; }
|
||||
//public Boolean Option_FixPrint3 { get; set; }
|
||||
//public string Option_PrintPos3 { get; set; }
|
||||
|
||||
public string LastJobUnP11 { get; set; }
|
||||
public string LastJobUnP12 { get; set; }
|
||||
public string LastJobUnP21 { get; set; }
|
||||
public string LastJobUnP22 { get; set; }
|
||||
public string LastJobUnP31 { get; set; }
|
||||
public string LastJobUnP32 { get; set; }
|
||||
public string LastJobUnP41 { get; set; }
|
||||
public string LastJobUnP42 { get; set; }
|
||||
|
||||
|
||||
public string LastLot { get; set; }
|
||||
public string LastAltag { get; set; }
|
||||
public string LastModelM { get; set; }
|
||||
public string LastModelV { get; set; }
|
||||
|
||||
public string LastMC { get; set; }
|
||||
|
||||
public int jobtype { get; set; }
|
||||
public int scantype { get; set; }
|
||||
public bool useConv { get; set; }
|
||||
public UserSetting()
|
||||
{
|
||||
this.filename = UTIL.MakePath("data", "UserSet.xml");
|
||||
}
|
||||
|
||||
public override void AfterLoad()
|
||||
{
|
||||
|
||||
if (LastJobUnP11.isEmpty()) LastJobUnP11 = "AUTO";
|
||||
if (LastJobUnP12.isEmpty()) LastJobUnP12 = "AUTO";
|
||||
if (LastJobUnP21.isEmpty()) LastJobUnP21 = "AUTO";
|
||||
if (LastJobUnP22.isEmpty()) LastJobUnP22 = "AUTO";
|
||||
if (LastJobUnP31.isEmpty()) LastJobUnP31 = "AUTO";
|
||||
if (LastJobUnP32.isEmpty()) LastJobUnP32 = "AUTO";
|
||||
if (LastJobUnP41.isEmpty()) LastJobUnP41 = "AUTO";
|
||||
if (LastJobUnP42.isEmpty()) LastJobUnP42 = "AUTO";
|
||||
|
||||
}
|
||||
public override void AfterSave()
|
||||
{
|
||||
//throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user