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(); }
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; }
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; }