using Rs.AutoDischarge.V3.Flow; using Rs.MotionPlat.Commom; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Rs.MotionPlat.Flow { public enum EStockType { Empty1=1, Input, Ok, Ng, Multi, Empty2 } public class StockManager { private static StockManager instance; public static StockManager Instance { get { if(instance == null) instance = new StockManager(); return instance; } } TrayTest Empty1 = new TrayTest(1); TrayTest Input = new TrayTest(2); TrayTest Ok = new TrayTest(3); TrayTest Ng = new TrayTest(4); TrayTest Multi = new TrayTest(5); TrayTest Empty2 = new TrayTest(6); public void Start() { Empty1.Start(); Input.Start(); Ok.Start(); Ng.Start(); Multi.Start(); Empty2.Start(); } public bool HasTray(EStockType stockType) { if (Ops.IsOff($"{(int)stockType}号料仓料盘到位光电检测")) return false; return true; } public List GetHasNotTrayStock() { List stockList = new List(); if (Ops.IsOff($"{(int)EStockType.Input}号料仓料盘到位光电检测")) stockList.Add(EStockType.Input); if (Ops.IsOff($"{(int)EStockType.Ok}号料仓料盘到位光电检测")) stockList.Add(EStockType.Ok); if (Ops.IsOff($"{(int)EStockType.Ng}号料仓料盘到位光电检测")) stockList.Add(EStockType.Ng); if (Ops.IsOff($"{(int)EStockType.Multi}号料仓料盘到位光电检测")) stockList.Add(EStockType.Multi); return stockList; } public bool IsReady() { return ((Input.Status == ETrayStatus.Loaded) && (Ok.Status == ETrayStatus.Loaded) && (Ng.Status == ETrayStatus.Loaded) && (Multi.Status == ETrayStatus.Loaded)); } public void Stop() { Empty1.Stop(); Input.Stop(); Ok.Stop(); Ng.Stop(); Multi.Stop(); Empty2.Stop(); } public void Load(EStockType stockType,bool bWholeLoad=true) { switch (stockType) { case EStockType.Empty1: Empty1.Load(bWholeLoad); break; case EStockType.Input: Input.Load(bWholeLoad); break; case EStockType.Ok: Ok.Load(bWholeLoad); break; case EStockType.Ng: Ng.Load(bWholeLoad); break; case EStockType.Multi: Multi.Load(bWholeLoad); break; case EStockType.Empty2: Empty2.Load(bWholeLoad); break; } } public void UnLoad(EStockType stockType) { switch (stockType) { case EStockType.Empty1: Empty1.Unload(); break; case EStockType.Input: Input.Unload(); break; case EStockType.Ok: Ok.Unload(); break; case EStockType.Ng: Ng.Unload(); break; case EStockType.Multi: Multi.Unload(); break; case EStockType.Empty2: Empty2.Unload(); break; } } public ETrayStatus GetStockStatus(EStockType stockType) { switch (stockType) { case EStockType.Empty1: return Empty1.Status; case EStockType.Input: return Input.Status; case EStockType.Ok: return Ok.Status; case EStockType.Ng: return Ng.Status; case EStockType.Multi: return Multi.Status; case EStockType.Empty2: return Empty2.Status; } return ETrayStatus.UnKnown; } } }