diff --git a/CVCncLib/CVCncLib.dll b/CVCncLib/CVCncLib.dll
index 8774ddab..0cf7b395 100644
Binary files a/CVCncLib/CVCncLib.dll and b/CVCncLib/CVCncLib.dll differ
diff --git a/IOB-UT-NEXT/IOB-UT-NEXT.csproj b/IOB-UT-NEXT/IOB-UT-NEXT.csproj
index 07ce0ea2..0f57fd38 100644
--- a/IOB-UT-NEXT/IOB-UT-NEXT.csproj
+++ b/IOB-UT-NEXT/IOB-UT-NEXT.csproj
@@ -59,8 +59,8 @@
..\packages\SharpZipLib.1.3.1\lib\net45\ICSharpCode.SharpZipLib.dll
-
- ..\packages\MapoSDK.6.14.2109.2809\lib\net40\MapoSDK.dll
+
+ ..\packages\MapoSDK.6.14.2202.2819\lib\net40\MapoSDK.dll
..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll
diff --git a/IOB-UT-NEXT/packages.config b/IOB-UT-NEXT/packages.config
index ae2cdab6..857d3932 100644
--- a/IOB-UT-NEXT/packages.config
+++ b/IOB-UT-NEXT/packages.config
@@ -1,6 +1,6 @@
-
+
diff --git a/IOB-WIN-NEXT/AdapterForm.cs b/IOB-WIN-NEXT/AdapterForm.cs
index 752724ed..246583a3 100644
--- a/IOB-WIN-NEXT/AdapterForm.cs
+++ b/IOB-WIN-NEXT/AdapterForm.cs
@@ -1139,7 +1139,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", "/"), fIni.ReadString("SERVER", "CMDBASE", "/"), fIni.ReadString("SERVER", "CMDFLOG", "/"), 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/")),
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/SIMUL_03.ini b/IOB-WIN-NEXT/DATA/CONF/SIMUL_03.ini
index 985d0380..a6acdcf0 100644
--- a/IOB-WIN-NEXT/DATA/CONF/SIMUL_03.ini
+++ b/IOB-WIN-NEXT/DATA/CONF/SIMUL_03.ini
@@ -16,6 +16,7 @@ MPIP=http://10.74.82.218
MPURL=/MP/IO
CMDBASE=/IOB/input/
CMDFLOG=/IOB/flog/
+CMDULOG=/IOB/ulog/
CMDALIVE=/IOB
CMDENABLED=/IOB/enabled/
CMDADV1=?valore=
diff --git a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj
index 9903147e..4067947f 100644
--- a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj
+++ b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj
@@ -90,8 +90,8 @@
False
ExtLib\krcc.dll
-
- ..\packages\MapoSDK.6.14.2111.313\lib\net40\MapoSDK.dll
+
+ ..\packages\MapoSDK.6.14.2202.2819\lib\net40\MapoSDK.dll
..\packages\MathNet.Numerics.4.15.0\lib\net461\MathNet.Numerics.dll
diff --git a/IOB-WIN-NEXT/IobConfiguration.cs b/IOB-WIN-NEXT/IobConfiguration.cs
index a79c864b..98af38be 100644
--- a/IOB-WIN-NEXT/IobConfiguration.cs
+++ b/IOB-WIN-NEXT/IobConfiguration.cs
@@ -141,12 +141,13 @@ namespace IOB_WIN_NEXT
/// URL Base server applicativo
/// Comando x invio INPUT
/// Comando x invio LOG per FLUSSO generico
+ /// Comando x invio USER LOG
/// Comando x check alive
/// Comando x check abilitato
/// 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 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/")
{
if (!string.IsNullOrEmpty(MPIP_))
{
@@ -159,6 +160,7 @@ namespace IOB_WIN_NEXT
MPURL = MPURL_;
CMDBASE = CMDBASE_;
CMDFLOG = CMDFLOG_;
+ CMDULOG = CMDULOG_;
if (!string.IsNullOrEmpty(CMDBASE_))
{
CMDBASE_JSON = CMDBASE_.Replace("input", "evListJson");
@@ -167,6 +169,10 @@ namespace IOB_WIN_NEXT
{
CMDFLOG_JSON = CMDFLOG_.Replace("flog", "flogJson");
}
+ if (!string.IsNullOrEmpty(CMDULOG_))
+ {
+ CMDULOG_JSON = CMDULOG_.Replace("ulog", "ulogJson");
+ }
CMDALIVE = CMDALIVE_;
CMDENABLED = CMDENABLED_;
CMDREBO = CMDREBO_;
@@ -221,15 +227,25 @@ namespace IOB_WIN_NEXT
public string CMDENABLED { get; set; } = "";
///
- /// comando base x LOG di FLUSSSO generico - salvataggio parametri extra sistema MAPO
+ /// comando base x LOG di FLUSSO generico - salvataggio parametri extra sistema MAPO
///
public string CMDFLOG { get; set; } = "";
///
- /// comando base x LOG di FLUSSSO generico - salvataggio parametri extra sistema MAPO in modalità JSON payload come lista
+ /// comando base x LOG di FLUSSO generico - salvataggio parametri extra sistema MAPO in modalità JSON payload come lista
///
public string CMDFLOG_JSON { get; set; } = "";
+ ///
+ /// comando base x USER LOG - salvataggio parametri extra sistema MAPO
+ ///
+ public string CMDULOG { get; set; } = "";
+
+ ///
+ /// comando base x USER LOG - salvataggio parametri extra sistema MAPO in modalità JSON payload come lista
+ ///
+ public string CMDULOG_JSON { get; set; } = "";
+
///
/// comando base x comando reboot
///
diff --git a/IOB-WIN-NEXT/IobGeneric.cs b/IOB-WIN-NEXT/IobGeneric.cs
index 74b3a0d9..89702448 100644
--- a/IOB-WIN-NEXT/IobGeneric.cs
+++ b/IOB-WIN-NEXT/IobGeneric.cs
@@ -2230,7 +2230,7 @@ namespace IOB_WIN_NEXT
break;
}
}
- }
+ }
}
///
@@ -3974,76 +3974,105 @@ namespace IOB_WIN_NEXT
string answ = "";
if (elencoValori != null)
{
- if (tipoUrl == urlType.FLog)
+ string[] valori;
+ int counter = 0;
+ DateTime dtEve = DateTime.Now;
+ switch (tipoUrl)
{
- flogData currData = new flogData();
- flogJsonPayload fullObj = new flogJsonPayload();
- fullObj.fluxData = new List();
- string[] valori;
- int counter = 0;
- DateTime dtEve = DateTime.Now;
- // inizio processando ogni valore
- foreach (var item in elencoValori)
- {
- valori = qDecodeIN(item);
- //DateTime.TryParse(valori[0], out dtEve);
- CultureInfo provider = CultureInfo.InvariantCulture;
- DateTime.TryParseExact(valori[0], "yyyyMMddHHmmssfff", provider, DateTimeStyles.AssumeLocal, out dtEve);
- int.TryParse(valori[3], out counter);
- currData = new flogData()
+ case urlType.FLog:
+ flogData currFlData = new flogData();
+ flogJsonPayload fullFlObj = new flogJsonPayload();
+ fullFlObj.fluxData = new List();
+ // inizio processando ogni valore
+ foreach (var item in elencoValori)
{
- flux = valori[1],
- valore = valori[2],
- dtEve = dtEve,
- dtCurr = DateTime.Now,
- cnt = counter
- };
- fullObj.fluxData.Add(currData);
- }
- // conversione finale
- try
- {
- answ = JsonConvert.SerializeObject(fullObj);
- }
- catch (Exception exc)
- {
- lgError($"Errore in costruzione jsonPayload:{Environment.NewLine}{exc}");
- }
- }
- else
- {
- evData currData = new evData();
- evJsonPayload fullObj = new evJsonPayload();
- fullObj.eventList = new List();
- string[] valori;
- int counter = 0;
- DateTime dtEve = DateTime.Now;
- // inizio processando ogni valore
- foreach (var item in elencoValori)
- {
- valori = qDecodeIN(item);
- //DateTime.TryParse(valori[0], out dtEve);
- CultureInfo provider = CultureInfo.InvariantCulture;
- DateTime.TryParseExact(valori[0], "yyyyMMddHHmmssfff", provider, DateTimeStyles.AssumeLocal, out dtEve);
- int.TryParse(valori[2], out counter);
- currData = new evData()
+ valori = qDecodeIN(item);
+ CultureInfo provider = CultureInfo.InvariantCulture;
+ DateTime.TryParseExact(valori[0], "yyyyMMddHHmmssfff", provider, DateTimeStyles.AssumeLocal, out dtEve);
+ int.TryParse(valori[3], out counter);
+ currFlData = new flogData()
+ {
+ flux = valori[1],
+ valore = valori[2],
+ dtEve = dtEve,
+ dtCurr = DateTime.Now,
+ cnt = counter
+ };
+ fullFlObj.fluxData.Add(currFlData);
+ }
+ // conversione finale
+ try
{
- valore = valori[1],
- dtEve = dtEve,
- dtCurr = DateTime.Now,
- cnt = counter
- };
- fullObj.eventList.Add(currData);
- }
- // conversione finale
- try
- {
- answ = JsonConvert.SerializeObject(fullObj);
- }
- catch (Exception exc)
- {
- lgError($"Errore in costruzione jsonPayload:{Environment.NewLine}{exc}");
- }
+ answ = JsonConvert.SerializeObject(fullFlObj);
+ }
+ catch (Exception exc)
+ {
+ lgError($"FLog Errore in costruzione jsonPayload:{Environment.NewLine}{exc}");
+ }
+ break;
+ case urlType.SignIN:
+ evData currSigData = new evData();
+ evJsonPayload fullEvObj = new evJsonPayload();
+ fullEvObj.eventList = new List();
+ // inizio processando ogni valore
+ foreach (var item in elencoValori)
+ {
+ valori = qDecodeIN(item);
+ CultureInfo provider = CultureInfo.InvariantCulture;
+ DateTime.TryParseExact(valori[0], "yyyyMMddHHmmssfff", provider, DateTimeStyles.AssumeLocal, out dtEve);
+ int.TryParse(valori[2], out counter);
+ currSigData = new evData()
+ {
+ valore = valori[1],
+ dtEve = dtEve,
+ dtCurr = DateTime.Now,
+ cnt = counter
+ };
+ fullEvObj.eventList.Add(currSigData);
+ }
+ // conversione finale
+ try
+ {
+ answ = JsonConvert.SerializeObject(fullEvObj);
+ }
+ catch (Exception exc)
+ {
+ lgError($"SignIN Errore in costruzione jsonPayload:{Environment.NewLine}{exc}");
+ }
+ break;
+ case urlType.ULog:
+ ulogData currUlData = new ulogData();
+ ulogJsonPayload fullUlObj = new ulogJsonPayload();
+ fullUlObj.fluxData = new List();
+ // inizio processando ogni valore
+ foreach (var item in elencoValori)
+ {
+ valori = qDecodeIN(item);
+ CultureInfo provider = CultureInfo.InvariantCulture;
+ DateTime.TryParseExact(valori[0], "yyyyMMddHHmmssfff", provider, DateTimeStyles.AssumeLocal, out dtEve);
+ int.TryParse(valori[3], out counter);
+ currUlData = new ulogData()
+ {
+ flux = valori[1],
+ valore = valori[2],
+ dtEve = dtEve,
+ dtCurr = DateTime.Now,
+ cnt = counter
+ };
+ fullUlObj.fluxData.Add(currUlData);
+ }
+ // conversione finale
+ try
+ {
+ answ = JsonConvert.SerializeObject(fullUlObj);
+ }
+ catch (Exception exc)
+ {
+ lgError($"ULog Errore in costruzione jsonPayload:{Environment.NewLine}{exc}");
+ }
+ break;
+ default:
+ break;
}
}
return answ;
@@ -4964,6 +4993,10 @@ namespace IOB_WIN_NEXT
lastUrl = urlInput(queueVal);
break;
+ case urlType.ULog:
+ lastUrl = urlULog(queueVal);
+ break;
+
default:
lastUrl = "";
break;
@@ -5365,7 +5398,21 @@ namespace IOB_WIN_NEXT
public string urlDataBlock(urlType tipoUrl)
{
// verifico la parte di link "tipoComando"
- string tipoComando = tipoUrl == urlType.FLog ? cIobConf.serverData.CMDFLOG_JSON : cIobConf.serverData.CMDBASE_JSON;
+ string tipoComando = "";
+ switch (tipoUrl)
+ {
+ case urlType.FLog:
+ tipoComando = cIobConf.serverData.CMDFLOG_JSON;
+ break;
+ case urlType.SignIN:
+ tipoComando = cIobConf.serverData.CMDBASE_JSON;
+ break;
+ case urlType.ULog:
+ tipoComando = cIobConf.serverData.CMDULOG_JSON;
+ break;
+ default:
+ break;
+ }
// URL base x input
string answ = $@"{cIobConf.serverData.TRANSP}://{cIobConf.serverData.MPIP}{cIobConf.serverData.MPURL}{tipoComando}{cIobConf.codIOB}";
return answ;
@@ -5389,6 +5436,24 @@ namespace IOB_WIN_NEXT
return answ;
}
+ ///
+ /// Fornisce URL di tipo UserLog
+ ///
+ /// valore salvato in coda nel formato dtEve#flux#valore#counter
+ ///
+ public string urlULog(string queueVal)
+ {
+ // URL base x input
+ string answ = $@"{cIobConf.serverData.TRANSP}://{cIobConf.serverData.MPIP}{cIobConf.serverData.MPURL}{cIobConf.serverData.CMDULOG}";
+ // decodifica valore!
+ string[] valori = qDecodeIN(queueVal);
+ // aggiungo macchina e valore...
+ answ += string.Format(@"{0}?flux={1}&&valore={2}", cIobConf.codIOB, valori[1], valori[2]);
+ // aggiondo dataOra evento e corrente + contatore...
+ answ += string.Format(@"&&dtEve={0}&&dtCurr={1:yyyyMMddHHmmssfff}&&cnt={2}", valori[0], DateTime.Now, valori[3]);
+ return answ;
+ }
+
///
/// Fornisce URL INPUT per i parametri richiesti
///
diff --git a/IOB-WIN-NEXT/IobSimula.cs b/IOB-WIN-NEXT/IobSimula.cs
index f00aa48e..22d98a7e 100644
--- a/IOB-WIN-NEXT/IobSimula.cs
+++ b/IOB-WIN-NEXT/IobSimula.cs
@@ -537,10 +537,11 @@ namespace IOB_WIN_NEXT
{
// preparo record controlli... guasto se mi esce un secondo divisibile x 25
DateTime adesso = DateTime.Now;
- string note = $"SIM Nota automatica alle {DateTime.Now:yyyy-MM-dd HH:mm:ss}";
- string sVal = $"MatrOpr: {matrOpr} | nota: {note}";
+ bool esitoOk = adesso.Second % 25 == 0 ? false : true;
+ string note = esitoOk ? "" : $"SIM Nota automatica alle {DateTime.Now:yyyy-MM-dd HH:mm:ss}";
+ string sVal = $"MatrOpr: {matrOpr} | Esito: {esitoOk} | note: {note}";
// accodo x invio
- accodaUserLog(sVal, qEncodeULog("DI", $"{note}"));
+ accodaUserLog(sVal, qEncodeULog("DI", $"{esitoOk}|{note}"));
// decremento duration
simDich.duration--;
// controllo se sia scaduta la duration... in quel caso reset...
diff --git a/IOB-WIN-NEXT/packages.config b/IOB-WIN-NEXT/packages.config
index 0d438dba..e52e0c09 100644
--- a/IOB-WIN-NEXT/packages.config
+++ b/IOB-WIN-NEXT/packages.config
@@ -2,7 +2,7 @@
-
+