using System; using System.Collections.Generic; using System.Diagnostics; using Aitex.Core.Common; using Aitex.Sorter.Common; using MECF.Framework.Common.Equipment; using VirgoCommon; namespace VirgoRT.Device { interface IEfemMessage : IHardwareMessage { EfemOperation Operation { get; set; } } interface IEfem { bool HomeAll(); bool Home(ModuleName mod); bool ClearError(); bool Pick(MoveParam mp); bool Place(MoveParam mp); bool Extend(ExtendParam ep); bool Retract(ExtendParam ep); bool Map(ModuleName mod); bool SetPinUp(ModuleName mod); bool Align(ModuleName mod, float delayTime, WaferSize size); bool SetLamp(LightType light, LightStatus status); } interface IAlign { void Lift(); void Align(WaferSize size); } 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 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); } 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); } 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; } } class EfemEventArgs : EventArgs { public string EvtStr { get; set; } public ModuleName Module { get; set; } public EfemOperation CommandType { get; set; } public IList DataList { get; set; } } 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; } } }