Ejemplo n.º 1
0
        private void button1_Click(object sender, EventArgs e)
        {
            byte start;

            if (!byte.TryParse(StartNumericTextBox.Text, out start))
            {
                start = 1;
                StartNumericTextBox.Text = start.ToString();
            }
            byte finish;

            if (!byte.TryParse(FinishTextBox.Text, out finish))
            {
                finish             = 255;
                FinishTextBox.Text = finish.ToString();
            }

            flowLayoutPanel1.Controls.Clear();

            var coil = new CoilStatus()
            {
                Address = 1
            };

            for (var i = start; i <= finish && i >= start; i++)
            {
                var button = new Button()
                {
                    Text = i.ToString()
                };

                try
                {
                    ModbusTool.Read(coil, _setting, i);
                    button.ForeColor = Color.Green;
                }
                catch (Exception)
                {
                    button.ForeColor = Color.Red;
                }
                button.Click += (o, args) =>
                {
                    var b = o as Button;
                    if (b != null && b.ForeColor == Color.Green)
                    {
                        Address      = Convert.ToByte(b.Text);
                        DialogResult = DialogResult.OK;
                    }
                };
                flowLayoutPanel1.Controls.Add(button);
                Application.DoEvents();
            }
        }
Ejemplo n.º 2
0
        private void AddToolStripButton_Click(object sender, EventArgs e)
        {
            if (_currentNode == null)
            {
                return;
            }
            _hasChanges = true;
            if (_currentNode.Parent == null)
            {
                //добавляем в верхние узлы
                if (_currentNode.Text == Resources.UmtEditorForm_BuildTree_Coil_Status)
                {
                    var x = new CoilStatus()
                    {
                        Function = Resources.UmtEditorForm_New_Element
                    };
                    Indexes.CoilStatuses.Add(x);

                    _currentNode.Nodes.Add(new TreeNode()
                    {
                        Text = Resources.UmtEditorForm_New_Element,
                        Tag  = x
                    });
                }
                else if (_currentNode.Text == Resources.UmtEditorForm_BuildTree_Input_Status)
                {
                    var x = new IndexGroup <InputStatus>()
                    {
                        Name = Resources.UmtEditorForm_New_Element
                    };
                    Indexes.InputStatusGroups.Add(x);

                    _currentNode.Nodes.Add(new TreeNode()
                    {
                        Text = Resources.UmtEditorForm_New_Element,
                        Tag  = x
                    });
                }
                else if (_currentNode.Text == Resources.UmtEditorForm_BuildTree_Input_Register)
                {
                    var x = new IndexGroup <InputRegister>()
                    {
                        Name = Resources.UmtEditorForm_New_Element
                    };
                    Indexes.InputRegisterGroups.Add(x);

                    _currentNode.Nodes.Add(new TreeNode()
                    {
                        Text = Resources.UmtEditorForm_New_Element,
                        Tag  = x
                    });
                }
                else if (_currentNode.Text == Resources.UmtEditorForm_BuildTree_Hold_Register)
                {
                    var x = new IndexGroup <HoldRegister>()
                    {
                        Name = Resources.UmtEditorForm_New_Element
                    };
                    Indexes.HoldRegisterGroups.Add(x);

                    _currentNode.Nodes.Add(new TreeNode()
                    {
                        Text = Resources.UmtEditorForm_New_Element,
                        Tag  = x
                    });
                }
                else if (_currentNode.Text == Resources.UmtEditorForm_BuildTree_Custom_types)
                {
                    var t = new CustomType()
                    {
                        Name = Resources.UmtEditorForm_New_Element
                    };
                    Indexes.CustomTypes.Add(t);

                    _currentNode.Nodes.Add(new TreeNode()
                    {
                        Text = Resources.UmtEditorForm_New_Element,
                        Tag  = t
                    });
                }
            }
            else
            {
                //добавляем в группу
                var group = _currentNode.Tag;
                if (group != null)
                {
                    var type = group.GetType();
                    if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(IndexGroup <>))
                    {
                        var newElement = Activator.CreateInstance(type.GetGenericArguments()[0]) as BaseIndex;
                        if (newElement != null)
                        {
                            newElement.Function = Resources.UmtEditorForm_New_Element;
                            (group as IList)?.Add(newElement);
                            _currentNode.Nodes.Add(new TreeNode()
                            {
                                Text = Resources.UmtEditorForm_New_Element,
                                Tag  = newElement
                            });
                        }
                    }
                }
            }

            _currentNode.Expand();
        }