From 4d6a0e30d33494efb9b04f893e35b9f066347441 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Mon, 11 Aug 2025 17:46:11 +0800 Subject: [PATCH 1/2] chore: bump version 9.0.3 --- src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj b/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj index e48f0db3244..7a4286b8747 100644 --- a/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj +++ b/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj @@ -60,7 +60,7 @@ - + From e245048066def34c852f6ee0694e9287830b1008 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Mon, 11 Aug 2025 17:46:57 +0800 Subject: [PATCH 2/2] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=E7=A4=BA=E4=BE=8B?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=20widows=20=E5=B9=B3=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Samples/OpcDa.razor | 4 +- .../Components/Samples/OpcDa.razor.cs | 40 ++++++++++++------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/src/BootstrapBlazor.Server/Components/Samples/OpcDa.razor b/src/BootstrapBlazor.Server/Components/Samples/OpcDa.razor index 3dbbd94dd1f..3f16711ac77 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/OpcDa.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/OpcDa.razor @@ -58,14 +58,14 @@
- +
- +
diff --git a/src/BootstrapBlazor.Server/Components/Samples/OpcDa.razor.cs b/src/BootstrapBlazor.Server/Components/Samples/OpcDa.razor.cs index 120c101601e..38be9d5ac8a 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/OpcDa.razor.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/OpcDa.razor.cs @@ -4,7 +4,6 @@ // Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone using BootstrapBlazor.OpcDa; -using System.Globalization; namespace BootstrapBlazor.Server.Components.Samples; @@ -17,12 +16,10 @@ public partial class OpcDa : ComponentBase [NotNull] private IOpcDaServer? OpcDaServer { get; set; } - private string? _serverName = "opcda://localhost/Kepware.KEPServerEX.V6/Mock"; + private string? _serverName = "opcda://localhost/Kepware.KEPServerEX.V6"; private const string Tag1 = "Channel1.Device1.Tag1"; private const string Tag2 = "Channel1.Device1.Tag2"; - private const string Tag3 = "Channel1.Device1.Tag3"; - private const string Tag4 = "Channel1.Device1.Tag4"; private string? _tagValue1; private string? _tagValue2; @@ -49,11 +46,17 @@ private void OnDisConnect() private void OnRead() { - var values = OpcDaServer.Read(Tag1, Tag2); - _tagValue1 = values.ElementAt(0).Value?.ToString(); - - var v = (int)values.ElementAt(1).Value! / 100d; - _tagValue2 = v.ToString(CultureInfo.InvariantCulture); + var items = OpcDaServer.Read(Tag1, Tag2); + var value1 = items.FirstOrDefault(i => i.Name == Tag1).Value; + if (value1 != null) + { + _tagValue1 = value1.ToString(); + } + var value2 = items.FirstOrDefault(i => i.Name == Tag2).Value; + if (value2 != null) + { + _tagValue2 = value2.ToString(); + } } private void OnCreateSubscription() @@ -61,7 +64,7 @@ private void OnCreateSubscription() _subscribed = true; _subscription = OpcDaServer.CreateSubscription("Subscription1", 1000, true); _subscription.DataChanged += UpdateValues; - _subscription.AddItems([Tag3, Tag4]); + _subscription.AddItems([Tag1, Tag2]); } private void OnCancelSubscription() @@ -76,9 +79,16 @@ private void OnCancelSubscription() private void UpdateValues(List items) { - _tagValue3 = items[0].Value?.ToString(); - var v = (int)items[1].Value! / 100d; - _tagValue4 = v.ToString(CultureInfo.InvariantCulture); + var value1 = items.Find(i => i.Name == Tag1).Value; + if (value1 != null) + { + _tagValue3 = value1.ToString(); + } + var value2 = items.Find(i => i.Name == Tag2).Value; + if (value2 != null) + { + _tagValue4 = value2.ToString(); + } InvokeAsync(StateHasChanged); } @@ -88,12 +98,12 @@ private void UpdateValues(List items) private void OnBrowse() { var elements = OpcDaServer.Browse("", new OpcBrowseFilters(), out _); - _roots = elements.Select(element => new TreeViewItem(element) + _roots = [.. elements.Select(element => new TreeViewItem(element) { Text = element.Name, HasChildren = element.HasChildren, Icon = "fa-solid fa-fw fa-cubes" - }).ToList(); + })]; } private Task>> OnExpandNodeAsync(TreeViewItem element)