b86a6021bf
- Adapter - Decoder - UI
90 lines
2.8 KiB
C#
90 lines
2.8 KiB
C#
using NLog;
|
|
using NLua;
|
|
|
|
namespace MP.MONO.DECODER
|
|
{
|
|
public class AlarmsManager
|
|
{
|
|
#region Public Fields
|
|
|
|
public static string alarmStatus = "";
|
|
public static bool valueChanged = false;
|
|
|
|
#endregion Public Fields
|
|
|
|
#region Public Constructors
|
|
|
|
public AlarmsManager()
|
|
{
|
|
// preparo variabile x avvisare script che il modo è da NLua
|
|
state["callMode"] = "NLua";
|
|
state["lastVal"] = 0;
|
|
state["currVal"] = 0;
|
|
|
|
luaPath = Path.Combine(Directory.GetCurrentDirectory(), "lua", "AlarmDecoder.lua");
|
|
state.DoFile(luaPath);
|
|
|
|
Log.Info("AlarmsManager OK");
|
|
Console.WriteLine("AlarmsManager OK");
|
|
}
|
|
|
|
#endregion Public Constructors
|
|
|
|
#region Public Methods
|
|
|
|
/// <summary>
|
|
/// Funzione chiamata LUA x calcolo status allarmi
|
|
/// </summary>
|
|
/// <param name="prefix"></param>
|
|
/// <param name="alarmList"></param>
|
|
/// <param name="muteMask"></param>
|
|
/// <param name="disableMask"></param>
|
|
/// <param name="lastVal"></param>
|
|
/// <param name="currVal"></param>
|
|
/// <returns></returns>
|
|
public static List<string> processData(string prefix, List<string> alarmList, uint muteMask, uint disableMask, uint lastVal, ref uint currVal)
|
|
{
|
|
state["prefix"] = prefix;
|
|
state["alarmList"] = alarmList;
|
|
state["numAlarm"] = alarmList.Count;
|
|
state["muteMask"] = muteMask;
|
|
state["disableMask"] = disableMask;
|
|
|
|
List<string> answ = new List<string>();
|
|
// invio dati aggiornati a LUA
|
|
state["lastVal"] = lastVal;
|
|
state["currVal"] = currVal;
|
|
|
|
// eseguo calcolo
|
|
//state.DoFile(luaPath);
|
|
state.DoString(" doProcess() ");
|
|
alarmStatus = state.GetString("alarmStatus");
|
|
// recupero NUOVO valore (filtrato) attuale da salvare
|
|
currVal = (uint)state.GetNumber("lastVal");
|
|
bool.TryParse(state.GetString("valueChanged"), out valueChanged);
|
|
if (valueChanged)
|
|
{
|
|
Log.Trace($"Changed: {valueChanged}");
|
|
Log.Trace(alarmStatus);
|
|
|
|
LuaTable tabActive = state.GetTable("alarmListActive");
|
|
List<string> activeList = new List<string>();
|
|
foreach (var allarme in tabActive.Values)
|
|
{
|
|
answ.Add($"{allarme}");
|
|
}
|
|
}
|
|
return answ;
|
|
}
|
|
|
|
#endregion Public Methods
|
|
|
|
#region Protected Fields
|
|
|
|
protected static Logger Log = LogManager.GetCurrentClassLogger();
|
|
protected static string luaPath = "";
|
|
protected static Lua state = new Lua();
|
|
|
|
#endregion Protected Fields
|
|
}
|
|
} |