Exemplo n.º 1
0
        public void Request(NewCounter[] Current, AmountCounter SumForm) // Основная фукнция работы опрашивания счетчика
        {
            while (!_Cancelled)
            {
                double[] Summary = new double[3]; // Сумма мощностей на каждой фазе
                for (int i = 0; i < Current.Length; i++)
                {
                    if (!_Cancelled) // Нажата ли кнопка отмены
                    {
                        try
                        {
                            if (!_serialPort.IsOpen) // Открываем порт
                            {
                                _serialPort.Open();
                            }
                        }
                        catch
                        {
                        }

                        Indications = new double[3, 3];       // Создаем новый массив показаний
                        Inquiry(Current[i].Name, Current[i]); // Делаем запрос и заполняем форму
                        Summation(ref Summary);               // Суммируем результаты
                        if (_serialPort.IsOpen)
                        {
                            _serialPort.Close();                     // Закрываем порт
                        }
                        _serialPort.Dispose();
                    }
                    else // Высвобождаем ресурсы
                    {
                        _serialPort.Close(); _serialPort.Dispose();
                        break;
                    }
                }

                if (AllRequsted)
                {
                    DelegateWriteSummary D1 = SumForm.ChooseTypeWrite; // Выполняем делегат суммирующего графика
                    SumForm.Invoke(D1, Summary);
                }
            }
        }
Exemplo n.º 2
0
 void AddNewCounter(AmountCounter childFrm) // Добавление суммарного на вкладку
 {
     CounterPage.TabPages.Add(childFrm.Text);
     childFrm.Parent = CounterPage.TabPages[0];
 }