200 lines
5.5 KiB
C#
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);
|
|
}
|
|
|
|
}
|
|
}
|