Update gestione SIM e DECODER x allarmi (NON ancora OK)

This commit is contained in:
Samuele Locatelli
2022-03-19 16:33:51 +01:00
parent dd3491af16
commit ccbb6fa644
15 changed files with 184 additions and 117 deletions
+9 -9
View File
@@ -14,10 +14,10 @@
"Alarm 006",
"Alarm 007",
"Alarm 008",
"##Alarm 009",
"##Alarm 010",
"##Alarm 011",
"##Alarm 012",
"Alarm 009",
"Alarm 010",
"Alarm 011",
"Alarm 012",
"##Alarm 013",
"##Alarm 014",
"##Alarm 015",
@@ -37,12 +37,12 @@
"Warning 004",
"Warning 005",
"Warning 006",
"##Warning 007",
"##Warning 008",
"Warning 007",
"Warning 008",
"##Warning 009",
"Warning 010",
"Warning 011",
"Warning 012",
"##Warning 010",
"##Warning 011",
"##Warning 012",
"Warning 013",
"Warning 014",
"Warning 015",
-12
View File
@@ -235,18 +235,6 @@ namespace MP.MONO.Core.CONF
idx = 0;
}
}
#if false
// sistemo messaggi come dizionario...
Dictionary<int, string> map = new Dictionary<int, string>();
if (messages != null)
{
foreach (var item in messages)
{
map.Add(map.Count + 1, item);
}
}
messagesMap = map;
#endif
}
/// <summary>
+23 -6
View File
@@ -22,32 +22,49 @@ namespace MP.MONO.DECODER
{
// !!!FIXME TODO
#if false
// fare vero setup da file... x ora è fake
for (int i = 1; i < 9; i++)
for (int i = 1; i < 16; i++)
{
AlarmList.Add($"Allarme{i:00}");
}
}
#endif
currAlarmStatus.Add(0);
// preparo variabile x avvisare script che il modo è da NLua
luaPath = Path.Combine(Directory.GetCurrentDirectory(), "lua", "AlarmDecoder.lua");
state.DoString(" callMode = 'NLua' ");
#if FALSE
state["alarmList"] = AlarmList;
state["numAlarm"] = AlarmList.Count;
state["numAlarm"] = AlarmList.Count;
#endif
state.DoString(" callMode = 'NLua' ");
// initi 0/0
#if false
state.DoString(" lastVal = 0 ");
state.DoString(" currVal = 0 ");
#endif
#if true
state["lastVal"] = 0;
state["currVal"] = 0;
state["currVal"] = 0;
#endif
Log.Info("AlarmManager OK");
Console.WriteLine("AlarmManager OK");
}
public static List<string> processData(int newStatus)
public static List<string> processData(string prefix, List<string> alarmList, uint muteMask, uint disableMask, uint newStatus)
{
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["currVal"] = newStatus;
// FIXME TODO!!! fare invio banco allarmi correnti (SE fossero + banchi da config)
state.DoFile(luaPath);
alarmStatus = state.GetString("alarmStatus");
+24 -18
View File
@@ -123,7 +123,7 @@ void AlarmValPipe_EA_NewMessage(object? sender, EventArgs e)
try
{
// verifico codici allarmi ricevuti
var alarmList = JsonConvert.DeserializeObject<List<int>>(currArgs.newMessage);
var alarmList = JsonConvert.DeserializeObject<Dictionary<string, uint>>(currArgs.newMessage);
if (alarmList != null)
{
// variabili accessorie
@@ -143,24 +143,30 @@ void AlarmValPipe_EA_NewMessage(object? sender, EventArgs e)
{
currAlarmsConf = alarmsConf;
}
// ciclo x ogni bank di allarmi configurato
foreach (var bankVal in alarmList)
if (currAlarmsConf != null)
{
var bankAlarmList = AlarmManager.processData(bankVal);
// aggiungo...
activeAlarmList.AddRange(bankAlarmList);
// preparo OBJ x DB
AlarmLogModel newAlarm = new AlarmLogModel()
// ciclo x ogni bank di allarmi configurato
foreach (var alarmData in currAlarmsConf)
{
MachineId = MachineId,
DtRif = DateTime.Now,
MemAddress = "SIM.DB",
Index = 0,
Status = (uint)bankVal,
ValDecoded = activeAlarmList.Count > 0 ? JsonConvert.SerializeObject(activeAlarmList) : "All OK"
};
alarmLogList.Add(newAlarm);
// recupero valore allarme
var bankVal = alarmList.FirstOrDefault(x => x.Key == alarmData.memAddr);
uint actVal = !string.IsNullOrEmpty(bankVal.Key) ? bankVal.Value : 0;
// valutare se dividere in 2 da 16... FIXME TODO
var bankAlarmList = AlarmManager.processData(alarmData.memAddr, alarmData.messages, alarmData.silenceMask[0], alarmData.disableMask[0], actVal);
// aggiungo...
activeAlarmList.AddRange(bankAlarmList);
AlarmLogModel newAlarm = new AlarmLogModel()
{
MachineId = MachineId,
DtRif = DateTime.Now,
MemAddress = bankVal.Key,
Index = alarmData != null ? alarmData.index : 0,
Status = alarmData != null ? (uint)bankVal.Value & alarmData.silenceMask[0] & alarmData.disableMask[0] : (uint)bankVal.Value,
ValDecoded = bankAlarmList.Count > 0 ? string.Join(", ", bankAlarmList) : "All OK"
};
alarmLogList.Add(newAlarm);
}
}
// serializzo...
string serAlarms = "All OK";
@@ -169,7 +175,7 @@ void AlarmValPipe_EA_NewMessage(object? sender, EventArgs e)
serAlarms = JsonConvert.SerializeObject(activeAlarmList);
}
// invio sulla message pipeline corretta TUTTI gli allarmi serializzati
alarmPipe.sendMessage(serAlarms);
alarmPipe.saveAndSendMessage(Constants.ALARM_CURR_KEY, serAlarms);
if (dbController != null)
{
// salvo nel DB lo stato dei bank di allarme
+15 -3
View File
@@ -1,5 +1,17 @@
Per installare il simulatore come servizio impiegare nssm come gestore servizio.
-------------------------------
- SDK
-------------------------------
IN particolare installare con
Va installato pacchetto dotnet core hosting (che installa anche i runtime di dotnetcore)
choco install dotnet-windowshosting
nssm.exe install MP-MONO-SIM
(Se non bastasse bisogna installare prima SDK dotnet core choco install dotnet-6.0-sdk)
-------------------------------
- SERVIZIO
-------------------------------
Per installare il DECODER come servizio impiegare nssm come gestore servizio. In particolare installare con
nssm.exe install MP-MONO-SIM
+25 -20
View File
@@ -5,32 +5,35 @@ Variabili IN:
- alarmList(array/tabella) (elenco allarmi gestiti a bitmap, se ## = silenziati)
- currVal(INT) stato corrente
- lastVal(INT) ultimo stato (oppure 0) - opzionale
- muteMap(INT) valore BITMASK x silenziamento allarmi (xFF default = tutto attivo, ogni bit a 0 è silenziato) - opzionale
- muteMask(INT) valore disableMask x silenziamento allarmi (xFF default = tutto attivo, ogni bit a 0 è silenziato) - opzionale
Variabili OUT:
- alarmStatus (stirng con status finale risultato allarmi attivi)
Viene calcolato internamente la bitmask dall'elenco allarmi
Viene calcolato internamente la disableMask dall'elenco allarmi
-----------------------------------------------------]]
-- ricezione da codice tab status allarmi, attenzione da C# è 0 based, qui è 1 based --> fix costruzione tabella
-- variabile semaforo callMode (locali o remote da NLua)
callMode = callMode or ''
currVal = currVal or 0
lastVal = lastVal or 0
muteMap = muteMap or 0Xff
bitMask = bitMask or 0x00
valueChanged = false
callMode = callMode or ''
currVal = currVal or 0
lastVal = lastVal or 0
muteMask = muteMask or 0XFF
disableMask = disableMask or 0xFF
--disableMask = disableMask or 0x00 -- caso calcolato internamente
valueChanged = false
prefix = prefix or 'AREA'
-- se non è da NLua inizializzo variabili accessorie
local function checkInit()
if(callMode ~= 'NLua') then
alarmList = {"##Allarme01", "Allarme02", "Allarme03", "##Allarme04", "Allarme05", "Allarme06", "Allarme07", "##Allarme08"}
alarmList = {"Allarme01", "Allarme02", "Allarme03", "Allarme04", "Allarme05", "Allarme06", "Allarme07", "Allarme08", "##Allarme09", "##Allarme10", "##Allarme11", "##Allarme12", "##Allarme13", "##Allarme14", "##Allarme15", "##Allarme16"}
numAlarm = #alarmList
-- valori status da testare
lastVal = 0
currVal = 255
disableMask = 0x00
end
end
@@ -43,12 +46,12 @@ local function testBit(testVal, i)
end
local function valMask(testVal)
return testVal & bitMask
return testVal & disableMask & muteMask
end
local function setupTable()
if numAlarm > 0 and alarmList[0] ~= nil then
bitMask = 0
disableMask = 0
for i = numAlarm,1, -1 do
alarmListTable[i] = alarmList[i-1]
end
@@ -57,13 +60,15 @@ local function setupTable()
end
end
-- calcolo maschera...
local function setupBitMask()
for i = 1, numAlarm,1 do
if(string.sub(alarmListTable[i],0,2)~='##') then
bitMask = bitMask + 2^(i-1)
end
local function setupdisableMask()
if(callMode ~= 'NLua') then
for i = 1, numAlarm,1 do
if(string.sub(alarmListTable[i],0,2)~='##') then
disableMask = disableMask + 2^(i-1)
end
end
disableMask = math.tointeger(disableMask)
end
bitMask = math.tointeger(bitMask)
end
-- confronto lastVal e currVal
@@ -87,7 +92,7 @@ local function checkActiveAlarms()
for i = 1, numAlarm do
bTest = testBit(valMask(currVal),i)
if(bTest) then
alarmListActive[#alarmListActive+1]=string.format("%03d",i) ..' - '.. alarmListTable[i]
alarmListActive[#alarmListActive+1]= '[' .. prefix ..'.' .. string.format("%02d",i) ..'] '.. alarmListTable[i]
hasAlarms = 1
end
end
@@ -113,7 +118,7 @@ end
local function displayTestInfo()
if(callMode ~= 'NLua') then
print('muteMap: '.. muteMap .. ' | bitMask: '.. bitMask)
print('muteMask: '.. muteMask .. ' | disableMask: '.. disableMask)
print(alarmStatus)
--print('------------------------------')
--for i,val in pairs(alarmListTable) do
@@ -130,7 +135,7 @@ alarmStatus = ""
checkInit()
setupTable()
setupBitMask()
setupdisableMask()
checkVariation()
checkActiveAlarms()
calcStatusVar()
+6 -6
View File
@@ -16,15 +16,15 @@
<ItemGroup>
<PackageReference Include="MailKit" Version="3.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.3" />
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="6.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.3">
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.2" />
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="6.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.3">
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
+6 -6
View File
@@ -17,15 +17,15 @@
<ItemGroup>
<PackageReference Include="MailKit" Version="3.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.3" />
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="6.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.3">
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.2" />
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="6.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.3">
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
+46 -10
View File
@@ -1,4 +1,5 @@
using StackExchange.Redis;
using NLog;
using StackExchange.Redis;
namespace MP.MONO.Data
{
@@ -6,18 +7,27 @@ namespace MP.MONO.Data
{
#region Private Fields
private bool enableLog = false;
private DateTime LastSend = DateTime.Now.AddMinutes(-5);
private IConnectionMultiplexer redis;
private bool enableConsoleLog = false;
private IDatabase? redisDb;
#endregion Private Fields
#region Protected Fields
protected static Logger Log = LogManager.GetCurrentClassLogger();
#endregion Protected Fields
#region Public Constructors
public MessagePipe(IConnectionMultiplexer redisConn, string channelName, bool enableLog = false)
{
_channel = channelName;
redis = redisConn;
enableConsoleLog = enableLog;
redisDb = redis.GetDatabase();
this.enableLog = enableLog;
// aggiungo sottoscrittore
setupSubscriber();
}
@@ -47,11 +57,8 @@ namespace MP.MONO.Data
//Subscribe to the channel named messages
sub.Subscribe(_channel, (channel, message) =>
{
// Se abilitato Output messaggio ricevuto
if (enableConsoleLog)
{
Console.WriteLine($"[{DateTime.Now:HH:mm:ss}] {message}");
}
Log.Info($"[{DateTime.Now:HH:mm:ss}] {message}");
// messaggio
PubSubEventArgs mea = new PubSubEventArgs(message);
// se qualcuno ascolta sollevo evento nuovo valore...
if (EA_NewMessage != null)
@@ -59,13 +66,37 @@ namespace MP.MONO.Data
EA_NewMessage(this, mea);
}
});
Console.WriteLine($"Subscribed {_channel}");
Log.Info($"Subscribed {_channel}");
}
#endregion Private Methods
#region Public Methods
public bool saveAndSendMessage(string memKey, string message)
{
bool answ = false;
// invio notifica tramite il canale richiesto
answ = sendMessage(message);
// effettuo la scrittura nell'area di memoria indicata SE passato intervallo minimo
bool doSend = true;
if (DateTime.Now.Subtract(LastSend).TotalSeconds < 60)
{
doSend = false;
}
if (doSend && redisDb != null)
{
redisDb.StringSetAsync(memKey, message);
LastSend = DateTime.Now;
if (enableLog)
{
Log.Info($"Redis Cache Key: {memKey}");
}
}
return answ;
}
/// <summary>
/// Invio messaggio sul canale
/// </summary>
@@ -74,13 +105,18 @@ namespace MP.MONO.Data
public bool sendMessage(string newMess)
{
bool answ = false;
ISubscriber sub = redis.GetSubscriber();
sub.Publish(_channel, newMess);
return answ;
}
#endregion Public Methods
/// <summary>
/// Invio messaggio sul canale + salvataggio in cache REDIS
/// </summary>
/// <param name="memKey">Chiave REDIS x salvare valore</param>
/// <param name="message"></param>
}
public class PubSubEventArgs : EventArgs
@@ -18,7 +18,7 @@ namespace MP.MONO.Data.Migrations
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "6.0.3")
.HasAnnotation("ProductVersion", "6.0.2")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
modelBuilder.Entity("MP.MONO.Data.DbModels.AlarmLogModel", b =>
@@ -16,7 +16,7 @@ namespace MP.MONO.Data.Migrations
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "6.0.3")
.HasAnnotation("ProductVersion", "6.0.2")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
modelBuilder.Entity("MP.MONO.Data.DbModels.AlarmLogModel", b =>
+22 -20
View File
@@ -182,7 +182,7 @@ void logError(string msg, bool log2file = true, bool log2console = false)
}
}
void saveAndSendMessage(string memKey, string value, string notifyChannel, string message)
void saveAndSendMessage(string memKey, string notifyChannel, string message)
{
// effettuo la scrittura nell'area di memoria indicata SE passato intervallo minimo
bool doSend = true;
@@ -199,17 +199,16 @@ void saveAndSendMessage(string memKey, string value, string notifyChannel, strin
}
if (doSend)
{
redisDb.StringSetAsync(memKey, value);
redisDb.StringSetAsync(memKey, message);
LastSend[memKey] = DateTime.Now;
logInfo($"Redis Cache Key: {memKey}");
}
//redisDb.SetAdd(memKey, value);
// invio notifica tramite il canale richiesto
sub.Publish(notifyChannel, message);
if (verboseLog)
{
logInfo($"[{notifyChannel}] key: {memKey} | val: {value} | message: {message}");
logInfo($"[{notifyChannel}] key: {memKey} | val/message: {message}");
}
else
{
@@ -253,23 +252,26 @@ void saveAndSendMessage(string memKey, string value, string notifyChannel, strin
void simAlarms()
{
int minPeriod = 5000;
int maxPeriod = 10000;
int minPeriod = 3000;
int maxPeriod = 9000;
int percAllarmi = config.GetValue<int>("percAllarmi");
do
{
Dictionary<string,int> currAlarmsVal = new Dictionary<string, int>();
int alarmCode = 0;
Dictionary<string, uint> currAlarmsVal = new Dictionary<string, uint>();
uint alarmCode = 0;
bool hasAlarm;
// ciclo x numero banchi da config...
foreach (var item in alarmsConf)
{
alarmCode = rand.Next(0, 65535);
// se >= 128 --> 0 (no alarm)
alarmCode = alarmCode <= 32768 ? alarmCode : 0;
// limito allarmi al percAllarmi/100 dei casi
hasAlarm = rand.Next(0, 100) <= percAllarmi;
// allarme libero SE in condizione allarme
alarmCode = hasAlarm ? (uint)rand.Next(0, 65535) : 0;
currAlarmsVal.Add(item.memAddr, alarmCode);
}
string rawDataVal = JsonConvert.SerializeObject(currAlarmsVal);
saveAndSendMessage(Constants.ALARM_ACT_KEY, rawDataVal, Constants.ALARM_ACT_VAL, rawDataVal);
saveAndSendMessage(Constants.ALARM_ACT_KEY, Constants.ALARM_ACT_VAL, rawDataVal);
// attesa random
Thread.Sleep(rand.Next(minPeriod, maxPeriod));
} while (true);
@@ -284,7 +286,7 @@ void simParameters()
{
var newParams = currSimGen.getParameters();
string rawData = JsonConvert.SerializeObject(newParams);
saveAndSendMessage(Constants.PARAMS_CURR_KEY, rawData, Constants.PARAMS_M_QUEUE, rawData);
saveAndSendMessage(Constants.PARAMS_CURR_KEY, Constants.PARAMS_M_QUEUE, rawData);
// attesa random
Thread.Sleep(rand.Next(minPeriod, maxPeriod));
} while (true);
@@ -300,7 +302,7 @@ void simStatus()
// recupero uno stato simulato
var newStatus = currSimGen.getStatus();
string rawData = JsonConvert.SerializeObject(newStatus);
saveAndSendMessage(Constants.STATUS_CURR_KEY, rawData, Constants.STATUS_M_QUEUE, rawData);
saveAndSendMessage(Constants.STATUS_CURR_KEY, Constants.STATUS_M_QUEUE, rawData);
// attesa random
Thread.Sleep(rand.Next(minPeriod, maxPeriod));
@@ -317,7 +319,7 @@ void simProd()
// recupero uno stato simulato
var newStatus = currSimGen.getProd();
string rawData = JsonConvert.SerializeObject(newStatus);
saveAndSendMessage(Constants.PROD_CURR_KEY, rawData, Constants.PROD_M_QUEUE, rawData);
saveAndSendMessage(Constants.PROD_CURR_KEY, Constants.PROD_M_QUEUE, rawData);
// attesa random
Thread.Sleep(rand.Next(minPeriod, maxPeriod));
@@ -334,7 +336,7 @@ void simMachStat()
// recupero uno stato simulato
var newVal = currSimGen.getProdStats();
string rawData = JsonConvert.SerializeObject(newVal);
saveAndSendMessage(Constants.MACH_STATS_CURR_KEY, rawData, Constants.MACH_STATS_M_QUEUE, rawData);
saveAndSendMessage(Constants.MACH_STATS_CURR_KEY, Constants.MACH_STATS_M_QUEUE, rawData);
// attesa random
Thread.Sleep(rand.Next(minPeriod, maxPeriod));
@@ -351,7 +353,7 @@ void simMaint()
// recupero uno stato simulato
var newVal = currSimGen.getMaint();
string rawData = JsonConvert.SerializeObject(newVal);
saveAndSendMessage(Constants.MAINT_STATS_CURR_KEY, rawData, Constants.MAINT_STATS_M_QUEUE, rawData);
saveAndSendMessage(Constants.MAINT_STATS_CURR_KEY, Constants.MAINT_STATS_M_QUEUE, rawData);
// attesa random
Thread.Sleep(rand.Next(minPeriod, maxPeriod));
@@ -368,7 +370,7 @@ void simTools()
// recupero uno stato simulato
var newVal = currSimGen.getTools();
string rawData = JsonConvert.SerializeObject(newVal);
saveAndSendMessage(Constants.TOOLS_CURR_KEY, rawData, Constants.TOOLS_M_QUEUE, rawData);
saveAndSendMessage(Constants.TOOLS_CURR_KEY, Constants.TOOLS_M_QUEUE, rawData);
// attesa random
Thread.Sleep(rand.Next(minPeriod, maxPeriod));
@@ -385,7 +387,7 @@ void simEvents()
// recupero uno stato simulato
var newVal = currSimGen.getEvents();
string rawData = JsonConvert.SerializeObject(newVal);
saveAndSendMessage(Constants.EVENT_LOG_CURR_KEY, rawData, Constants.EVENT_LOG_M_QUEUE, rawData);
saveAndSendMessage(Constants.EVENT_LOG_CURR_KEY, Constants.EVENT_LOG_M_QUEUE, rawData);
// attesa random
Thread.Sleep(rand.Next(minPeriod, maxPeriod));
@@ -402,7 +404,7 @@ void simActivityLog()
// recupero uno stato simulato
var newVal = currSimGen.getActLog();
string rawData = JsonConvert.SerializeObject(newVal);
saveAndSendMessage(Constants.ACT_LOG_CURR_KEY, rawData, Constants.ACT_LOG_M_QUEUE, rawData);
saveAndSendMessage(Constants.ACT_LOG_CURR_KEY, Constants.ACT_LOG_M_QUEUE, rawData);
// attesa random
Thread.Sleep(rand.Next(minPeriod, maxPeriod));
+2 -1
View File
@@ -7,7 +7,7 @@
},
"AllowedHosts": "*",
"ConnectionStrings": {
"Redis": "nkcredis.steamware.net:6379,DefaultDatabase=7,connectTimeout=5000,syncTimeout=5000,asyncTimeout=5000,abortConnect=false,ssl=false,password=nkc.password",
"Redis": "nkcredis.steamware.net:6379,DefaultDatabase=7,connectTimeout=30000,syncTimeout=30000,asyncTimeout=30000,abortConnect=false,ssl=false,password=nkc.password",
"AuthConnection": "Server=localhost;port=3306;database=GWMS;user=GWMS;pwd=GWMS_secret_pwd;sslmode=None;",
"DefaultConnection": "Server=localhost;port=3306;database=MAPO.MONO;user=GWMS;pwd=GWMS_secret_pwd;sslmode=None;",
"AdminConnection": "Server=localhost;port=3306;database=MAPO.MONO;user=root;pwd=Egalware_24068!;sslmode=None;",
@@ -19,6 +19,7 @@
"sKey": "M3T@n0-CH4"
},
"maxRecord": 15,
"percAllarmi": 40,
"ExternalProviders": {
"MailKit": {
"SMTP": {
+2 -2
View File
@@ -21,8 +21,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Authentication.Negotiate" Version="6.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.3">
<PackageReference Include="Microsoft.AspNetCore.Authentication.Negotiate" Version="6.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
+2 -2
View File
@@ -16,8 +16,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Authentication.Negotiate" Version="6.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.3">
<PackageReference Include="Microsoft.AspNetCore.Authentication.Negotiate" Version="6.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>