using Rs.MotionPlat.Commom;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Rs.MotionPlat.Flow
{
///
/// 测试状态
///
public enum ETestStatus
{
///
/// 空闲
///
Idle,
///
/// 测试中
///
Testing,
///
/// 测试完成
///
Finished
}
public enum EMachineStatus
{
///
/// 未初始化
///
NotInit,
///
/// 未回原
///
NotHomed,
///
/// 回原中
///
Homing,
///
/// 回零失败
///
HomeFail,
///
/// 回原完成
///
Homed,
///
/// 工作中
///
Working,
///
/// 暂停
///
Stop,
///
/// 报警中
///
Warning,
///
/// 急停中
///
EStop
}
public class MachineManage
{
private static MachineManage instace;
public static MachineManage Instance
{
get
{
if (instace == null)
instace = new MachineManage();
return instace;
}
}
private MachineManage() { }
public EMachineStatus MachineStatus = EMachineStatus.NotInit;
public ETestStatus TestStatus = ETestStatus.Idle;
///
/// 上下料状态(Waiting,Busying,Unloading,Error,Interrupt,)
///
private ERunState RunState { get; set; } = ERunState.Interrupt;
///
/// 设备运行状态(Started,Stopped,InAlarm,EMGStop)
///
private ERunStatus RunStatus { get; set; } = ERunStatus.Stopped;
///
/// 运行模式(Manual,Automatic)
///
public ERunMode RunMode { get; set; } = ERunMode.Manual;
///
/// 初始化状态(Uninitialized,Initializing,Initialized)
///
public EInitializeState InitializeState { get; set; } = EInitializeState.Uninitialized;
///
/// 测试机状态
///
private TesterInfo testerInfo;
///
/// 物料分配模式(正常或空跑)
///
public EAssignMode AssignMode { get; set; } = EAssignMode.Normal;
public bool NeedRestoreMove { get; set; } = false;
///
/// 设置返回中控的运行状态
///
///
public void SetCenterMachineStatus(ERunStatus status)
{
RunStatus= status;
}
public void SetTesterState(TesterInfo _testerInfo)
{
testerInfo = _testerInfo;
}
public TesterInfo GetTesterInfo() {
return testerInfo;
}
///
/// 获取中控运行状态
///
///
public ERunStatus GetCenterRunStatus()
{
return RunStatus;
}
///
/// 设置本地运行状态
///
///
public void SetLocalMachineStatus(EMachineStatus status)
{
MachineStatus= status;
}
///
/// 设置上下料的状态
///
///
public void SetLoadUnloadStatus(ERunState status)
{
RunState= status;
}
///
/// 获取上下料的状态
///
///
public ERunState GetLoadUnloadStatus()
{
return RunState;
}
}
}