From 6e48539d2e099720b972e465ca0ffef3888af67c Mon Sep 17 00:00:00 2001 From: Miguel Date: Thu, 4 Sep 2025 11:59:32 +0200 Subject: [PATCH] =?UTF-8?q?Agregar=20modo=20de=20lectura=20a=20ucAnalogTag?= =?UTF-8?q?,=20permitiendo=20la=20lectura=20condicional=20del=20valor.=20S?= =?UTF-8?q?e=20implementa=20la=20propiedad=20Read=5FMode=20y=20se=20ajusta?= =?UTF-8?q?=20la=20l=C3=B3gica=20de=20actualizaci=C3=B3n=20para=20utilizar?= =?UTF-8?q?la.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ObjetosSim/TagsSignals/ucAnalogTag.xaml.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/ObjetosSim/TagsSignals/ucAnalogTag.xaml.cs b/ObjetosSim/TagsSignals/ucAnalogTag.xaml.cs index 3eac3fe..83ed1cb 100644 --- a/ObjetosSim/TagsSignals/ucAnalogTag.xaml.cs +++ b/ObjetosSim/TagsSignals/ucAnalogTag.xaml.cs @@ -92,9 +92,17 @@ namespace CtrEditor.ObjetosSim [property: Name("Valor")] public float value; + [ObservableProperty] + [property: Category("Simulación")] + [property: Description("Modo de lectura.")] + [property: Name("Modo Lectura")] + public bool read_Mode; + + partial void OnValueChanged(float value) { - EscribirWordTagScaled(Tag, Value, Min_IN_Scaled, Max_IN_Scaled, Min_OUT_Scaled, Max_OUT_Scaled); + if (!Read_Mode) + EscribirWordTagScaled(Tag, Value, Min_IN_Scaled, Max_IN_Scaled, Min_OUT_Scaled, Max_OUT_Scaled); } public osAnalogTag() @@ -106,7 +114,7 @@ namespace CtrEditor.ObjetosSim Min_OUT_Scaled = 0; min_IN_Scaled = 0; max_IN_Scaled = 100; - + Read_Mode = false; } public override void UpdateGeometryStart() @@ -115,7 +123,9 @@ namespace CtrEditor.ObjetosSim } public override void UpdatePLC(PLCViewModel plc, int elapsedMilliseconds) - { + { + if (Read_Mode) + Value = LeerWordTagScaled(Tag, Min_OUT_Scaled, Max_OUT_Scaled, Min_IN_Scaled, Max_IN_Scaled); } public override void UpdatePLCPrimerCiclo()