diff --git a/MP.MONO.ADAPTER.OPC/IobGeneric.cs b/MP.MONO.ADAPTER.OPC/IobGeneric.cs index bfd4e52..26295a1 100644 --- a/MP.MONO.ADAPTER.OPC/IobGeneric.cs +++ b/MP.MONO.ADAPTER.OPC/IobGeneric.cs @@ -37,7 +37,6 @@ namespace MP.MONO.ADAPTER.OPC connectionOk = false; configPath = confPath; confMan = config; - CleanupRegexp = confMan.GetValue("CleanupRegexp"); if (confMan != null) { // carico dati endpoint @@ -51,8 +50,17 @@ namespace MP.MONO.ADAPTER.OPC var optPar = confMan.GetSection("OptPar"); if (optPar.Exists()) { - CleanupRegexp = optPar.GetValue("CleanupRegexp"); - FiltSplitChar = optPar.GetValue("FiltSplitChar"); + ForceSplit = optPar.GetValue("ForceSplit"); + CleanupRegexpPre = optPar.GetValue("CleanupRegexpPre"); + if (optPar.GetValue("FiltCrLf")) + { + FiltSplitChar = new char[] { '\n', '\r' }; + } + else + { + FiltSplitChar = optPar.GetValue("FiltSplitChar"); + } + CleanupRegexpPost = optPar.GetValue("CleanupRegexpPost"); } } } @@ -316,14 +324,24 @@ namespace MP.MONO.ADAPTER.OPC internal EndpointData cIobConf { get; set; } = new EndpointData(); /// - /// Stringa regexp da usare x bonifica caratteri + /// Stringa regexp da usare x bonifica caratteri, PRE split /// - internal string CleanupRegexp { get; set; } = ""; + internal string CleanupRegexpPre { get; set; } = ""; + + /// + /// Stringa regexp da usare x bonifica caratteri, POST split + /// + internal string CleanupRegexpPost { get; set; } = ""; /// /// Carattere x eventuale split/filt valori notificati /// - internal string FiltSplitChar { get; set; } = ""; + internal char[] FiltSplitChar { get; set; } = new char[1]; + + /// + /// Indica se forzare split caratteri letti + /// + internal bool ForceSplit { get; set; } = false; internal string configPath { get; set; } = ""; @@ -453,11 +471,13 @@ namespace MP.MONO.ADAPTER.OPC /// internal string stringCleanup(string rawData) { - Regex rgx = new Regex(CleanupRegexp); + Regex rgxPre = new Regex(CleanupRegexpPre); + Regex rgxPost = new Regex(CleanupRegexpPost); string currVal = ""; - string temp = rgx.Replace(rawData, ""); + // pulizia dati preliminare + string temp = rgxPre.Replace(rawData, ""); // se รจ abilitato filt/split... - if (!string.IsNullOrEmpty(FiltSplitChar)) + if (ForceSplit) { var dataArray = temp.Split(FiltSplitChar); if (dataArray.Length > 0) @@ -469,6 +489,8 @@ namespace MP.MONO.ADAPTER.OPC { currVal = temp; } + // pulizia dati finale + currVal = rgxPre.Replace(currVal, ""); return currVal; } diff --git a/MP.MONO.ADAPTER.OPC/IobOpcUa.cs b/MP.MONO.ADAPTER.OPC/IobOpcUa.cs index 54c152f..81275bc 100644 --- a/MP.MONO.ADAPTER.OPC/IobOpcUa.cs +++ b/MP.MONO.ADAPTER.OPC/IobOpcUa.cs @@ -906,114 +906,6 @@ namespace MP.MONO.ADAPTER.OPC /// private ISubscriber sub { get; set; } - //#region Public Methods - ///// - ///// Recupera uno specifico dataItem - ///// - ///// - ///// - //public string getDataItemValue(string diKey) - //{ - // string answ = ""; - // if (string.IsNullOrEmpty(diKey)) - // { - // logError($"Attenzione: richiesta chiave vuota in getDataItemValue{Environment.NewLine}StackTrace: {Environment.StackTrace}"); - // } - // else - // { - // DateTime adesso = DateTime.Now; - // if (dataItemMem.Count == 0) - // { - // numErroriCheck++; - // if (vetoCheckStatus < adesso) - // { - // logError($"Errore in getDataItemValue per {diKey} | dataItemMem NON contiene valori"); - // // imposto veto per vetoSeconds... - // vetoCheckStatus = adesso.AddSeconds(vetoSeconds * 2); - // } - // } - // else - // { - // if (!dataItemMem.ContainsKey(diKey)) - // { - // if (vetoCheckStatus < adesso) - // { - // logError($"Errore in getDataItemValue per {diKey} | dataItemMem non contiene la chiave richiesta ma altri {dataItemMem.Count} valori"); - // // imposto veto per vetoSeconds... - // vetoCheckStatus = adesso.AddSeconds(vetoSeconds * 2); - // } - // numErroriCheck++; - // } - // else - // { - // try - // { - // var currDataItem = dataItemMem[diKey]; - // answ = currDataItem.value; - // } - // catch (Exception exc) - // { - // logError($"Errore in getDataItemValue per {diKey} | dataItemMem contiene {dataItemMem.Count} valori {Environment.NewLine}{exc}"); - // if (dataItemMem != null) - // { - // logError($"dataItemMem contiene {dataItemMem.Count} valori"); - // int maxNum = 5; - // foreach (var item in dataItemMem) - // { - // maxNum--; - // if (maxNum < 0) - // { - // break; - // } - // logInfo($"{item.Key} --> {item.Value.DisplayName} = {item.Value.value}"); - // } - // } - // } - // } - // } - // // se supero soglia errori lettura --> disconnetto e resetto - // if (numErroriCheck > maxErroriCheck) - // { - // logInfo($"numErroriCheck: {numErroriCheck} --> richiesta disconnessione adapter con tryDisconnect"); - - // numErroriCheck = 0; tryDisconnect(); } } - - // return answ; - //} - - ///// - ///// Recupero dati dinamici... - ///// - //public override Dictionary getDynData() - //{ - // Dictionary outVal = new Dictionary(); - // return outVal; - //} - - ///// - ///// Effettua vero processing contapezzi - ///// - //public override void processContapezzi() - //{ - // if (utils.CRB("enableContapezzi")) - // { - // // da ridefinire la gestione base del contapezzi OPC-UA... - // } - //} - - ///// - ///// Effettua lettura semafori principale - ///// Parametri da aggiornare x display in form - ///// - //public override void readSemafori(ref newDisplayData currDispData) - //{ - // base.readSemafori(ref currDispData); - // try - // { - // if (verboseLog) - // { - // logInfo("inizio read semafori"); - // } /// /// Elenco chiavi dei parametri gestiti come Tool @@ -1559,10 +1451,5 @@ namespace MP.MONO.ADAPTER.OPC #endregion Private Methods - //#endregion Protected Methods - - //#region Private Fields - //#endregion Private Fields - //#endregion Private Methods } } \ No newline at end of file diff --git a/MP.MONO.ADAPTER.OPC/appsettings.json b/MP.MONO.ADAPTER.OPC/appsettings.json index fb82a91..a0f3c19 100644 --- a/MP.MONO.ADAPTER.OPC/appsettings.json +++ b/MP.MONO.ADAPTER.OPC/appsettings.json @@ -44,7 +44,6 @@ "FullUrl": "opc.tcp://localhost:62541/Quickstarts/ReferenceServer", "PingMsTimeout": 1500 }, - "CleanupRegexp": "[^a-zA-Z0-9 %,.\\-\\+]", //"Endpoint": { // "ConfFile": "Multiax.json", // "FullUrl": "opc.tcp://192.168.0.2:4840", @@ -53,9 +52,11 @@ // "PingMsTimeout": 1500 //}, "OptPar": { - "CleanupRegexp": "[^a-zA-Z0-9 %,.\\-\\+]", - "FiltSplitChar": " ", - "ForceStringSeparator": true + "ForceSplit": true, + "CleanupRegexpPre": "", + "CleanupRegexpPost": "[^a-zA-Z0-9 %,.\\-\\+]", + "FiltCrLf": true, + "FiltSplitChar": [] }, "ENABLE_DATA_FILTER": true, "ENABLE_CLI_RESTART": true, diff --git a/MP.MONO.ANALYZER/MP.MONO.ANALYZER.csproj b/MP.MONO.ANALYZER/MP.MONO.ANALYZER.csproj index 180da35..e1a210c 100644 --- a/MP.MONO.ANALYZER/MP.MONO.ANALYZER.csproj +++ b/MP.MONO.ANALYZER/MP.MONO.ANALYZER.csproj @@ -6,7 +6,7 @@ enable enable AnyCPU;x86;x64 - 1.12206.1619 + 1.12206.1708 diff --git a/MP.MONO.ANALYZER/Resources/ChangeLog.html b/MP.MONO.ANALYZER/Resources/ChangeLog.html index a44fe83..8a2d6e6 100644 --- a/MP.MONO.ANALYZER/Resources/ChangeLog.html +++ b/MP.MONO.ANALYZER/Resources/ChangeLog.html @@ -1,6 +1,6 @@ MAPO-MONO -

Version: 1.12206.1619

+

Version: 1.12206.1708


Release Note:
  • diff --git a/MP.MONO.ANALYZER/Resources/VersNum.txt b/MP.MONO.ANALYZER/Resources/VersNum.txt index 3dc4aba..d83f621 100644 --- a/MP.MONO.ANALYZER/Resources/VersNum.txt +++ b/MP.MONO.ANALYZER/Resources/VersNum.txt @@ -1 +1 @@ -1.12206.1619 +1.12206.1708 diff --git a/MP.MONO.ANALYZER/Resources/manifest.xml b/MP.MONO.ANALYZER/Resources/manifest.xml index db8a150..eae0960 100644 --- a/MP.MONO.ANALYZER/Resources/manifest.xml +++ b/MP.MONO.ANALYZER/Resources/manifest.xml @@ -1,6 +1,6 @@ - 1.12206.1619 + 1.12206.1708 http://nexus.steamware.net/repository/SWS/MP.MONO.ANALYZER/stable/LAST/MP.Mon.zip http://nexus.steamware.net/repository/SWS/MP.MONO.ANALYZER/stable/LAST/ChangeLog.html false diff --git a/MP.MONO.DECODER/MP.MONO.DECODER.csproj b/MP.MONO.DECODER/MP.MONO.DECODER.csproj index 7803ee8..699eb8d 100644 --- a/MP.MONO.DECODER/MP.MONO.DECODER.csproj +++ b/MP.MONO.DECODER/MP.MONO.DECODER.csproj @@ -6,7 +6,7 @@ enable enable AnyCPU;x86;x64 - 1.12206.1619 + 1.12206.1708 diff --git a/MP.MONO.DECODER/Resources/ChangeLog.html b/MP.MONO.DECODER/Resources/ChangeLog.html index a44fe83..8a2d6e6 100644 --- a/MP.MONO.DECODER/Resources/ChangeLog.html +++ b/MP.MONO.DECODER/Resources/ChangeLog.html @@ -1,6 +1,6 @@ MAPO-MONO -

    Version: 1.12206.1619

    +

    Version: 1.12206.1708


    Release Note:
    • diff --git a/MP.MONO.DECODER/Resources/VersNum.txt b/MP.MONO.DECODER/Resources/VersNum.txt index 3dc4aba..d83f621 100644 --- a/MP.MONO.DECODER/Resources/VersNum.txt +++ b/MP.MONO.DECODER/Resources/VersNum.txt @@ -1 +1 @@ -1.12206.1619 +1.12206.1708 diff --git a/MP.MONO.DECODER/Resources/manifest.xml b/MP.MONO.DECODER/Resources/manifest.xml index 4eca9fe..233b875 100644 --- a/MP.MONO.DECODER/Resources/manifest.xml +++ b/MP.MONO.DECODER/Resources/manifest.xml @@ -1,6 +1,6 @@ - 1.12206.1619 + 1.12206.1708 http://nexus.steamware.net/repository/SWS/MP.MONO.DECODER/stable/LAST/MP.Mon.zip http://nexus.steamware.net/repository/SWS/MP.MONO.DECODER/stable/LAST/ChangeLog.html false diff --git a/MP.MONO.SIM/MP.MONO.SIM.csproj b/MP.MONO.SIM/MP.MONO.SIM.csproj index d237501..f563326 100644 --- a/MP.MONO.SIM/MP.MONO.SIM.csproj +++ b/MP.MONO.SIM/MP.MONO.SIM.csproj @@ -6,7 +6,7 @@ enable enable AnyCPU;x86;x64 - 1.12206.1619 + 1.12206.1708 diff --git a/MP.MONO.SIM/Resources/ChangeLog.html b/MP.MONO.SIM/Resources/ChangeLog.html index a44fe83..8a2d6e6 100644 --- a/MP.MONO.SIM/Resources/ChangeLog.html +++ b/MP.MONO.SIM/Resources/ChangeLog.html @@ -1,6 +1,6 @@ MAPO-MONO -

      Version: 1.12206.1619

      +

      Version: 1.12206.1708


      Release Note:
      • diff --git a/MP.MONO.SIM/Resources/VersNum.txt b/MP.MONO.SIM/Resources/VersNum.txt index 3dc4aba..d83f621 100644 --- a/MP.MONO.SIM/Resources/VersNum.txt +++ b/MP.MONO.SIM/Resources/VersNum.txt @@ -1 +1 @@ -1.12206.1619 +1.12206.1708 diff --git a/MP.MONO.SIM/Resources/manifest.xml b/MP.MONO.SIM/Resources/manifest.xml index a8a5d89..8db5ebb 100644 --- a/MP.MONO.SIM/Resources/manifest.xml +++ b/MP.MONO.SIM/Resources/manifest.xml @@ -1,6 +1,6 @@ - 1.12206.1619 + 1.12206.1708 http://nexus.steamware.net/repository/SWS/MP.MONO.SIM/stable/LAST/MP.Mon.zip http://nexus.steamware.net/repository/SWS/MP.MONO.SIM/stable/LAST/ChangeLog.html false diff --git a/MP.MONO.UI/MP.MONO.UI.csproj b/MP.MONO.UI/MP.MONO.UI.csproj index 1b628d9..e99ba00 100644 --- a/MP.MONO.UI/MP.MONO.UI.csproj +++ b/MP.MONO.UI/MP.MONO.UI.csproj @@ -5,7 +5,7 @@ enable enable AnyCPU;x86;x64 - 1.12206.1619 + 1.12206.1708 diff --git a/MP.MONO.UI/Resources/ChangeLog.html b/MP.MONO.UI/Resources/ChangeLog.html index a44fe83..8a2d6e6 100644 --- a/MP.MONO.UI/Resources/ChangeLog.html +++ b/MP.MONO.UI/Resources/ChangeLog.html @@ -1,6 +1,6 @@ MAPO-MONO -

        Version: 1.12206.1619

        +

        Version: 1.12206.1708


        Release Note:
        • diff --git a/MP.MONO.UI/Resources/VersNum.txt b/MP.MONO.UI/Resources/VersNum.txt index 3dc4aba..d83f621 100644 --- a/MP.MONO.UI/Resources/VersNum.txt +++ b/MP.MONO.UI/Resources/VersNum.txt @@ -1 +1 @@ -1.12206.1619 +1.12206.1708 diff --git a/MP.MONO.UI/Resources/manifest.xml b/MP.MONO.UI/Resources/manifest.xml index 12c5fab..94b8583 100644 --- a/MP.MONO.UI/Resources/manifest.xml +++ b/MP.MONO.UI/Resources/manifest.xml @@ -1,6 +1,6 @@ - 1.12206.1619 + 1.12206.1708 http://nexus.steamware.net/repository/SWS/MP.MONO.UI/stable/LAST/MP.Mon.zip http://nexus.steamware.net/repository/SWS/MP.MONO.UI/stable/LAST/ChangeLog.html false