Sic03-8inch/Modules/Mainframe/PMs/Routines/PMMfcRorRoutine.cs

101 lines
2.4 KiB
C#

using Aitex.Core.RT.Device.Devices;
using Aitex.Core.RT.Device;
using Aitex.Core.RT.Event;
using Aitex.Core.RT.Routine;
using Aitex.Core.RT.SCCore;
using MECF.Framework.Common.Equipment;
using SicModules.PMs.Routines.Base;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SicModules.PMs.Utilities;
namespace SicModules.PMs.Routines
{
public class PMMfcRorRoutine : PMBaseRoutine
{
private enum RoutineStep
{
TimeDelay1,
TimeDelay2,
TimeDelay3,
TimeDelay4,
TimeDelay5,
TimeDelay6,
TimeDelay7,
TimeDelay8,
TimeDelay9,
}
private ModuleName moduleName;
private PMModule _pmModule;
private MfcRorData _mfcRorData;
private Stopwatch _swTimer = new Stopwatch();
public PMMfcRorRoutine(ModuleName module, PMModule pm) : base(module, pm)
{
moduleName = module;
_pmModule = pm;
Name = "MfcRor";
}
public override Result Start(params object[] objs)
{
Reset();
_mfcRorData = (MfcRorData)objs[0];
_swTimer.Restart();
Notify($"Start MfcRor");
return Result.RUN;
}
public override Result Monitor()
{
try
{
//CheckRoutineTimeOut();
}
catch (RoutineBreakException)
{
return Result.RUN;
}
catch (RoutineFaildException)
{
return Result.FAIL;
}
Notify($"Finished ! Elapsed time: {(int)(_swTimer.ElapsedMilliseconds / 1000)} s");
_swTimer.Stop();
return Result.DONE;
}
public override void Abort()
{
base.Abort();
}
//private void CheckRoutineTimeOut()
//{
// if (_routineTimeOut > 10)
// {
// if ((int)(_swTimer.ElapsedMilliseconds / 1000) > _routineTimeOut)
// {
// EV.PostAlarmLog(Module,$"Routine TimeOut! over {_routineTimeOut} s");
// throw (new RoutineFaildException());
// }
// }
//}
}
}