BDU/ATS/Views/CANCatchSingalView.xaml.cs

117 lines
3.6 KiB
C#

using ATS.Models;
using MahApps.Metro.Controls;
using PropertyChanged;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using TSMasterCAN;
namespace ATS.Views
{
/// <summary>
/// CANCatchSingalView.xaml 的交互逻辑
/// </summary>
[AddINotifyPropertyChangedInterface]
public partial class CANCatchSingalView : MetroWindow
{
public CANCatchSingalView()
{
InitializeComponent();
DataContext ??= this;
Loaded += (_, _) =>
{
= [.. DBCParse.MsgDatabase[].Select(s => $"[0x{s.msg_id:X}]{s.msg_name}")];
};
}
public BindingList<CANSignalModel> { get; set; } = new();
public byte { get; set; } = 0;
public List<string> { get; set; }
public List<string> { get; set; }
public int { get; set; }
public int { get; set; }
public int { get; set; } = 1000;
private void Button_Click(object sender, RoutedEventArgs e)
{
var find = .FirstOrDefault(s => s.Channel ==
&& s.MessageName == DBCParse.MsgDatabase[][].msg_name
&& s.SignalName == DBCParse.MsgDatabase[][].signal_Name[]);
try
{
if (find is null)
{
.Add(new()
{
Channel = ,
MessageName = DBCParse.MsgDatabase[][].msg_name,
SignalName = DBCParse.MsgDatabase[][].signal_Name[],
CatchID = Guid.NewGuid(),
LogInterval = TimeSpan.FromMilliseconds(),
MessageID = DBCParse.MsgDatabase[][].msg_id
});
}
else
{
find.LogInterval = TimeSpan.FromMilliseconds();
}
}
catch (Exception)
{
throw;
}
finally
{
}
}
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
var cbb = sender as ComboBox;
if (cbb.SelectedIndex < 0) return;
= DBCParse.MsgDatabase[][cbb.SelectedIndex].signal_Name.ToList();
= 0;
}
catch (Exception)
{
}
}
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
if (.SelectedIndex < 0) return;
.RemoveAt(.SelectedIndex);
}
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (sender is not TextBox o) return;
int temp = 0;
try
{
temp = Convert.ToInt32(o.Text);
= 0;
}
catch (Exception)
{
}
= [.. DBCParse.MsgDatabase[temp].Select(s => $"[0x{s.msg_id:X}]{s.msg_name}")];
}
}
}