using System.Collections.Generic; using System.Linq; namespace Gumming.Execute { public class Robot { public Dictionary RobotSleepTime { get; set; } public List Hands { get; set; } public Dictionary> RobotCommand { get; set; } public readonly object _lock = new object(); //获取空闲手臂 public RobotHand GetFreeHand(int limitCount) { lock (_lock) { var robotHands = Hands.Where(i => i.IsFree).ToList(); if (robotHands.Count < limitCount) { return null; } var robotHand = robotHands[0]; robotHand.IsFree = false; return robotHand; } } public void ReleaseFreeHand(RobotHand hand) { lock (_lock) { hand.CurrentWafer = null; hand.IsFree = true; } } public Robot() { Hands = new List(); Hands.Add(new RobotHand() { Name = "R", CurrentWafer = null, IsFree = true }); Hands.Add(new RobotHand() { Name = "W", CurrentWafer = null, IsFree = true }); RobotSleepTime = new Dictionary { { Context.CA, 4 }, { Context.COT, 5 }, { Context.HP, 10 }, { Context.CP, 3 }, { Context.CS, 8 } }; RobotCommand = new Dictionary>() { { Context.CS+"0", new List() { "A", "A", "B", "B" } }, { Context.CA + "0", new List() { "I", "I", "J", "J" } }, { Context.COT + "0", new List() { "AA", "AA", "AB", "AB" } }, { Context.COT + "1", new List() { "AC", "AC", "AD", "AD" } }, { Context.COT + "2", new List() { "AE", "AE", "AF", "AF" } }, { Context.COT + "3", new List() { "AG", "AG", "AH", "AH" } }, { Context.HP + "0", new List() { "BA", "BA", "BB", "BB" } }, { Context.HP + "1", new List() { "BC", "BC", "BD", "BD" } }, { Context.HP + "2", new List() { "BE", "BE", "BF", "BF" } }, { Context.HP + "3", new List() { "BG", "BG", "BH", "BH" } }, { Context.CP + "0", new List() { "CA", "CA", "CB", "CB" } }, { Context.CP + "1", new List() { "CC", "CC", "CD", "CD" } }, { Context.CP + "2", new List() { "CE", "CE", "CF", "CF" } }, { Context.CP + "3", new List() { "CG", "CG", "CH", "CH" } }, { Context.CP + "4", new List() { "CI", "CI", "CJ", "CJ" } }, { Context.CP + "5", new List() { "CK", "CK", "CL", "CL" } }, }; } } }