Files
cms_thermo_active/Thermo.Active.Database/Controllers/RedisController.cs
T
Samuele E. Locatelli e3df06bb08 Fix COnnect startup
2020-10-20 19:03:32 +02:00

149 lines
6.3 KiB
C#

using System.Collections.Generic;
using Thermo.Active.Database.Redis;
using Thermo.Active.Model.DTOModels;
namespace Thermo.Active.Database.Controllers
{
public static class RedisController
{
private const string redisNotificationAddress = "Machine:ProductionProcesses:%NN%:Notification";
private const string redisProdNameAddress = "Machine:ProductionProcesses:%NN%:Programs:01:Name";
private const string redisRepsTargetAddress = "Machine:ProductionProcesses:%NN%:Programs:01:RepsTarget";
private const string redisRepsDoneAddress = "Machine:ProductionProcesses:%NN%:Programs:01:RepsDone";
private const string redisAlmCurr = "AdpConf:Plc:Condition:Curr";
private const string redisAlmIt = "AdpConf:Plc:Condition:It";
private const string redisAlmEn = "AdpConf:Plc:Condition:En";
private const string currentUserPath = "Machine:Hmi:User";
private const string machineMessagePath = "Machine:Messages";
private const string machineStatusPath = "Machine:Status";
private const string machinePowerPath = "Machine:Power";
private const string machineAlarmPath = "Machine:Alarm";
private const string machineEmergencyPath = "Machine:Emergency";
private const string alarmsPath = "Machine:Plc:Condition";
private const string processStatusPath = "Machine:Cnc:CncProcesses:%NN%:Status";
private const string processModePath = "Machine:Cnc:CncProcesses:%NN%:Mode";
private const string datamodelPath = "TODO";
public static void WriteProductionNotification(uint ProductionProcess, string Notification)
{
string redisHash = redUtil.man.redHash(redisNotificationAddress).Replace("%NN%", ProductionProcess.ToString("00"));
redUtil.man.setRSV(redisHash, Notification);
}
public static void WriteProductionName(uint ProductionProcess, string Name)
{
string redisHash = redUtil.man.redHash(redisProdNameAddress).Replace("%NN%", ProductionProcess.ToString("00"));
redUtil.man.setRSV(redisHash, Name);
}
public static void WriteProductionRepsTarget(uint ProductionProcess, string RepsTarget)
{
string redisHash = redUtil.man.redHash(redisRepsTargetAddress).Replace("%NN%", ProductionProcess.ToString("00"));
redUtil.man.setRSV(redisHash, RepsTarget);
}
public static void WriteProductionRepsDone(uint ProductionProcess, string RepsDone)
{
string redisHash = redUtil.man.redHash(redisRepsDoneAddress).Replace("%NN%", ProductionProcess.ToString("00"));
redUtil.man.setRSV(redisHash, RepsDone);
}
public static bool WriteAlarmsConfigCurr(Dictionary<string, string> alarms)
{
string redisHash = redUtil.man.redHash(redisAlmCurr);
return redUtil.man.redSaveHashDict(redisHash, alarms);
}
public static bool WriteAlarmsConfigEn(Dictionary<string, string> alarms)
{
string redisHash = redUtil.man.redHash(redisAlmEn);
return redUtil.man.redSaveHashDict(redisHash, alarms);
}
public static bool WriteDatamodel(string datamodel)
{
string redisHash = redUtil.man.redHash(datamodelPath);
return redUtil.man.setRSV(redisHash, datamodel.ToString());
}
public static bool WriteDefaultEntry(Dictionary<string, string> entries)
{
foreach (KeyValuePair<string,string> entry in entries)
{
if (!redUtil.man.setRSV(redUtil.man.redHash(entry.Key), entry.Value))
return false;
}
return true;
}
public static bool WriteAlarmsConfigIt(Dictionary<string, string> alarms)
{
string redisHash = redUtil.man.redHash(redisAlmIt);
return redUtil.man.redSaveHashDict(redisHash, alarms);
}
public static bool WriteCurrentUser(string User)
{
string redisHash = redUtil.man.redHash(currentUserPath);
return redUtil.man.setRSV(redisHash, User.ToString());
}
public static bool SendMessage(DTOMessageModel message)
{
string redisHash = redUtil.man.redHash(machineMessagePath);
return redUtil.man.setJson(redisHash, message);
}
public static bool WriteCurrentMachineStatus(string status)
{
string redisHash = redUtil.man.redHash(machineStatusPath);
return redUtil.man.setRSV(redisHash, status.ToString());
}
public static bool WriteCurrentProcessStatus(uint ProductionProcess, string status)
{
string redisHash = redUtil.man.redHash(processStatusPath).Replace("%NN%", ProductionProcess.ToString("00"));
return redUtil.man.setRSV(redisHash, status.ToString());
}
public static bool WriteCurrentProcessMode(uint ProductionProcess, string status)
{
string redisHash = redUtil.man.redHash(processModePath).Replace("%NN%", ProductionProcess.ToString("00"));
return redUtil.man.setRSV(redisHash, status.ToString());
}
public static bool WriteCurrentMachinePowerPath(bool status)
{
string redisHash = redUtil.man.redHash(machinePowerPath);
if(status)
return redUtil.man.setRSV(redisHash, "true");
else
return redUtil.man.setRSV(redisHash, "false");
}
public static bool WriteCurrentMachineAlarmPath(bool status)
{
string redisHash = redUtil.man.redHash(machineAlarmPath);
if (status)
return redUtil.man.setRSV(redisHash, "true");
else
return redUtil.man.setRSV(redisHash, "false");
}
public static bool WriteCurrentMachineEmergencyPath(bool status)
{
string redisHash = redUtil.man.redHash(machineEmergencyPath);
if (status)
return redUtil.man.setRSV(redisHash, "true");
else
return redUtil.man.setRSV(redisHash, "false");
}
public static bool WriteCurrentAlarms(string alarms)
{
string redisHash = redUtil.man.redHash(alarmsPath);
return redUtil.man.setRSV(redisHash, alarms);
}
}
}