123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- using Aitex.Core.RT.DataCenter;
- using Aitex.Core.RT.Device;
- using Aitex.Core.RT.Routine;
- using Aitex.Core.RT.SCCore;
- using MECF.Framework.Common.Equipment;
- using CyberX8_Core;
- using CyberX8_RT.Devices.PUF;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace CyberX8_RT.Modules.PUF
- {
- public class PufCalibrateRoutine : ModuleRoutineBase, IRoutine
- {
- #region 常量
- private const string CHUCKA_RELEASE = "ChuckARelease";
- private const double STANDARD = 100;
- #endregion
- private enum PufCalibrateStep
- {
- CheckValid,
- VacuumOff,
- SaveConfig,
- End
- }
- #region 内部变量
- private PufVacuum _vacuum;
- private PufDistanceSensor _distanceSensor;
- private int _timeOut = 6000;
- private double _offset1;
- private double _offset2;
- #endregion
- public PufCalibrateRoutine(ModuleName module) : base(module)
- {
- _vacuum = DEVICE.GetDevice<PufVacuum>($"{module.ToString()}.Vacuum");
- _distanceSensor = DEVICE.GetDevice<PufDistanceSensor>($"{module.ToString()}.DistanceSensor");
- Name = "Vacuum";
- }
- public void Abort()
- {
- Runner.Stop("Manual Abort");
- }
- public RState Monitor()
- {
- Runner.Run(PufCalibrateStep.CheckValid,CheckValid,100)
- .Run(PufCalibrateStep.VacuumOff, VacuumAOff, CheckVacuumOff, _timeOut)
- .Run(PufCalibrateStep.SaveConfig, SaveConfig, NullFun, _timeOut)
- .End(PufCalibrateStep.End,NullFun);
- return Runner.Status;
- }
- private bool CheckValid()
- {
- return true;
- }
- private bool VacuumAOff()
- {
- return _vacuum.VacuumAOff();
- }
- private bool CheckVacuumOff()
- {
- return DATA.Poll<bool>($"{Module}",CHUCKA_RELEASE);
- }
- private bool SaveConfig()
- {
- _distanceSensor.SaveConfig(_offset1, _offset2);
- return true;
- }
- public RState Start(params object[] objs)
- {
- if(objs == null || objs.Length == 0)
- {
- return RState.Failed;
- }
- _offset1 = STANDARD - (double)objs[1];
- _offset2=STANDARD- (double)objs[2];
- Runner.Start(Module, Name);
- return RState.Running;
- }
- }
- }
|