temp commit

This commit is contained in:
Stoyan Zlatev 2025-11-06 08:25:20 +01:00
parent 297e329c21
commit b57d1c67ab
10 changed files with 88 additions and 125 deletions

View File

@ -46,30 +46,48 @@
internal IEnumerable<EregisterTask> LoadInspectionInitializationTasks()
{
this.executionType = nameof(LoadInspectionInitializationTasks);
var features = this.parameters.LoadInspectionInitializationFeatures();
//this.executionType = nameof(LoadInspectionInitializationTasks);
//var features = this.parameters.LoadInspectionInitializationFeatures();
if (features.RequestAddress > 0 && features.ResponseAddress > 0)
{
this.LoadProgrammingParameters(features);
//if (features.RequestAddress > 0 && features.ResponseAddress > 0)
//{
// this.LoadProgrammingParameters(features);
if (this.runningTasks.Any())
{
this.runningTasks.Enqueue(new EregisterChangeMeterTypeTask(features.Frequency)
{
SlotNr = features.SlotNr,
PoNr = features.PoNr,
SerialNr = features.SerialNr,
DelPamSemi = true,
RequestAddress = features.RequestAddress,
ResponseAddress = features.ResponseAddress,
EncryptionKey = features.EncryptionKey,
Name = "Change Meter Type"
});
}
}
// if (this.runningTasks.Any())
// {
// this.runningTasks.Enqueue(new EregisterChangeMeterTypeTask(features.Frequency)
// {
// SlotNr = features.SlotNr,
// PoNr = features.PoNr,
// SerialNr = features.SerialNr,
// DelPamSemi = true,
// RequestAddress = features.RequestAddress,
// ResponseAddress = features.ResponseAddress,
// EncryptionKey = features.EncryptionKey,
// Name = "Change Meter Type"
// });
// }
//}
return this.runningTasks.AsEnumerable();
//return this.runningTasks.AsEnumerable();
return this.LoadInspectionFinalizationTasks();
//this.runningTasks.Enqueue(new EregisterTask(features.Frequency)
//{
// //WakeUpCmd = true,
// //WakeUpModul = true,
// SlotNr = features.SlotNr,
// PoNr = features.PoNr,
// SerialNr = features.SerialNr,
// RequestAddress = features.RequestAddress,
// ResponseAddress = features.ResponseAddress,
// EncryptionKey = features.EncryptionKey,
// IsEncrypted = this.parameters.IsEncrypted,
// Data = new ChangeWakeUp(WakeUpMode.StayAwake).Append(new ProvidePin(AuthLevel.II))
//});
//return this.runningTasks.AsEnumerable();
}
internal IEnumerable<EregisterTask> LoadInspectionFinalizationTasks()
@ -84,22 +102,22 @@
if (this.parameters.StatusFertigung == 30)
{
// Setting all transmision intervals at the end
this.runningTasks.Enqueue(new EregisterTask(features.Frequency)
{
SlotNr = features.SlotNr,
PoNr = features.PoNr,
SerialNr = features.SerialNr,
RequestAddress = features.RequestAddress,
ResponseAddress = features.ResponseAddress,
EncryptionKey = features.EncryptionKey,
IsEncrypted = this.parameters.IsEncrypted,
Data = new ChangeWakeUp((WakeUpMode)this.parameters.Wake_Up_Interval)
.Append(new ChangeNumberOfLatWindows(this.parameters.LAT_Interval))
.Append(new ChangeTransmissionInterval(this.parameters.Transmission_Intervall))
.Append(new OpenMeteringTransmitionIntervalWMBus(this.parameters.OMS_Interval))
.Append(new ProvidePin(AuthLevel.II)),
Name = "0, 2, 16, 17",
});
//this.runningTasks.Enqueue(new EregisterTask(features.Frequency)
//{
// SlotNr = features.SlotNr,
// PoNr = features.PoNr,
// SerialNr = features.SerialNr,
// RequestAddress = features.RequestAddress,
// ResponseAddress = features.ResponseAddress,
// EncryptionKey = features.EncryptionKey,
// IsEncrypted = this.parameters.IsEncrypted,
// Data = new ChangeWakeUp((WakeUpMode)this.parameters.Wake_Up_Interval)
// .Append(new ChangeNumberOfLatWindows(this.parameters.LAT_Interval))
// .Append(new ChangeTransmissionInterval(this.parameters.Transmission_Intervall))
// .Append(new OpenMeteringTransmitionIntervalWMBus(this.parameters.OMS_Interval))
// .Append(new ProvidePin(AuthLevel.II)),
// Name = "0, 2, 16, 17",
//});
// The last checked DEBUG telegram
this.runningTasks.Enqueue(new EregisterCheckFinalizationTask(this.parameters, features.Frequency)
@ -113,21 +131,6 @@
EncryptionKey = features.EncryptionKey,
IsEncrypted = this.parameters.IsEncrypted,
});
// Setting all transmision intervals at the end
this.runningTasks.Enqueue(new EregisterTask(features.Frequency)
{
SlotNr = features.SlotNr,
PoNr = features.PoNr,
SerialNr = features.SerialNr,
RequestAddress = features.RequestAddress,
ResponseAddress = features.ResponseAddress,
EncryptionKey = features.EncryptionKey,
IsEncrypted = this.parameters.IsEncrypted,
Data = new ChangeWakeUp((WakeUpMode)this.parameters.Wake_Up_Interval)
.Append(new ProvidePin(AuthLevel.II)),
Name = "Funk aus",
});
}
}

View File

@ -4,6 +4,7 @@
using Common.Hardware.WaterMeter.eRegister.Models;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
@ -48,27 +49,23 @@
public void StartProgrammingAsync(CancellationToken cancellationToken)
{
var tasks = new List<Task>();
var eregisters = default(IEnumerable<Eregister>);
var skip = default(int);
var take = 5;
foreach (var eregister in this.eregisters)
while (skip < this.eregisters.Count)
{
var task = Task.Factory.StartNew(() =>
{
eregisters = this.eregisters
.Skip(skip)
.Take(take);
Parallel.ForEach(eregisters, eregister =>
{
eregister.StartProgrammingAsync(cancellationToken);
}
, cancellationToken)
.ContinueWith(t =>
{
if (t.Exception != null)
{
// TODO: exception logging
}
});
tasks.Add(task);
skip += take;
}
Task.WaitAll(tasks.ToArray(), cancellationToken);
}
public void StopProgramming()

View File

@ -17,10 +17,12 @@
public EregisterTask(int frequency)
{
this.Timeout = 5000;
this.DelPamSemi = true;
this.Frequency = frequency;
this.RSSI = new RSSI(0, frequency);
this.Label = nameof(SIRTTaskState.Pending);
// this.AnyTelegramReceived = true;
}
public event Action<EregisterTask> Changed;
@ -77,6 +79,9 @@
public override byte[] Start()
{
this.WakeUpModul = !this.AnyTelegramReceived;
this.WakeUpCmd = !this.AnyTelegramReceived;
var payloadL = this.request.Payload.Length;
this.payload = new byte[payloadL];
@ -185,6 +190,11 @@
this.Label = nameof(SIRTConstants.DEBUG);
this.DEBUGMessage = new DEBUG(data, this.P11);
this.FactoryState = this.DEBUGMessage.FactoryState;
if (this.LATMessage != null && this.SEMIMessage != null && this.SEMIMessage.PAMStatus == PAMStatus.OK)
{
this.SetCompleted();
}
}
else if (type == SIRTConstants.SEMI) // plain: 91 - enc: 93
{

View File

@ -16,5 +16,7 @@
get => this.bytes.ToUInt16BE(1);
set => value.GetBytesBE().CopyTo(this.bytes, 1);
}
public static implicit operator OpenMeteringTransmitionIntervalWMBus(ushort value) => new OpenMeteringTransmitionIntervalWMBus(value);
}
}

View File

@ -298,6 +298,10 @@
features.Debug.ChangeState = FactoryState.Shipment;
}
features.ChangeWakeUp = (WakeUpMode)this.Wake_Up_Interval;
features.ChangeNumberOfLatWindows = this.LAT_Interval;
features.ChangeTransmissionInterval = this.Transmission_Intervall;
features.OpenMeteringTransmitionIntervalWMBus = this.OMS_Interval;
features.ChangeRadioId = (uint)this.Adresse;
features.ChangeMeterId = this.MeterId;
features.DeactivateAlarms = new DeactivateAlarms

View File

@ -7,7 +7,7 @@
<!--<add key="ConnectionString" value="Server=SLASQL01.emea.sensus.net; Database=Testreplikation; User ID=sa; Password=sqlserver;" />-->
<add key="ConnectionString" value="Server=SLASQL01.emea.sensus.net; Database=Auftrag; User ID=sa; Password=sqlserver;" />
<add key="EncryptionKeisUrl" value="http://sla12iis01.emea.sensus.net/LaaProductionWeb/api/eregister/radiokey/byserialno/{0}" />
<add key="SIRTComPorts" value="COM6,COM8" />
<add key="SIRTComPorts" value="COM6" />
<add key="PSNR" value="1001" />
<add key="SIRT_433" value=""/>
<add key="SIRT_868" value=""/>

View File

@ -17,64 +17,12 @@
public static string GetSetting(string key)
=> Appsettings.GetSetting(key);
private static ILogger CreateSIRTMessageLogger()
{
var dll = new FileInfo(typeof(AppHost).Assembly.Location);
var name = "SIRTMessages";
var nlogs = dll.Directory.CreateSubdirectory(name);
var file = Path.Combine(nlogs.FullName, $"{DateTime.Now:yyyy-MM-dd}.txt");
LogManager.Configuration = new LoggingConfiguration();
LogManager.ThrowConfigExceptions = true;
LogManager.ThrowExceptions = true;
LogManager.AutoShutdown = true;
LogManager.Configuration.AddTarget(new FileTarget(name)
{
CreateDirs = true,
KeepFileOpen = true,
FileName = file
});
LogManager.Configuration.AddRule(LogLevel.Trace, LogLevel.Fatal, name);
LogManager.LogFactory.ReconfigExistingLoggers(true);
LogManager.ReconfigExistingLoggers(true);
return LogManager.GetLogger(name);
}
private static ILogger CreateSIRTStateLogger()
{
var dll = new FileInfo(typeof(AppHost).Assembly.Location);
var name = "SIRTState";
var nlogs = dll.Directory.CreateSubdirectory(name);
var file = Path.Combine(nlogs.FullName, $"{DateTime.Now:yyyy-MM-dd}.txt");
LogManager.Configuration = new LoggingConfiguration();
LogManager.ThrowConfigExceptions = true;
LogManager.ThrowExceptions = true;
LogManager.AutoShutdown = true;
LogManager.Configuration.AddTarget(new FileTarget(name)
{
CreateDirs = true,
KeepFileOpen = true,
FileName = file
});
LogManager.Configuration.AddRule(LogLevel.Trace, LogLevel.Fatal, name);
LogManager.LogFactory.ReconfigExistingLoggers(true);
LogManager.ReconfigExistingLoggers(true);
return LogManager.GetLogger(name);
}
private static ILogger CreateSIRTLogger()
{
var dll = new FileInfo(typeof(AppHost).Assembly.Location);
var name = "NLogs";
var nlogs = dll.Directory.CreateSubdirectory(name);
var file = Path.Combine(nlogs.FullName, $"{DateTime.Now:yyyy-MM-dd HH:mm}.txt");
var file = Path.Combine(nlogs.FullName, $"{DateTime.Now:yyyy-MM-dd-HH}.txt");
LogManager.Configuration = new LoggingConfiguration();
LogManager.ThrowConfigExceptions = true;
@ -100,7 +48,6 @@
var sirtHub = new SIRTHub();
SIRTLogger.Message += NLogger.Debug;
SIRTLogger.State += NLogger.Debug;
return sirtHub;
}

View File

@ -18,7 +18,7 @@
this.sqlConnection = SqlConnection.CreateSqlConnection(connectionString);
this.Addresses = new ObservableCollection<AddressVM>();
AppHost.SIRTHub.MessageProcessed += SIRTHub_MessageProcessed;
// TODO: SIRTLogger.Message += SIRTHub_MessageProcessed;
}
public ObservableCollection<AddressVM> Addresses { get; }

View File

@ -39,7 +39,7 @@
Interval = 500,
};
this.timer.Elapsed += this.Timer_Elapsed;
AppHost.SIRTHub.StateLogging += x => AppHost.NLogger.Debug(x);
// TODO: AppHost.SIRTHub.StateLogging += x => AppHost.NLogger.Debug(x);
this.eregisterFactory = new EregisterBatch(AppHost.SIRTHub);
this.StartProgrammingCommand = new Command(this.StartProgrammingCommandHandler);
this.StopProgrammingCommand = new Command(this.StopProgrammingCommandHandler);

View File

@ -23,7 +23,7 @@
this.timer = new Timer(3000);
this.timer.Elapsed += this.Timer_Elapsed;
this.sirtHub = new SIRTHub();
this.sirtHub.MessageProcessed += this.SirtHub_MessageProcessed;
// TODO: this.sirtHub.MessageProcessed += this.SirtHub_MessageProcessed;
this.StartScanning = new Command(this.StartScanning_Command);
this.Addresses433 = new ObservableCollection<uint>();
this.Addresses868 = new ObservableCollection<uint>();