using SKMC.Api.Common;
using SKMC.Api.Motion.Control;
using System;
namespace SKMC.Api.Process.Model
{
///
/// 流程站点的必要动作接口
///
public abstract class ProcessAction
{
protected readonly IMotionChecker motionChecker = ObjectFactory.Resolve();
protected readonly IMotionControl motionControl = ObjectFactory.Resolve();
public ProcessStation ProcessStation { get; set; }
///
/// 运动安全检查函数
///
public Func SafeChecker { get; set; }
///
/// 流程站点的复位前检查
/// 例如站内是否有物料残留等
///
///
public abstract bool ResetCheck();
///
/// 流程站点的复位动作
///
public abstract void Reset();
///
/// 流程站点的快速复位动作
///
//public abstract void ResetFast();
///
/// 流程站点的自检动作
///
public virtual void SelfCheck() { }
///
/// 动作初始化以及变量等数据初始化
///
public abstract void Init();
///
/// 流程每次循环开始前的准备动作
///
public virtual void Prepare() { }
///
/// 暂停
///
public virtual void Pause() { }
///
/// 继续
///
public virtual void Resume() { }
///
/// 停止
///
public virtual void Stop() { }
}
}