Sic.Framework/MECF.Framework.RT.Equipment.../HardwareUnits/Robots/MAG7/Mag7RobotConvertor.cs

200 lines
5.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Aitex.Sorter.Common;
using MECF.Framework.Common.Equipment;
namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robot.MAG7
{
public class ProtocolTag
{
public const string tag_end = "\r";
public const string cmd_token = " ";
public const string resp_tag_error = "_ERR";
public const string resp_tag_excute = "_RDY";
public const string resp_tag_event = "_EVENT";
public const string resp_evt_error = "100";
}
public interface IMag7RobotConverter
{
string MapModuleSlot(ModuleName chamber, int slot);
string MapModule(ModuleName chamber);
string hand2string(Hand hand);
}
public class DefaultMag7RobotConverter : IMag7RobotConverter
{
public string MapModuleSlot(ModuleName chamber, int slot)
{
string st = "";
switch (chamber)
{
case ModuleName.LL1:
case ModuleName.LLA:
st = "2 SLOT 1";
break;
case ModuleName.LL2:
case ModuleName.LLB:
st = "1 SLOT 1";
break;
case ModuleName.LL1IN:
st = "2 SLOT 1";
break;
case ModuleName.LL1OUT:
st = "2 SLOT 1";
break;
case ModuleName.LL2IN:
st = "1 SLOT 1";
break;
case ModuleName.LL2OUT:
st = "1 SLOT 1";
break;
case ModuleName.PM1:
case ModuleName.PMA:
st = slot == 0 ? "3 SLOT 1" : "3 SLOT 2";
break;
case ModuleName.PM2:
case ModuleName.PMB:
st = "4 SLOT 1";
break;
case ModuleName.PM3:
case ModuleName.PMC:
st = "5 SLOT 1";
break;
case ModuleName.PM4:
case ModuleName.PMD:
st = "6 SLOT 1";
break;
case ModuleName.PM5:
st = "7 SLOT 1";
break;
case ModuleName.PM6:
st = "8 SLOT 1";
break;
case ModuleName.VCEA:
st = "2 SLOT 1";
break;
case ModuleName.VCEB:
st = "1 SLOT 1";
break;
}
return st;
}
public string MapModule(ModuleName chamber)
{
string st = "";
switch (chamber)
{
case ModuleName.LL1:
case ModuleName.LLA:
st = "2";
break;
case ModuleName.LL2:
case ModuleName.LLB:
st = "1";
break;
case ModuleName.LL1IN:
st = "2";
break;
case ModuleName.LL1OUT:
st = "2";
break;
case ModuleName.LL2IN:
st = "1";
break;
case ModuleName.LL2OUT:
st = "1";
break;
case ModuleName.PM1:
case ModuleName.PMA:
st = "3";
break;
case ModuleName.PM2:
case ModuleName.PMB:
st = "4";
break;
case ModuleName.PM3:
case ModuleName.PMC:
st = "5";
break;
case ModuleName.PM4:
case ModuleName.PMD:
st = "6";
break;
case ModuleName.PM5:
st = "7";
break;
case ModuleName.PM6:
st = "8";
break;
case ModuleName.VCEA:
st = "2";
break;
case ModuleName.VCEB:
st = "1";
break;
}
return st;
}
public string hand2string(Hand hand)
{
string st = "";
switch (hand)
{
case Hand.Blade1:
st = "A";
break;
case Hand.Blade2:
st = "B";
break;
case Hand.Both:
st = "AB";
break;
}
return st;
}
}
public class Mag7RobotConvertor
{
private static IMag7RobotConverter _converter = new DefaultMag7RobotConverter();
public static IMag7RobotConverter Converter
{
get { return _converter; }
set { _converter = value; }
}
public static string MapModuleSlot(ModuleName chamber, int slot)
{
return Converter.MapModuleSlot(chamber, slot);
}
public static string MapModule(ModuleName chamber)
{
return Converter.MapModule(chamber);
}
public static string hand2string(Hand hand)
{
return Converter.hand2string(hand);
}
}
}