72 lines
2.2 KiB
C#
72 lines
2.2 KiB
C#
using System.Collections.ObjectModel;
|
|
using System.Linq;
|
|
using System.Windows.Input;
|
|
using AmebaPro3_ControlPanel.Utilities;
|
|
|
|
namespace AmebaPro3_ControlPanel.ViewModels;
|
|
|
|
public class JLinkPageViewModel : PageViewModelBase
|
|
{
|
|
private string? _selectedSerialNumber;
|
|
private JLinkApSessionViewModel? _selectedApSession;
|
|
|
|
public JLinkPageViewModel()
|
|
{
|
|
Title = "Debugger";
|
|
|
|
AvailableSerialNumbers = new ObservableCollection<string> { "123456789", "987654321", "555555555" };
|
|
SelectedSerialNumber = AvailableSerialNumbers.FirstOrDefault();
|
|
|
|
ApSessions = new ObservableCollection<JLinkApSessionViewModel>
|
|
{
|
|
new("Cortex M33 - Processor NP"),
|
|
new("Cortex M33 - Processor MP"),
|
|
new("Cortex M23 - Processor FP"),
|
|
new("Cortex CA32 - Processor AP")
|
|
};
|
|
|
|
SelectedApSession = ApSessions.FirstOrDefault();
|
|
|
|
RefreshSerialsCommand = new RelayCommand(_ => RefreshSerials());
|
|
ConnectJLinkCommand = new RelayCommand(_ => ConnectJLink());
|
|
}
|
|
|
|
public ObservableCollection<string> AvailableSerialNumbers { get; }
|
|
|
|
public string? SelectedSerialNumber
|
|
{
|
|
get => _selectedSerialNumber;
|
|
set => SetProperty(ref _selectedSerialNumber, value);
|
|
}
|
|
|
|
public ObservableCollection<JLinkApSessionViewModel> ApSessions { get; }
|
|
|
|
public JLinkApSessionViewModel? SelectedApSession
|
|
{
|
|
get => _selectedApSession;
|
|
set => SetProperty(ref _selectedApSession, value);
|
|
}
|
|
|
|
public ICommand RefreshSerialsCommand { get; }
|
|
|
|
public ICommand ConnectJLinkCommand { get; }
|
|
|
|
private void RefreshSerials()
|
|
{
|
|
AvailableSerialNumbers.Clear();
|
|
AvailableSerialNumbers.Add("123456789");
|
|
AvailableSerialNumbers.Add("987654321");
|
|
AvailableSerialNumbers.Add("555555555");
|
|
SelectedSerialNumber ??= AvailableSerialNumbers.FirstOrDefault();
|
|
}
|
|
|
|
private void ConnectJLink()
|
|
{
|
|
foreach (var session in ApSessions)
|
|
{
|
|
session.SetSessionConnected(true);
|
|
session.LogLines.Add($"Attached to {session.Title} via J-Link {(SelectedSerialNumber ?? "N/A")} (UI placeholder).");
|
|
}
|
|
}
|
|
}
|