eregister tasks execution
This commit is contained in:
parent
f2109e577d
commit
2abd383fcd
@ -18,7 +18,7 @@
|
||||
{
|
||||
const string SENSUS_STANDARD = "E6C88800DEB868C0D6A84880CE982840";
|
||||
|
||||
private readonly ConcurrentQueue<EregisterTask> runningTasks;
|
||||
private readonly ICollection<EregisterTask> runningTasks;
|
||||
private readonly EregisterProgrammingParameters parameters;
|
||||
private readonly EregisterHistory history;
|
||||
private readonly EregisterState state;
|
||||
@ -36,14 +36,10 @@
|
||||
this.sirtHub = sirtHub;
|
||||
this.state = new EregisterState();
|
||||
this.history = new EregisterHistory();
|
||||
this.runningTasks = new ConcurrentQueue<EregisterTask>();
|
||||
this.runningTasks = new List<EregisterTask>();
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
// Just clear the queue
|
||||
while (this.runningTasks.TryDequeue(out var _)) ;
|
||||
}
|
||||
public void Clear() => this.runningTasks.Clear();
|
||||
|
||||
internal IEnumerable<EregisterTask> LoadInspectionInitializationTasks()
|
||||
{
|
||||
@ -62,7 +58,7 @@
|
||||
|
||||
if (this.runningTasks.Any())
|
||||
{
|
||||
this.runningTasks.Enqueue(new EregisterChangeMeterTypeTask(features.Frequency)
|
||||
this.runningTasks.Add(new EregisterChangeMeterTypeTask(features.Frequency)
|
||||
{
|
||||
SlotNr = features.SlotNr,
|
||||
PoNr = features.PoNr,
|
||||
@ -90,7 +86,7 @@
|
||||
|
||||
if (this.parameters.StatusFertigung == 30)
|
||||
{
|
||||
this.runningTasks.Enqueue(new EregisterCheckFinalizationTask(this.parameters, features.Frequency)
|
||||
this.runningTasks.Add(new EregisterCheckFinalizationTask(this.parameters, features.Frequency)
|
||||
{
|
||||
WakeUpModul = true,
|
||||
SlotNr = features.SlotNr,
|
||||
@ -102,7 +98,7 @@
|
||||
EncryptionKeyII = SENSUS_STANDARD.GetEncryptionKey(),
|
||||
});
|
||||
|
||||
this.runningTasks.Enqueue(new EregisterTask(this.parameters.Frequency)
|
||||
this.runningTasks.Add(new EregisterTask(this.parameters.Frequency)
|
||||
{
|
||||
Name = "0, 2, 16",
|
||||
SlotNr = features.SlotNr,
|
||||
@ -132,13 +128,14 @@
|
||||
this.history.SerienNr = this.parameters.SerienNr;
|
||||
this.history.Adresse = this.parameters.Adresse;
|
||||
this.history.TempAdresse = this.parameters.TempAdresse;
|
||||
|
||||
|
||||
var tasks = new ConcurrentQueue<EregisterTask>(this.runningTasks);
|
||||
var factoryState = FactoryState.Production;
|
||||
var lat = default(LAT);
|
||||
var debug = default(DEBUG);
|
||||
var semi = default(SEMI);
|
||||
|
||||
while (!cancellationToken.IsCancellationRequested && this.runningTasks.TryDequeue(out var task))
|
||||
while (!cancellationToken.IsCancellationRequested && tasks.TryDequeue(out var task))
|
||||
{
|
||||
task.MessageReceived += this.history.Push;
|
||||
|
||||
@ -246,7 +243,7 @@
|
||||
|
||||
var frequency = this.parameters.Frequency;
|
||||
|
||||
this.runningTasks.Enqueue(new EregisterTask(frequency)
|
||||
this.runningTasks.Add(new EregisterTask(frequency)
|
||||
{
|
||||
Name = "WUP",
|
||||
WakeUpCmd = true,
|
||||
@ -265,7 +262,7 @@
|
||||
Timeout = 10_000
|
||||
});
|
||||
|
||||
this.runningTasks.Enqueue(new EregisterCheckInitializationTask(this.parameters, frequency)
|
||||
this.runningTasks.Add(new EregisterCheckInitializationTask(this.parameters, frequency)
|
||||
{
|
||||
SlotNr = features.SlotNr,
|
||||
PoNr = features.PoNr,
|
||||
@ -278,7 +275,7 @@
|
||||
|
||||
foreach (var pam in features.BuildPams())
|
||||
{
|
||||
this.runningTasks.Enqueue(new EregisterTask(frequency)
|
||||
this.runningTasks.Add(new EregisterTask(frequency)
|
||||
{
|
||||
SlotNr = features.SlotNr,
|
||||
PoNr = features.PoNr,
|
||||
|
||||
@ -80,7 +80,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
internal class Eregister_Shared
|
||||
internal class eRegister_Shared
|
||||
{
|
||||
internal static List<EregisterShared> LoadActions(int sharedId)
|
||||
=> sqlConnection.LoadActions(sharedId);
|
||||
@ -122,42 +122,5 @@
|
||||
|
||||
return xmlDeserialized as EregisterProgrammingParametersList ?? new EregisterProgrammingParametersList();
|
||||
}
|
||||
|
||||
internal static EregisterProgrammingParametersList LoadEregisterProgrammingParametersListForSerialNr(int serialNr)
|
||||
{
|
||||
var xmlList = sqlConnection
|
||||
.CreateCommand($@"
|
||||
SELECT CAST((SELECT ersh.P2000_Shared_Id
|
||||
, ersh.Slotno
|
||||
, erpp.*
|
||||
FROM eRegister_Shared AS ersh
|
||||
JOIN VieweRegisterProgrammingParameters AS erpp
|
||||
ON ersh.Serialno = erpp.SerienNr
|
||||
WHERE ersh.Serialno = @{nameof(serialNr)}
|
||||
AND ersh.Completed = 0
|
||||
FOR XML PATH('{nameof(EregisterProgrammingParameters)}')
|
||||
, ROOT('{nameof(EregisterProgrammingParametersList)}'))
|
||||
AS XML)")
|
||||
.SetParameter(nameof(serialNr), serialNr)
|
||||
.FirstOrDefault(x => x.GetValue<string>(0));
|
||||
var xmlDeserialized = default(object);
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(xmlList))
|
||||
{
|
||||
var xmlSerializer = new XmlSerializer(typeof(EregisterProgrammingParametersList));
|
||||
var xmlReader = new StringReader(xmlList);
|
||||
|
||||
try
|
||||
{
|
||||
xmlDeserialized = xmlSerializer.Deserialize(xmlReader);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
AppHost.NLogger.Error(e.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
return xmlDeserialized as EregisterProgrammingParametersList ?? new EregisterProgrammingParametersList();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user