/// <summary>Event AlarmResetFail(014)</summary> /// <param name="rtnFromServer"></param> /// <remarks>異常恢復失敗</remarks> public void AlarmResetFail(ReturnFromServer rtnFromServer) { if (OnAlarmResetFailHandler != null) { OnAlarmResetFailHandler.Invoke(this, EventArgs.Empty); } }
/// <summary>Event DockPODComplete_Empty(010)</summary> /// <param name="rtnFromServer"></param> /// <remarks> /// <para>1. StageDock完畢後</para> /// <para>2. 收到AskReticleExistStatus</para> /// </remarks> public void DockPODComplete_Empty(ReturnFromServer rtnFromServer) { if (OnDockPODComplete_EmptyHandler != null) { OnDockPODComplete_EmptyHandler.Invoke(this, EventArgs.Empty); } }
/// <summary>Alarm StageMotorAbnormality(210)</summary> /// <param name="rtnFromServer"></param> /// <remarks>Stage升降馬達驅動器異常</remarks> public void StageMotorAbnormality(ReturnFromServer rtnFromServer) { if (OnStageMotorAbnormalityHandler != null) { OnStageMotorAbnormalityHandler.Invoke(this, EventArgs.Empty); } }
/// <summary>Event AlarmResetFirst (016)</summary> /// <param name="rtnFromServer"></param> /// <remarks>提示進行異常復歸動作</remarks> public void ExecuteAlarmResetFirst(ReturnFromServer rtnFromServer) { if (OnExecuteAlarmResetFirstHandler != null) { OnExecuteAlarmResetFirstHandler.Invoke(this, EventArgs.Empty); } }
/// <summary>Alarm ClamperLockPositionFailed(207)</summary> /// <param name="rtnFromServer"></param> /// <remarks>ClamerLock完成後位置錯誤</remarks> public void ClamperLockPositionFailed(ReturnFromServer rtnFromServer) { if (OnClamperLockPositionFailedHandler != null) { OnClamperLockPositionFailedHandler.Invoke(this, EventArgs.Empty); } }
/// <summary>Event DockPODStart(008)</summary> /// <param name="rtnFromServer"></param> /// <remarks>收到DockRequest後, 開始移動Stage前</remarks> public void DockPODStart(ReturnFromServer rtnFromServer) { if (OnDockPODStartHandler != null) { OnDockPODStartHandler.Invoke(this, EventArgs.Empty); } }
/// <summary>Alarm StageOverDownLimitation(205)</summary> /// <param name="rtnFromServer"></param> /// <remarks>Stage下位限制Sensor觸發</remarks> public void StageOverDownLimitation(ReturnFromServer rtnFromServer) { if (OnStageOverDownLimitationHandler != null) { OnStageOverDownLimitationHandler.Invoke(this, EventArgs.Empty); } }
/// <summary>Alarm ReticlePositionAbnormality(206)</summary> /// <param name="rtnFromServer"></param> ///<remarks>Dock/Undock時, 光罩滑出POD</remarks> public void ReticlePositionAbnormality(ReturnFromServer rtnFromServer) { if (OnReticlePositionAbnormalityHandler != null) { OnReticlePositionAbnormalityHandler.Invoke(this, EventArgs.Empty); } }
/// <summary>Alarm ClamperActionTimeOut(200)</summary> /// <param name="rtnFromServer"></param> /// <remarks>Clamper馬達運動超時</remarks> public void ClamperActionTimeOut(ReturnFromServer rtnFromServer) { if (OnClamperActionTimeOutHandler != null) { OnClamperActionTimeOutHandler.Invoke(this, EventArgs.Empty); } }
/// <summary>Alarm StageMotionTimeout(203)</summary> /// <param name="rtnFromServer"></param> /// <remarks>Stage運動超時</remarks> public void StageMotionTimeout(ReturnFromServer rtnFromServer) { if (OnStageMotionTimeoutHandler != null) { OnStageMotionTimeoutHandler.Invoke(this, EventArgs.Empty); } }
/// <summary>Event PODNotPutProperly(023)</summary> /// <remarks>2020/06/11 new</remarks> public void PODNotPutProperly(ReturnFromServer rtnFromServer) { if (OnPODNotPutProperlyHandler != null) { OnPODNotPutProperlyHandler.Invoke(this, EventArgs.Empty); } }
/// <summary>Event ClamperNotLock(022)</summary> /// <param name="rtnFromServer"></param> public void ClamperNotLock(ReturnFromServer rtnFromServer) { if (OnClamperNotLockHandler != null) { OnClamperNotLockHandler.Invoke(this, EventArgs.Empty); } }
//~021,MustInManualMode@ public void MustInManualMode(ReturnFromServer rtnFromServer) { if (OnMustInManualModeHandler != null) { OnMustInManualModeHandler.Invoke(this, EventArgs.Empty); } }
/// <summary>Event ClamperUnlockComplete(012)</summary> /// <param name="rtnFromServer"></param> public void ClamperUnlockComplete(ReturnFromServer rtnFromServer) { if (OnClamperUnlockCompleteHandler != null) { OnClamperUnlockCompleteHandler.Invoke(this, EventArgs.Empty); } }
/// <summary>Alarm PODPresentAbnormality(208)</summary> /// <param name="rtnFromServer"></param> /// <remarks>POD上下蓋脫離定位</remarks> public void PODPresentAbnormality(ReturnFromServer rtnFromServer) { if (OnPODPresentAbnormalityHandler != null) { OnPODPresentAbnormalityHandler.Invoke(this, EventArgs.Empty); } }
public void InitialComplete(ReturnFromServer rtnFromServer) { /*[d20220113] 名稱必須為 InitialComple, 這是 Gudeng Load Port 回傳的字串*/ if (OnInitialCompleteHandler != null) { OnInitialCompleteHandler.Invoke(this, EventArgs.Empty); } }
/// <summary>Event LoadportStatus(018)</summary> /// <param name="rtnFromServer"></param> /// <remarks> /// <para>1. Loadport內部狀態改變</para> /// <para>2. 收到AskLoadportStatus</para> /// </remarks> public void LoadportStatus(ReturnFromServer rtnFromServer) { var rtnCode = (EventLoadportStatusCode)(Convert.ToInt32(rtnFromServer.ReturnCode)); if (OnLoadportStatusHandler != null) { var eventArgs = new OnLoadportStatusEventArgs(rtnCode); OnLoadportStatusHandler.Invoke(this, eventArgs); } }
/// <summary>Event Present(002)</summary> /// <param name="rtnFromServer"></param> /// <remarks> /// <para>1. Present狀態改變</para> /// <para>2. 收到 AskPresentStatus</para> /// </remarks> public void Present(ReturnFromServer rtnFromServer) { // rtnCode: 有無Present訊息 var rtnCode = (EventPresentCode)(Convert.ToInt32(rtnFromServer.ReturnCode)); if (OnPresentHandler != null) { var eventArgs = new OnPresentEventArgs(rtnCode); OnPresentHandler.Invoke(this, eventArgs); } }
/// <summary>Event VacummComplete(007)</summary> /// <param name="rtnFromServer"></param> /// <remarks> /// <para>1. Load貨完成後底盤吸住</para> /// <para>2. 收到AskVacuumStatus</para> /// <para>3. 底座真空狀態改變</para> /// </remarks> public void VacuumComplete(ReturnFromServer rtnFromServer) { // rtnCode: 是否建立真空 var rtnCode = (EventVacuumCompleteCode)(Convert.ToInt32(rtnFromServer.ReturnCode)); if (OnVacuumCompleteHandler != null) { var eventArgs = new OnVacuumCompleteEventArgs(rtnCode); OnVacuumCompleteHandler.Invoke(this, eventArgs); } }
/// <summary>Event ClamperLockComplete(006)</summary> /// <param name="rtnFromServer"></param> /// <remarks> /// <para>1. Load貨完成後開啟Clamper</para> /// <para>2. 收到AskClamperStatus</para> /// </remarks> public void ClamperLockComplete(ReturnFromServer rtnFromServer) { // rtnCode: Clamper 關閉/開啟 var rtnCode = (EventClamperLockCompleteCode)(Convert.ToInt32(rtnFromServer.ReturnCode)); if (OnClamperLockCompleteHandler != null) { var eventArgs = new OnClamperLockCompleteEventArgs(rtnCode); OnClamperLockCompleteHandler.Invoke(this, eventArgs); } }
/// <summary>Event Clamper(003)</summary> /// <param name="rtnFromServer"></param> /// <remarks> /// <para>1. Clamper 狀態改變</para> /// <para>2. 收到 AskClamperStatus</para> /// </remarks> public void Clamper(ReturnFromServer rtnFromServer) { //rtnCode: Clamper狀態(關閉, 開啟, 不在定位需復歸) var rtnCode = (EventClamperCode)(Convert.ToInt32(rtnFromServer.ReturnCode)); if (OnClamperHandler != null) { var eventArgs = new OnClamperEventArgs(rtnCode); OnClamperHandler.Invoke(this, eventArgs); } }
/// <summary>Event StagePosition (017)</summary> /// <param name="rtnFromServer"></param> /// <remarks> /// <para>1. Stage位置改變</para> /// <para>2. 收到AskStagePosition</para> /// </remarks> public void StagePosition(ReturnFromServer rtnFromServer) { // rtnCode: Stage 位置 var rtnCode = (EventStagePositionCode)(Convert.ToInt32(rtnFromServer.ReturnCode)); if (OnStagePositionHandler != null) { var eventArgs = new OnStagePositionEventArgs(rtnCode); OnStagePositionHandler.Invoke(this, eventArgs); } }
/// <summary>Event RFID(004)</summary> /// <param name="rtnFromServer"></param> /// <remarks> /// <para>1. Load貨, 完成讀取RFID後</para> /// <para>2. 收到AskRFIDStatus</para> /// </remarks> public void RFID(ReturnFromServer rtnFromServer) { // rfID: 讀取的 RFID var rfID = rtnFromServer.ReturnCode; if (OnRFIDHandler != null) { var eventArgs = new OnRFIDEventArgs(rfID); if (OnRFIDHandler != null) { OnRFIDHandler.Invoke(this, eventArgs); } } }
/// <summary>Event Barcode ID (005)</summary> /// <param name="rtnFromServer"></param> /// <remarks> /// <para>1. Load貨完成讀取Barcode後</para> /// <para>2. 收到AskBarcodeStatus</para> /// </remarks> public void Barcode_ID(ReturnFromServer rtnFromServer) { // rtnCode: 讀取成功或失敗 var rtnCode = (EventBarcodeIDCode)(Convert.ToInt32(rtnFromServer.ReturnCode)); // barcodeID: 讀取成功時的 barcode ID var barcodeID = rtnFromServer.ReturnValue; if (OnBarcode_IDHandler != null) { var eventArgs = new OnBarcode_IDEventArgs(rtnCode, barcodeID); OnBarcode_IDHandler.Invoke(this, eventArgs); } }
/// <summary>Client(本地)端 Listen 收到 Server 端回傳資料後引發的事件程序</summary> /// <param name="sender"></param> /// <param name="args"></param> private void ReceiveMessageFromServer(object sender, EventArgs args) { var eventArgs = (OnReceviceRtnFromServerEventArgs)args; ReturnFromServer rtnContent = new ReturnFromServer(eventArgs.RtnContent); var methodName = rtnContent.StringContent.Replace(" ", "_");//.Replace("\0", ""); try { var method = typeof(MvGudengLoadPortLdd).GetMethod(methodName); method.Invoke(this, new object[] { rtnContent }); } catch (Exception ex) { MvaLog.WarnNs(this, ex); } }
/// <summary>Event Initial Complete(019)</summary> /// <remarks>初始化完畢後</remarks> /// <param name="rtnFromServer"></param> public void InitialComple(ReturnFromServer rtnFromServer) { /*[d20220113] 名稱必須為 InitialComple, 這是 Gudeng Load Port 回傳的字串*/ this.InitialComplete(rtnFromServer); }
public void LoadportStatu2(ReturnFromServer rtnFromServer) { this.LoadportStatus(rtnFromServer); }
public void VacuumComplet0(ReturnFromServer rtnFromServer) { this.VacuumComplete(rtnFromServer); }