88 lines
2.5 KiB
C#
88 lines
2.5 KiB
C#
using GalaSoft.MvvmLight;
|
|
using GalaSoft.MvvmLight.Command;
|
|
using Plane.FormationCreator.Formation;
|
|
using Plane.Windows.Messages;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Input;
|
|
|
|
namespace Plane.FormationCreator.ViewModels
|
|
{
|
|
public class RtcmInfoViewModel: ViewModelBase
|
|
{
|
|
private RtcmManager _rtcmManager;
|
|
|
|
public RtcmManager RtcmManager { get { return _rtcmManager; } }
|
|
|
|
public ObservableCollection<string> serialPorts { get; } = new ObservableCollection<string>();
|
|
|
|
private string _serialPortsSelectdValue;
|
|
public string SerialPortsSelectdValue
|
|
{
|
|
|
|
get { return _serialPortsSelectdValue; }
|
|
set { Set(nameof(SerialPortsSelectdValue), ref _serialPortsSelectdValue, value); }
|
|
|
|
}
|
|
|
|
public RtcmInfoViewModel(RtcmManager rtcmManager)
|
|
{
|
|
_rtcmManager = rtcmManager;
|
|
string[] commports = _rtcmManager.GetPortNames();
|
|
foreach (var item in commports)
|
|
{
|
|
serialPorts.Add(item);
|
|
}
|
|
serialPorts.Add("千寻");
|
|
SerialPortsSelectdValue = serialPorts[0];
|
|
}
|
|
|
|
|
|
|
|
public void RefreshPorts()
|
|
{
|
|
string lastSelectValue = SerialPortsSelectdValue;
|
|
serialPorts.Clear();
|
|
string[] commports = _rtcmManager.GetPortNames();
|
|
foreach (var item in commports)
|
|
{
|
|
serialPorts.Add(item);
|
|
}
|
|
serialPorts.Add("千寻");
|
|
if (serialPorts.Contains(lastSelectValue))
|
|
SerialPortsSelectdValue = lastSelectValue;
|
|
}
|
|
|
|
private ICommand _ConnectRtcmCommand;
|
|
public ICommand ConnectRtcmCommand
|
|
{
|
|
get
|
|
{
|
|
return _ConnectRtcmCommand ?? (_ConnectRtcmCommand = new RelayCommand(async() =>
|
|
{
|
|
if (!_rtcmManager.Rtcmthreadrun)
|
|
await _rtcmManager.Open(SerialPortsSelectdValue);
|
|
else
|
|
await _rtcmManager.Close();
|
|
}));
|
|
}
|
|
}
|
|
|
|
private ICommand _ClearRtcmCommand;
|
|
public ICommand ClearRtcmCommand
|
|
{
|
|
get
|
|
{
|
|
return _ClearRtcmCommand ?? (_ClearRtcmCommand = new RelayCommand(async () =>
|
|
{
|
|
await Task.Delay(1);
|
|
}));
|
|
}
|
|
}
|
|
}
|
|
}
|