diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs
index 2be68f1..16dbe2f 100644
--- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs
+++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs
@@ -27,6 +27,11 @@ namespace MTC_Adapter
///
public otherData[] mapIOT_String;
+ ///
+ /// Oggetto elenco allarmi SOLO CNC (OCCHIO codice numerico = INDICE!!!)
+ ///
+ public allarme[] elencoAllarmiCNC;
+
///
/// dimensione buffer BYTE (da file map)
///
@@ -54,6 +59,7 @@ namespace MTC_Adapter
loadWordListMap();
loadDWordListMap();
loadStringListMap();
+ loadAllarmiCNC();
}
///
/// Carico conf vettore dati STRING
@@ -86,6 +92,50 @@ namespace MTC_Adapter
loadConfFile(ref mapIOT_Byte, filePath("IOTByteFilePath"), 1, ref numByte);
}
///
+ /// caricamento allarmi da file (CON RIEMPIMENTO MANCANTI!!!!)
+ ///
+ protected void loadAllarmiCNC()
+ {
+ if (utils.CRB("verbose")) lg.Info("Inizio caricamento vettore allarmi");
+ int totRighe = 0;
+ string fileName = string.Format(@"{0}\{1}", utils.confDir, utils.CRS("AlarmListCNC"));
+ string linea;
+ try
+ {
+ string lastLine = File.ReadLines(fileName).Last();
+ //totRighe = Convert.ToInt32(lastLine.Substring(0, lastLine.IndexOf('|')));
+ totRighe = startNumb(lastLine, utils.CRC("testCharSep"));
+ }
+ catch
+ {
+ totRighe = File.ReadLines(fileName).Count();
+ }
+ // creo un vettore della dimensione corretta... PRENDO IL MASSIMO dei valori...
+ elencoAllarmi = new allarme[totRighe];
+ // ora creo un vettore di allarmi VUOTI...
+ for (int i = 1; i <= totRighe; i++)
+ {
+ elencoAllarmi[i - 1] = new allarme(i.ToString(), "CNC", "WARNING", "");
+ }
+ // carica da file...
+ System.IO.StreamReader file = new System.IO.StreamReader(fileName);
+ // leggo 1 linea alla volta...
+ int numRiga = 0;
+ while ((linea = file.ReadLine()) != null)
+ {
+ // SE non è un commento...
+ if (linea.Substring(0, 1) != "#")
+ {
+ // recupero numRiga da prima parte linea...
+ numRiga = startNumb(linea, utils.CRC("testCharSep"));
+ elencoAllarmi[numRiga - 1] = decodeAlarmLine(linea, utils.CRC("testCharSep"));
+ }
+ }
+ // chiudo file
+ file.Close();
+ if (utils.CRB("verbose")) lg.Info(string.Format("Fine caricamento vettore allarmi CNC: {0} allarmi caricati!", numRiga));
+ }
+ ///
/// Restituisce path completo file da chaive configurazione
///
/// chaive conf x file richiesto
@@ -503,13 +553,30 @@ namespace MTC_Adapter
lg.Error("Errore connessione mancante in getIotMem_Word");
}
+ int numAlarmCNC = 0;
int numero = 0;
int byteNum = 0;
// Processing area WORD
for (int i = 0; i < mapIOT_Word.Length; i++)
{
int.TryParse(mapIOT_Word[i].memAddr, out byteNum);
- if (mapIOT_Word[i].varName.StartsWith("IOT_S_MD_"))
+
+ if (mapIOT_Word[i].varName == "IOT_CN_MSG")
+ {
+ // leggo codice allarme...
+ numAlarmCNC = ncDevice.PLC_MemoryAreaIOT_Word[byteNum];
+ // controllo, SE è 0 --> normal/niente, altrimenti è l'allarme indicato!!!
+ if (numAlarmCNC == 0)
+ {
+ mAlarmCNC.Normal();
+ }
+ else
+ {
+ allarme currAllarm;
+ //elencoAllarmiCNC
+ }
+ }
+ else if (mapIOT_Word[i].varName.StartsWith("IOT_S_MD_"))
{
try
{