From 60c4e6bd841e5573e47895cdc4a41e5ee726e9bc Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 23 May 2022 20:32:41 +0200 Subject: [PATCH] Vesrione x test in prod Giacovelli --- IOB-UT-NEXT/Enums.cs | 5 + IOB-UT-NEXT/Objects.cs | 27 ++++- IOB-WIN-NEXT/AdapterForm.cs | 2 +- IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_002.ini | 1 + IOB-WIN-NEXT/IobConfiguration.cs | 8 +- IOB-WIN-NEXT/IobGeneric.cs | 110 +++++++++++++++++++-- IOB-WIN-NEXT/IobIcoelSoap.cs | 7 -- 7 files changed, 140 insertions(+), 20 deletions(-) diff --git a/IOB-UT-NEXT/Enums.cs b/IOB-UT-NEXT/Enums.cs index 92572e53..cd652f31 100644 --- a/IOB-UT-NEXT/Enums.cs +++ b/IOB-UT-NEXT/Enums.cs @@ -514,6 +514,11 @@ namespace IOB_UT_NEXT /// SignIN, + /// + /// Salvataggio RawTransf (valori raw da decodificare a valle) + /// + RawTransf, + /// /// Salvataggio UserLog (valori log attività utente) /// diff --git a/IOB-UT-NEXT/Objects.cs b/IOB-UT-NEXT/Objects.cs index 5835abc6..e84e7529 100644 --- a/IOB-UT-NEXT/Objects.cs +++ b/IOB-UT-NEXT/Objects.cs @@ -118,8 +118,8 @@ namespace IOB_UT_NEXT } /// - /// Classe di base per trasferimento informazioni di tipo RawTransfer FixMe Todo Fare !!! - /// elimnare usando SDK MAPO + /// Classe di base per trasferimento informazioni di tipo RawTransfer + /// FixMe Todo Fare !!!: elimnare usando SDK MAPO /// public class BaseRawTransf { @@ -140,6 +140,16 @@ namespace IOB_UT_NEXT /// public rawTransfType mesType { get; set; } = rawTransfType.ND; + /// + /// Costruttore senza parametri + /// + public BaseRawTransf() + { + this.dataRif = DateTime.Now; + this.mesContent = ""; + this.mesType = rawTransfType.ND; + } + /// /// Costruttore oggetto /// @@ -156,6 +166,19 @@ namespace IOB_UT_NEXT #endregion Public Properties } + /// + /// Array valori tipo BaseRawTransf inviati come JSon + /// FixMe Todo Fare !!!: elimnare usando SDK MAPO + /// + public class rawTransfJsonPayload + { + #region Public Properties + + public List rawTransfData { get; set; } + + #endregion Public Properties + } + /// /// Cache a tempo valori INT /// diff --git a/IOB-WIN-NEXT/AdapterForm.cs b/IOB-WIN-NEXT/AdapterForm.cs index 728abef3..b165d947 100644 --- a/IOB-WIN-NEXT/AdapterForm.cs +++ b/IOB-WIN-NEXT/AdapterForm.cs @@ -1168,7 +1168,7 @@ namespace IOB_WIN_NEXT cpuType = fIni.ReadString("CNC", "CPUTYPE", ""), rack = (short)fIni.ReadInteger("CNC", "RACK", 0), slot = (short)fIni.ReadInteger("CNC", "SLOT", 0), - serverData = new serverMapo(fIni.ReadString("SERVER", "MPIP", "::1"), fIni.ReadString("SERVER", "MPURL", "/MP/IO"), fIni.ReadString("SERVER", "CMDBASE", "/IOB/input/"), fIni.ReadString("SERVER", "CMDFLOG", "/IOB/flog/"), fIni.ReadString("SERVER", "CMDULOG", "/IOB/ulog/"), fIni.ReadString("SERVER", "CMDALIVE", "/"), fIni.ReadString("SERVER", "CMDENABLED", "/"), fIni.ReadString("SERVER", "CMDREBO", "/"), fIni.ReadString("SERVER", "CMD_ODL_STARTED", "/IOB/getCurrOdlStart/"), fIni.ReadString("SERVER", "CLI_INST", "SW_CLI"), fIni.ReadString("SERVER", "CMD_FORCLE_SPLIT_ODL", "/IOB/forceSplitOdlFull/")), + serverData = new serverMapo(fIni.ReadString("SERVER", "MPIP", "::1"), fIni.ReadString("SERVER", "MPURL", "/MP/IO"), fIni.ReadString("SERVER", "CMDBASE", "/IOB/input/"), fIni.ReadString("SERVER", "CMDFLOG", "/IOB/flog/"), fIni.ReadString("SERVER", "CMDULOG", "/IOB/ulog/"), fIni.ReadString("SERVER", "CMDALIVE", "/"), fIni.ReadString("SERVER", "CMDENABLED", "/"), fIni.ReadString("SERVER", "CMDREBO", "/"), fIni.ReadString("SERVER", "CMD_ODL_STARTED", "/IOB/getCurrOdlStart/"), fIni.ReadString("SERVER", "CLI_INST", "SW_CLI"), fIni.ReadString("SERVER", "CMD_FORCLE_SPLIT_ODL", "/IOB/forceSplitOdlFull/"), fIni.ReadString("SERVER", "CMDRAWTRANSF", "/IOB/rawTransfJson/")), MAX_COUNTER_BLINK = Convert.ToInt32(fIni.ReadString("BLINK", "MAX_COUNTER_BLINK", "1")), BLINK_FILT = Convert.ToInt32(fIni.ReadString("BLINK", "BLINK_FILT", "0")), TCMaxDelayFactor = Convert.ToDouble(fIni.ReadString("OPTPAR", "TC_MAX_TC_FACTOR", "1.2").Replace(".", ",")), diff --git a/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_002.ini b/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_002.ini index 16caef0b..6bf152f1 100644 --- a/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_002.ini +++ b/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_002.ini @@ -19,6 +19,7 @@ MPIP=http://192.168.1.14 MPURL=/MP/IO CMDBASE=/IOB/input/ CMDFLOG=/IOB/flog/ +CMDRAWTRANSF=/IOB/rawTransfJson/ CMDALIVE=/IOB CMDENABLED=/IOB/enabled/ CMDADV1=?valore= diff --git a/IOB-WIN-NEXT/IobConfiguration.cs b/IOB-WIN-NEXT/IobConfiguration.cs index 98af38be..b29b8739 100644 --- a/IOB-WIN-NEXT/IobConfiguration.cs +++ b/IOB-WIN-NEXT/IobConfiguration.cs @@ -147,7 +147,7 @@ namespace IOB_WIN_NEXT /// Comando x reboot /// Comando x check data avvio ODL /// Comando x forzare split ODL - public serverMapo(string MPIP_, string MPURL_ = "/MP/IO", string CMDBASE_ = "/IOB/input/", string CMDFLOG_ = "/IOB/flog/", string CMDULOG_ = "/IOB/ulog/", string CMDALIVE_ = "IOB", string CMDENABLED_ = "/IOB/enabled/", string CMDREBO_ = "/sendReboot.aspx?idxMacchina=", string CMD_ODL_STARTED_ = "/IOB/getCurrOdlStart/", string CLI_INST_ = "SteamWare", string CMD_FORCLE_SPLIT_ODL_ = "/IOB/forceSplitOdlFull/", string CMD_IDLE_TIME_ = "/IOB/getIdlePeriod/") + public serverMapo(string MPIP_, string MPURL_ = "/MP/IO", string CMDBASE_ = "/IOB/input/", string CMDFLOG_ = "/IOB/flog/", string CMDULOG_ = "/IOB/ulog/", string CMDALIVE_ = "IOB", string CMDENABLED_ = "/IOB/enabled/", string CMDREBO_ = "/sendReboot.aspx?idxMacchina=", string CMD_ODL_STARTED_ = "/IOB/getCurrOdlStart/", string CLI_INST_ = "SteamWare", string CMD_FORCLE_SPLIT_ODL_ = "/IOB/forceSplitOdlFull/", string CMD_IDLE_TIME_ = "/IOB/getIdlePeriod/", string CMDRAWTRANSFJSON_ = "/IOB/rawTransfJson/") { if (!string.IsNullOrEmpty(MPIP_)) { @@ -160,6 +160,7 @@ namespace IOB_WIN_NEXT MPURL = MPURL_; CMDBASE = CMDBASE_; CMDFLOG = CMDFLOG_; + CMDRAWTRANSF_JSON = CMDRAWTRANSFJSON_; CMDULOG = CMDULOG_; if (!string.IsNullOrEmpty(CMDBASE_)) { @@ -241,6 +242,11 @@ namespace IOB_WIN_NEXT /// public string CMDULOG { get; set; } = ""; + /// + /// comando base x Raw Transf LOG - salvataggio valori generici in modalità JSON payload come lista + /// + public string CMDRAWTRANSF_JSON { get; set; } = ""; + /// /// comando base x USER LOG - salvataggio parametri extra sistema MAPO in modalità JSON payload come lista /// diff --git a/IOB-WIN-NEXT/IobGeneric.cs b/IOB-WIN-NEXT/IobGeneric.cs index 29a6e276..8a69fcf9 100644 --- a/IOB-WIN-NEXT/IobGeneric.cs +++ b/IOB-WIN-NEXT/IobGeneric.cs @@ -1117,6 +1117,11 @@ namespace IOB_WIN_NEXT /// public int counterSigIN { get; set; } + /// + /// Contatore x invio dati RawTransf + /// + public int counterRawTransf { get; set; } + /// /// Contatore x invio dati UserLog /// @@ -2223,7 +2228,66 @@ namespace IOB_WIN_NEXT } } - // + /// + /// Processo la coda RawTransf... + /// + private void svuotaCodaRawTransf() + { + // verifico SE la coda abbia dei valori... + if (QueueRawTransf.Count > 0) + { + // invio pacchetto di dati (max da conf) + for (int i = 0; i < nMaxSend; i++) + { + // SE ho qualcosa in coda... + if (QueueRawTransf.Count > 0) + { + string currVal = ""; + if (MPOnline) + { + if (IobOnline) + { + List listaValori = new List(); + // se ho + di maxJsonData elementi --> invio un set di dati alla volta + if (QueueRawTransf.Count > maxJsonData) + { + // prendoi primi maxJsonDataValori + for (int j = 0; j < maxJsonData; j++) + { + QueueRawTransf.TryDequeue(out currVal); + listaValori.Add(currVal); + } + sendDataBlock(urlType.RawTransf, listaValori); + } + else + { + // invio in blocco + listaValori = QueueRawTransf.ToList(); + // invio + sendDataBlock(urlType.RawTransf, listaValori); + // svuoto! + QueueRawTransf = new ConcurrentQueue(); + } + } + else + { + break; + } + } + else + { + break; + } + } + else + { + break; + } + } + } + } + + /// /// Processo la coda UserLog... /// private void svuotaCodaULog() @@ -2313,6 +2377,7 @@ namespace IOB_WIN_NEXT // invio con thread separato... Task taskSigIN = Task.Run(() => svuotaCodaSignIN()); Task taskFLog = Task.Run(() => svuotaCodaFLog()); + Task taskRawTransf = Task.Run(() => svuotaCodaRawTransf()); Task taskULog = Task.Run(() => svuotaCodaULog()); } else @@ -2327,6 +2392,8 @@ namespace IOB_WIN_NEXT raiseRefresh(currDispData); // gestione queue FluxLog (invio, display) svuotaCodaFLog(); + // coda RawTransf + svuotaCodaRawTransf(); // coda UserLog svuotaCodaULog(); // refresh @@ -3467,23 +3534,23 @@ namespace IOB_WIN_NEXT if (maxQueueRawTransf > 0) { // se ho una coda superiore a max ammesso - if (QueueFLog.Count > maxQueueFLog) + if (QueueRawTransf.Count > maxQueueRawTransf) { // elimino valori iniziali fino a tornare al max ammesso... - while (QueueFLog.Count > maxQueueFLog) + while (QueueRawTransf.Count > maxQueueRawTransf) { string currVal = ""; - QueueFLog.TryDequeue(out currVal); - lgInfo($"Eliminazione da coda FLog per superamento maxLengh: {currVal}"); + QueueRawTransf.TryDequeue(out currVal); + lgInfo($"Eliminazione da coda RawTransf per superamento maxLengh: {currVal}"); } } } // loggo! - lgTrace(string.Format("[QUEUE-FLOG] {0}", encodedVal)); - counterFLog++; - if (counterFLog > 9999) + lgTrace(string.Format("[QUEUE-RTRANSF] {0}", encodedVal)); + counterRawTransf++; + if (counterRawTransf > 9999) { - counterFLog = 0; + counterRawTransf = 0; } } @@ -4221,6 +4288,27 @@ namespace IOB_WIN_NEXT } break; + case urlType.RawTransf: + BaseRawTransf currRTData = new BaseRawTransf(); + rawTransfJsonPayload fullRTObj = new rawTransfJsonPayload(); + fullRTObj.rawTransfData = new List(); + // inizio processando ogni valore + foreach (var item in elencoValori) + { + currRTData = JsonConvert.DeserializeObject(item); + fullRTObj.rawTransfData.Add(currRTData); + } + // conversione finale + try + { + answ = JsonConvert.SerializeObject(fullRTObj); + } + catch (Exception exc) + { + lgError($"RawTransf Errore in costruzione jsonPayload:{Environment.NewLine}{exc}"); + } + break; + case urlType.ULog: int numVal = 0; int matrOp = 0; @@ -5602,6 +5690,10 @@ namespace IOB_WIN_NEXT tipoComando = cIobConf.serverData.CMDBASE_JSON; break; + case urlType.RawTransf: + tipoComando = cIobConf.serverData.CMDRAWTRANSF_JSON; + break; + case urlType.ULog: tipoComando = cIobConf.serverData.CMDULOG_JSON; break; diff --git a/IOB-WIN-NEXT/IobIcoelSoap.cs b/IOB-WIN-NEXT/IobIcoelSoap.cs index d1214c5c..68832884 100644 --- a/IOB-WIN-NEXT/IobIcoelSoap.cs +++ b/IOB-WIN-NEXT/IobIcoelSoap.cs @@ -117,13 +117,6 @@ namespace IOB_WIN_NEXT // se devo inviare impacchetto dati if (doSend) { -#if false - // serializzo ed invio al sistema il risultato - string rawData = JsonConvert.SerializeObject(currBatch); - // invio come tipo "IcoelBatch" - Dictionary sendObj = new Dictionary(); - sendObj.Add(IOB_UT_NEXT.rawTransfType.IcoelBatch, rawData); -#endif // accodo per invio... accodaRawData(IOB_UT_NEXT.rawTransfType.IcoelBatch, currBatch); currBatchList = currBatch;