Esempio n. 1
0
        private void tscombUnits_TextChanged(object sender, EventArgs e)
        {
            // останавливаем таймер для предотвращения скачков на графике из-за смены едениц давления
            ticker.Stop();

            Cursor.Current = Cursors.WaitCursor;

            PressureUnits oldUnits = progState.CurrentPUnits;

            // меняем текущие единицы давления
            progState.CurrentPUnits = PUnitConverter.StringToPUnit(tscombUnits.Text);
            // обновляем количество знаков для округления
            progState.RoundDefine();

            // меняем единицы давления на форме
            CurrentP        = PUnitConverter.ConvertP(CurrentP, oldUnits, progState.CurrentPUnits);
            tbCurrentP.Text = Math.Round(CurrentP, progState.RoundToDigits).ToString();
            CurrentSetpt    = PUnitConverter.ConvertP(CurrentSetpt, oldUnits, progState.CurrentPUnits);
            tbSetP.Text     = Math.Round(CurrentSetpt, progState.RoundToDigits).ToString();
            progState.CurrentBarometricP = PUnitConverter.ConvertP(progState.CurrentBarometricP, oldUnits, progState.CurrentPUnits);

            try
            {
                // меняем единицы задатчика давления
                if (CurrentDPI != null)
                {
                    CurrentDPI.SelectUnits(progState.CurrentPUnits);
                    // перечитываем строку параметров
                    tstbControllerParameters.Text = CurrentDPI.GetParameterString();
                }

                // меняем параметры графика
                zgGraph.GraphPane.YAxis.Title.Text = string.Format("P, {0}", PUnitConverter.PUnitToString(progState.CurrentPUnits));

                // преобразуем точки графика к новым единицам давления
                for (int i = 0; i < GraphPoints.Count; i++)
                {
                    GraphPoints[i].Y = PUnitConverter.ConvertP(GraphPoints[i].Y, oldUnits, progState.CurrentPUnits);
                }

                zgGraph.AxisChange();
                zgGraph.Invalidate();
            }
            catch (Exception exp)
            {
                MessageBox.Show(exp.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            // вызываем событие для других классов
            PUnitsChangedEventArgs pArgs = new PUnitsChangedEventArgs(oldUnits);

            OnPUnitsChanged?.Invoke(this, pArgs);

            Cursor.Current = Cursors.Default;

            ticker.Start();
        }
Esempio n. 2
0
        private void NewPCSelected(string conStr)
        {
            CurrentDPI = new DruckDPI(conStr, progState.CurrentSetptPrecision, progState.SetptDelay);
            CurrentDPI.PressureUpdated += new DruckDPI.PressureChangedEventHandler(MonitorPressure);
            CurrentDPI.SelectUnits(progState.CurrentPUnits);
            tstbControllerParameters.Text = CurrentDPI.GetParameterString();

            // вызываем событие
            OnNewControllerSelected?.Invoke(this);

            zgGraph.GraphPane.CurveList.Clear();
            zgGraph.GraphPane.AddCurve(conStr, GraphPoints, Color.DarkBlue, SymbolType.None);

            // запускаем таймер
            ticker.Start();

            currentTime = DateTime.Now;
        }
Esempio n. 3
0
        private void NewPCSelected(string conStr)
        {
            CurrentDPI = new DruckDPI(conStr, progState.CurrentSetptPrecision, progState.SetptDelay);
            CurrentDPI.PressureUpdated += new DruckDPI.PressureChangedEventHandler(MonitorPressure);
            CurrentDPI.SelectUnits(progState.CurrentPUnits);
            tstbControllerParameters.Text = CurrentDPI.GetParameterString();

            // вызываем событие
            OnNewControllerSelected?.Invoke(this);

            zgGraph.GraphPane.CurveList.Clear();
            zgGraph.GraphPane.AddCurve(conStr, GraphPoints, Color.DarkBlue, SymbolType.None);

            // сбрасываем записи об ошибках (если они были)
            UpdateStatusLabel(Color.Black, "");

            // Уставнавливаем в DPI атмосферное давление
            CurrentDPI.BarometricP = progState.CurrentBarometricP;

            // запускаем таймер
            ticker.Start();

            currentTime = DateTime.Now;
        }