From c8817a84c93bf487de3880bb148806de4e617f91 Mon Sep 17 00:00:00 2001 From: seayxu Date: Tue, 13 Jul 2021 20:19:02 +0800 Subject: [PATCH] added icon and about page --- LICENSE | 21 ++ OpcBrowser.sln | 10 +- README.md | 47 +++++ assets/da-1.png | Bin 0 -> 7948 bytes assets/da-2.png | Bin 0 -> 19977 bytes assets/da-3.png | Bin 0 -> 25975 bytes assets/da-4.png | Bin 0 -> 29840 bytes src/OpcDaBrowser/FormAbout.Designer.cs | 179 +++++++++++++++++ src/OpcDaBrowser/FormAbout.cs | 40 ++++ src/OpcDaBrowser/FormAbout.resx | 120 ++++++++++++ src/OpcDaBrowser/FormBrowser.Designer.cs | 140 ++++++++------ src/OpcDaBrowser/FormBrowser.cs | 19 +- src/OpcDaBrowser/FormBrowser.resx | 8 +- src/OpcDaBrowser/OpcDaBrowser.csproj | 14 +- .../Properties/Resources.Designer.cs | 183 ++++++++++++++++++ src/OpcDaBrowser/Properties/Resources.resx | 157 +++++++++++++++ src/OpcDaBrowser/Resources/about.png | Bin 0 -> 6793 bytes src/OpcDaBrowser/Resources/add_list.png | Bin 0 -> 6925 bytes src/OpcDaBrowser/Resources/connected.png | Bin 0 -> 4577 bytes .../Resources/delete_property.png | Bin 0 -> 6061 bytes src/OpcDaBrowser/Resources/delete_row.png | Bin 0 -> 4327 bytes src/OpcDaBrowser/Resources/dharmacakra.png | Bin 0 -> 8234 bytes src/OpcDaBrowser/Resources/disconnected.png | Bin 0 -> 5244 bytes src/OpcDaBrowser/Resources/exit.png | Bin 0 -> 4448 bytes src/OpcDaBrowser/Resources/server.png | Bin 0 -> 6016 bytes src/OpcDaBrowser/Resources/tag.png | Bin 0 -> 6386 bytes src/OpcDaBrowser/Resources/tire.png | Bin 0 -> 11410 bytes src/OpcDaBrowser/Resources/wheel.png | Bin 0 -> 13773 bytes 28 files changed, 867 insertions(+), 71 deletions(-) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 assets/da-1.png create mode 100644 assets/da-2.png create mode 100644 assets/da-3.png create mode 100644 assets/da-4.png create mode 100644 src/OpcDaBrowser/FormAbout.Designer.cs create mode 100644 src/OpcDaBrowser/FormAbout.cs create mode 100644 src/OpcDaBrowser/FormAbout.resx create mode 100644 src/OpcDaBrowser/Properties/Resources.Designer.cs create mode 100644 src/OpcDaBrowser/Properties/Resources.resx create mode 100644 src/OpcDaBrowser/Resources/about.png create mode 100644 src/OpcDaBrowser/Resources/add_list.png create mode 100644 src/OpcDaBrowser/Resources/connected.png create mode 100644 src/OpcDaBrowser/Resources/delete_property.png create mode 100644 src/OpcDaBrowser/Resources/delete_row.png create mode 100644 src/OpcDaBrowser/Resources/dharmacakra.png create mode 100644 src/OpcDaBrowser/Resources/disconnected.png create mode 100644 src/OpcDaBrowser/Resources/exit.png create mode 100644 src/OpcDaBrowser/Resources/server.png create mode 100644 src/OpcDaBrowser/Resources/tag.png create mode 100644 src/OpcDaBrowser/Resources/tire.png create mode 100644 src/OpcDaBrowser/Resources/wheel.png diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..bd61403 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 GodSharp + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/OpcBrowser.sln b/OpcBrowser.sln index e9eafe3..979bfaa 100644 --- a/OpcBrowser.sln +++ b/OpcBrowser.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31402.337 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31423.177 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{BF37FD4B-B749-470F-9A16-9D95ACB4EBF8}" EndProject @@ -11,6 +11,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NukeBuild", "nuke\NukeBuild EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{43EF4940-18D6-41DF-A63C-222A99377AE3}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "assets", "assets", "{67B77150-BC4D-4679-98DA-E7695F7DC647}" + ProjectSection(SolutionItems) = preProject + .gitignore = .gitignore + README.md = README.md + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU diff --git a/README.md b/README.md new file mode 100644 index 0000000..013854a --- /dev/null +++ b/README.md @@ -0,0 +1,47 @@ +# OpcBrowser + +![.NET](https://img.shields.io/badge/dotnet-.NET-blueviolet?style=flat&logo=dotnet) +![Opc DA Browser](https://img.shields.io/badge/opcda-browser-brightgreen) +![Azure DevOps builds](https://img.shields.io/azure-devops/build/godsharp/1c52d2a6-2f97-403b-b400-85a514528422/5?label=pipeline&logo=azurepipelines) +![GitHub Workflow Status](https://img.shields.io/github/workflow/status/godsharp/opcbrowser/continuous?label=workflow&logo=github) + + +Connect to opc server, browse opc tag, read and write tag value. + +# OpcDaBrowser + +![Opc DA Browser](https://img.shields.io/badge/opcda-browser-brightgreen) +![.NET](https://img.shields.io/badge/dotnet-winform-blueviolet?style=flat&logo=dotnet) +![.NET](https://img.shields.io/badge/windows-only-0078D6?style=flat&logo=windows) + +OPC DA Specification + +## References + +- GodSharp.Opc.Da + + Sample Code: [github](https://github.com/godsharp/opcsample) | [gitee](https://gitee.com/godsharp/opcsample) + + [![GodSharp.Opc.Da.OpcAutomation](https://img.shields.io/nuget/v/GodSharp.Opc.Da.OpcNetApi?label=GodSharp.Opc.Da.OpcAutomation&logo=nuget)](https://www.nuget.org/packages/GodSharp.Opc.Da.OpcAutomation) [![GodSharp.Opc.Da.OpcNetApi](https://img.shields.io/nuget/v/GodSharp.Opc.Da.OpcNetApi?label=GodSharp.Opc.Da.OpcNetApi&logo=nuget)](https://www.nuget.org/packages/GodSharp.Opc.Da.OpcNetApi) + +## Requirement +.NET Framework >= 4.0 + +## Screenshots + +- main page + ![main page](./assets/da-1.png) + +- server list + ![server list](./assets/da-2.png) + +- tag list + ![tag list](./assets/da-3.png) + +- tag action + ![tag action](./assets/da-4.png) + + +# LICENSE + +[MIT LICENSE](./LICENSE) \ No newline at end of file diff --git a/assets/da-1.png b/assets/da-1.png new file mode 100644 index 0000000000000000000000000000000000000000..69dccc08afdcedafe232d50a9ad4fbe17bb4c731 GIT binary patch literal 7948 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 NyQZyLc-7+3e*v65!43cb literal 0 HcmV?d00001 diff --git a/assets/da-2.png b/assets/da-2.png new file mode 100644 index 0000000000000000000000000000000000000000..cfa435940cf3bd8bc878389deb4bb7afd1eebc62 GIT binary patch literal 19977 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 MPgg&ebxsLQ0Hm#rxBvhE literal 0 HcmV?d00001 diff --git a/assets/da-3.png b/assets/da-3.png new file mode 100644 index 0000000000000000000000000000000000000000..8c713f87d17917c4113cdb259a163bca74d19615 GIT binary patch literal 25975 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 EA2xQKMF0Q* literal 0 HcmV?d00001 diff --git a/assets/da-4.png b/assets/da-4.png new file mode 100644 index 0000000000000000000000000000000000000000..e0b1c96de4c518a30d3ed19aa3c9d7bb0c8f9b6c GIT binary patch literal 29840 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 + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.linkLabel1 = new System.Windows.Forms.LinkLabel(); + this.linkLabel2 = new System.Windows.Forms.LinkLabel(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.linkLabel3 = new System.Windows.Forms.LinkLabel(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.button2 = new System.Windows.Forms.Button(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // linkLabel1 + // + this.linkLabel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.linkLabel1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.linkLabel1.Location = new System.Drawing.Point(63, 60); + this.linkLabel1.Name = "linkLabel1"; + this.linkLabel1.Size = new System.Drawing.Size(236, 31); + this.linkLabel1.TabIndex = 3; + this.linkLabel1.TabStop = true; + this.linkLabel1.Text = "https://gitee.com/godsharp/opcbrowser"; + this.linkLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.linkLabel1.UseCompatibleTextRendering = true; + this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // linkLabel2 + // + this.linkLabel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.linkLabel2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.linkLabel2.Location = new System.Drawing.Point(63, 30); + this.linkLabel2.Name = "linkLabel2"; + this.linkLabel2.Size = new System.Drawing.Size(236, 30); + this.linkLabel2.TabIndex = 1; + this.linkLabel2.TabStop = true; + this.linkLabel2.Text = "https://github.com/godsharp/opcbrowser"; + this.linkLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.linkLabel2.UseCompatibleTextRendering = true; + this.linkLabel2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel2_LinkClicked); + // + // label1 + // + this.label1.Dock = System.Windows.Forms.DockStyle.Fill; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(3, 30); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(54, 30); + this.label1.TabIndex = 0; + this.label1.Text = "GitHub:"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label2 + // + this.label2.Dock = System.Windows.Forms.DockStyle.Fill; + this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.Location = new System.Drawing.Point(3, 60); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(54, 31); + this.label2.TabIndex = 2; + this.label2.Text = "Gitee:"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label3 + // + this.label3.Dock = System.Windows.Forms.DockStyle.Fill; + this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label3.Location = new System.Drawing.Point(3, 0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(54, 30); + this.label3.TabIndex = 4; + this.label3.Text = "Author:"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // linkLabel3 + // + this.linkLabel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.linkLabel3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.linkLabel3.Location = new System.Drawing.Point(63, 0); + this.linkLabel3.Name = "linkLabel3"; + this.linkLabel3.Size = new System.Drawing.Size(236, 30); + this.linkLabel3.TabIndex = 5; + this.linkLabel3.TabStop = true; + this.linkLabel3.Text = "https://github.com/seayxu"; + this.linkLabel3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.linkLabel3.UseCompatibleTextRendering = true; + this.linkLabel3.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel3_LinkClicked); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 60F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 242F)); + this.tableLayoutPanel1.Controls.Add(this.label3, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.linkLabel1, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.linkLabel2, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.label2, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.linkLabel3, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.label1, 0, 1); + this.tableLayoutPanel1.Location = new System.Drawing.Point(12, 12); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 3; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(302, 91); + this.tableLayoutPanel1.TabIndex = 6; + // + // button2 + // + this.button2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button2.Location = new System.Drawing.Point(236, 109); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(75, 23); + this.button2.TabIndex = 0; + this.button2.Text = "OK"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // FormAbout + // + this.AcceptButton = this.button2; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(339, 141); + this.Controls.Add(this.button2); + this.Controls.Add(this.tableLayoutPanel1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.Name = "FormAbout"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "About Opc Da Broswer"; + this.tableLayoutPanel1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.LinkLabel linkLabel1; + private System.Windows.Forms.LinkLabel linkLabel2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.LinkLabel linkLabel3; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Button button2; + } +} \ No newline at end of file diff --git a/src/OpcDaBrowser/FormAbout.cs b/src/OpcDaBrowser/FormAbout.cs new file mode 100644 index 0000000..ba7c38f --- /dev/null +++ b/src/OpcDaBrowser/FormAbout.cs @@ -0,0 +1,40 @@ +using System.Diagnostics; +using System.Windows.Forms; + +namespace OpcDaBrowser +{ + public partial class FormAbout : Form + { + public FormAbout() + { + InitializeComponent(); + } + + private void button2_Click(object sender, System.EventArgs e) + { + Close(); + } + + private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + OpenLink(sender); + } + + private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + OpenLink(sender); + } + + private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + OpenLink(sender); + } + + private void OpenLink(object sender) + { + LinkLabel linkLabel= sender as LinkLabel; + if (linkLabel is null) return; + Process.Start(linkLabel.Text); + } + } +} diff --git a/src/OpcDaBrowser/FormAbout.resx b/src/OpcDaBrowser/FormAbout.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/src/OpcDaBrowser/FormAbout.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/src/OpcDaBrowser/FormBrowser.Designer.cs b/src/OpcDaBrowser/FormBrowser.Designer.cs index 9ac21bd..fdc6143 100644 --- a/src/OpcDaBrowser/FormBrowser.Designer.cs +++ b/src/OpcDaBrowser/FormBrowser.Designer.cs @@ -32,11 +32,11 @@ protected override void Dispose(bool disposing) private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle17 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle18 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle19 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormBrowser)); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle20 = new System.Windows.Forms.DataGridViewCellStyle(); this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -54,6 +54,7 @@ private void InitializeComponent() this.componentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.tsmiAutomation = new System.Windows.Forms.ToolStripMenuItem(); this.tsmiOpenNetApi = new System.Windows.Forms.ToolStripMenuItem(); + this.tsmiAbout = new System.Windows.Forms.ToolStripMenuItem(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.treeView1 = new System.Windows.Forms.TreeView(); this.imageList1 = new System.Windows.Forms.ImageList(this.components); @@ -68,16 +69,52 @@ private void InitializeComponent() this.tsmiReadValueSync = new System.Windows.Forms.ToolStripMenuItem(); this.tsmiReadValueAsync = new System.Windows.Forms.ToolStripMenuItem(); dataGridView1 = new System.Windows.Forms.DataGridView(); + ((System.ComponentModel.ISupportInitialize)(dataGridView1)).BeginInit(); this.menuStrip1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); this.splitContainer1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(dataGridView1)).BeginInit(); this.statusStrip1.SuspendLayout(); this.contextMenuStrip1.SuspendLayout(); this.SuspendLayout(); // + // dataGridView1 + // + dataGridView1.AllowUserToAddRows = false; + dataGridView1.AllowUserToDeleteRows = false; + dataGridView1.BackgroundColor = System.Drawing.Color.White; + dataGridView1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + dataGridView1.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.EnableWithoutHeaderText; + dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle5.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle5.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle5.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + dataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle5; + dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.Column1, + this.Column2, + this.Column3, + this.Column4, + this.Column5}); + dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; + dataGridView1.EnableHeadersVisualStyles = false; + dataGridView1.Location = new System.Drawing.Point(0, 0); + dataGridView1.Name = "dataGridView1"; + dataGridView1.ReadOnly = true; + dataGridView1.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None; + dataGridView1.RowHeadersVisible = false; + dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + dataGridView1.ShowCellErrors = false; + dataGridView1.ShowEditingIcon = false; + dataGridView1.ShowRowErrors = false; + dataGridView1.Size = new System.Drawing.Size(525, 431); + dataGridView1.TabIndex = 0; + // // Column1 // this.Column1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; @@ -103,8 +140,8 @@ private void InitializeComponent() // this.Column3.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; this.Column3.DataPropertyName = "Quality"; - dataGridViewCellStyle17.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - this.Column3.DefaultCellStyle = dataGridViewCellStyle17; + dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.Column3.DefaultCellStyle = dataGridViewCellStyle6; this.Column3.FillWeight = 60F; this.Column3.HeaderText = "Quality"; this.Column3.MinimumWidth = 60; @@ -118,8 +155,8 @@ private void InitializeComponent() // this.Column4.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; this.Column4.DataPropertyName = "Timestamp"; - dataGridViewCellStyle18.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - this.Column4.DefaultCellStyle = dataGridViewCellStyle18; + dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.Column4.DefaultCellStyle = dataGridViewCellStyle7; this.Column4.HeaderText = "Timestamp"; this.Column4.MinimumWidth = 130; this.Column4.Name = "Column4"; @@ -132,8 +169,8 @@ private void InitializeComponent() // this.Column5.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; this.Column5.DataPropertyName = "Counter"; - dataGridViewCellStyle19.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - this.Column5.DefaultCellStyle = dataGridViewCellStyle19; + dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.Column5.DefaultCellStyle = dataGridViewCellStyle8; this.Column5.FillWeight = 60F; this.Column5.HeaderText = "Counter"; this.Column5.MinimumWidth = 60; @@ -148,7 +185,8 @@ private void InitializeComponent() this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.serverToolStripMenuItem, this.groupToolStripMenuItem, - this.componentToolStripMenuItem}); + this.componentToolStripMenuItem, + this.tsmiAbout}); this.menuStrip1.Location = new System.Drawing.Point(0, 0); this.menuStrip1.Name = "menuStrip1"; this.menuStrip1.Size = new System.Drawing.Size(734, 24); @@ -161,12 +199,14 @@ private void InitializeComponent() this.tsmiConnect, this.tsmiDisconnect, this.tsmiNewClient}); + this.serverToolStripMenuItem.Image = global::OpcDaBrowser.Properties.Resources.server; this.serverToolStripMenuItem.Name = "serverToolStripMenuItem"; - this.serverToolStripMenuItem.Size = new System.Drawing.Size(51, 20); + this.serverToolStripMenuItem.Size = new System.Drawing.Size(67, 20); this.serverToolStripMenuItem.Text = "Server"; // // tsmiConnect // + this.tsmiConnect.Image = global::OpcDaBrowser.Properties.Resources.connected; this.tsmiConnect.Name = "tsmiConnect"; this.tsmiConnect.Size = new System.Drawing.Size(133, 22); this.tsmiConnect.Text = "Connect"; @@ -174,6 +214,7 @@ private void InitializeComponent() // // tsmiDisconnect // + this.tsmiDisconnect.Image = global::OpcDaBrowser.Properties.Resources.disconnected; this.tsmiDisconnect.Name = "tsmiDisconnect"; this.tsmiDisconnect.Size = new System.Drawing.Size(133, 22); this.tsmiDisconnect.Text = "Disconnect"; @@ -181,6 +222,7 @@ private void InitializeComponent() // // tsmiNewClient // + this.tsmiNewClient.Image = global::OpcDaBrowser.Properties.Resources.exit; this.tsmiNewClient.Name = "tsmiNewClient"; this.tsmiNewClient.Size = new System.Drawing.Size(133, 22); this.tsmiNewClient.Text = "Exit"; @@ -192,12 +234,14 @@ private void InitializeComponent() this.addSelectedToolStripMenuItem, this.tsmiRemoveItem, this.tsmiRemoveAll}); + this.groupToolStripMenuItem.Image = global::OpcDaBrowser.Properties.Resources.tag; this.groupToolStripMenuItem.Name = "groupToolStripMenuItem"; - this.groupToolStripMenuItem.Size = new System.Drawing.Size(42, 20); + this.groupToolStripMenuItem.Size = new System.Drawing.Size(58, 20); this.groupToolStripMenuItem.Text = "Tags"; // // addSelectedToolStripMenuItem // + this.addSelectedToolStripMenuItem.Image = global::OpcDaBrowser.Properties.Resources.add_list; this.addSelectedToolStripMenuItem.Name = "addSelectedToolStripMenuItem"; this.addSelectedToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.addSelectedToolStripMenuItem.Text = "Add Node"; @@ -205,6 +249,7 @@ private void InitializeComponent() // // tsmiRemoveItem // + this.tsmiRemoveItem.Image = global::OpcDaBrowser.Properties.Resources.delete_row; this.tsmiRemoveItem.Name = "tsmiRemoveItem"; this.tsmiRemoveItem.Size = new System.Drawing.Size(180, 22); this.tsmiRemoveItem.Text = "Remove Item"; @@ -212,6 +257,7 @@ private void InitializeComponent() // // tsmiRemoveAll // + this.tsmiRemoveAll.Image = global::OpcDaBrowser.Properties.Resources.delete_property; this.tsmiRemoveAll.Name = "tsmiRemoveAll"; this.tsmiRemoveAll.Size = new System.Drawing.Size(180, 22); this.tsmiRemoveAll.Text = "Remove All"; @@ -222,8 +268,9 @@ private void InitializeComponent() this.componentToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.tsmiAutomation, this.tsmiOpenNetApi}); + this.componentToolStripMenuItem.Image = global::OpcDaBrowser.Properties.Resources.dharmacakra; this.componentToolStripMenuItem.Name = "componentToolStripMenuItem"; - this.componentToolStripMenuItem.Size = new System.Drawing.Size(83, 20); + this.componentToolStripMenuItem.Size = new System.Drawing.Size(99, 20); this.componentToolStripMenuItem.Text = "Component"; // // tsmiAutomation @@ -231,17 +278,27 @@ private void InitializeComponent() this.tsmiAutomation.Checked = true; this.tsmiAutomation.CheckOnClick = true; this.tsmiAutomation.CheckState = System.Windows.Forms.CheckState.Checked; + this.tsmiAutomation.Image = global::OpcDaBrowser.Properties.Resources.tire; this.tsmiAutomation.Name = "tsmiAutomation"; - this.tsmiAutomation.Size = new System.Drawing.Size(140, 22); + this.tsmiAutomation.Size = new System.Drawing.Size(180, 22); this.tsmiAutomation.Text = "Automation"; // // tsmiOpenNetApi // this.tsmiOpenNetApi.CheckOnClick = true; + this.tsmiOpenNetApi.Image = global::OpcDaBrowser.Properties.Resources.wheel; this.tsmiOpenNetApi.Name = "tsmiOpenNetApi"; - this.tsmiOpenNetApi.Size = new System.Drawing.Size(140, 22); + this.tsmiOpenNetApi.Size = new System.Drawing.Size(180, 22); this.tsmiOpenNetApi.Text = "OpenNetApi"; // + // tsmiAbout + // + this.tsmiAbout.Image = global::OpcDaBrowser.Properties.Resources.about; + this.tsmiAbout.Name = "tsmiAbout"; + this.tsmiAbout.Size = new System.Drawing.Size(68, 20); + this.tsmiAbout.Text = "About"; + this.tsmiAbout.Click += new System.EventHandler(this.tsmiAbout_Click); + // // splitContainer1 // this.splitContainer1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; @@ -288,42 +345,6 @@ private void InitializeComponent() this.imageList1.Images.SetKeyName(4, "folder-open-0.png"); this.imageList1.Images.SetKeyName(5, "folder-open-1.png"); // - // dataGridView1 - // - dataGridView1.AllowUserToAddRows = false; - dataGridView1.AllowUserToDeleteRows = false; - dataGridView1.BackgroundColor = System.Drawing.Color.White; - dataGridView1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - dataGridView1.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.EnableWithoutHeaderText; - dataGridViewCellStyle20.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - dataGridViewCellStyle20.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle20.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle20.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle20.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle20.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle20.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - dataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle20; - dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; - dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.Column1, - this.Column2, - this.Column3, - this.Column4, - this.Column5}); - dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; - dataGridView1.EnableHeadersVisualStyles = false; - dataGridView1.Location = new System.Drawing.Point(0, 0); - dataGridView1.Name = "dataGridView1"; - dataGridView1.ReadOnly = true; - dataGridView1.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None; - dataGridView1.RowHeadersVisible = false; - dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - dataGridView1.ShowCellErrors = false; - dataGridView1.ShowEditingIcon = false; - dataGridView1.ShowRowErrors = false; - dataGridView1.Size = new System.Drawing.Size(525, 431); - dataGridView1.TabIndex = 0; - // // statusStrip1 // this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -371,33 +392,33 @@ private void InitializeComponent() this.tsmiReadValueSync, this.tsmiReadValueAsync}); this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.Size = new System.Drawing.Size(181, 114); + this.contextMenuStrip1.Size = new System.Drawing.Size(169, 92); // // tsmiWriteValueSync // this.tsmiWriteValueSync.Name = "tsmiWriteValueSync"; - this.tsmiWriteValueSync.Size = new System.Drawing.Size(180, 22); + this.tsmiWriteValueSync.Size = new System.Drawing.Size(168, 22); this.tsmiWriteValueSync.Text = "Write Value Sync"; this.tsmiWriteValueSync.Click += new System.EventHandler(this.tsmiWriteValueSync_Click); // // tsmiWriteValueAsync // this.tsmiWriteValueAsync.Name = "tsmiWriteValueAsync"; - this.tsmiWriteValueAsync.Size = new System.Drawing.Size(180, 22); + this.tsmiWriteValueAsync.Size = new System.Drawing.Size(168, 22); this.tsmiWriteValueAsync.Text = "Write Value Async"; this.tsmiWriteValueAsync.Click += new System.EventHandler(this.tsmiWriteValueAsync_Click); // // tsmiReadValueSync // this.tsmiReadValueSync.Name = "tsmiReadValueSync"; - this.tsmiReadValueSync.Size = new System.Drawing.Size(180, 22); + this.tsmiReadValueSync.Size = new System.Drawing.Size(168, 22); this.tsmiReadValueSync.Text = "Read Value Sync"; this.tsmiReadValueSync.Click += new System.EventHandler(this.tsmiReadValueSync_Click); // // tsmiReadValueAsync // this.tsmiReadValueAsync.Name = "tsmiReadValueAsync"; - this.tsmiReadValueAsync.Size = new System.Drawing.Size(180, 22); + this.tsmiReadValueAsync.Size = new System.Drawing.Size(168, 22); this.tsmiReadValueAsync.Text = "Read value Async"; this.tsmiReadValueAsync.Click += new System.EventHandler(this.tsmiReadValueAsync_Click); // @@ -418,13 +439,13 @@ private void InitializeComponent() this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormBrowser_FormClosing); this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FormBrowser_FormClosed); this.SizeChanged += new System.EventHandler(this.FormBrowser_SizeChanged); + ((System.ComponentModel.ISupportInitialize)(dataGridView1)).EndInit(); this.menuStrip1.ResumeLayout(false); this.menuStrip1.PerformLayout(); this.splitContainer1.Panel1.ResumeLayout(false); this.splitContainer1.Panel2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); this.splitContainer1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(dataGridView1)).EndInit(); this.statusStrip1.ResumeLayout(false); this.statusStrip1.PerformLayout(); this.contextMenuStrip1.ResumeLayout(false); @@ -468,5 +489,6 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripMenuItem tsmiWriteValueAsync; private System.Windows.Forms.ToolStripMenuItem tsmiReadValueSync; private System.Windows.Forms.ToolStripMenuItem tsmiReadValueAsync; + private System.Windows.Forms.ToolStripMenuItem tsmiAbout; } } \ No newline at end of file diff --git a/src/OpcDaBrowser/FormBrowser.cs b/src/OpcDaBrowser/FormBrowser.cs index f4e5dc9..d5f9323 100644 --- a/src/OpcDaBrowser/FormBrowser.cs +++ b/src/OpcDaBrowser/FormBrowser.cs @@ -12,8 +12,8 @@ namespace OpcDaBrowser { public partial class FormBrowser : Form { - //System.Windows.Forms.DataGridView dataGridView1; - System.Windows.Forms.DataGridView dataGridView1; + //DataGridView dataGridView1; + DataGridView dataGridView1; private IOpcDaClient _client; private int _id = 1; private readonly BindingList _values = new(); @@ -21,7 +21,7 @@ public partial class FormBrowser : Form public FormBrowser() { InitializeComponent(); - tsmiVersion.Text = ProductVersion; + tsmiVersion.Text = $@"v{ProductVersion}"; base.Text += $@" v{ProductVersion}"; tsslOpcServerStatus.Text = @"Opc Server : Stop"; tsslComponent.Text = null; @@ -184,8 +184,8 @@ private void OnServerSelected(string server) private void OnServerShutdownHandler(Server arg1, string arg2) { tsslOpcServerStatus.Text = @"Opc Server : Stop"; + _client.Disconnect(); OnConnectChanged(false); - //_client.Disconnect(); } private void treeView1_AfterCollapse(object sender, TreeViewEventArgs e) @@ -305,8 +305,12 @@ private void FormBrowser_FormClosing(object sender, FormClosingEventArgs e) private void FormBrowser_FormClosed(object sender, FormClosedEventArgs e) { - GC.Collect(); + if (_client?.Connected == true) + { + _client.Disconnect(); + } _client?.Dispose(); + GC.Collect(); } private void FormBrowser_SizeChanged(object sender, EventArgs e) @@ -417,5 +421,10 @@ private void tsmiReadValueAsync_Click(object sender, EventArgs e) MessageBox.Show(@$"Read value failed:{ex.Message}", @"Opc Da Browser", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } } + + private void tsmiAbout_Click(object sender, EventArgs e) + { + new FormAbout().ShowDialog(); + } } } \ No newline at end of file diff --git a/src/OpcDaBrowser/FormBrowser.resx b/src/OpcDaBrowser/FormBrowser.resx index 917c9ce..8de5629 100644 --- a/src/OpcDaBrowser/FormBrowser.resx +++ b/src/OpcDaBrowser/FormBrowser.resx @@ -117,6 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + False + True @@ -143,7 +146,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABc - CwAAAk1TRnQBSQFMAgEBBgEAAaABAAGgAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CwAAAk1TRnQBSQFMAgEBBgEAAfABAAHwAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -194,9 +197,6 @@ Af8BgAH/AfgBAQH4AQEBgQH/AYEB/wH8AQEB/AEBDP8L - - False - 248, 17 diff --git a/src/OpcDaBrowser/OpcDaBrowser.csproj b/src/OpcDaBrowser/OpcDaBrowser.csproj index f6743b4..aaeb952 100644 --- a/src/OpcDaBrowser/OpcDaBrowser.csproj +++ b/src/OpcDaBrowser/OpcDaBrowser.csproj @@ -9,7 +9,7 @@ latestmajor x86 true - 2021.207.13.0 + 2021.207.13.1 seayxu Opc Da Browser GodSharp @@ -42,6 +42,18 @@ Form + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + \ No newline at end of file diff --git a/src/OpcDaBrowser/Properties/Resources.Designer.cs b/src/OpcDaBrowser/Properties/Resources.Designer.cs new file mode 100644 index 0000000..6ffbbdf --- /dev/null +++ b/src/OpcDaBrowser/Properties/Resources.Designer.cs @@ -0,0 +1,183 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace OpcDaBrowser.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpcDaBrowser.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap about { + get { + object obj = ResourceManager.GetObject("about", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap add_list { + get { + object obj = ResourceManager.GetObject("add_list", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap connected { + get { + object obj = ResourceManager.GetObject("connected", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap delete_property { + get { + object obj = ResourceManager.GetObject("delete_property", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap delete_row { + get { + object obj = ResourceManager.GetObject("delete_row", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap dharmacakra { + get { + object obj = ResourceManager.GetObject("dharmacakra", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap disconnected { + get { + object obj = ResourceManager.GetObject("disconnected", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap exit { + get { + object obj = ResourceManager.GetObject("exit", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap server { + get { + object obj = ResourceManager.GetObject("server", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tag { + get { + object obj = ResourceManager.GetObject("tag", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tire { + get { + object obj = ResourceManager.GetObject("tire", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap wheel { + get { + object obj = ResourceManager.GetObject("wheel", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/src/OpcDaBrowser/Properties/Resources.resx b/src/OpcDaBrowser/Properties/Resources.resx new file mode 100644 index 0000000..7a8af90 --- /dev/null +++ b/src/OpcDaBrowser/Properties/Resources.resx @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\exit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\delete_property.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\dharmacakra.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\server.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\delete_row.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\disconnected.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\connected.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\tag.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\about.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\add_list.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\tire.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\wheel.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/src/OpcDaBrowser/Resources/about.png b/src/OpcDaBrowser/Resources/about.png new file mode 100644 index 0000000000000000000000000000000000000000..eb6fcc1d11760a028bca98cc14ab37c5b24ac407 GIT binary patch literal 6793 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 Up%vAC1lHMXEFCS{%>C2;1CcuEt^fc4 literal 0 HcmV?d00001 diff --git a/src/OpcDaBrowser/Resources/add_list.png b/src/OpcDaBrowser/Resources/add_list.png new file mode 100644 index 0000000000000000000000000000000000000000..c3e9dff62b5eaa87da979caa02da94bff741bafc GIT binary patch literal 6925 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 literal 0 HcmV?d00001 diff --git a/src/OpcDaBrowser/Resources/connected.png b/src/OpcDaBrowser/Resources/connected.png new file mode 100644 index 0000000000000000000000000000000000000000..3e0f8ddd0cf9e1d7df019c1051a55c0d7bcaf575 GIT binary patch literal 4577 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 literal 0 HcmV?d00001 diff --git a/src/OpcDaBrowser/Resources/delete_property.png b/src/OpcDaBrowser/Resources/delete_property.png new file mode 100644 index 0000000000000000000000000000000000000000..85d4c5b39bc8586f74163a77d53f272c9e10618e GIT binary patch literal 6061 zcmeHLc{tSXyMAXg7{;bIR`q( zRqHpMhvHzrp+y&2vSK`MA;Y3q#Fs`^mPa|54^ZJp z+xlfHo9~dnW_gB!o4GA|_T5%gvRT6Z6n)(N!;&PQ_`re3Uu8m1ys|p0W*X7`U{dv5 zSzmhI$HoJK*HZs@{vxNpAuVigN$)qK*qTzWldczzMW3Ipj?`ZG5bPfOS{DF;FcW=U ztDBC?V?Cx;mqgx8il-K4W$JOk^F;3#=tt?_`v}#EhjYQPlSU$8dIsgf{JJ>Nv_3-x zOmv!ZJPxZE@3}8ccSx_$fx`z?XpnGgw0S*WWv)Aymc^iphvR!UeI?<4jt3RKY&5Tb zG0@kOY4W(Q`uPp--=F7u!i*znns(WiPvLU*uY#Tl2pxM>t<@2q#>z^FH5XNQ|H2IV z%VI1cFehKc)x~&m>YIb?qk$Xe%!FSZ%{Iu=>T$ZfVcb6cNH!{eMIzlKiRbe^_pQx) zW=FEL<81fd?9orJyY)8iG~FWJ23BsK!YIctdlp#jEwZ>m57OIMAqyGBo`zt~2ytAMIBo2x};JC^1a=-!< z0{wqrf*?uuKLS5{(Gmg>05Cwy!PRQKEb`+-46o7o)+2j!0gs-ppczz0D6|f*S#`3q z4ksh4{9beIiVf_il;$Iv4S*5=CxGApoW#~c{{fD3{Act}seci8^8mxP6=QI}iNp>$cec zTGLqg?7{UxzEH>Q)d@HW!x>3#@Rzf9F?6-OGdn0Ke4EqqWUTql5A1(;CO8Sa6a@dn z2(>M94%GAWE$e`);n#z6WnBtMQ{`98&jiQajpgADL}x^2ru%manHU4<{VCBn{gj;j z_B^;~I8Vo33;tKV?PSV1vdvk*ZW=#uDynEuJPRg|~p}o-_rvNol;Rjmw+(WKNF*FF1 zt)SN%v0P_Q;*c1}V3#e1dpP$5*l=2Cpv9(`C*PB(eE?gJ;b$135vtK=n!@qOi2$A9 zFV_U^sg|2bx6zdH_z#Wec%J1b*QdkQ$^7Duia-Xht$Y`@{=i3N032A7V!8(cM}F4Z za^aNsFMakQClEpo8BqtLMmN<#Pres-grSE*Whcs6o<6C}Q8RUQ4 zF830EP5knSNYzm~%Erf;`O0WgN7$j3gyY(de?c%Eziz;_%7R)Bq2@D%09j6k0{B zzx?^Wz1~qX^gV(S?{W5Ob7oZ9qN=aosQ0)Gq^d9GIX;ol9(u+>XKW2pMJX1&XDw1s z4|@2J<^#ODR{7%1hwCD4!B{AgfgRs{m&opg`L#+g^q^cQ(>x*k;X($m^_fY?yeX%d z6W=HWP)VXvh8a)ul*UHcZm9AwXOQRYway9w@dQV!?R{y$cKtH-ahXjdu=Rw6T6Y-_!kk5= z3SzArBtW^G(b*-=22t>SDM>OzEC3IVlQG(B!g+%v@U<8fK&?RZ#h+J45gCtvwQ4 zz67Gl(mP07O$CtnCBk(7;iOIyd0h=k1_>78Hb0hUlIbbeYfTQi zCyew@$G1cnduTB{Y+(Y8L{*XXz1LQgB`Bv^2(($!RU*)Z#4}FXBZ|7e16HrBKlzUj zOa!82Rmua>KHv{_u0lF;Ecw5&BB55adX#zS^bBC_0U=A@N1e<`i!5$L_Z(nd6z>?t z+6+li7V}D&J|}ar{%hCJ6q_{2r>Ac6j8R0%TBQx;0-7=)G+l9i_}dXe81XOYDW@sm zYnzMyL_eso?1v>cH3vd8)k)$fU?HW8e~bLY1F;%ZQ}l#5FRsGChxi)2U>d9j+fj5> z)JRK72!hSDVlmUlCT)YYh%lQ4&lu{)<)``w=yQG%S`}%dU1dN0P#k za$SGdNuE)TRoV=D3!CRii%j^uOQ~T~+I!GAH(6t`NB{1$!SNnz9{714FoBMO4RO>sS`9fBfLlZw z_szBmuuUpbl$Gm*#z6PH)S<2<1s+87@RA|>9SknOgt(38S+s(u!VSRvdg{jIlprG3 zpkMb)5!3-sPJYI$uGa&1JPnHEN#Vq9xmn;61v9n;E37(S34-^zQ>iszi|J=%6y5@9 zs}tY5SYb}0v$D{%c7F{drXOi+17=utYk{B|9-mSJ=*;RoSlrAW83#zI*mnD63BqBO zlqwQIew#)pR0iakCZ~dWK8L!37!Z`K{AneI~#_P`N)Fzb4$b4<+yfi^SFJ5hzWb8D<{Mf?=*0r0sghu_;(%JHTYs9grYV^o!&OJFJ&? zU>HwBKjFSd*n=Z9H4qVEe2&Co{_sT;oRvTAR_UGr@VZAROPJ)ClsKCZ{I~9>EE2aa z_c!6`6o3bl2f0hGUm<$4_gx(oUfX7tJi_ z2D`pS8FLG}u7$)^k#^0Z*&&WXc1Q`z-r4W&{MqMEGpc3tPfP;+Nb6&}9=#HzKB4Sg zsW_T2uiV2f>iHc+C-pD0`(S_4`fPTSN=YzGgJBI@$_>Hs7JrT~NlM!#Ag9mDd;pI= zpW6jdz&y_KE8>xN(Ga^~JdCm;>xLC^)BJ1KGi8VO_j%|0$K%;}KhiZCoH|^8$D3is~?fNwxb8OXz$x(~rcFrk5(~NX%6?k?rt|pwD<5zAd zaRd6vYoejuVub0OwAsckRn_s!R9Q-kYj()+wN4nMvi(Q)*l%m+#E4pUQi-GK2VBEn z34UkDw1J&9F#WEX*ib0PX~@}KFsy^JFog(A+-aHbJ`{_h!1vx~OZ;0TCr)0IoeMno zwL(glIKupb`pI{Twqf^|Xl%f5F8D}#U4PUeljIk2+*@f0S6p%qs!M-#iLY~LGrgN( z-zLm;)Iqew7VaZ3TG&|fVt-wUwY|QsZtb-KLB(QUeOcQEjDE`zYyVAe2ej*+&0BNo zyxnh@zfrx|udpC@$0yL$xmHNFs8RoqG}jT-qk`d4;x_7LqIq57i3^ZN#As#=quKol zshPi3ifW>rDBtC|8C6A0MadTQs7I5GsGY0wB4MUEdU;hu3seb@3$yvqCRf-7DsiA+ z*6Gmlnj@)cCucnMVwzSUm*M+h6oQixi|}NOCbyJvgiia|Ubm2?R5hEEYIX3=X%_Tp z!9|{Fy;f*GRk4bmJvK648y4_kP};trh_pJajxl0UHkgzS_n z@TW2&StSd1zVMd<25TEiWrkoZO3Dj#7!JXlK4kd+$vs> zyw+=BwlFSEZ9i`7Q=AZza5O4D&{B@@P3PO4Ql`~OKP}XAn`+WL>lB2}vcI=*tY4g0 z)Hbicia`CH!QDs0Yu{a%_U#vkRdrpLN9fabV{=N62LmIUhG5Sji|n#j*=310_niGP z@keN(pH%na477FANrCX~A>)VDXhy#P@=|c+;0sdB9cBzPnyK@a=K}}zB-e7boDgOe zFHBzB2|&6BX63&`KVO^*g$VVgctJK;Zz8j{`uMi0mY$SnU=3-5D07JgDLa$`&*1B!}B(jlo~LnP!Er4YsbjT+W3SGL{f+<2$w-M^4PUEjA*N znxd5?#MO@P!Wh3DJz-x*3D=S9vl9~xTlOdhQE|_S>v;Q_gR@6xSkX}KDnMnwAQLkH?i)JdG_P2S+zjUMNg*z8NGex3{ss??cKw6hSC0YOqgQL z*IR3^-u_~ukomA)ftRStm`YU|--^_dd`B1j1%LPHMDI`j0+Ip`J0%rQuV=6KrYPn* z-aI?Kw%^o@fUs~gkv@k0Lw_i~;&yk8jLavaF?FeeB-?t@O$8I(1Cu9YK1jZaaB-3R z@#hUx*Ilo=*OV2-K7y6_Nr6;N<1w`<3(tMGb!;#S5#@cS_Iun- zZL#+}$UW5-lfJF1IjPe%&D(wOQnZ@(DW0|r3g)Be{{G`q)VC5JYwsn}KXW{4iZIh0RL6;=H9z9k})Wx`=^M&hcz>Bn_tU2zKLs-_mRWI1!y&U zilb9Gisxh|Os1*FQe5!(N~F{Gw{Lli`VzD))(;vsC>Y-}U#~`?;tUovHpZCy7|y6k z$s@L>CF$Es+RHLs*fSwky!XGHX{bu+SkO^FwbQQ7s;v>)-g7s}G=!S`Aovfz*sbW- z?k*FDdn_DmypYOw;(WcEYibG;S$bD)-z<47l4UF?IWn$NrFH8Bvt_`|$>ZyQQ;FWJ yKtE7LD^vnwrkv-X|r-Eycr literal 0 HcmV?d00001 diff --git a/src/OpcDaBrowser/Resources/delete_row.png b/src/OpcDaBrowser/Resources/delete_row.png new file mode 100644 index 0000000000000000000000000000000000000000..04dc7ef9ecb8c89ea3a96a75da2e7ad0af9a498b GIT binary patch literal 4327 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 literal 0 HcmV?d00001 diff --git a/src/OpcDaBrowser/Resources/disconnected.png b/src/OpcDaBrowser/Resources/disconnected.png new file mode 100644 index 0000000000000000000000000000000000000000..370a39fc545b51d2ddd2090a6923b8b8975cc9c5 GIT binary patch literal 5244 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 E16!kuq5uE@ literal 0 HcmV?d00001 diff --git a/src/OpcDaBrowser/Resources/exit.png b/src/OpcDaBrowser/Resources/exit.png new file mode 100644 index 0000000000000000000000000000000000000000..416c8687b0bd347d851040e6708058586c424391 GIT binary patch literal 4448 zcmeHKX*iVo`~S{hjA0nEl`yCbO15NeMpH-1GANZ@Ns|3w9MnAISSl(@LYhHB);gAK z8ItTICXuD=WsMPH{HAk$|NnK)|JS*$^Wy*V_q_Pt+voGS@8^3x&x<>nWNL^;?LYwl z&_>6OSO5TLyKsQyV4D|@b~UjB3zG54qgz{B>i>QIdjtP}H!#=cXT<)T7m_~ zKui6P{32j?bl*j5MY-0(n`!waGf^4RqTOZH=NxW_INefyoVW{? zy9e9*T%l#I@k)VOk<0y;`X2Iw>SuF$BrENI#v90TXA_3?AVa@1syDx`zGeSLt42o* zP6pb~^tT^(GZ$}Mq2UEzLl38wj0q^N2s()W<{>j#<)pA(Q zLN8_6TgOvgI+w^z>v=UMnoaKvVGV=jBifW>2_t680ufXIlvE@GxP% z5k)1oGcC7&@-tbn6l(Z4u9*D8*<%&IAl>sy^A?r8{e8;rGtlE|0q`X zG12*uorp}H!ho4cQ%cLk8{v$OtZ&mh<2?BVRxfbJMgzzR1BUz!IpA(!?+5kgvRKQN zYRnQklKmKI(?;hKfR zMMEdD_9ACw!#gIIKIoedGHWV%6~8`XcE9(~JEYJ0>27m9%}+RI&`Gs9 zhLfiaCeyFG0gF?WEZbAZOMy}cC*vfC%ES3ibgrmldm_PNO@LtRK)s=`C3s9nNGp8@ z#DizO4|ju`Y6;ytb%g`7nAv&ssSULaG$LtSvM} zVjWc~UT?iD8Oyn&2X%Y&G_}=SiEvFW)P1`E5Fls@K;D4>f&(sq0>S_XNPq?iupcIn z96tik3q$`A8=#79{#N=g&BGcT@=iT&oRXyM$Vod}A3YBCbJ)VVqwyuKC+NF%RuFL1Ayb zNiJ!Xb>XuANdZzZm1>@{6I54HNuziOe;lkK`w^^bnYz0^;Prt$QZ|7CK zFu@l#<3*I##6e^5zTt@2D-S^&uOmgGa^of(sR-ThaNTtj)*wu8)?8i@=DKYG4i0qP zFhyY-hF@!z_{YMV7RaS&rhPV$-AMBw76=o;86?YaTkpEQra z#=f!N1qX#tUJTq0!O`dK1-X!+waILB)7SD!HhS&v(NJ!lQWmJ9&+7g1kMS4nPfQX_fIA{MKn5&DvD2(kNnELS~5=2}79b=_zeF7FXEnUg( z+gJG%$%Uj*rpjbcj`Jv#0%2r>_;e8VdAhe59+g!sJA=(`fPBee3QO49i_Y^`)g4N72TdE6ej7r=}+ zP16~a$RN5R#Ie!Rd|er6Rfs)NKZe7V$VdAl&<>IM&*Wba?0|F8xBjm*cJj!VDX~8Z z{V#`r#moPXdR>UL3PH1$s!jk1a0otf0=vP-N0&BOIIYrvZL0Iea>j<&rIWNo`NfDM zZfAgUWIfaS3 zovUlL`}dESyeTEO*zeDutO!pWcHF(C3C3)KbC~jIkj|iLfN*O{H^8`U8gUT*Pm)x( zzD)oCx1@f4Lx3!0J%nL<*5eTnia|XCK-UEa%Ek{lTmW1(W>9DTqxi!v|0vn;eMnN} zd@y_`0H+G@MUpT;r)*B!F0r?rE#{;Xxk>_n)gnBlq!kUo##?HwS@Rzbb@xF4yd5Z} zhwjP&5LkqlUmxcIpyPArjY?a#3VBmoSH^)2v7-c0?x?dNg?N0=7@K_cb7#f;E;74h zL)n4n0j#tD8_EhN#8)|4#zF#Z4YmQ;8*@Pgc+iwdxzCUW&fTg>Om6V52rNP{3_-ugA6&Rz44?@PA&(yl4(51Z;jPW)m`9o)@@mZtvd) zp3aaX*+Sa>+1HsDNua58a+LqG08slh@g7!$_u37d2dioozl-@yK3H+k&tXnx0dMh7 zzXZ(mXML4E6tGcS@}Ng#JCGCuu>^nx7=Q$v01jXf_?ysB?jL|Sp-jO)D@BR?Ir?Fn zHEyU*4*41bDGEeUXzh9}Ax zX}~t=$!?Hv$*8d~coV0_c*_HQ^j~SdH;`1b|9m-&R6U?pHt(_=dNXDjPIIl1Q(K{< z>G$%P9x&P&n=4N>ClDhMZTJ+%*JXP{8yh18JkC0C+=JdSA9uHK$>LyDq&EMkwa!3=GraH8G|a3EvZzU z&*ODnTGL*7u+*|tb!}@RpTBd_%_D1J^xcOJX}`b~apeL=0G|=Jl9L}WH+#xl<~+Oa zU5J~3m5kh3vt)Sq(cMc5s7viXR|M&J9e!`COr5x$6mzWCau+YxPZnz$VThsU#`?3t zBpI1_Gaj6IQcku`$*OT`QTDQY&odROnHXtoz)$}QF+MfnUC{ACLZZzpXMOE*(xdZg zRGl4S1vk?zamyDTKX^_vpJ_1GPivrA9B|KgP=5+HuFvgY)+yC-2yTM*jJ|$Wj^jbdV zjS=4(~5HYf~eUyY5KNiR~2Jcv^Ec>bdLsPeo?Qude7gfW4}wT X#Fv{wXS>-;EigK2dZh5MW7xj{*>DC8 literal 0 HcmV?d00001 diff --git a/src/OpcDaBrowser/Resources/server.png b/src/OpcDaBrowser/Resources/server.png new file mode 100644 index 0000000000000000000000000000000000000000..cfab8eb6b159d2d4d8dfaa265dd4e4689b727698 GIT binary patch literal 6016 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 literal 0 HcmV?d00001 diff --git a/src/OpcDaBrowser/Resources/wheel.png b/src/OpcDaBrowser/Resources/wheel.png new file mode 100644 index 0000000000000000000000000000000000000000..819403479ca9aeeaed73ea2ded4be87da8aeb63d GIT binary patch literal 13773 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 literal 0 HcmV?d00001