private Double dilutionRate = 1;    // ml/sec

        public CultureSimulator(TurbidoAlgorithmLibrary _library)
        {
            library              = _library;
            lastTime             = new DoubleRef();
            lastOD               = new DoubleArrayRef(numberOfCultures);
            GrowthTimer          = new System.Timers.Timer(dataPointPeriod * 1000);
            GrowthTimer.Elapsed += this.GrowthTick;

            var rng = new CryptoRandomSource();

            // initialize cultures
            for (int i = 0; i < 4; i++)
            {
                if (culture_set == 'A')
                {
                    lastOD.values[i]     = rng.NextDouble() * initialOD;
                    lastOD.values[8 + i] = rng.NextDouble() * initialOD;
                    lastOD.values[4 + i] = lastOD.values[12 + i] = 0;
                }
                else
                {
                    lastOD.values[4 + i]  = rng.NextDouble() * initialOD;
                    lastOD.values[12 + i] = rng.NextDouble() * initialOD;
                    lastOD.values[i]      = lastOD.values[8 + i] = 0;
                }
            }
        }
예제 #2
0
        public TurbidostatControlPanel(ref TurbidoCore core_)
        {
            InitializeComponent();
            this.ControlBox = false;
            timerSystem.Start();
            core              = core_;
            library           = new TurbidoAlgorithmLibrary(ref core);
            core.library      = library;
            core.controlPanel = this;
            library.StartODVoltageScaleDataSaver();
            od_monitor.Hide();
            scale_monitor.Hide();
            core.assignMonitors(ref od_monitor, ref scale_monitor);
            core.MainLog.CollectionChanged += updateLog;

            textBoxParameterTransferPeriod.Text = library.TransferCyclePeriod.ToString();
        }