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;