using Aitex.Core.RT.Event; using MECF.Framework.Common.Event; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FurnaceRT.Equipments.CarrierRobots { public partial class CarrierRobotModule { #region AlarmDefine public AlarmEventItem TargetCassettePresentWarning { get; set; } public AlarmEventItem TargetCassetteNotPresentWarning { get; set; } public AlarmEventItem BladeCassettePresentWarning { get; set; } public AlarmEventItem BladeCassetteNotPresentWarning { get; set; } public AlarmEventItem CheckCarrierIDFailAlarm { get; set; } public AlarmEventItem GotoTimeoutAlarm { get; set; } public AlarmEventItem GotoFailAlarm { get; set; } public AlarmEventItem PickCassetteTimeoutAlarm { get; set; } public AlarmEventItem PickCassetteFailAlarm { get; set; } public AlarmEventItem PlaceCassetteTimeoutAlarm { get; set; } public AlarmEventItem PlaceCassetteFailAlarm { get; set; } public AlarmEventItem RequestCassettePresentTimeoutAlarm { get; set; } public AlarmEventItem RequestCassettePresentFailAlarm { get; set; } public AlarmEventItem RobotSensorFoundCassetteOnBladeAfterPlaceAlarm { get; set; } public AlarmEventItem RobotSensorNotFoundCassetteOnBladeAfterPickAlarm { get; set; } public AlarmEventItem CheckCassetteInformationFailAlarm { get; set; } public AlarmEventItem RobotHasError { get; set; } public AlarmEventItem SetServoOnTimeoutAlarm { get; set; } public AlarmEventItem SetServoOnFailAlarm { get; set; } public AlarmEventItem RobotHomeTimeoutAlarm { get; set; } public AlarmEventItem RobotHomeFailAlarm { get; set; } public AlarmEventItem CheckLoadTimeoutAlarm { get; set; } public AlarmEventItem CheckLoadFailAlarm { get; set; } public AlarmEventItem SetSpeedTimeoutAlarm { get; set; } public AlarmEventItem SetSpeedFailAlarm { get; set; } public AlarmEventItem WaitInCommandTimeout { get; set; } public AlarmEventItem WaitOutCommandTimeout { get; set; } public AlarmEventItem WaitPodPrensentChangeTimeout { get; set; } public AlarmEventItem WaferMapTimeout { get; set; } public AlarmEventItem WaferMapFailAlarm { get; set; } public AlarmEventItem SetStageValveTimeout { get; set; } public AlarmEventItem SetStageValveFailAlarm { get; set; } public AlarmEventItem LoadCassetteMappingFailAlarm { get; set; } public AlarmEventItem LoadCassetteTimeoutAlarm { get; set; } public AlarmEventItem LoadCassetteFailAlarm { get; set; } public AlarmEventItem UnloadCassetteTimeoutAlarm { get; set; } public AlarmEventItem UnloadCassetteFailAlarm { get; set; } public AlarmEventItem LoadCassettePauseWarning { get; set; } public AlarmEventItem LoadCassetteResumeWarning { get; set; } public AlarmEventItem UnoadCassettePauseWarning { get; set; } public AlarmEventItem UnoadCassetteResumeWarning { get; set; } public AlarmEventItem PickCassettePauseWarning { get; set; } public AlarmEventItem PickCassetteResumeWarning { get; set; } public AlarmEventItem PlaceCassettePauseWarning { get; set; } public AlarmEventItem PlaceCassetteResumeWarning { get; set; } public AlarmEventItem GotoPauseWarning { get; set; } public AlarmEventItem GotoResumeWarning { get; set; } public AlarmEventItem ShutterOpenTimeoutAlarm { get; set; } public AlarmEventItem ShutterCloseTimeoutAlarm { get; set; } public AlarmEventItem RobotDIAlarm { get; set; } #endregion private void InitAlarmDefine() { TargetCassettePresentWarning = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.TargetCassettePresentWarning", Description = $"Target cassette present ", Solution = "No information available. Press[Clear] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Warning, Action = EventAction.Clear, Category = "CassetteRobotAlarm", }, () => { return true; }); TargetCassetteNotPresentWarning = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.TargetCassetteNotPresentWarning", Description = $"Target cassette not present ", Solution = "No information available. Press[Clear] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Warning, Action = EventAction.Clear, Category = "CassetteRobotAlarm", }, () => { return true; }); BladeCassettePresentWarning = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.BladeCassettePresentWarning", Description = $"Blade cassette present ", Solution = "No information available. Press[Clear] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Warning, Action = EventAction.Clear, Category = "CassetteRobotAlarm", }, () => { return true; }); BladeCassetteNotPresentWarning = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.BladeCassetteNotPresentWarning", Description = $"Blade cassette not present ", Solution = "No information available. Press[Clear] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Warning, Action = EventAction.Clear, Category = "CassetteRobotAlarm", }, () => { return true; }); GotoTimeoutAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.GotoTimeoutAlarm", Description = $"{Name} goto timeout ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.Retry, Category = "CassetteRobotAlarm", }, () => { return true; }); GotoFailAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.GotoFailAlarm", Description = $"{Name} goto fail ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.Retry, Category = "CassetteRobotAlarm", }, () => { return true; }); PickCassetteTimeoutAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.PickCassetteTimeoutAlarm", Description = $"Pick cassette timeout ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); PickCassetteFailAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.PickCassetteFailAlarm", Description = $"Pick cassette fail reason ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); CheckCarrierIDFailAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.CheckCarrierIDFailAlarm", Description = $"Check carrier id fail reason ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); PlaceCassetteTimeoutAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.PlaceCassetteTimeoutAlarm", Description = $"Place cassette timeout ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); PlaceCassetteFailAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.PlaceCassetteFailAlarm", Description = $"Place cassette fail reason ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); RequestCassettePresentTimeoutAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.RequestCassettePresentTimeoutAlarm", Description = $"Request cassette present timeout ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); RequestCassettePresentFailAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.RequestCassettePresentFailAlarm", Description = $"Request cassette present fail ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); RobotSensorFoundCassetteOnBladeAfterPlaceAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.RobotSensorFoundCassetteOnBladeAfterPlaceAlarm", Description = $"Robot sensor found cassette on blade after place ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); RobotSensorNotFoundCassetteOnBladeAfterPickAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.RobotSensorNotFoundCassetteOnBladeAfterPickAlarm", Description = $"Robot sensor not found cassette on blade after pick ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); CheckCassetteInformationFailAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.CheckCassetteInformationFailAlarm", Description = $"Check cassette information fail ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); RobotHasError = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.RobotHasError", Description = $"Robot has error ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); SetServoOnTimeoutAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.SetServoOnTimeoutAlarm", Description = $"Set servo on timeout ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); SetServoOnFailAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.SetServoOnFailAlarm", Description = $"Set servo on fail reason ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); RobotHomeTimeoutAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.RobotHomeTimeoutAlarm", Description = $"Robot home timeout ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); RobotHomeFailAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.RobotHomeFailAlarm", Description = $"Robot home fail reason ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); CheckLoadTimeoutAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.CheckLoadTimeoutAlarm", Description = $"Check load timeout ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); CheckLoadFailAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.CheckLoadFailAlarm", Description = $"Check load fail reason ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); SetSpeedTimeoutAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.SetSpeedTimeoutAlarm", Description = $"Set speed timeout ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); SetSpeedFailAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.SetSpeedFailAlarm", Description = $"Set speed fail ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); WaferMapTimeout = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.WaferMapTimeout", Description = $"Wafer map timeout ", Solution = "No information available. Press[Clear] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.Clear, Category = "CassetteRobotAlarm", }, () => { return true; }); WaferMapFailAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.WaferMapFailAlarm", Description = $"Wafer map fail reason ", Solution = "No information available. Press[Clear] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.Clear, Category = "CassetteRobotAlarm", }, () => { return true; }); WaitInCommandTimeout = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.WaitInCommandTimeout", Description = $"Wait In Command timeout ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); WaitOutCommandTimeout = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.WaitOutCommandTimeout", Description = $"Wait Out Command timeout ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); WaitPodPrensentChangeTimeout = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.WaitPodPrensentChangeTimeout", Description = $"Wait pod prensent change timeout ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); SetStageValveTimeout = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.SetStageValveTimeout", Description = $"Set stage valve timeout ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); SetStageValveFailAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.SetStageValveFailAlarm", Description = $"Set stage valve fail reason ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); LoadCassetteMappingFailAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.LoadCassetteMappingFailAlarm", Description = $"Load cassette mapping fail reason ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); LoadCassetteTimeoutAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.LoadCassetteTimeoutAlarm", Description = $"Load cassette timeout ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); LoadCassetteFailAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.LoadCassetteFailAlarm", Description = $"Load cassette fail reason ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); UnloadCassetteTimeoutAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.UnloadCassetteTimeoutAlarm", Description = $"Unload cassette timeout ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); UnloadCassetteFailAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.UnloadCassetteFailAlarm", Description = $"Unload cassette fail reason ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CassetteRobotAlarm", }, () => { return true; }); LoadCassettePauseWarning = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.LoadCassettePauseWarning", Description = $"Load cassette pause ", Solution = "No information available. Press[Clear] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Warning, Action = EventAction.Clear, Category = "CassetteRobotAlarm", }, () => { return true; }); LoadCassetteResumeWarning = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.LoadCassetteResumeWarning", Description = $"Load cassette resume ", Solution = "No information available. Press[Clear] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Warning, Action = EventAction.Clear, Category = "CassetteRobotAlarm", }, () => { return true; }); UnoadCassettePauseWarning = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.UnoadCassettePauseWarning", Description = $"Unload cassette pause ", Solution = "No information available. Press[Clear] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Warning, Action = EventAction.Clear, Category = "CassetteRobotAlarm", }, () => { return true; }); UnoadCassetteResumeWarning = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.UnoadCassetteResumeWarning", Description = $"Unload cassette resume ", Solution = "No information available. Press[Clear] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Warning, Action = EventAction.Clear, Category = "CassetteRobotAlarm", }, () => { return true; }); PickCassettePauseWarning = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.PickCassettePauseWarning", Description = $"Pick cassette pause ", Solution = "No information available. Press[Clear] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Warning, Action = EventAction.Clear, Category = "CassetteRobotAlarm", }, () => { return true; }); PickCassetteResumeWarning = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.PickCassetteResumeWarning", Description = $"Pick cassette resume ", Solution = "No information available. Press[Clear] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Warning, Action = EventAction.Clear, Category = "CassetteRobotAlarm", }, () => { return true; }); PlaceCassettePauseWarning = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.PlaceCassettePauseWarning", Description = $"Place cassette pause ", Solution = "No information available. Press[Clear] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Warning, Action = EventAction.Clear, Category = "CassetteRobotAlarm", }, () => { return true; }); PlaceCassetteResumeWarning = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.PlaceCassetteResumeWarning", Description = $"Place cassette resume ", Solution = "No information available. Press[Clear] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Warning, Action = EventAction.Clear, Category = "CassetteRobotAlarm", }, () => { return true; }); GotoPauseWarning = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.GotoPauseWarning", Description = $"{Name} goto pause ", Solution = "No information available. Press[Clear] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Warning, Action = EventAction.Clear, Category = "CassetteRobotAlarm", }, () => { return true; }); GotoResumeWarning = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.GotoResumeWarning", Description = $"{Name} goto resume ", Solution = "No information available. Press[Clear] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Warning, Action = EventAction.Clear, Category = "CassetteRobotAlarm", }, () => { return true; }); ShutterOpenTimeoutAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.ShutterOpenTimeoutAlarm", Description = $"Shutter Open Timeout ", Solution = "No information available. Press[Clear] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.Clear, Category = "CassetteRobotAlarm", }, () => { return true; }); RobotDIAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.RobotDIAlarm", Description = $"Carrier Robot DI Alarm Trigger ", Solution = "No information available. Press[Retry] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.ClearAndRetry, Category = "CarrierRobotAlarm", }, () => { return true; }); ShutterCloseTimeoutAlarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.ShutterCloseTimeoutAlarm", Description = $"Shutter Close Timeout ", Solution = "No information available. Press[Clear] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Alarm, Action = EventAction.Clear, Category = "CassetteRobotAlarm", }, () => { return true; }); if (AlarmSignaFOUPRobotTPStatusWarning != null) { var alarm = SubscribeAlarm(new AlarmEventItem() { EventEnum = $"{Name}.AlarmSignaFOUPRobotTPStatusWarning", Description = $"FOUP Robot TP Status Warning Trigger ", Solution = "No information available. Press[Clear] to delete alarm message.", Explaination = "No information available.", AutoRecovery = false, Level = EventLevel.Warning, Action = EventAction.Clear, Category = "CassetteRobotAlarm", }, () => { AlarmSignaFOUPRobotTPStatusWarning.Reset(); return true; }); AlarmSignaFOUPRobotTPStatusWarning.AlarmTriggered = alarm; } CarrierRobotDevice.RobotHasError = RobotHasError; } } }