private Dictionary <string, DispatcherBase.Type> getDispatchers(DispatcherBase.Type dispatcherType) { Dictionary <string, DispatcherBase.Type> dict = new Dictionary <string, DispatcherBase.Type>(); foreach (string wc in WaferFabSettings.WorkCenters) { dict.Add(wc, dispatcherType); } return(dict); }
/// <summary> /// Reading waferfabsettings /// </summary> /// <param name="includeLotstarts">True to include lot starts which will be read from serialized file</param> /// <param name="includeDistributions">True to include workcenter service time and overtaking distributions. Do not include this if waferfabsettings have to be serialized, /// because Random class in distributions cannot be serialized.</param> /// <param name="area"></param> /// <returns></returns> public override WaferFabSettings ReadWaferFabSettings(string eptParameterFile, bool includeLotstarts, bool includeDistributions, DispatcherBase.Type dispatcherType = DispatcherBase.Type.EPTOVERTAKING, string area = "COMPLETE") { Console.Write("Reading waferfabsettings -"); ReadLotStepsRawAndIRDs(); lotSteps = fillStepsWithIRDs(); WaferFabSettings = new WaferFabSettings(); WaferFabSettings.LotStartsFrequency = 12; WaferFabSettings.LotTypes = getProductTypes(); WaferFabSettings.ManualLotStartQtys = WaferFabSettings.LotTypes.ToDictionary(x => x, x => 0); WaferFabSettings.LotSteps = lotSteps; WaferFabSettings.WorkCenters = irdMappings.Select(x => x.WorkStation).Distinct().ToList(); WaferFabSettings.LotStepsPerWorkStation = getLotStepsPerWorkstation(); WaferFabSettings.WCDispatcherTypes = getDispatchers(dispatcherType); WaferFabSettings.Sequences = getSequencesPerIRDGroup(); processPlans = getProcessPlans(); if (includeLotstarts) { if (area == "COMPLETE") { WaferFabSettings.RealLotStarts = Deserializer.DeserializeRealLotStarts(Path.Combine(DirectorySerializedFiles, "LotStarts_2019_2020_2021.dat")); } else { WaferFabSettings.LotStarts = GetLotStartsOneWorkCenter(area); } } if (includeDistributions) { EPTDistributionReader reader = new EPTDistributionReader(DirectoryInputCSVs, WaferFabSettings.WorkCenters, WaferFabSettings.LotStepsPerWorkStation); WaferFabSettings.WCServiceTimeDistributions = reader.GetServiceTimeDistributions(eptParameterFile); WaferFabSettings.WCOvertakingDistributions = reader.GetOvertakingDistributions(); } return(WaferFabSettings); }
public virtual WaferFabSettings ReadWaferFabSettings(string eptParameterFile, bool includeLotstarts, bool includeDistributions, DispatcherBase.Type dispatcherType, string area = "COMPLETE") { throw new NotImplementedException(); }