Continuo integrazione nuova coda ULog
This commit is contained in:
@@ -58,6 +58,8 @@ SIM_RC=100|1
|
||||
SIM_RS=200|1
|
||||
; indica simulazione dichiarazioni (note) utente
|
||||
SIM_DICH=300|1
|
||||
; indica matricola opr simulata
|
||||
SIM_MATR_OPR=1
|
||||
|
||||
; gestione DynData simulati
|
||||
ENABLE_DYN_DATA=TRUE
|
||||
|
||||
@@ -1069,6 +1069,11 @@ namespace IOB_WIN_NEXT
|
||||
/// </summary>
|
||||
public int counterFLog { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Contatore x invio dati UserLog
|
||||
/// </summary>
|
||||
public int counterULog { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Contatore x invio dati SignalIN
|
||||
/// </summary>
|
||||
@@ -3284,6 +3289,28 @@ namespace IOB_WIN_NEXT
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Accumula in coda i valori USER LOG e logga...
|
||||
/// </summary>
|
||||
/// <param name="val">VALORE RAW (x display)</param>
|
||||
/// <param name="encodedVal">VALORE già processato con qEncodeULog(...)</param>
|
||||
public void accodaUserLog(string val, string encodedVal)
|
||||
{
|
||||
// mostro dati variati letti...
|
||||
displayOtherData(val);
|
||||
// accodo IN PRIMIS al FluxLog --> accodo (valore già formattato)!
|
||||
QueueULog.Enqueue(encodedVal);
|
||||
|
||||
// loggo!
|
||||
lgInfo(string.Format("[QUEUE-USER-LOG] {0}", encodedVal));
|
||||
counterULog++;
|
||||
if (counterULog > 9999)
|
||||
{
|
||||
counterFLog = 0;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Accumula in coda i valori Flux Log e logga...
|
||||
/// </summary>
|
||||
@@ -4602,6 +4629,22 @@ namespace IOB_WIN_NEXT
|
||||
{ }
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Fornisce il valore di UserLog e valore in formato valido x messa in coda nel formato dtEve#flux#value#cont
|
||||
/// <paramref name="flusso">Flusso dati (RC/RS/DI)</paramref>
|
||||
/// <paramref name="valore">Valore da inviare</paramref>
|
||||
/// </summary>
|
||||
public string qEncodeULog(string flusso, string valore)
|
||||
{
|
||||
string answ = "";
|
||||
try
|
||||
{
|
||||
answ = $"{DateTime.Now:yyyyMMddHHmmssfff}#{flusso}#{valore}#{counterULog}";
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fornisce il valore di flusso e valore in formato valido x messa in coda nel formato dtEve#flux#value#cont
|
||||
@@ -5095,6 +5138,33 @@ namespace IOB_WIN_NEXT
|
||||
sendToMoonPro(urlType.FLog, currVal);
|
||||
}
|
||||
}
|
||||
|
||||
// svuoto coda ULog
|
||||
while (QueueULog.Count > 0)
|
||||
{
|
||||
List<string> listaValori = new List<string>();
|
||||
// se ho + di maxJsonData elementi --> invio un set di dati alla volta
|
||||
if (QueueULog.Count > maxJsonData)
|
||||
{
|
||||
string currVal = "";
|
||||
// prendoi primi maxJsonDataValori
|
||||
for (int i = 0; i < maxJsonData; i++)
|
||||
{
|
||||
QueueULog.TryDequeue(out currVal);
|
||||
listaValori.Add(currVal);
|
||||
}
|
||||
sendDataBlock(urlType.ULog, listaValori);
|
||||
}
|
||||
else
|
||||
{
|
||||
// invio in blocco
|
||||
listaValori = QueueULog.ToList();
|
||||
// invio
|
||||
sendDataBlock(urlType.ULog, listaValori);
|
||||
// svuoto!
|
||||
QueueULog = new ConcurrentQueue<string>();
|
||||
}
|
||||
}
|
||||
}
|
||||
parentForm.displayTaskAndLog("[STOP] Stopping adapter...");
|
||||
adpTryRestart = false;
|
||||
|
||||
@@ -60,7 +60,10 @@ namespace IOB_WIN_NEXT
|
||||
/// </summary>
|
||||
protected simPar simDich;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Matricola OPR simulato
|
||||
/// </summary>
|
||||
protected int matrOpr = 1;
|
||||
|
||||
protected bool disableSimStatus = false;
|
||||
|
||||
@@ -167,6 +170,7 @@ namespace IOB_WIN_NEXT
|
||||
simRC = setupSimPar("SIM_RC");
|
||||
simRS = setupSimPar("SIM_RS");
|
||||
simDich = setupSimPar("SIM_DICH");
|
||||
int.TryParse(getOptPar("SIM_MATR_OPR"), out matrOpr);
|
||||
}
|
||||
setParamPlc();
|
||||
// ricarico da server i dati dei pezzi fatti...
|
||||
@@ -500,7 +504,10 @@ namespace IOB_WIN_NEXT
|
||||
// preparo record controlli... guasto se mi esce un secondo divisibile x 25
|
||||
DateTime adesso = DateTime.Now;
|
||||
bool esitoOk = adesso.Second % 25 == 0 ? false : true;
|
||||
|
||||
string note = esitoOk ? "" : $"SIM Controllo fallito alle {DateTime.Now:yyyy-MM-dd HH:mm:ss}";
|
||||
string sVal = $"MatrOpr: {matrOpr} | Esito: {esitoOk} | note: {note}";
|
||||
// accodo x invio
|
||||
accodaUserLog(sVal, qEncodeULog("RC", $"{esitoOk}|{note}"));
|
||||
// decremento duration
|
||||
simRC.duration--;
|
||||
// controllo se sia scaduta la duration... in quel caso reset...
|
||||
@@ -509,6 +516,39 @@ namespace IOB_WIN_NEXT
|
||||
simRC = setupSimPar("SIM_RC");
|
||||
}
|
||||
}
|
||||
if (simRS.wait <= 0)
|
||||
{
|
||||
// preparo record controlli... guasto se mi esce un secondo divisibile x 25
|
||||
DateTime adesso = DateTime.Now;
|
||||
int causale = adesso.Second % 5;
|
||||
string note = $"SIM Scarto alle {DateTime.Now:yyyy-MM-dd HH:mm:ss} | causale: {causale}";
|
||||
string sVal = $"MatrOpr: {matrOpr} | Causale: {causale} | note: {note}";
|
||||
// accodo x invio
|
||||
accodaUserLog(sVal, qEncodeULog("RS", $"{causale:00}|{note}"));
|
||||
// decremento duration
|
||||
simRS.duration--;
|
||||
// controllo se sia scaduta la duration... in quel caso reset...
|
||||
if (simRS.duration <= 0)
|
||||
{
|
||||
simRS = setupSimPar("SIM_RS");
|
||||
}
|
||||
}
|
||||
if (simDich.wait <= 0)
|
||||
{
|
||||
// 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}";
|
||||
// accodo x invio
|
||||
accodaUserLog(sVal, qEncodeULog("DI", $"{note}"));
|
||||
// decremento duration
|
||||
simDich.duration--;
|
||||
// controllo se sia scaduta la duration... in quel caso reset...
|
||||
if (simDich.duration <= 0)
|
||||
{
|
||||
simDich = setupSimPar("SIM_DICH");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// init obj display
|
||||
|
||||
Reference in New Issue
Block a user