OK display sim parameters in HOME
This commit is contained in:
+50
-39
@@ -2,7 +2,6 @@
|
||||
using MP.MONO.Data.Controllers;
|
||||
using Newtonsoft.Json;
|
||||
using StackExchange.Redis;
|
||||
using System.Configuration;
|
||||
|
||||
string lineSep = "------------------------------------------------------";
|
||||
string redisConf = "127.0.0.1:6379";
|
||||
@@ -22,45 +21,24 @@ ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(redisConf);
|
||||
ISubscriber sub = redis.GetSubscriber();
|
||||
IDatabase? redisDb = redis.GetDatabase();
|
||||
|
||||
|
||||
// avvio tutti i thread...
|
||||
Thread threadStatus = new Thread(simStatus);
|
||||
Thread threadAlarms = new Thread(simAlarms);
|
||||
Thread threadParams = new Thread(simParameters);
|
||||
|
||||
threadStatus.Start();
|
||||
threadAlarms.Start();
|
||||
threadParams.Start();
|
||||
|
||||
|
||||
|
||||
void simStatus()
|
||||
/// <summary>
|
||||
/// Hash Redis contenente i dati MP di una specifico TYPE (es StatusMacchina, StateMachineIngressi, ...)
|
||||
/// </summary>
|
||||
/// <param name="dataType"></param>
|
||||
/// <returns></returns>
|
||||
string mHash(string dataType)
|
||||
{
|
||||
int minPeriod = 2000;
|
||||
int maxPeriod = 3000;
|
||||
|
||||
do {
|
||||
// recupero uno stato simulato
|
||||
var newStatus = simGen.MachineGetStatus();
|
||||
string rawData = JsonConvert.SerializeObject(newStatus);
|
||||
saveAndSendMessage(mHash("Machine:Status:Current"), rawData, "status", rawData);
|
||||
|
||||
// attesa random
|
||||
Thread.Sleep(rand.Next(minPeriod, maxPeriod));
|
||||
} while (true);
|
||||
return $"MAPO-MONO:{dataType}";
|
||||
}
|
||||
void simAlarms()
|
||||
{
|
||||
int minPeriod = 1000;
|
||||
int maxPeriod = 2000;
|
||||
|
||||
do
|
||||
{
|
||||
var alarmCode = rand.Next(1, 100);
|
||||
saveAndSendMessage(mHash("Machine:Alarms:Current"), $"{alarmCode:000} | Allarme PLC {alarmCode}", "allarms", $"{alarmCode:000}");
|
||||
// attesa random
|
||||
Thread.Sleep(rand.Next(minPeriod, maxPeriod));
|
||||
} while (true);
|
||||
}
|
||||
|
||||
|
||||
void saveAndSendMessage(string memKey, string value, string notifyChannel, string message)
|
||||
{
|
||||
@@ -73,13 +51,46 @@ void saveAndSendMessage(string memKey, string value, string notifyChannel, strin
|
||||
sub.Publish(notifyChannel, message);
|
||||
Console.WriteLine($"[{notifyChannel}] key: {memKey} | val: {value} | message: {message}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Hash Redis contenente i dati MP di una specifico TYPE (es StatusMacchina, StateMachineIngressi, ...)
|
||||
/// </summary>
|
||||
/// <param name="dataType"></param>
|
||||
/// <returns></returns>
|
||||
string mHash(string dataType)
|
||||
void simAlarms()
|
||||
{
|
||||
return $"MAPO-MONO:{dataType}";
|
||||
int minPeriod = 1000;
|
||||
int maxPeriod = 2000;
|
||||
|
||||
do
|
||||
{
|
||||
var alarmCode = rand.Next(1, 100);
|
||||
saveAndSendMessage(mHash("Machine:Alarms:Current"), $"{alarmCode:000} | Allarme PLC {alarmCode}", "allarms", $"{alarmCode:000}");
|
||||
// attesa random
|
||||
Thread.Sleep(rand.Next(minPeriod, maxPeriod));
|
||||
} while (true);
|
||||
}
|
||||
void simParameters()
|
||||
{
|
||||
int minPeriod = 100;
|
||||
int maxPeriod = 500;
|
||||
|
||||
do
|
||||
{
|
||||
var newParams = simGen.MachineGetParameters();
|
||||
string rawData = JsonConvert.SerializeObject(newParams);
|
||||
saveAndSendMessage(mHash("Machine:Parameters:Current"), rawData, "parameters", rawData);
|
||||
// attesa random
|
||||
Thread.Sleep(rand.Next(minPeriod, maxPeriod));
|
||||
} while (true);
|
||||
}
|
||||
void simStatus()
|
||||
{
|
||||
int minPeriod = 2000;
|
||||
int maxPeriod = 3000;
|
||||
|
||||
do
|
||||
{
|
||||
// recupero uno stato simulato
|
||||
var newStatus = simGen.MachineGetStatus();
|
||||
string rawData = JsonConvert.SerializeObject(newStatus);
|
||||
saveAndSendMessage(mHash("Machine:Status:Current"), rawData, "status", rawData);
|
||||
|
||||
// attesa random
|
||||
Thread.Sleep(rand.Next(minPeriod, maxPeriod));
|
||||
} while (true);
|
||||
}
|
||||
Reference in New Issue
Block a user