diff --git a/Jenkinsfile b/Jenkinsfile index 910dab8..c726c1d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -15,7 +15,7 @@ pipeline { /* calcolo numero versione... diverso x branch MASTER/DEVELOP */ script { - withEnv(['NEXT_BUILD_NUMBER=307']) { + withEnv(['NEXT_BUILD_NUMBER=308']) { // env.versionNumber = VersionNumber(versionNumberString : '2.0.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true) env.versionNumber = VersionNumber(versionNumberString : '2.0.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}') env.APP_NAME = 'SCMA' diff --git a/MTC_Adapter/MTC/enumerations.cs b/MTC_Adapter/MTC/enumerations.cs index 58f168b..24cc764 100644 --- a/MTC_Adapter/MTC/enumerations.cs +++ b/MTC_Adapter/MTC/enumerations.cs @@ -1,18 +1,27 @@ namespace MTC { - + /// + /// Tipologia di ricerca ammessa + /// + public enum subsMode + { + /// ADD: includo + A, + /// X: ESCLUDO + X + } /// /// Tipologia di sostituzioni ammesse /// - public enum substType + public enum substSearch { - // BEGIN: inizia per + // CERCO BEGIN: inizia per B, - // END: finisce per + // CERCO END: finisce per E, - // CONTAINS: contiene + // CERCO CONTAINS: contiene C, - // IDENTICAL: identica + // CERCO IDENTICAL: identica I } @@ -26,9 +35,13 @@ /// public string tradz; /// - /// Tipologia di sostituzione ammessa + /// Tipologia di azione /// - public substType sost; + public subsMode modo; + /// + /// Modalità di ricerca + /// + public substSearch search; } /// /// Classe item node (tipo/obj) diff --git a/MTC_Adapter/OPC-UA-REDIS/AdapterRed.cs b/MTC_Adapter/OPC-UA-REDIS/AdapterRed.cs index c8a2cf7..6d153d4 100644 --- a/MTC_Adapter/OPC-UA-REDIS/AdapterRed.cs +++ b/MTC_Adapter/OPC-UA-REDIS/AdapterRed.cs @@ -313,22 +313,22 @@ namespace OPC_UA_REDIS trovato = false; txt2find = item.Key; // B --> cerco inizio - if (item.Value.sost == substType.B) + if (item.Value.search == substSearch.B) { trovato = answ.StartsWith(txt2find); } // E --> cerco fine - else if (item.Value.sost == substType.E) + else if (item.Value.search == substSearch.E) { trovato = answ.EndsWith(txt2find); } // I --> cerco IDENTICO - else if (item.Value.sost == substType.I) + else if (item.Value.search == substSearch.I) { trovato = (answ == txt2find); } // C --> cerco OVUNQUE contenuto - else if (item.Value.sost == substType.C) + else if (item.Value.search == substSearch.C) { trovato = answ.IndexOf(txt2find) >= 0; } diff --git a/MTC_Adapter/SCMA/AdapterGeneric.cs b/MTC_Adapter/SCMA/AdapterGeneric.cs index 3f960f1..afd515b 100644 --- a/MTC_Adapter/SCMA/AdapterGeneric.cs +++ b/MTC_Adapter/SCMA/AdapterGeneric.cs @@ -1315,8 +1315,11 @@ namespace SCMA string fileName = ""; int rumRiga = 0; string valSost = ""; + string sMode = ""; + string sSearch = ""; string[] dictSubst; - substType tipoSost; + subsMode modoSearch; + substSearch tipoCerca; StreamReader file; replDict replacement; // processo file pre REPLACE parziale (con like) @@ -1333,25 +1336,37 @@ namespace SCMA if (linea.Substring(0, 1) != "#") { dictSubst = linea.Split(utils.CRC("testCharSep")); - // recupero valori inseriti - valSost = dictSubst[1].Trim(); - switch (dictSubst[0].Trim()) + // recupero valori inseriti + sMode = dictSubst[0].Trim(); + sSearch = dictSubst[1].Trim(); + valSost = dictSubst[2].Trim(); + switch (sMode) + { + case "X": + modoSearch = subsMode.X; + break; + default: + case "A": + modoSearch = subsMode.A; + break; + } + switch (sSearch) { case "B": - tipoSost = substType.B; + tipoCerca = substSearch.B; break; case "C": - tipoSost = substType.C; + tipoCerca = substSearch.C; break; case "E": - tipoSost = substType.E; + tipoCerca = substSearch.E; break; default: case "I": - tipoSost = substType.I; + tipoCerca = substSearch.I; break; } - replacement = new replDict { sost = tipoSost, tradz = dictSubst[2].Trim() }; + replacement = new replDict { modo = modoSearch, search = tipoCerca, tradz = dictSubst[2].Trim() }; // 3 oggetti: tipo ricerca | valOriginale | valTradotto if (currGateway.nameRepRoles != null && currGateway.nameRepRoles.ContainsKey(valSost)) { diff --git a/MTC_Adapter/SCMA/DATA/CONF/NameRepRolesList.map b/MTC_Adapter/SCMA/DATA/CONF/NameRepRolesList.map index 497ca8a..d50a396 100644 --- a/MTC_Adapter/SCMA/DATA/CONF/NameRepRolesList.map +++ b/MTC_Adapter/SCMA/DATA/CONF/NameRepRolesList.map @@ -2,62 +2,64 @@ # CONFIGURAZIONE SOSTITUZIONE CHIAVI per OPC-UA-REDIS #------------------------------------------------------------ # - commenti con "#" -# - elenco tipo MODO_RICERCA | NOME_ORIGINALE | NomeReplaced -# - se MODO_RICERCA = B --> cerco INIZIO (regexp: ^VAR) -# - se MODO_RICERCA = E --> cerco FINE (regexp: VAR$) -# - se MODO_RICERCA = C --> cerco NELLA STRINGA (regexp: %VAR%) -# - se MODO_RICERCA = I --> cerco INTERA STRINGA (regexp: VAR) +# - elenco tipo MODO | RICERCA | NOME_ORIGINALE | NomeReplaced +# - se MODO = A --> INCLUDO +# - se MODO = X --> ESCLUDO +# - se RICERCA = B --> cerco INIZIO (regexp: ^VAR) +# - se RICERCA = E --> cerco FINE (regexp: VAR$) +# - se RICERCA = C --> cerco NELLA STRINGA (regexp: %VAR%) +# - se RICERCA = I --> cerco INTERA STRINGA (regexp: VAR) #------------------------------------------------------------ # B: Ricerca dall'INIZIO stringa (BEGIN, regexp: ^VAR) #------------------------------------------------------------ -B|AV_| -B|ST_| -B|UNK_|Unk -B|Axis_01|Axes:AxisX -B|Axis_02|Axes:AxisY -B|Axis_03|Axes:AxisZ -B|Axis_04|Axes:AxisB -B|Axis_05|Axes:AxisC -B|Axis_06|Axes:AxisV +A|B|AV_| +A|B|ST_| +A|B|UNK_|Unk +A|B|Axis_01|Axes:AxisX +A|B|Axis_02|Axes:AxisY +A|B|Axis_03|Axes:AxisZ +A|B|Axis_04|Axes:AxisB +A|B|Axis_05|Axes:AxisC +A|B|Axis_06|Axes:AxisV #------------------------------------------------------------ # E: Ricerca dalla FINE stringa (END, regexp: VAR$) #------------------------------------------------------------ -E|RUN_MODE|RunMode -E|EXE_MODE|ExeMode -E|COD_M|CodM -E|COD_S|CodS -E|COD_T|CodT -E|Cod_M|CodM -E|Cod_S|CodS -E|Cod_T|CodT -E|CodG_Act|CodGAct -E|PZ_TOT|PzTot -E|CurrProg_RowNum|CurrProgRowNum +A|E|RUN_MODE|RunMode +A|E|EXE_MODE|ExeMode +A|E|COD_M|CodM +A|E|COD_S|CodS +A|E|COD_T|CodT +A|E|Cod_M|CodM +A|E|Cod_S|CodS +A|E|Cod_T|CodT +A|E|CodG_Act|CodGAct +A|E|PZ_TOT|PzTot +A|E|CurrProg_RowNum|CurrProgRowNum #------------------------------------------------------------ # C: Ricerca NELLA stringa (CONTAINS, regexp: %VAR%) #------------------------------------------------------------ -C|SpindleOver_|SpindleOver +A|C|SpindleOver_|SpindleOver #------------------------------------------------------------ # I: Ricerca stringa COMPLETA (IDENTICAL, regexp: VAR) #------------------------------------------------------------ -I|E_STOP|EStop -I|ACC_TIME|AccTime -I|ACC_TIME_WORK|AccTimeWork -I|PROC_SEL|ProcSel -I|CodG_ACT|CodGAct -I|USER_ACTION|UserAction +A|I|E_STOP|EStop +A|I|ACC_TIME|AccTime +A|I|ACC_TIME_WORK|AccTimeWork +A|I|PROC_SEL|ProcSel +A|I|CodG_ACT|CodGAct +A|I|USER_ACTION|UserAction #------------------------------------------------------------ # Ricerca SOSTITUZIONI ESPLICITE per variabili (counter generici) #------------------------------------------------------------ -#I|Path_01_FeedRate|Axes:feedRate -#I|Counter_026|Head10:spindleRevs \ No newline at end of file +#A|I|Path_01_FeedRate|Axes:feedRate +#A|I|Counter_026|Head10:spindleRevs \ No newline at end of file