laatzen/Common/Ui/Common.UI/ViewModels/ManualProgrammingVM.cs
2026-02-11 09:56:31 +01:00

44 lines
1.3 KiB
C#

namespace Common.UI.ViewModels
{
using Common.Hardware.SIRT;
using Common.UI.Infrastructure;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
public class ManualProgrammingVM : VM<ManualProgrammingVM>
{
public ManualProgrammingVM()
{
this.Messages = new SortedDictionary<uint, SIRTMessage>();
}
public SortedDictionary<uint, SIRTMessage> Messages { get; }
internal override void ViewModel_Loaded(object _)
{
AppHost.SIRTHub.MessageReceived += SirtHub_MessageReceived;
foreach (Match match in Regex.Matches(Appsettings.GetSetting("SIRTComPorts"), "[cC][oO][mM][0-9]+"))
{
if (match.Success)
{
Task.Run(() => AppHost.SIRTHub.TryOpen(match.Value.ToUpper(), out var _1, out var _2));
}
}
}
protected override void ViewModel_Dispose()
{
AppHost.SIRTHub.MessageReceived -= SirtHub_MessageReceived;
}
private void SirtHub_MessageReceived(SIRTMessage message)
{
this.Messages[message.Address] = message;
this.NotifyPropertyChanged(nameof(this.Messages));
}
}
}