Example #1
0
        public void readLotSteps(ToyFabSettings settings)
        {
            using (var reader = new StreamReader(Path.Combine(Directory, @"Old\LotSteps.csv")))
            {
                int row = 1;

                while (!reader.EndOfStream)
                {
                    string[] values = reader.ReadLine().Split(',');

                    if (row != 1 && values[0] != "")
                    {
                        LotStep step = new LotStep(Convert.ToInt32(values[0]), values[1]);

                        settings.LotSteps.Add(values[1], step);

                        workStationLotStepMapping.Add(step, values[2]);

                        List <int?> eligibilities = new List <int?>();

                        for (int i = 4; i < values.Length; i++)
                        {
                            eligibilities.Add((values[i] != "") ? Convert.ToInt32(values[i]) : (int?)null);
                        }
                        MachineEligibilities.Add(step, eligibilities);
                    }
                    row++;
                }
            }
        }
Example #2
0
        private void readLotSteps(ToyFabSettings settings)
        {
            using (var reader = new StreamReader(Path.Combine(Directory, "LotSteps.csv")))
            {
                int row = 1;

                while (!reader.EndOfStream)
                {
                    string[] values = reader.ReadLine().Split(',');

                    if (row != 1 && values[0] != "")
                    {
                        LotStep step = new LotStep(Convert.ToInt32(values[0]), values[1]);

                        settings.LotSteps.Add(values[1], step);

                        workStationLotStepMapping.Add(step, values[2]);

                        int[] eligibilities = values.Skip(3).Select(x => Convert.ToInt32(x)).ToArray();

                        machineEligibilities.Add(step, eligibilities);
                    }
                    row++;
                }
            }
        }
Example #3
0
        private void readWorkStationsAndMachines(ToyFabSettings settings)
        {
            List <MachineData> machines = new List <MachineData>();

            using (var reader = new StreamReader(Path.Combine(Directory, "WorkCenters.csv")))
            {
                while (!reader.EndOfStream)
                {
                    string[] values = reader.ReadLine().Split(',');
                    string   workStation;
                    int      nrMachines;

                    if (values[0] == "WorkStation")
                    {
                        values      = reader.ReadLine().Split(',');
                        workStation = values[0];
                        nrMachines  = Convert.ToInt32(values[1]);

                        settings.WorkStations.Add(workStation);

                        // header line
                        reader.ReadLine();

                        // machine data
                        for (int i = 0; i < nrMachines; i++)
                        {
                            values = reader.ReadLine().Split(',');
                            machines.Add(new MachineData(values, workStation));
                        }
                    }
                }

                settings.Machines = machines;
            }
        }
Example #4
0
        private void mapLotStepsPerWorkStation(ToyFabSettings settings)
        {
            foreach (string wc in settings.WorkStations)
            {
                settings.LotStepsPerWorkStation.Add(wc, new List <LotStep>());
            }

            foreach (var mapping in workStationLotStepMapping)
            {
                settings.LotStepsPerWorkStation[mapping.Value].Add(mapping.Key);
            }
        }
Example #5
0
        public ToyFabSettings ReadToyFabSettings()
        {
            ToyFabSettings settings = new ToyFabSettings();

            readWorkStations(settings);
            readLotSteps(settings);
            readSequences(settings);
            readCycleTimes(settings);

            mapLotStepsPerWorkStation(settings);

            return(settings);
        }
Example #6
0
 public void addEligibilitiesToMachines(ToyFabSettings settings)
 {
     foreach (KeyValuePair <LotStep, int[]> step in machineEligibilities)
     {
         for (int machineNr = 0; machineNr < step.Value.Length; machineNr++)
         {
             if (step.Value[machineNr] == 1)
             {
                 settings.Machines.Where(x => x.Number == machineNr).First().Eligibilities.Add(step.Key);
             }
         }
     }
 }
Example #7
0
        public ToyFabSettings ReadToyFabSettings()
        {
            ToyFabSettings settings = new ToyFabSettings();

            readWorkStationsAndMachines(settings);
            readLotSteps(settings);
            addEligibilitiesToMachines(settings);
            readSequences(settings);
            readCycleTimes(settings);
            mapLotStepsPerWorkStation(settings);

            return(settings);
        }
Example #8
0
        public void readCycleTimes(ToyFabSettings settings)
        {
            using (var reader = new StreamReader(Path.Combine(Directory, @"Old\TargetCycleTimes.csv")))
            {
                while (!reader.EndOfStream)
                {
                    string[] values = reader.ReadLine().Split(',');

                    settings.Sequences[values[0]].TargetCycleTime = Convert.ToDouble(values[1]);
                }
            }

            if (settings.Sequences.Values.Select(x => x.TargetCycleTime).Contains(0))
            {
                throw new Exception("Not all product types have target cycle time");
            }
        }
Example #9
0
        public void readWorkStations(ToyFabSettings settings)
        {
            using (var reader = new StreamReader(Path.Combine(Directory, @"Old\WorkCenters.csv")))
            {
                int row = 1;

                while (!reader.EndOfStream)
                {
                    string[] values = reader.ReadLine().Split(',');

                    if (row != 1)
                    {
                        settings.WorkStations.Add(values[0]);
                        settings.WSServiceTimeDistributions.Add(values[0], new ExponentialDistribution(Convert.ToDouble(values[1])));

                        if (values.Length > 3)
                        {
                            settings.WSMachines.Add(values[0], Convert.ToInt32(values[3]));
                        }
                    }
                    row++;
                }
            }
        }
Example #10
0
        public void readSequences(ToyFabSettings settings)
        {
            using (var reader = new StreamReader(Path.Combine(Directory, @"Old\Sequences.csv")))
            {
                var header = reader.ReadLine().Split(',');

                string[] lotTypes = header.ToArray();

                int count = lotTypes.Length;

                List <LotStep>[] sequences = new List <LotStep> [count];

                for (int i = 0; i < count; i++)
                {
                    sequences[i] = new List <LotStep>();
                }

                while (!reader.EndOfStream)
                {
                    string[] values = reader.ReadLine().Split(',');

                    for (int i = 0; i < count; i++)
                    {
                        if (values[i] != "")
                        {
                            sequences[i].Add(settings.LotSteps[values[i]]);
                        }
                    }
                }

                for (int i = 0; i < count; i++)
                {
                    settings.Sequences.Add(lotTypes[i], new Sequence(lotTypes[i], sequences[i]));
                }
            }
        }