diff --git a/IOB-WIN/App.config b/IOB-WIN/App.config index 6f4897a5..3eb5d071 100644 --- a/IOB-WIN/App.config +++ b/IOB-WIN/App.config @@ -11,7 +11,7 @@ - + @@ -21,11 +21,12 @@ + - + diff --git a/IOB-WIN/IobFanuc.cs b/IOB-WIN/IobFanuc.cs index 6f96b407..81c8e4da 100644 --- a/IOB-WIN/IobFanuc.cs +++ b/IOB-WIN/IobFanuc.cs @@ -161,6 +161,22 @@ namespace IOB_WIN { lg.Fatal(string.Format("Errore nella connessione all'adapter FANUC: {0}{1}{2}", szStatusConnection, Environment.NewLine, exc)); connectionOk = false; + /* + * rifare meglio: manca + * - gestione contatore corretto (conda signalIN) + * - gestione invio + * - refresh vari display + * - gestione LAST BYTE in modo che quando va a zero NON continua ad inviare se non una volta ogni minuto (implementare...) ora invia ogni 5 sec... + */ + // resetto raw input!!! + RawInput = new byte[6]; + // invio POWEROFF... è ZERO valore IN --> accodo (valore già formattato)! + QueueIN.Enqueue(qEncodeIN); + // invio + svuotaCodaSignIN(); + // update display + displayInData(); + // processo semafori ed invio... lg.Info(string.Format("Segnalo Adapter NON running, pausa di {0} msec prima di ulteriori tentativi di riconnessione", utils.CRI("waitRecMSec"))); } } diff --git a/IOB-WIN/IobGeneric.cs b/IOB-WIN/IobGeneric.cs index 5d07b1b5..f5cd5982 100644 --- a/IOB-WIN/IobGeneric.cs +++ b/IOB-WIN/IobGeneric.cs @@ -22,6 +22,10 @@ namespace IOB_WIN /// public bool doMemDump; /// + /// Indica se sia richiesto campionamento memoria + /// + public bool doSampleMemory; + /// /// Evento Iob ha subito un refresh /// public event EventHandler eh_refreshed; @@ -299,6 +303,7 @@ namespace IOB_WIN nSendOut = 0; currMode = 0; doMemDump = utils.CRB("doMemDump"); + doSampleMemory = utils.CRB("doSampleMemory"); // svuoto code... SE NON SIM... if (!DemoIn) { @@ -1187,7 +1192,7 @@ namespace IOB_WIN /// /// Processo la coda SignalIN... /// - private void svuotaCodaSignIN() + public void svuotaCodaSignIN() { // verifico SE la coda abbia dei valori... if (QueueIN.Count > 0) diff --git a/IOB-WIN/MainForm.cs b/IOB-WIN/MainForm.cs index dadd7db0..4ba39501 100644 --- a/IOB-WIN/MainForm.cs +++ b/IOB-WIN/MainForm.cs @@ -34,6 +34,10 @@ namespace IOB_WIN /// protected int verySlowCount; /// + /// Contatore campionamento memoria + /// + protected int sampleMemCount; + /// /// timer base in avvio /// protected int startTimerMs = 250; @@ -441,6 +445,17 @@ namespace IOB_WIN } } + private void checkSampleMem() + { + // decremento contatore... + sampleMemCount--; + if (sampleMemCount <= 0) + { + sampleMemCount = utils.CRI("sampleMemCount"); + // avvio fase raccolta dati e invio con adapter + iobObj.saveMemDump(); + } + } private void refreshFormData() { // aggiorno visualizzazioni varie in form... @@ -455,13 +470,18 @@ namespace IOB_WIN advProgBar(); if (iobObj.connectionOk) { - // se richiesto faccio memory DUMP! + // se richiesto faccio memory DUMP INIZIALE! if (iobObj.doMemDump) { iobObj.saveMemDump(); // fatto! non ripeto... iobObj.doMemDump = false; } + // controllo se sia abilitato sampleDump della meoria (periodico) + if (iobObj.doSampleMemory) + { + checkSampleMem(); + } // check esecuzione FastTask checkFastTask(); // check esecuzione NormTask