using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Aitex.Core.RT.Routine;
using Aitex.Sorter.Common;
using MECF.Framework.Common.Equipment;
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.CarrierIdReaders.OmronRFID;
namespace Aitex.Sorter.RT.EFEMs.Servers
{
public interface IEfemEquipment
{
///
/// Report event by Sigstat
///
bool IsSigStatEventMode { get; }
bool IsEMSStop { get; set; }
bool IsMaintenanceMode { get; }
bool IsError { get; }
bool IsIdle { get; }
bool IsRunning { get; }
int EfemPort { get; }
bool IsMapLoadPortByRobot { get; }
bool IsEnableMapWhileWaferOnArm { get; }
double SendReadyInterval { get; }
Dictionary GetEventData();
Dictionary> GetSigStatData();
bool ConverterEfemLLParameter(ModuleName moduleIn, int slotIn, out ModuleName moduleOut, out int slotOut);
bool ConverterEfemBufferParameter(ModuleName moduleIn, int slotIn, out ModuleName moduleOut, out int slotOut);
void EnableTowerLocalMode(bool v);
bool CheckIsError(ModuleName module);
int Invoke(string v1, string v2, int v3, Hand arm);
bool CheckAcked(int token);
void InvokeMoveWafer(string v, object[] parameters);
IEnumerable GetInstallModules();
Result GetTaskState(string v);
int Invoke(string v, string name);
OmronRfidReader GetRfidReader(string device);
bool Home(ModuleName system, out string reason);
bool MapWafer(string device);
bool CheckVacuumError();
bool ClearError();
bool CheckLinkOk(ModuleName module);
bool CheckIsInitialized(ModuleName module);
bool CheckIsBusy(ModuleName module);
bool CheckIsIdle(ModuleName module);
bool Init(ModuleName module, out string reason);
string GetSlotMap(ModuleName module);
bool Close(ModuleName module);
void Map(ModuleName module);
void Open(ModuleName module);
bool OpenDoor(ModuleName module);
bool CloseDoor(ModuleName module);
bool Undock(ModuleName module);
bool Dock(ModuleName module);
bool Lock(ModuleName module);
bool Unlock(ModuleName module);
bool Init(ModuleName module);
bool Home(ModuleName module);
bool CheckLLCanNotExtended();
bool CheckLoadLockDoorClosed();
bool CheckIsMapped(ModuleName moduleName);
bool Grip(ModuleName robot, Hand arm, out string result);
bool Release(ModuleName robot, Hand arm, out string result);
bool CheckArmExtended(ModuleName robot, string device);
string GetStateTrack();
}
public interface IEfemModule
{
}
public interface IEfemRobot:IEfemModule
{
}
public interface IEfemAligner : IEfemModule
{
}
public interface IEfemBuffer : IEfemModule
{
}
public interface IEfemStage : IEfemModule
{
}
public interface IEfemSystem : IEfemModule
{
}
}