From 6f01d4232bb107ca6821da07532a13db1a9ad8ef Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 16 Jun 2022 10:36:46 +0200 Subject: [PATCH] OK test OPC-UA --> ActLog --- MP.MONO.ADAPTER.OPC/CONF/ActLog.json | 6 ++++-- MP.MONO.ADAPTER.OPC/IobOpcUa.cs | 15 ++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/MP.MONO.ADAPTER.OPC/CONF/ActLog.json b/MP.MONO.ADAPTER.OPC/CONF/ActLog.json index 0585ef3..68fa5c2 100644 --- a/MP.MONO.ADAPTER.OPC/CONF/ActLog.json +++ b/MP.MONO.ADAPTER.OPC/CONF/ActLog.json @@ -8,7 +8,8 @@ "ValueNum": 0, "MinVal": -9999, "MaxVal": 9999, - "DisplFormat": "N0" + "DisplFormat": "N3", + "IsNumeric": true }, { "Order": 1, @@ -19,6 +20,7 @@ "ValueNum": 0, "MinVal": -9999, "MaxVal": 9999, - "DisplFormat": "N0" + "DisplFormat": "N3", + "IsNumeric": true } ] \ No newline at end of file diff --git a/MP.MONO.ADAPTER.OPC/IobOpcUa.cs b/MP.MONO.ADAPTER.OPC/IobOpcUa.cs index e8ae50c..62465cd 100644 --- a/MP.MONO.ADAPTER.OPC/IobOpcUa.cs +++ b/MP.MONO.ADAPTER.OPC/IobOpcUa.cs @@ -544,8 +544,21 @@ namespace MP.MONO.ADAPTER.OPC // cerco se sia nella conf x invio in specifico canale RAW if (ActLogKList.Contains(uuid)) { + // recupero valore e verifico se sia numerico... + bool numOk = false; + double updVal = 0; + numOk = double.TryParse(rawDataVal, out updVal); // aggiorno nella lista dei valori quello cambiato... - ActLogStatus.FirstOrDefault(x => x.ExtCode == uuid).Value = rawDataVal; + var currItem = ActLogStatus.FirstOrDefault(x => x.ExtCode == uuid); + if (numOk && currItem.IsNumeric) + { + currItem.ValueNum = updVal; + currItem.Value = updVal.ToString(currItem.DisplFormat); + } + else + { + currItem.Value = rawDataVal; + } // prendo tutti i valori del gruppo e li serializzo come DisplayDataDTO string rawData = JsonConvert.SerializeObject(ActLogStatus); // invio