using System; using System.Collections.Generic; using System.Diagnostics; using Aitex.Core.Common; using Aitex.Sorter.Common; using MECF.Framework.Common.Equipment; using CyberX8_Core; namespace CyberX8_RT.Devices { public interface IEfemMessage : IHardwareMessage { EfemOperation Operation { get; set; } } interface IAlign { void Lift(); void Align(WaferSize size); } public interface ILoadport { ModuleName Module { get; set; } //DoorState DoorStatus { get; set; } DeviceState Status { get; set; } bool HasCassette { get; set; } bool IsMapped { get; set; } bool IsLoaded { get; set; } bool IsClamped { get; set; } string CarrierId { get; set; } bool IsThicknessValid { get; } string SmartTag { get; set; } WaferStatus[] WaferInfo { get; set; } bool JobDone { get; set; } Stopwatch TimerNotifyJobDone { get; set; } void Home(); void NoteJobStart(); void NoteJobComplete(); void GotoMap(string extend); void Map(); void SetOnline(bool on); void OnCarrierIDRead(string data); void OnCarrierIDReadFailed(string data); void OnLoadFailed(string data); void OnHomed(); void OnLoaded(); void OnUnloaded(); void OnUnloadFailed(string data); void OnClamped(bool isUnloadClamp); void OnClampFailed(string data); void OnUnclamped(); void OnUnclampFailed(string data); void OnCarrierIDWrite(string data); void OnCarrierIDWriteFailed(string data); void OnTagDataRead(string data); void OnTagDataReadFailed(string data); void OnTagDataWrite(string data); void OnTagDataWriteFailed(string data); } public interface IMessageHandler { bool IsCompleted { get; } event EventHandler CommandUpdated; event EventHandler EventUpdated; event EventHandler ErrorOccurred; void Send(IEfemMessage msg); //void Send(string str); void ReceiveMessage(string str); } public class EfemActionArgs : EventArgs { public ushort ID { get; set; } public ModuleName Module { get; set; } public EfemOperation CommandType { get; set; } public ActionStatus Status { get; set; } public string Data { get; set; } } public class EfemEventArgs : EventArgs { public string EvtStr { get; set; } public ModuleName Module { get; set; } public EfemOperation CommandType { get; set; } public IList DataList { get; set; } } public class EfemErrorArgs : EventArgs { public string Factor { get; set; } public string Description { get; set; } public ModuleName Module { get; set; } public string Message { get; set; } public EfemOperation CommandType { get; set; } public ActionStatus Status { get; set; } public string Data { get; set; } public ushort ID { get; set; } } }