예제 #1
0
        /// <summary>
        /// Set parameters and start/stop the measurement.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void BtnMeasure_Click(object sender, EventArgs e)
        {
            if (initializationState != InitializationState.Connected)
            {
                My_msg("Initialize spectrometer first!");
                return;
            }

            switch (measuringState)
            {
            case MeasuringState.Idle:
                SpectrometricThermometer.Parameters parameters;
                try
                {
                    parameters = SpectrometricThermometer.Parameters.Parse(
                        save: chBoxSave.Checked,
                        rewrite: chBoxRewrite.Checked,
                        filenameIndex: tBoxFilenameIndex.Text,
                        periodLength: tBoxPeriod.Text,
                        average: tBoxAverage.Text,
                        exposureTime: tBoxExposureTime.Text,
                        adaptation: chBoxAutoExposureTime.Checked,
                        filename: tBoxFilename.Text,
                        delimiter: constants.Delimiter);
                }
                catch (ArgumentException ex)
                {
                    My_msg(ex.Message);
                    return;
                }
                if (spectrometricThermometer.BtnStartMeasurement(parameters))
                {
                    measuringState = MeasuringState.Measuring;
                }
                break;

            case MeasuringState.Measuring:
                if (spectrometricThermometer.BtnStopMeasurement())
                {
                    LabelBold(lblAutoExposureTime, false);
                    LabelBold(lblAverage, false);
                    My_msg("Stop");
                    if (chBoxPID.Checked)      // No regulation without new data.
                    {
                        chBoxPID.Checked = false;
                        My_msg("PID stopped (no new data)!");
                    }
                    measuringState = MeasuringState.Idle;
                }
                break;

            default:
                break;
            }
            pnlMain.Enabled = measuringState == MeasuringState.Idle;  // Disable settings while measuring.
            btnMeasure.Text = constants.BtnMeasureText[(int)measuringState];
        }
예제 #2
0
        public Controller(IModel model, Form mainForm, IView view)
        {
            this.mainForm = mainForm;
            this.model    = model;
            this.view     = view;

            commandLineParser       = new CommandLineParser(this);
            networkClient           = new NetworkClient(model.NetworkClient);
            videoConferencingClient = new VideoConferencingClient(this);
            dieSimulator            = new DieSimulator();

            DraggingPieceState     = new DraggingPieceState(this);
            DraggingStackState     = new DraggingStackState(this);
            IdleState              = new IdleState(this);
            MeasuringState         = new MeasuringState(this);
            MovingState            = new MovingState(this);
            ScrollingState         = new ScrollingState(this);
            SelectingPieceState    = new SelectingPieceState(this);
            SelectingStackState    = new SelectingStackState(this);
            DialogState            = new DialogState(this);
            ResizingHandState      = new ResizingHandState(this);
            DraggingHandPieceState = new DraggingHandPieceState(this);

            state = IdleState;

            view.Menu.ShowMenuSwitch = new ZunTzu.Visualization.MenuItem(null, false, new Menu.ShowMenuSwitchMenuItem());

            mainForm.Closing          += new CancelEventHandler(onMainFormClosing);
            mainForm.KeyPress         += new KeyPressEventHandler(onKeyPress);
            mainForm.KeyDown          += new KeyEventHandler(onKeyDown);
            mainForm.KeyUp            += new KeyEventHandler(onKeyUp);
            mainForm.MouseDown        += new MouseEventHandler(onMouseDown);
            mainForm.MouseMove        += new MouseEventHandler(onMouseMove);
            mainForm.MouseUp          += new MouseEventHandler(onMouseUp);
            mainForm.MouseDoubleClick += new MouseEventHandler(onMouseDoubleClick);
            mainForm.MouseWheel       += new MouseEventHandler(onMouseWheel);

            //view.Tabs.BoardSelected += new BoardSelectedHandler(onBoardSelected);
            view.Prompter.TextEntered += new TextEnteredHandler(onTextEntered);
        }