From 81643249b9d00a37507cb0f9954b7a8c2672e8e2 Mon Sep 17 00:00:00 2001 From: Miguel Date: Fri, 28 Jun 2024 19:47:08 +0200 Subject: [PATCH] Mejorada la implementacion de rotacion y redimensionado. --- Icons/reset.png | Bin 0 -> 43959 bytes LibS7Adv.csproj | 2 ++ PLCControl.xaml | 9 ++++++++- PLCViewModel.cs | 18 ++++++++++++++++-- 4 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 Icons/reset.png diff --git a/Icons/reset.png b/Icons/reset.png new file mode 100644 index 0000000000000000000000000000000000000000..80ae1c836b6e5acd94b13b58bf97d580cfbcf956 GIT binary patch literal 43959 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 + @@ -25,6 +26,7 @@ + diff --git a/PLCControl.xaml b/PLCControl.xaml index c5dad9f..1138a72 100644 --- a/PLCControl.xaml +++ b/PLCControl.xaml @@ -24,7 +24,7 @@ + ShowSortOptions="False" ForceCursor="True" Margin="5,5,5,5" NameColumnWidth="100" /> @@ -35,6 +35,13 @@ + diff --git a/PLCViewModel.cs b/PLCViewModel.cs index 101e5bf..a73942e 100644 --- a/PLCViewModel.cs +++ b/PLCViewModel.cs @@ -5,10 +5,11 @@ using Newtonsoft.Json; using System.Text.RegularExpressions; using System.ComponentModel; using Newtonsoft.Json.Linq; +using System.ComponentModel.DataAnnotations; namespace LibS7Adv { - [DisplayName("PLC Advanced Setup")] + [DisplayName("PLC Advanced Setup:")] public partial class PlcData : ObservableObject { [ObservableProperty] @@ -24,16 +25,20 @@ namespace LibS7Adv [ObservableProperty] [property: Description("CPU Info")] [property: Category("Status:")] + [property: ReadOnly(true)] string cpuTime; [ObservableProperty] + [property: Display(Name = "Status")] [property: Description("CPU Status")] [property: Category("Status:")] + [property: ReadOnly(true)] string connectionStatus; [ObservableProperty] [property: Description("API Error")] [property: Category("Status:")] + [property: ReadOnly(true)] string lastError; } @@ -63,6 +68,13 @@ namespace LibS7Adv [property: JsonIgnore] bool isConnected; + [RelayCommand] + [property: JsonIgnore] + public void ResetAlarmButton() + { + PlcData.LastError = ""; + } + [RelayCommand] [property: JsonIgnore] public void ConnectButton() @@ -75,6 +87,8 @@ namespace LibS7Adv public void Connect() { + if (IsConnected) + return; try { // Implementa la conexión utilizando PLCModel @@ -175,7 +189,7 @@ namespace LibS7Adv else if (tag.tagType == EDataType.Bool) { if (tag.areaType == EArea.Input) - Instance?.OutputArea.WriteBit(tag.word_offset, tag.bit, Value); + Instance?.InputArea.WriteBit(tag.word_offset, tag.bit, Value); if (tag.areaType == EArea.Output) Instance?.OutputArea.WriteBit(tag.word_offset, tag.bit, Value); if (tag.areaType == EArea.Marker)