Commit 28f22f09 by 鲁志-悦动

Replay缓存500帧

parent 65e3f0c0
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace XamlGeneratedNamespace {
/// <summary>
/// GeneratedInternalTypeHelper
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
public sealed class GeneratedInternalTypeHelper : System.Windows.Markup.InternalTypeHelper {
/// <summary>
/// CreateInstance
/// </summary>
protected override object CreateInstance(System.Type type, System.Globalization.CultureInfo culture) {
return System.Activator.CreateInstance(type, ((System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic)
| (System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.CreateInstance)), null, null, culture);
}
/// <summary>
/// GetPropertyValue
/// </summary>
protected override object GetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object target, System.Globalization.CultureInfo culture) {
return propertyInfo.GetValue(target, System.Reflection.BindingFlags.Default, null, null, culture);
}
/// <summary>
/// SetPropertyValue
/// </summary>
protected override void SetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object target, object value, System.Globalization.CultureInfo culture) {
propertyInfo.SetValue(target, value, System.Reflection.BindingFlags.Default, null, null, culture);
}
/// <summary>
/// CreateDelegate
/// </summary>
protected override System.Delegate CreateDelegate(System.Type delegateType, object target, string handler) {
return ((System.Delegate)(target.GetType().InvokeMember("_CreateDelegate", (System.Reflection.BindingFlags.InvokeMethod
| (System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)), null, target, new object[] {
delegateType,
handler}, null)));
}
/// <summary>
/// AddEventHandler
/// </summary>
protected override void AddEventHandler(System.Reflection.EventInfo eventInfo, object target, System.Delegate handler) {
eventInfo.AddEventHandler(target, handler);
}
}
}

......@@ -10,11 +10,11 @@ none
false
2-725104376
21870986562
3947974750
17-1462717611
31364711570
17-1683084370
Themes\Generic.xaml;Widgets\FootballFieldPanel\FootballFieldPanel.xaml;
True
False
......@@ -68,7 +68,7 @@ namespace VIZ.FGOUT.Module
//ChangeStrategyContext context = new ChangeStrategyContext();
//context.IsUseClip = this.focusNDIViewModel.IsUseClip;
//context.Mode = AlgorithmStrategyMode.auto_mode;
//context.IsNeedRestart = false;
//context.IsNeedRestart = false;
//context.TriggerScene = NDIViewScene.SpaceHotkey;
//this.focusNDIViewModel.ChangeStrategyMode(context);
......@@ -109,13 +109,13 @@ namespace VIZ.FGOUT.Module
// return;
}
/// <summary>
/// <summary>
/// 处理自动裁切
/// </summary>
/// <param name="hotkey">热键</param>
/// </summary> <param name="hotkey">热键</param>
/// <returns>是否完成处理</returns>
private bool ExecuteAuto(string hotkey)
private bool ExecuteAuto(string hotkey)
{
//INDIViewService service = null;
//if (ApplicationDomainEx.LiteDbContext.SetManualConfig.FindAll().FirstOrDefault().IsManual) return false;
......@@ -147,13 +147,11 @@ namespace VIZ.FGOUT.Module
UdpEndpointManager manager = ConnectionManager.UdpConnection.GetEndpointManager(NDIViewKeys.CAM_1);
AlgorithmPackage__MatCmd algorithmPackage__MatCmd = new AlgorithmPackage__MatCmd();
algorithmPackage__MatCmd.mode = AlgorithmPackageSignal.manual_mode;
algorithmPackage__MatCmd.signal = AlgorithmPackageSignal.matt_end;
log.Info(hotkey+"发送结束命令:" + algorithmPackage__MatCmd.mode+""+algorithmPackage__MatCmd.signal);
log.Info(hotkey + "发送结束命令:" + algorithmPackage__MatCmd.mode + "" + algorithmPackage__MatCmd.signal);
AlgorithmSender.MatImageCmd(manager, algorithmPackage__MatCmd);
}
//if (string.Equals(this.Support.HotkeyConfig.AutoCAM3, hotkey))
......
......@@ -492,8 +492,8 @@ namespace VIZ.FGOUT.Module
public VCommand UESettingCommand { get; set; }
private void UESetting()
{
UESettingModel ueSettingModel = new UESettingModel();
ApplicationDomainEx.MessageManager.Send(ueSettingModel);
var ueSettingModel = new UESettingModel();
ApplicationDomain.MessageManager.Send(ueSettingModel);
}
#endregion
......@@ -518,7 +518,7 @@ namespace VIZ.FGOUT.Module
/// </summary>
private void Exit()
{
UdpEndpointManager manager = ConnectionManager.UdpConnection.GetEndpointManager(NDIViewKeys.CAM_1);
var manager = ConnectionManager.UdpConnection.GetEndpointManager(NDIViewKeys.CAM_1);
if (manager == null) return;
//manager.SendJson(new AlgorithmPackage_Figout_model(){signal = AlgorithmPackageSignal.EXIT});
manager.SendJson(new AlgorithmPackage_Figout_model() { signal = AlgorithmPackageSignal.GO_ON });
......@@ -530,7 +530,7 @@ namespace VIZ.FGOUT.Module
/// </summary>
private void Holdon()
{
UdpEndpointManager manager = ConnectionManager.UdpConnection.GetEndpointManager(NDIViewKeys.CAM_1);
var manager = ConnectionManager.UdpConnection.GetEndpointManager(NDIViewKeys.CAM_1);
if (manager == null) return;
manager.SendJson(new AlgorithmPackage_Figout_model() { signal = AlgorithmPackageSignal.HOLD_ON });
}
......@@ -539,7 +539,7 @@ namespace VIZ.FGOUT.Module
private void MattStart()
{
UdpEndpointManager manager = ConnectionManager.UdpConnection.GetEndpointManager(NDIViewKeys.CAM_1);
var manager = ConnectionManager.UdpConnection.GetEndpointManager(NDIViewKeys.CAM_1);
if (manager == null) return;
var mode = AlgorithmPackageSignal.manual_mode;
if(isAutoEnable)
......@@ -550,7 +550,7 @@ namespace VIZ.FGOUT.Module
private void MattEnd()
{
UdpEndpointManager manager = ConnectionManager.UdpConnection.GetEndpointManager(NDIViewKeys.CAM_1);
var manager = ConnectionManager.UdpConnection.GetEndpointManager(NDIViewKeys.CAM_1);
if (manager == null) return;
var mode = AlgorithmPackageSignal.manual_mode;
if (isAutoEnable)
......@@ -583,7 +583,7 @@ namespace VIZ.FGOUT.Module
if (_initialValue != SliderValue)
{
_initialValue = SliderValue;
ReplayModel replayModel = new ReplayModel() { IsReplay = true, IsSliderValueChanged = true, SliderValue = SliderValue };
var replayModel = new ReplayModel() { IsReplay = true, IsSliderValueChanged = true, SliderValue = SliderValue };
ApplicationDomain.MessageManager.Send(replayModel);
}
}
......@@ -606,10 +606,10 @@ namespace VIZ.FGOUT.Module
ReplaySendVisibility = Visibility.Visible;
SliderVisibility = Visibility.Visible;
SliderValue = SliderMaxValue;
ReplayModel replayModel = new ReplayModel() { IsReplay = true };
var replayModel = new ReplayModel() { IsReplay = true };
ApplicationDomain.MessageManager.Send(replayModel);
UdpEndpointManager manager = ConnectionManager.UdpConnection.GetEndpointManager(NDIViewKeys.CAM_1__CLIP);
var manager = ConnectionManager.UdpConnection.GetEndpointManager(NDIViewKeys.CAM_1__CLIP);
if (manager == null) return;
var replayPackage = new ReplayPackage()
......@@ -624,11 +624,21 @@ namespace VIZ.FGOUT.Module
{
ReplaySendVisibility = Visibility.Hidden;
SliderVisibility = Visibility.Hidden;
ReplayModel replayModel = new ReplayModel() { IsReplay = false };
var replayModel = new ReplayModel() { IsReplay = false };
ApplicationDomain.MessageManager.Send(replayModel);
_initialValue = SliderMaxValue;
StartTime = 0;
EndTime = 0;
var manager = ConnectionManager.UdpConnection.GetEndpointManager(NDIViewKeys.CAM_1__CLIP);
if (manager == null) return;
var replayPackage = new ReplayPackage()
{
type = ClipPackageSignal.REPLAY,
status = ReplayStatus.Stop
};
manager.SendJson(replayPackage);
}
#endregion
......@@ -668,25 +678,31 @@ namespace VIZ.FGOUT.Module
return;
}
UdpEndpointManager manager = ConnectionManager.UdpConnection.GetEndpointManager(NDIViewKeys.CAM_1__CLIP);
var manager = ConnectionManager.UdpConnection.GetEndpointManager(NDIViewKeys.CAM_1__CLIP);
if (manager == null) return;
ReplayPackage replayPackage = new ReplayPackage();
replayPackage.type = ClipPackageSignal.REPLAY;
replayPackage.start_time = StartTime;
replayPackage.end_time = EndTime;
replayPackage.status = ReplayStatus.ReStart;
var replayPackage = new ReplayPackage()
{
type = ClipPackageSignal.REPLAY,
start_time = StartTime,
end_time = EndTime,
status = ReplayStatus.ReStart
};
manager.SendJson(replayPackage);
MessageBoxEx.ShowDialog("Replay Restart OK.");
}
private void ReplayStop()
{
UdpEndpointManager manager = ConnectionManager.UdpConnection.GetEndpointManager(NDIViewKeys.CAM_1__CLIP);
var manager = ConnectionManager.UdpConnection.GetEndpointManager(NDIViewKeys.CAM_1__CLIP);
if (manager == null) return;
ReplayPackage replayPackage = new ReplayPackage();
replayPackage.type = ClipPackageSignal.REPLAY;
replayPackage.status = ReplayStatus.Stop;
var replayPackage = new ReplayPackage()
{
type = ClipPackageSignal.REPLAY,
status = ReplayStatus.Stop
};
manager.SendJson(replayPackage);
MessageBoxEx.ShowDialog("Replay Stop OK.");
ReplayIsChecked = false;
......@@ -1128,7 +1144,7 @@ namespace VIZ.FGOUT.Module
set { _sliderValue2 = value; this.RaisePropertyChanged(nameof(SliderValue2)); }
}
private int _sliderMaxValue = 150;
private int _sliderMaxValue = 500;
public int SliderMaxValue
{
get => (int)_sliderMaxValue;
......
......@@ -549,7 +549,7 @@ namespace VIZ.FGOUT.Module
_algorithmMessage = package == null ? string.Empty : JsonConvert.SerializeObject(package, JSON_SERIALIZER_SETTINGS);
//如果体育项目没有更改,向算法发送参数,此时算法不重启
//如果体育项目没有更改,向算法发送参数,此时算法不重启
if (_initItem == (PresetsItem ?? string.Empty))
manager.SendJson(package);
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VIZ.FGOUT.Storage;
using VIZ.FGOUT.Storage;
namespace VIZ.FGOUT.Module
{
......
......@@ -19,7 +19,7 @@ namespace VIZ.FGOUT.Module
/// </summary>
public partial class NDIViewModel
{
private readonly FrameBuffer _frameBuffer = new FrameBuffer(TimeSpan.FromSeconds(1));
private readonly FrameBuffer _frameBuffer = new FrameBuffer(TimeSpan.FromSeconds(10));
/// <summary>
/// 重置3D鼠标
......@@ -67,11 +67,11 @@ namespace VIZ.FGOUT.Module
/// </summary>
private void UpdateClipBoxWithManualAndCenter()
{
NDIView view = this.GetView<NDIView>();
var view = this.GetView<NDIView>();
if (view == null)
return;
VideoRenderInfo renderInfo = view.video.GetRenderInfo();
var renderInfo = view.video.GetRenderInfo();
if (renderInfo == null || !this.IsUseClip)
{
view.video.ClearClipBox();
......@@ -86,7 +86,7 @@ namespace VIZ.FGOUT.Module
this.ClipBoxX = this.ManualController.GetCalculationValue(0d, renderInfo.Frame.Width - ApplicationDomainEx.VIDEO_CLIP_BOX_WIDTH);
ClipBoxInfo clipBox = new ClipBoxInfo();
var clipBox = new ClipBoxInfo();
clipBox.DrawingBorderWidth = this.CLIP_BOX_BORDER_WIDTH;
clipBox.SrcRect = new RawRectangleF((float)(this.ClipBoxX), 0, (float)(this.ClipBoxX) + (float)ApplicationDomainEx.VIDEO_CLIP_BOX_WIDTH, renderInfo.Frame.Height);
if (this.StrategyMode == AlgorithmStrategyMode.manual_mode)
......@@ -118,9 +118,9 @@ namespace VIZ.FGOUT.Module
private static DataStream DeepCloneDataStream(DataStream originalStream)
{
// 创建新的 DataStream 对象
DataStream clonedStream = new DataStream((int)originalStream.Length, true, true);
var clonedStream = new DataStream((int)originalStream.Length, true, true);
// 读取原始数据并写入到新的 DataStream 对象
byte[] buffer = new byte[originalStream.Length];
var buffer = new byte[originalStream.Length];
originalStream.Read(buffer, 0, buffer.Length);
originalStream.Position = 0;
clonedStream.Write(buffer, 0, buffer.Length);
......@@ -132,9 +132,9 @@ namespace VIZ.FGOUT.Module
private static DataStream DeepCloneLowDataStream(DataStream originalStream)
{
// 创建新的 DataStream 对象
DataStream clonedStream = new DataStream((int)originalStream.Length, true, true);
var clonedStream = new DataStream((int)originalStream.Length, true, true);
// 读取原始数据并写入到新的 DataStream 对象
byte[] buffer = new byte[originalStream.Length];
var buffer = new byte[originalStream.Length];
originalStream.Read(buffer, 0, buffer.Length);
originalStream.Position = 0;
clonedStream.Write(buffer, 0, buffer.Length);
......@@ -148,7 +148,7 @@ namespace VIZ.FGOUT.Module
/// </summary>
private void NDIStream_ExecuteVideoFrame(object sender, VideoFrameEventArgs e)
{
NDIView view = this.GetView<NDIView>();
var view = this.GetView<NDIView>();
if (view == null)
return;
......@@ -157,28 +157,47 @@ namespace VIZ.FGOUT.Module
{
if (view.vm.IsSliderValueChanged)
{
Queue<Mat> buffer = _frameBuffer.GetFrames();
Queue<MatExtend> buffer = _frameBuffer.GetFrames();
//Queue<Mat> buffer = _frameBuffer.GetFrames();
//Queue<DataStreamExtend> buffer = _frameBuffer.GetFrames();
if (buffer.Count > 0)
{
var index = view.vm.SliderValue;
if (index >= 150) index = 149;
//if (index >= 150) index = 149;
if (index >= 500) index = 499;
if ((buffer.Count - 1) >= index)
{
var dse = buffer.ElementAt(index);
//缓存策略2
//将低分辨率的Mat对象转换为DataStream
byte[] lowResolutionData = new byte[dse.Width * dse.Height * 4];
//byte[] lowResolutionData = new byte[dse.Width * dse.Height * 4];
//var newLength = lowResolutionData.Length;
//Marshal.Copy(dse.Data, lowResolutionData, 0, newLength);
//DataStreamExtend dsExtend = new DataStreamExtend();
//dsExtend.DataStream = new DataStream((int)newLength, true, true);
//dsExtend.DataStream.Write(lowResolutionData, 0, newLength);
//dsExtend.DataStream.Position = 0;
//dsExtend.Width = dse.Width;
//dsExtend.Height = dse.Height;
//dsExtend.Length = newLength;
//之前的逻辑好奇怪,时间戳也要保存到队列的,不能用当前的时间戳
//dsExtend.TimeStamp = NDIViewModel.ReplayTimeStamp = e.Frame.TimeStamp;
var lowResolutionData = new byte[dse.Mat.Width * dse.Mat.Height * 4];
var newLength = lowResolutionData.Length;
Marshal.Copy(dse.Data, lowResolutionData, 0, newLength);
DataStreamExtend dsExtend = new DataStreamExtend();
dsExtend.DataStream = new DataStream((int)newLength, true, true);
Marshal.Copy(dse.Mat.Data, lowResolutionData, 0, newLength);
var dsExtend = new DataStreamExtend()
{
DataStream = new DataStream((int)newLength, true, true),
Width = dse.Mat.Width,
Height = dse.Mat.Height,
Length = newLength,
TimeStamp = NDIViewModel.ReplayTimeStamp = dse.TimeStamp
};
dsExtend.DataStream.Write(lowResolutionData, 0, newLength);
dsExtend.DataStream.Position = 0;
dsExtend.Width = dse.Width;
dsExtend.Height = dse.Height;
dsExtend.Length = newLength;
dsExtend.TimeStamp = NDIViewModel.ReplayTimeStamp = e.Frame.TimeStamp;
// 更新画面
view.video.UpdateVideoFrame(dsExtend, true);
//view.video.UpdateVideoFrame(dse, true);
......@@ -204,7 +223,10 @@ namespace VIZ.FGOUT.Module
var resizedFrame = new Mat();
//Cv2.Resize(mat, resizedFrame, new Size(mat.Width / 4 , mat.Height / 4));
Cv2.Resize(mat, resizedFrame, new Size(mat.Width, mat.Height));
_frameBuffer.AddFrame(resizedFrame);
//时间戳获取
timecode = e.Frame.TimeStamp;
//_frameBuffer.AddFrame(resizedFrame);
_frameBuffer.AddFrame(new MatExtend(){ Mat = resizedFrame, TimeStamp = timecode });
// 释放视频帧资源
mat.Dispose();
......@@ -215,8 +237,8 @@ namespace VIZ.FGOUT.Module
//var t2 = DateTime.Now;
//var minus = (t2 - t1).TotalMilliseconds;
//时间戳获取
timecode = e.Frame.TimeStamp;
////时间戳获取
//timecode = e.Frame.TimeStamp;
// 更新画面 4K流优化
//var mat2 = new Mat(e.Frame.Height, e.Frame.Width, MatType.CV_8UC4, e.Frame.DataStream.DataPointer);
......@@ -280,7 +302,33 @@ namespace VIZ.FGOUT.Module
public class FrameBuffer
{
private Queue<Mat> buffer;
//private Queue<Mat> buffer;
//private int bufferSize;
//private TimeSpan bufferDuration;
//public FrameBuffer(TimeSpan duration)
//{
// bufferDuration = duration;
// //bufferSize = (int)(duration.TotalMilliseconds / TimeSpan.FromSeconds(0.1).TotalMilliseconds);
// bufferSize = duration.Seconds * 50;
// buffer = new Queue<Mat>(bufferSize);
//}
//public void AddFrame(Mat frame)
//{
// buffer.Enqueue(frame);
// // 如果缓冲区超过容量,则移除最旧的帧
// //if (buffer.Count > bufferSize)
// if (buffer.Count > 500)
// buffer.Dequeue();
//}
//public Queue<Mat> GetFrames()
//{
// return buffer;
//}
private Queue<MatExtend> buffer;
private int bufferSize;
private TimeSpan bufferDuration;
......@@ -289,24 +337,30 @@ namespace VIZ.FGOUT.Module
bufferDuration = duration;
//bufferSize = (int)(duration.TotalMilliseconds / TimeSpan.FromSeconds(0.1).TotalMilliseconds);
bufferSize = duration.Seconds * 50;
buffer = new Queue<Mat>(bufferSize);
buffer = new Queue<MatExtend>(bufferSize);
}
public void AddFrame(Mat frame)
public void AddFrame(MatExtend frame)
{
buffer.Enqueue(frame);
// 如果缓冲区超过容量,则移除最旧的帧
//if (buffer.Count > bufferSize)
if (buffer.Count > 150)
if (buffer.Count > 500)
buffer.Dequeue();
}
public Queue<Mat> GetFrames()
public Queue<MatExtend> GetFrames()
{
return buffer;
}
}
public class MatExtend
{
public Mat Mat { get; set; }
public long TimeStamp { get; set; }
}
//public class FrameBuffer
//{
// private Queue<DataStreamExtend> buffer;
......
<UserControl x:Class="VIZ.FGOUT.Module.HotkeySettingPanelView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:VIZ.FGOUT.Module"
xmlns:fcommon="clr-namespace:VIZ.Framework.Common;assembly=VIZ.Framework.Common"
xmlns:behaviors="http://schemas.microsoft.com/xaml/behaviors"
d:DataContext="{d:DesignInstance Type=local:HotkeySettingPanelViewModel}"
mc:Ignorable="d"
d:DesignHeight="900" d:DesignWidth="800">
<UserControl
x:Class="VIZ.FGOUT.Module.HotkeySettingPanelView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:behaviors="http://schemas.microsoft.com/xaml/behaviors"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:fcommon="clr-namespace:VIZ.Framework.Common;assembly=VIZ.Framework.Common"
xmlns:local="clr-namespace:VIZ.FGOUT.Module"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
d:DataContext="{d:DesignInstance Type=local:HotkeySettingPanelViewModel}"
d:DesignHeight="900"
d:DesignWidth="800"
mc:Ignorable="d">
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/VIZ.FGOUT.Module.Resource;component/Style/HotkeyBox/HotkeyBox_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.FGOUT.Module.Resource;component/Style/HotkeyBox/HotkeyBox_Setting.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
......@@ -32,44 +34,71 @@
<Grid Margin="45,60,40,0">
<Grid.RowDefinitions>
<RowDefinition Height="50"></RowDefinition>
<RowDefinition Height="100"></RowDefinition>
<RowDefinition Height="50" />
<RowDefinition Height="100" />
</Grid.RowDefinitions>
<!-- 算法裁切快捷键 -->
<TextBlock Text="算法裁切快捷键" Foreground="#AAFFFFFF" FontSize="20" VerticalAlignment="Center"></TextBlock>
<Rectangle Height="1" VerticalAlignment="Bottom" Fill="#ff3d4758"></Rectangle>
<!-- 算法裁切快捷键 -->
<TextBlock
VerticalAlignment="Center"
FontSize="20"
Foreground="#AAFFFFFF"
Text="算法裁切快捷键" />
<Rectangle
Height="1"
VerticalAlignment="Bottom"
Fill="#ff3d4758" />
<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height="50"></RowDefinition>
<RowDefinition Height="50"></RowDefinition>
<RowDefinition Height="50" />
<RowDefinition Height="50" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="120"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="120" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="120" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<!-- CAM 1 -->
<TextBlock Text="开始" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="0"></TextBlock>
<fcommon:HotkeyBox Grid.Column="1" Hotkey="{Binding Path=StartCmd,Mode=TwoWay}" Height="30"
Style="{StaticResource HotkeyBox_Setting}" Margin="0,0,20,0"></fcommon:HotkeyBox>
<!-- CAM 2 -->
<TextBlock Text="结束" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="0" Grid.Column="2"></TextBlock>
<fcommon:HotkeyBox Grid.Column="3" Hotkey="{Binding Path=EndCmd,Mode=TwoWay}" Height="30" Grid.Row="0"
Style="{StaticResource HotkeyBox_Setting}" Margin="0,0,20,0"></fcommon:HotkeyBox>
<!-- CAM 3 --><!--
<TextBlock Text="CAM 3" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="1"></TextBlock>
<fcommon:HotkeyBox Grid.Column="1" Hotkey="{Binding Path=AutoCAM3,Mode=TwoWay}" Height="30" Grid.Row="1"
Style="{StaticResource HotkeyBox_Setting}" Margin="0,0,20,0"></fcommon:HotkeyBox>
--><!-- CAM 4 --><!--
<TextBlock Text="CAM 4" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="1" Grid.Column="2"></TextBlock>
<fcommon:HotkeyBox Grid.Column="3" Hotkey="{Binding Path=AutoCAM4,Mode=TwoWay}" Height="30" Grid.Row="1"
<!-- 开始 -->
<TextBlock
Grid.Row="0"
VerticalAlignment="Center"
FontSize="18"
Foreground="White"
Text="开始" />
<fcommon:HotkeyBox
Grid.Column="1"
Height="30"
Margin="0,0,20,0"
Hotkey="{Binding Path=StartCmd, Mode=TwoWay}"
Style="{StaticResource HotkeyBox_Setting}" />
<!-- 结束 -->
<TextBlock
Grid.Row="0"
Grid.Column="2"
VerticalAlignment="Center"
FontSize="18"
Foreground="White"
Text="结束" />
<fcommon:HotkeyBox
Grid.Row="0"
Grid.Column="3"
Height="30"
Margin="0,0,20,0"
Hotkey="{Binding Path=EndCmd, Mode=TwoWay}"
Style="{StaticResource HotkeyBox_Setting}" />
<!-- CAM 3 -->
<!--<TextBlock Text="CAM 3" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="1"></TextBlock>
<fcommon:HotkeyBox Grid.Column="1" Hotkey="{Binding Path=AutoCAM3,Mode=TwoWay}" Height="30" Grid.Row="1"
Style="{StaticResource HotkeyBox_Setting}" Margin="0,0,20,0"></fcommon:HotkeyBox>-->
<!-- CAM 4 -->
<!--<TextBlock Text="CAM 4" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="1" Grid.Column="2"></TextBlock>
<fcommon:HotkeyBox Grid.Column="3" Hotkey="{Binding Path=AutoCAM4,Mode=TwoWay}" Height="30" Grid.Row="1"
Style="{StaticResource HotkeyBox_Setting}" Margin="0,0,20,0"></fcommon:HotkeyBox>-->
</Grid>
</Grid>
......
#pragma checksum "..\..\..\..\..\SystemSetting\View\HotkeySettingPanelView.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "D888E13A2AE8413D64E24A715440AAAAAC9E21EEF16284F196352B1C8816F9B3"
#pragma checksum "..\..\..\..\..\SystemSetting\View\HotkeySettingPanelView.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "6C3CAB4B3207BC7F539B9E8EEAEEEE5EE4618DC17FD6B1E0BFFCB953F424888F"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
......
#pragma checksum "..\..\..\..\..\SystemSetting\View\HotkeySettingPanelView.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "D888E13A2AE8413D64E24A715440AAAAAC9E21EEF16284F196352B1C8816F9B3"
#pragma checksum "..\..\..\..\..\SystemSetting\View\HotkeySettingPanelView.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "6C3CAB4B3207BC7F539B9E8EEAEEEE5EE4618DC17FD6B1E0BFFCB953F424888F"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
......
C:\Projects\FGOUT\VIZ.FGOUT\VIZ.FGOUT.Module\obj\x64\Debug\GeneratedInternalTypeHelper.g.cs

FC:\Projects\FGOUT\VIZ.FGOUT\VIZ.FGOUT.Module\NDIMainView\View\NDIMainView.xaml;;
FC:\Projects\FGOUT\VIZ.FGOUT\VIZ.FGOUT.Module\NDIPreviewView\View\NDIPreviewView.xaml;;
......
This source diff could not be displayed because it is too large. You can view the blob instead.
2023-12-11 10:35:08,765 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-11 10:35:09,003 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-11 10:35:09,148 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + A
2023-12-11 11:56:25,671 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-11 11:56:25,990 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-11 11:56:26,111 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + A
2023-12-11 14:12:13,481 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-11 14:12:13,506 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-11 14:12:13,667 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-11 14:12:13,693 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 14:24:02,604 [1] INFO VIZ.Framework.Connection.UdpEndpointManagerExpand - 发送UDPJosn串:{"type":"REPLAY","start_time":0,"end_time":0,"status":1}
2023-12-13 14:24:53,116 [1] INFO VIZ.Framework.Connection.UdpEndpointManagerExpand - 发送UDPJosn串:{"type":"REPLAY","start_time":0,"end_time":0,"status":1}
2023-12-13 14:25:43,455 [1] INFO VIZ.Framework.Connection.UdpEndpointManagerExpand - 发送UDPJosn串:{"type":"REPLAY","start_time":0,"end_time":0,"status":1}
2023-12-13 14:46:25,724 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 14:46:34,054 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 14:46:34,231 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:L
2023-12-13 14:49:48,733 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 14:50:28,121 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 14:50:28,623 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-13 14:50:28,673 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-13 14:50:28,700 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-13 14:50:28,725 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + C
2023-12-13 14:50:29,252 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + F
2023-12-13 14:51:06,721 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 14:51:42,922 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:D0
2023-12-13 14:51:44,299 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 14:51:44,489 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + S
2023-12-13 15:00:06,520 [1] INFO VIZ.Framework.Connection.UdpEndpointManagerExpand - 发送UDPJosn串:{"type":"REPLAY","start_time":0,"end_time":0,"status":1}
2023-12-13 16:26:18,638 [1] INFO VIZ.Framework.Connection.UdpEndpointManagerExpand - 发送UDPJosn串:{"type":"REPLAY","start_time":0,"end_time":0,"status":1}
2023-12-13 16:26:43,434 [1] INFO VIZ.Framework.Connection.UdpEndpointManagerExpand - 发送UDPJosn串:{"type":"REPLAY","start_time":0,"end_time":0,"status":0}
2023-12-13 16:27:13,388 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 16:27:13,983 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 16:27:14,245 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + S
2023-12-13 16:32:25,357 [1] INFO VIZ.Framework.Connection.UdpEndpointManagerExpand - 发送UDPJosn串:{"type":"REPLAY","start_time":0,"end_time":0,"status":1}
2023-12-13 16:33:05,348 [1] INFO VIZ.Framework.Connection.UdpEndpointManagerExpand - 发送UDPJosn串:{"type":"REPLAY","start_time":0,"end_time":0,"status":0}
2023-12-13 17:46:27,255 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:S
2023-12-13 17:46:48,657 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:47:05,828 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Delete
2023-12-13 17:47:22,744 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:47:30,460 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:47:46,355 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:48:09,750 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:48:21,463 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:49:08,077 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:49:08,419 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:49:09,802 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:49:10,215 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + S
2023-12-13 17:49:25,956 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:49:27,329 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:49:28,082 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:49:28,992 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:49:31,336 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:49:31,554 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:49:31,829 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:49:32,737 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:49:33,204 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + S
2023-12-13 17:49:35,364 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:49:40,429 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:50:56,701 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:50:58,219 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:50:58,419 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + S
2023-12-13 17:51:05,414 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:51:08,097 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:51:14,873 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:51:15,401 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-13 17:51:15,426 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-13 17:51:15,449 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-13 17:51:15,475 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-13 17:51:15,499 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-13 17:51:15,546 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-13 17:51:15,596 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-13 17:51:15,621 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-13 17:51:15,647 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-13 17:51:15,672 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-13 17:51:15,697 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-13 17:51:15,721 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + K
2023-12-13 17:51:15,845 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + F
2023-12-13 17:51:16,523 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:51:16,692 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + S
2023-12-13 17:51:23,632 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:52:36,625 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:52:37,139 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-13 17:52:37,162 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-13 17:52:37,186 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + C
2023-12-13 17:52:37,663 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + N
2023-12-13 17:52:54,350 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:52:54,687 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + N
2023-12-13 17:53:27,862 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:54:30,254 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:54:30,735 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-13 17:54:30,760 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + S
2023-12-13 17:58:15,594 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:58:15,919 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:58:20,550 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:58:20,902 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + C
2023-12-13 17:58:22,531 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:58:22,729 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:58:22,874 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + V
2023-12-13 17:58:27,239 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:58:27,334 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Shift + S
2023-12-13 17:58:28,848 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:P
2023-12-13 17:58:29,316 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:A
2023-12-13 17:58:29,599 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:C
2023-12-13 17:58:30,028 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:E
2023-12-13 17:58:32,896 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:58:33,015 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:58:33,865 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:58:34,287 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:S
2023-12-13 17:58:35,013 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:P
2023-12-13 17:58:35,251 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:A
2023-12-13 17:58:35,647 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:58:39,440 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:58:39,632 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + S
2023-12-13 17:59:02,469 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 17:59:02,735 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + S
2023-12-13 17:59:29,187 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Space
2023-12-13 17:59:48,321 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 18:02:13,346 [1] INFO VIZ.Framework.Connection.UdpEndpointManagerExpand - 发送UDPJosn串:{"mode":"manual","signal":"matt_start","timecode":0}
2023-12-13 18:02:15,038 [1] INFO VIZ.Framework.Connection.UdpEndpointManagerExpand - 发送UDPJosn串:{"mode":"manual","signal":"matt_end","timecode":0}
2023-12-13 18:02:16,203 [1] INFO VIZ.Framework.Connection.UdpEndpointManagerExpand - 发送UDPJosn串:{"mode":"manual","signal":"matt_start","timecode":0}
2023-12-13 18:02:17,240 [1] INFO VIZ.Framework.Connection.UdpEndpointManagerExpand - 发送UDPJosn串:{"mode":"manual","signal":"matt_end","timecode":0}
2023-12-13 18:02:18,386 [1] INFO VIZ.Framework.Connection.UdpEndpointManagerExpand - 发送UDPJosn串:{"mode":"manual","signal":"matt_start","timecode":0}
2023-12-13 18:03:21,220 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 18:03:21,291 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + C
2023-12-13 18:03:21,552 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + F
2023-12-13 18:03:25,374 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 18:03:25,516 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + N
2023-12-13 18:03:35,914 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 18:03:48,305 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 18:03:48,565 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + S
2023-12-13 18:04:43,726 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 18:04:43,876 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl +
2023-12-13 18:04:44,017 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + Alt + A
2023-12-13 18:04:59,071 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 18:04:59,256 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 18:04:59,567 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 18:04:59,662 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + V
2023-12-13 18:05:01,324 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 18:05:03,251 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:T
2023-12-13 18:05:03,627 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:O
2023-12-13 18:05:03,699 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:N
2023-12-13 18:05:03,745 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:G
2023-12-13 18:05:03,947 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:G
2023-12-13 18:05:04,063 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:U
2023-12-13 18:05:04,114 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:O
2023-12-13 18:05:04,257 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Space
2023-12-13 18:05:04,461 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:S
2023-12-13 18:05:04,533 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:H
2023-12-13 18:05:04,633 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:A
2023-12-13 18:05:04,705 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:N
2023-12-13 18:05:04,706 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:G
2023-12-13 18:05:04,960 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:X
2023-12-13 18:05:05,009 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:I
2023-12-13 18:05:05,106 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:A
2023-12-13 18:05:05,317 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:W
2023-12-13 18:05:05,439 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:E
2023-12-13 18:05:05,593 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:N
2023-12-13 18:05:05,850 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Space
2023-12-13 18:05:07,752 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:J
2023-12-13 18:05:07,872 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:I
2023-12-13 18:05:07,943 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:A
2023-12-13 18:05:08,016 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:N
2023-12-13 18:05:08,167 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:G
2023-12-13 18:05:08,719 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Space
2023-12-13 18:05:08,883 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:S
2023-12-13 18:05:08,955 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:H
2023-12-13 18:05:09,095 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:U
2023-12-13 18:05:09,329 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:J
2023-12-13 18:05:09,554 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Space
2023-12-13 18:05:10,459 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:C
2023-12-13 18:05:10,555 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:O
2023-12-13 18:05:10,626 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:N
2023-12-13 18:05:10,767 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:G
2023-12-13 18:05:11,555 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Space
2023-12-13 18:05:12,022 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:N
2023-12-13 18:05:12,145 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:E
2023-12-13 18:05:12,388 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:I
2023-12-13 18:05:12,746 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:B
2023-12-13 18:05:12,817 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:U
2023-12-13 18:05:12,983 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Space
2023-12-13 18:05:13,225 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:C
2023-12-13 18:05:13,277 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:H
2023-12-13 18:05:13,420 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:U
2023-12-13 18:05:13,469 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:A
2023-12-13 18:05:13,604 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:N
2023-12-13 18:05:13,823 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:C
2023-12-13 18:05:13,871 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:H
2023-12-13 18:05:14,015 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:U
2023-12-13 18:05:14,236 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:A
2023-12-13 18:05:14,308 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:L
2023-12-13 18:05:15,183 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Space
2023-12-13 18:05:24,940 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 18:05:25,108 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + C
2023-12-13 18:05:26,606 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Delete
2023-12-13 18:05:27,287 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 18:05:27,837 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 18:05:28,484 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 18:05:28,642 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:
2023-12-13 18:05:28,690 [1] INFO VIZ.FGOUT.Module.NDIMainViewModel - 快捷键:Ctrl + V
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text;
using System.Windows.Input;
namespace VIZ.Framework.Common
......@@ -115,7 +111,12 @@ namespace VIZ.Framework.Common
return sb.ToString();
}
// Space
if (e.KeyCode == System.Windows.Forms.Keys.Space)
{
sb.Append($"{e.KeyCode}");
return sb.ToString();
}
return sb.ToString();
}
......
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace VIZ.Framework.Core
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment