namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots
{
 
    public interface IRobot  
    {
        RobotStateEnum RobotState { get; }


        RobotArmWaferStateEnum GetWaferState(RobotArmEnum arm);

 
        string[] GetStationsInUse();

 
        bool Home(object[] param);


        //-------------------------------------------------------------------------
        // Single arm operations


        bool ApproachForPick(RobotArmEnum arm, string station, int slot);

        bool ApproachForPlace(RobotArmEnum arm, string station, int slot);

        bool Pick(RobotArmEnum arm, string station, int slot);

        bool Place(RobotArmEnum arm, string station, int slot);

        bool Swap(RobotArmEnum pickArm, string station, int slot);

        bool Transfer(RobotArmEnum arm, string sourceStation, int sourceSlot, string destStation, int destSlot);

        //-------------------------------------------------------------------------
        // Dual arm operations
 
        bool DualPick(string station, int lowerSlot);

        bool DualPlace(string station, int lowerSlot);
 
        bool DualSwap(string station, int lowerSlotPlaceTo, int lowerSlotPickFrom);
 
        bool DualTransfer(string sourceStation, int sourceLowerSlot, string destStation, int destLowerSlot);
    }
}
