Beispiel #1
0
        private void DoButtonVialClick(ViewModel_Vial selected)
        {
            //TODO - If a vial is selected and the process starts, the contents of this window will not be updated!

            TextBlock_VialInfo.Text = string.Format("Vial ID{0} from {1} rack.\nContents = {2}mg of {3}",
                                                    selected.ID,
                                                    selected.Position == Model_Vial.VialPurpose.INPUT ? "Input" : "Output",
                                                    selected.Weight,
                                                    selected.State == Model_Vial.VialState.COARSE ? "Coarse" :
                                                    (selected.State == Model_Vial.VialState.FINE ? "Ground" : "Empty"));
        }
Beispiel #2
0
        private void Button_Vial_Click(object sender, RoutedEventArgs e)
        {
            ViewModel_Vial selected = (ViewModel_Vial)((sender as FrameworkElement).DataContext);

            DoButtonVialClick(selected);
        }
Beispiel #3
0
        private void GenerateRacks()
        {
            #region Input Rack
            List <List <ViewModel_Vial> > InputVials = new List <List <ViewModel_Vial> >();

            uint ColCount = 20; // Nominal
            uint RowCount = _VM.SimulationParameters.InputRackCapacity / ColCount;
            uint Rem      = _VM.SimulationParameters.InputRackCapacity % ColCount;
            int  i        = 0;

            for (i = 0; i < RowCount; i++)
            {
                InputVials.Add(new List <ViewModel_Vial>());

                for (int j = 0; j < ColCount; j++)
                {
                    ViewModel_Vial vial = new ViewModel_Vial((uint)((i * (ColCount)) + j), Model_Vial.VialState.COARSE, Model_Vial.VialPurpose.INPUT);
                    InputVials[i].Add(vial);
                }
            }

            InputVials.Add(new List <ViewModel_Vial>());
            for (int k = 0; k < Rem; k++)
            {
                ViewModel_Vial vial = new ViewModel_Vial((uint)((i * (ColCount)) + k), Model_Vial.VialState.COARSE, Model_Vial.VialPurpose.INPUT);
                InputVials[i].Add(vial);
            }

            _VM.InputRack = new ViewModel_Rack(InputVials, _VM.SimulationParameters.TargetOutputVialWeight_mg * _VM.SimulationParameters.OutputDivisionFactor,
                                               Model_Rack.RackPurpose.INPUT, _VM.SimulationParameters.InputRackCapacity, RowCount, ColCount);

            RackTemplate_Input.ItemsSource = _VM.InputRack.Vials;
            #endregion

            #region Output Racks
            List <List <ViewModel_Vial> > OutputVials = new List <List <ViewModel_Vial> >();

            RowCount = _VM.SimulationParameters.OutputRackCapacity / ColCount;
            Rem      = _VM.SimulationParameters.OutputRackCapacity % ColCount;
            i        = 0;

            for (i = 0; i < RowCount; i++)
            {
                OutputVials.Add(new List <ViewModel_Vial>());

                for (int j = 0; j < 20; j++)
                {
                    ViewModel_Vial vial = new ViewModel_Vial((uint)((i * (ColCount)) + j), Model_Vial.VialState.EMPTY, Model_Vial.VialPurpose.OUTPUT);
                    OutputVials[i].Add(vial);
                }
            }

            OutputVials.Add(new List <ViewModel_Vial>());
            for (int k = 0; k < Rem; k++)
            {
                ViewModel_Vial vial = new ViewModel_Vial((uint)((i * (ColCount)) + k), Model_Vial.VialState.EMPTY, Model_Vial.VialPurpose.OUTPUT);
                OutputVials[i].Add(vial);
            }

            _VM.OutputRack = new ViewModel_Rack(OutputVials, 0.0f, Model_Rack.RackPurpose.OUTPUT, _VM.SimulationParameters.OutputRackCapacity, RowCount, ColCount);

            RackTemplate_Output.ItemsSource = _VM.OutputRack.Vials;
            #endregion
        }