Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
 public virtual WaferFabSettings ReadWaferFabSettings(string eptParameterFile, bool includeLotstarts, bool includeDistributions, DispatcherBase.Type dispatcherType, string area = "COMPLETE")
 {
     throw new NotImplementedException();
 }