Ancora modifica x gestione refresh signalIN con evento...
This commit is contained in:
+21
-21
@@ -646,56 +646,56 @@ namespace IOB_WIN
|
||||
/// <summary>
|
||||
/// Effettua update form una volta ricevuto OBJ che contiene le varie innovazioni...
|
||||
/// </summary>
|
||||
/// <param name="newData"></param>
|
||||
public void updateFormDisplay(newDisplayData newData)
|
||||
/// <param name="currDispData"></param>
|
||||
public void updateFormDisplay(newDisplayData currDispData)
|
||||
{
|
||||
// ciclo x ogni oggetto x caricare le innovazioni...
|
||||
if (newData != null && newData.hasData)
|
||||
if (currDispData != null && currDispData.hasData)
|
||||
{
|
||||
// RealTime display
|
||||
if (!string.IsNullOrWhiteSpace(newData.newInData))
|
||||
if (!string.IsNullOrWhiteSpace(currDispData.newInData))
|
||||
{
|
||||
dataMonitor_0 = limitLine2show($"{newData.newInData}{Environment.NewLine}{dataMonitor_0}");
|
||||
dataMonitor_0 = limitLine2show($"{currDispData.newInData}{Environment.NewLine}{dataMonitor_0}");
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(newData.newSignalData))
|
||||
if (!string.IsNullOrWhiteSpace(currDispData.newSignalData))
|
||||
{
|
||||
dataMonitor_1 = limitLine2show($"{newData.newSignalData}{Environment.NewLine}{dataMonitor_1}");
|
||||
dataMonitor_1 = limitLine2show($"{currDispData.newSignalData}{Environment.NewLine}{dataMonitor_1}");
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(newData.newFLogData))
|
||||
if (!string.IsNullOrWhiteSpace(currDispData.newFLogData))
|
||||
{
|
||||
dataMonitor_3 = limitLine2show($"{newData.newFLogData}{Environment.NewLine}{dataMonitor_3}");
|
||||
dataMonitor_3 = limitLine2show($"{currDispData.newFLogData}{Environment.NewLine}{dataMonitor_3}");
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(newData.newUrlCallData))
|
||||
if (!string.IsNullOrWhiteSpace(currDispData.newUrlCallData))
|
||||
{
|
||||
dataMonitor_2 = limitLine2show($"{newData.newUrlCallData}{Environment.NewLine}{dataMonitor_2}");
|
||||
dataMonitor_2 = limitLine2show($"{currDispData.newUrlCallData}{Environment.NewLine}{dataMonitor_2}");
|
||||
}
|
||||
|
||||
// Bitmap lettura attuale
|
||||
if (newData.counter >= 0)
|
||||
if (currDispData.counter >= 0)
|
||||
{
|
||||
lblCounter.Text = newData.counter.ToString();
|
||||
lblCounter.Text = currDispData.counter.ToString();
|
||||
}
|
||||
// Bitmap lettura attuale
|
||||
if (!string.IsNullOrWhiteSpace(newData.currBitmap))
|
||||
if (!string.IsNullOrWhiteSpace(currDispData.currBitmap))
|
||||
{
|
||||
lblBitmap.Text = newData.currBitmap;
|
||||
lblBitmap.Text = currDispData.currBitmap;
|
||||
lblBitmap.Refresh();
|
||||
}
|
||||
// LiveLog
|
||||
if (!string.IsNullOrWhiteSpace(newData.newLiveLogData))
|
||||
if (!string.IsNullOrWhiteSpace(currDispData.newLiveLogData))
|
||||
{
|
||||
logWatcher = newData.newLiveLogData;
|
||||
logWatcher = currDispData.newLiveLogData;
|
||||
}
|
||||
// semafori
|
||||
if (newData.semOut != Semaforo.ND)
|
||||
if (currDispData.semOut != Semaforo.ND)
|
||||
{
|
||||
//aggiorno comunque!
|
||||
sOUT = newData.semOut;
|
||||
sOUT = currDispData.semOut;
|
||||
}
|
||||
if (newData.semIn != Semaforo.ND)
|
||||
if (currDispData.semIn != Semaforo.ND)
|
||||
{
|
||||
//aggiorno comunque!
|
||||
sIN = newData.semIn;
|
||||
sIN = currDispData.semIn;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+31
-23
@@ -166,10 +166,12 @@ namespace IOB_WIN
|
||||
/// Coda valori simulazione deterministica...
|
||||
/// </summary>
|
||||
public ConcurrentQueue<int> QueueSIM = new ConcurrentQueue<int>();
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Coda valori letti x DEBUG...
|
||||
/// </summary>
|
||||
public ConcurrentQueue<int> QueueDebug = new ConcurrentQueue<int>();
|
||||
public ConcurrentQueue<int> QueueDebug = new ConcurrentQueue<int>();
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// valore booleano di check se sia in fase di COMUNICAZIONE ATTIVA con il PLC/NC
|
||||
@@ -2610,23 +2612,28 @@ namespace IOB_WIN
|
||||
/// </summary>
|
||||
private void processAllMemory()
|
||||
{
|
||||
// init obj display
|
||||
newDisplayData currDispData = new newDisplayData();
|
||||
// in primis SALVO valori previous/precedenti
|
||||
B_previous = B_output;
|
||||
// poi faccio lettura NUOVI valori
|
||||
readAllData();
|
||||
readAllData(ref currDispData);
|
||||
// eseguo il filtering dei valori (per i bit "blinking")
|
||||
filterData();
|
||||
// effettuo confronto valori vecchi/nuovi... SE trovo variazione OPPURE se è passato + di un timeout di controllo...
|
||||
if (B_output != B_previous)
|
||||
{
|
||||
accodaSigIN();
|
||||
accodaSigIN(ref currDispData);
|
||||
}
|
||||
raiseRefresh(currDispData);
|
||||
}
|
||||
/// <summary>
|
||||
/// Processa gestione memoria x invio dati QUANDO IOB è disconnesso da CNC...
|
||||
/// </summary>
|
||||
public void processMemoryDiscon()
|
||||
{
|
||||
// init obj display
|
||||
newDisplayData currDispData = new newDisplayData();
|
||||
// controllo contatore invio "keepalive"... invio solo a scadenza
|
||||
if (DateTime.Now.Subtract(lastDisconnCheck).TotalSeconds > utils.CRI("disconMaxSec"))
|
||||
{
|
||||
@@ -2634,10 +2641,11 @@ namespace IOB_WIN
|
||||
B_input = 0;
|
||||
B_output = 0;
|
||||
B_previous = 0;
|
||||
accodaSigIN();
|
||||
accodaSigIN(ref currDispData);
|
||||
// update controllo
|
||||
lastDisconnCheck = DateTime.Now;
|
||||
}
|
||||
raiseRefresh(currDispData);
|
||||
}
|
||||
/// <summary>
|
||||
/// Esegue filtraggio dati x bit blinking!!!
|
||||
@@ -2709,11 +2717,14 @@ namespace IOB_WIN
|
||||
|
||||
/// <summary>
|
||||
/// Effettua lettura dati
|
||||
/// <paramref name="currDispData">Parametri da aggiornare x display in form</paramref>
|
||||
/// </summary>
|
||||
public virtual void readAllData()
|
||||
public virtual void readAllData(ref newDisplayData currDispData)
|
||||
{
|
||||
// init obj display
|
||||
newDisplayData currDispData = new newDisplayData();
|
||||
if (currDispData == null)
|
||||
{
|
||||
currDispData = new newDisplayData();
|
||||
}
|
||||
try
|
||||
{
|
||||
if (DemoIn)
|
||||
@@ -3213,11 +3224,12 @@ namespace IOB_WIN
|
||||
}
|
||||
/// <summary>
|
||||
/// Accumula in coda i valori Signal IN e logga...
|
||||
/// <paramref name="currDispData">Parametri da aggiornare x display in form</paramref>
|
||||
/// </summary>
|
||||
public void accodaSigIN()
|
||||
public void accodaSigIN(ref newDisplayData currDispData)
|
||||
{
|
||||
// mostro dati variati letti...
|
||||
displayInData();
|
||||
displayInData(ref currDispData);
|
||||
// --> accodo (valore già formattato)!
|
||||
QueueIN.Enqueue(qEncodeIN);
|
||||
// loggo!
|
||||
@@ -3398,19 +3410,22 @@ namespace IOB_WIN
|
||||
string newString = string.Format("{0:X}", B_input);
|
||||
currDispData.newInData = newString;
|
||||
#if false
|
||||
accodaRawData(newString);
|
||||
// salvo coda debug...
|
||||
QueueDebug.Enqueue(B_input);
|
||||
#endif
|
||||
QueueDebug.Enqueue(B_input);
|
||||
}
|
||||
/// <summary>
|
||||
/// Update visualizzaizone BIT in ingresso
|
||||
/// <paramref name="currDispData">Parametri da aggiornare x display in form</paramref>
|
||||
/// </summary>
|
||||
public void displayInData()
|
||||
public void displayInData(ref newDisplayData currDispData)
|
||||
{
|
||||
// mostro update...
|
||||
string newString = string.Format("{0:0000}|{1}", counterSigIN, utils.IntToBinStr(B_output, 8));
|
||||
accodaSignaInlData(newString);
|
||||
currDispData.newSignalData = newString;
|
||||
#if false
|
||||
accodaSignaInlData(newString);
|
||||
#endif
|
||||
}
|
||||
/// <summary>
|
||||
/// Mostra cosa ha/avrebbe inviato
|
||||
@@ -3428,15 +3443,7 @@ namespace IOB_WIN
|
||||
// mostro update...
|
||||
accodaOtherData(newData);
|
||||
}
|
||||
/// <summary>
|
||||
/// Accoda (visualizzando in cima allo stack) la nuova stringa di output per area OTHER DATA
|
||||
/// </summary>
|
||||
/// <param name="newLine"></param>
|
||||
public void accodaRawData(string newLine)
|
||||
{
|
||||
// inserisco in cima allo stack, trimmo e aggiorno display
|
||||
parentForm.dataMonitor_0 = limitLine2show(string.Format("{0}{1}{2}", newLine, Environment.NewLine, parentForm.dataMonitor_0));
|
||||
}
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Accoda (visualizzando in cima allo stack) la nuova stringa di output per area OTHER DATA
|
||||
/// </summary>
|
||||
@@ -3445,7 +3452,8 @@ namespace IOB_WIN
|
||||
{
|
||||
// inserisco in cima allo stack, trimmo e aggiorno display
|
||||
parentForm.dataMonitor_1 = limitLine2show(string.Format("{0}{1}{2}", newLine, Environment.NewLine, parentForm.dataMonitor_1));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
/// <summary>
|
||||
/// Accoda (visualizzando in cima allo stack) la nuova stringa di output per area OTHER DATA
|
||||
/// </summary>
|
||||
|
||||
+4
-1
@@ -66,6 +66,8 @@ namespace IOB_WIN
|
||||
/// </summary>
|
||||
private void reloadAdapterConf()
|
||||
{
|
||||
// init obj display
|
||||
newDisplayData currDispData = new newDisplayData();
|
||||
lgInfo("BEGIN reloadAdapterConf");
|
||||
// inizializzo LUT decodifica
|
||||
string jsonConf = getOptPar("LUT_CONF");
|
||||
@@ -84,7 +86,7 @@ namespace IOB_WIN
|
||||
// imposto a zero la bitmap x riavvio!
|
||||
B_input = 0;
|
||||
// FORZO invio dati...
|
||||
accodaSigIN();
|
||||
accodaSigIN(ref currDispData);
|
||||
// loggo!
|
||||
lgInfo($"init input bitmap to zero: {B_input}");
|
||||
}
|
||||
@@ -95,6 +97,7 @@ namespace IOB_WIN
|
||||
}
|
||||
}
|
||||
lgInfo("DONE reloadAdapterConf");
|
||||
raiseRefresh(currDispData);
|
||||
}
|
||||
|
||||
#region Metodi specifici (da verificare/completare in implementazione)
|
||||
|
||||
Reference in New Issue
Block a user