예제 #1
0
        /// <summary>
        /// Открывает новое окно для управления устройством
        /// </summary>
        /// <param name="device"></param>
        private void NewForm(Equipment device)
        {
            // Окно для этого устройства ещё не открыто
            Vkt5RemoteConsoleForm mainForm = new Vkt5RemoteConsoleForm();

            // Заголовок окна
            mainForm.Text = "Удалённый пульт - " + device.ToString();

            RemoteConsoleFormParams param = new RemoteConsoleFormParams();

            // Параметры базовой формы опроса
            param.PollConnections = device.PollSettings.Connections;
            if (param.PollConnections != null && param.PollConnections.Length > 0)
            {
                param.SelectedConnection = param.PollConnections[0];
            }

            // Параметры формы удалённого пульта
            param.Device = device;

            // Инициализация
            mainForm.Initialize(param, Plugin.Host.Server);

            Plugin.Host.MainWindow.AddPage(mainForm);

            mainForm.Show();

            mainForm.FormClosed += new System.Windows.Forms.FormClosedEventHandler(currentForm_FormClosed);

            lock (this.visibleForms)
            {
                this.visibleForms.Add(mainForm);
            }
        }
예제 #2
0
        /// <summary>
        /// Пользователь выбрал пункт меню или навигационного окна "Удалённый пульт"
        /// </summary>
        /// <param name="actionId"></param>
        /// <param name="sender"></param>
        private void OnRemoteConsoleOpen(int actionId, object sender)
        {
            MeasurePoint measurePoint = (MeasurePoint)sender;

            // Запрашиваем требуемую для работы информацию
            measurePoint.Refresh(MeasurePointInfoFlags.Equipment);

            // Проверим, что у точки учёта есть устройство
            if (measurePoint.Device == null)
            {
                MessageBox.Show("У выбранной точки учёта не задано устройство. Выберите точку учёта с поддерживаемым устройством.",
                                "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                return;
            }

            // Проверим, что мы работаем с ВКТ-5
            if (!CheckDeviceModel(measurePoint.Device))
            {
                MessageBox.Show("Удалённый пульт ВКТ-5 не поддерживает работу с устройствами "
                                + measurePoint.Device.Model.Title, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                return;
            }

            // Проверим, открыто ли окно с опросом этого устройства
            Vkt5RemoteConsoleForm currentForm = GetOpenedForm(measurePoint.Device);

            if (currentForm == null)
            {
                // Такого окна нет, открываем
                NewForm(measurePoint.Device);
            }
            else
            {
                // Окно уже есть, переводим фокус на него
                currentForm.Show();
                currentForm.Focus();
            }
        }