Inheritance: System.Windows.Forms.Form
Esempio n. 1
0
        public ControllerCommandDlg(ZWManager _manager, uint _homeId, ZWControllerCommand _op, byte? nodeId, bool securityEnabled)
        {
            m_manager = _manager;
            homeId = _homeId;
            m_op = _op;
            m_nodeId = nodeId != null ? nodeId.Value : (byte)0;
            m_dlg = this;

            InitializeComponent();

            m_manager.OnNotification += new ManagedNotificationsHandler(NotificationHandler);
            switch (m_op)
            {
                case ZWControllerCommand.RequestNodeNeighborUpdate:
                    {
                        this.Text = "Обновление списка соседних узлов";
                        this.label1.Text = "Узел обновляет список соседних узлов";

                        if (!m_manager.RequestNodeNeighborUpdate(homeId, m_nodeId))
                        {
                            MyControllerStateChangedHandler(ZWControllerState.Failed);
                        }
                        break;
                    }
                case ZWControllerCommand.AddDevice:
                    {
                        this.Text = "Добавить устройство в ZWave сеть";
                        this.label1.Text =
                            "Нажмите программную кнопку на Z-Wave устройстве для добавления его в сеть.\nДля безопасности, контроллер должен быть рядом с устройством ZWave (не более 2 метров).";

                        if (!m_manager.AddNode(homeId, securityEnabled))
                        {
                            MyControllerStateChangedHandler(ZWControllerState.Failed);
                        }
                        break;
                    }
                case ZWControllerCommand.CreateNewPrimary:
                    {
                        this.Text = "Создать новый основной контроллер";
                        this.label1.Text =
                            "Введите новый контроллер в режим передачи данных.\nТекущий контроллер должен быть рядом с целевым контроллером (не более 2 метров).";

                        if (!m_manager.CreateNewPrimary(homeId))
                        {
                            MyControllerStateChangedHandler(ZWControllerState.Failed);
                        }
                        break;
                    }
                case ZWControllerCommand.ReceiveConfiguration:
                    {
                        this.Text = "Передача конфигурации";
                        this.label1.Text =
                            "Передача сетевой конфигурации от другого устройства.\nПоместите другой контроллер в пределах 2 метров от текущего контроллера.";

                        if (!m_manager.ReceiveConfiguration(homeId))
                        {
                            MyControllerStateChangedHandler(ZWControllerState.Failed);
                        }
                        break;
                    }
                case ZWControllerCommand.RemoveDevice:
                    {
                        this.Text = "Удалит устройство из сети";
                        this.label1.Text =
                            "Нажмите программную кнопку на устройстве ZWave для удаления его из сети.\nПо причинам безопасности, контроллер должен быть в радиусе 2-х метров от устройства.";

                        if (!m_manager.RemoveNode(homeId))
                        {
                            MyControllerStateChangedHandler(ZWControllerState.Failed);
                        }
                        break;
                    }
                case ZWControllerCommand.TransferPrimaryRole:
                    {
                        this.Text = "Передача роли основного контроллера другому контроллеру";
                        this.label1.Text =
                            "Передача роли основного контроллера другому контроллеру.\n\nПо причинам безопасности, контроллер должен быть в радиусе 2-х метров от устройства.";

                        if (!m_manager.TransferPrimaryRole(homeId))
                        {
                            MyControllerStateChangedHandler(ZWControllerState.Failed);
                        }
                        break;
                    }
                case ZWControllerCommand.HasNodeFailed:
                    {
                        this.ButtonCancel.Enabled = false;
                        this.Text = "Проверка узла на неисправность";
                        this.label1.Text = "Проверка узла.\nЭта команда не может быть отменена";

                        if (!m_manager.HasNodeFailed(homeId, m_nodeId))
                        {
                            MyControllerStateChangedHandler(ZWControllerState.Failed);
                        }
                        break;
                    }
                case ZWControllerCommand.RemoveFailedNode:
                    {
                        this.ButtonCancel.Enabled = false;
                        this.Text = "Удаление неисправного узла";
                        this.label1.Text =
                            "Удаление неисправного узла.\nКоманда не может быть отменена.";

                        if (!m_manager.RemoveFailedNode(homeId, m_nodeId))
                        {
                            MyControllerStateChangedHandler(ZWControllerState.Failed);
                        }
                        break;
                    }
                case ZWControllerCommand.ReplaceFailedNode:
                    {
                        this.ButtonCancel.Enabled = false;
                        this.Text = "Замена неисправного узла";
                        this.label1.Text = "Тестирование неисправного узла.\nКоманда не может быть отменена.";

                        if (!m_manager.ReplaceFailedNode(homeId, m_nodeId))
                        {
                            MyControllerStateChangedHandler(ZWControllerState.Failed);
                        }
                        break;
                    }
                case ZWControllerCommand.RequestNetworkUpdate:
                    {
                        this.ButtonCancel.Enabled = false;
                        this.Text = "Запрос обновления сети устройств";
                        this.label1.Text = "Запрос обновления сети устройств.";

                        if (!m_manager.RequestNetworkUpdate(homeId, m_nodeId))
                        {
                            MyControllerStateChangedHandler(ZWControllerState.Failed);
                        }
                        break;
                    }
                default:
                    {
                        m_manager.OnNotification -= NotificationHandler;
                        break;
                    }
            }
        }
Esempio n. 2
0
 private void DoCommand(ZWControllerCommand command)
 {
     ControllerCommandDlg dlg = new ControllerCommandDlg(_zwave.Manager, _zwave.HomeId.Value, command, null, false);
     DialogResult d = dlg.ShowDialog(this);
     dlg.Dispose();
 }