44 lines
1.3 KiB
C#
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));
|
|
}
|
|
}
|
|
}
|