Files
2020-09-12 16:11:43 +02:00

141 lines
6.1 KiB
C#

using Step.Database.Redis;
using Step.Model.DTOModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Step.Database.Controllers
{
public static class RedisController
{
private const string redisNotificationAddress = "Machine:ProductionProcesses:%NN%:Notification";
private const string redisProdNameAddress = "Machine:ProductionProcesses:%NN%: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 startTimestamp = "Machine:ProductionProcesses:%NN%:Programs:01:StartTime";
private const string endTimestamp = "Machine:ProductionProcesses:%NN%:Programs:01:EndTime";
private const string notification = "Machine:ProductionProcesses:%NN%:Notification";
private const string partIdPath = "Machine:ProductionProcesses:%NN%:Programs:01:PartId";
private const string maintenanceTitlePath = "Machine:Maintenences:%NN%:Title";
private const string maintenanceCompletionPath = "Machine:Maintenences:%NN%:Completion";
private const string maintenanceDescriptionPath = "Machine:Maintenences:%NN%:Description";
private const string currentUserPath = "Machine:Hmi:User";
private const string toolNamePath = "Machine:OperatingGroups:%NN%:ToolName";
private const string machineMessagePath = "Machine:Messages";
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 WriteAlarmsConfigIt(Dictionary<string, string> alarms)
{
string redisHash = redUtil.man.redHash(redisAlmIt);
return redUtil.man.redSaveHashDict(redisHash, alarms);
}
public static bool WriteStartProgram(uint process)
{
string redisHash = redUtil.man.redHash(startTimestamp).Replace("%NN%", process.ToString("00"));
return redUtil.man.setRSV(redisHash, DateTime.Now.ToString());
}
public static bool WriteEndProgram(uint process)
{
string redisHash = redUtil.man.redHash(endTimestamp).Replace("%NN%", process.ToString("00"));
return redUtil.man.setRSV(redisHash, DateTime.Now.ToString());
}
public static bool WriteNotification(uint process, string textNotification)
{
string redisHash = redUtil.man.redHash(notification).Replace("%NN%", process.ToString("00"));
return redUtil.man.setRSV(redisHash, textNotification);
}
public static bool WritePartId(uint process, string partId)
{
string redisHash = redUtil.man.redHash(partIdPath).Replace("%NN%", process.ToString("00"));
return redUtil.man.setRSV(redisHash, partId);
}
public static bool WriteMaintenance(int maintenanceId, string maintenanceTitle, int maintenanceCompleition, string maintenanceDescription)
{
string redisHash = redUtil.man.redHash(maintenanceTitlePath).Replace("%NN%", maintenanceId.ToString());
var status = redUtil.man.setRSV(redisHash, maintenanceTitle);
if (!status)
return status;
redisHash = redUtil.man.redHash(maintenanceCompletionPath).Replace("%NN%", maintenanceId.ToString());
status = redUtil.man.setRSV(redisHash, maintenanceCompleition.ToString());
if (!status)
return status;
redisHash = redUtil.man.redHash(maintenanceDescriptionPath).Replace("%NN%", maintenanceId.ToString());
return redUtil.man.setRSV(redisHash, maintenanceDescription);
}
public static bool WriteCurrentUser(int userId)
{
string redisHash = redUtil.man.redHash(currentUserPath);
return redUtil.man.setRSV(redisHash, userId.ToString());
}
public static bool WriteToolName(int spindleId, string toolName)
{
string redisHash = redUtil.man.redHash(toolNamePath).Replace("%NN%", spindleId.ToString("00"));
return redUtil.man.setRSV(redisHash, toolName);
}
public static bool SendMessage(DTOMessageModel message)
{
string redisHash = redUtil.man.redHash(machineMessagePath);
return redUtil.man.setJson(redisHash, message);
}
}
}