Ejemplo n.º 1
0
        public MainForm()
        {
            InitializeComponent();

            progState = new ProgramState();
            progState.CurrentPUnits         = PressureUnits.KGS;
            progState.CurrentBarometricP    = 1.05;
            progState.CurrentSetptPrecision = 0.02 / 100;
            progState.ReadPInterval         = 1;
            progState.SetptDelay            = 10;
            progState.TimeLength            = 60;
            progState.PIsAbsolute           = true;
            progState.RoundDefine();

            FoundDPIs    = false;
            CurrentP     = 1.00;
            CurrentSetpt = 1.00;

            CurrentDPI = null;

            GraphPoints = new RollingPointPairList(progState.TimeLength / progState.ReadPInterval);

            var myPane = zgGraph.GraphPane;

            myPane.XAxis.Scale.MaxAuto = true;

            ticker.Interval = progState.ReadPInterval * 1000;
        }
Ejemplo n.º 2
0
        // поиск контроллеров DPI
        private void FindDPIInstruments()
        {
            контроллерToolStripMenuItem.DropDownItems.Clear();

            // создаём элемент списка, отвечающий за текущий контроллер
            if (CurrentDPI != null)
            {
                ToolStripMenuItem tsItem = new ToolStripMenuItem(CurrentDPI.ConnectString);
                tsItem.CheckOnClick = true;
                tsItem.Click       += new EventHandler(tsbtnSelectController_Click);
                tsItem.Checked      = true;
                контроллерToolStripMenuItem.DropDownItems.Add(tsItem);
            }

            // находим другие инструменты
            string[] foundInstr = CSDeviceBase.SearchInstruments();

            for (int i = 0; i < foundInstr.Length; i++)
            {
                // пропускаем активный задатчик
                if (CurrentDPI != null && CurrentDPI.ConnectString == foundInstr[i])
                {
                    continue;
                }

                // проверяем тип задатчика
                CSDeviceBase currentDev = CSDeviceBase.SetInstrumentType(foundInstr[i]);
                if (currentDev.TypeOfDevice != DeviceType.PRESSURE_CONTROLLER_DPI)
                {
                    currentDev.Close();
                    continue;
                }
                else
                {
                    currentDev.Close();

                    // добавляем элемент
                    ToolStripMenuItem tsItem = new ToolStripMenuItem(foundInstr[i]);
                    tsItem.CheckOnClick = true;
                    tsItem.Click       += new EventHandler(tsbtnSelectController_Click);
                    tsItem.Checked      = false;
                    контроллерToolStripMenuItem.DropDownItems.Add(tsItem);
                }
            }

            if (контроллерToolStripMenuItem.DropDownItems.Count < 1)
            {
                MessageBox.Show("Системе не удалось найти подключенных контроллеров DPI 520!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                FoundDPIs  = false;
                CurrentDPI = null;
            }
            else
            {
                FoundDPIs = true;
            }
        }
Ejemplo 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);

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

            currentTime = DateTime.Now;
        }
Ejemplo n.º 4
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;
        }