Commit 05838af8 by 鲁志-悦动

NDIViewModel和NDIMainViewModel通过消息传值 And 默认手动模式勾选时,无效位置按钮可用,并且在任何模式下都显示无效区域

parent d22b021e
...@@ -20,6 +20,8 @@ ...@@ -20,6 +20,8 @@
///// </summary> ///// </summary>
public const string CAM_3 = "CAM_3"; public const string CAM_3 = "CAM_3";
public const string cam3 = "cam3";
///// <summary> ///// <summary>
///// CAM 4 ///// CAM 4
///// </summary> ///// </summary>
......
namespace VIZ.FGOUT.Domain
{
public class ReplayEndValueModel
{
public int ReplayEndValue { get; set; }
}
}
namespace VIZ.FGOUT.Domain
{
public class ReplayStartValueModel
{
public int ReplayStartValue { get; set; }
}
}
namespace VIZ.FGOUT.Domain.Message.Setting
{
public class ReplayValueModel
{
public int ReplayStartValue { get; set; }
public int ReplayEndValue { get; set; }
}
}
namespace VIZ.FGOUT.Domain
{
public class ShowInvalidPlaceModel
{
}
}
...@@ -91,14 +91,18 @@ ...@@ -91,14 +91,18 @@
<Compile Include="Message\Setting\ReconfirmAutoSendIntervalTimeModel.cs" /> <Compile Include="Message\Setting\ReconfirmAutoSendIntervalTimeModel.cs" />
<Compile Include="Message\Setting\ReconfirmSendModel.cs" /> <Compile Include="Message\Setting\ReconfirmSendModel.cs" />
<Compile Include="Message\Setting\RefreshPositionModel.cs" /> <Compile Include="Message\Setting\RefreshPositionModel.cs" />
<Compile Include="Message\Setting\ReplayEndValueModel.cs" />
<Compile Include="Message\Setting\ReplayInPortModel.cs" /> <Compile Include="Message\Setting\ReplayInPortModel.cs" />
<Compile Include="Message\Setting\ReplayModel.cs" /> <Compile Include="Message\Setting\ReplayModel.cs" />
<Compile Include="Message\Setting\ReplayOutPointModel.cs" /> <Compile Include="Message\Setting\ReplayOutPointModel.cs" />
<Compile Include="Message\Setting\ReplayStartModel.cs" /> <Compile Include="Message\Setting\ReplayStartModel.cs" />
<Compile Include="Message\Setting\ReplayStartValueModel.cs" />
<Compile Include="Message\Setting\ReplayValueModel.cs" />
<Compile Include="Message\Setting\RestartAlgorithmModel.cs" /> <Compile Include="Message\Setting\RestartAlgorithmModel.cs" />
<Compile Include="Message\Setting\SaveMarkModel.cs" /> <Compile Include="Message\Setting\SaveMarkModel.cs" />
<Compile Include="Message\Setting\SavePlaceModel.cs" /> <Compile Include="Message\Setting\SavePlaceModel.cs" />
<Compile Include="Message\Setting\SendPlaceModel.cs" /> <Compile Include="Message\Setting\SendPlaceModel.cs" />
<Compile Include="Message\Setting\ShowInvalidPlaceModel.cs" />
<Compile Include="Message\Setting\StartPlaceModel.cs" /> <Compile Include="Message\Setting\StartPlaceModel.cs" />
<Compile Include="Message\Setting\StopAlgorithmModel.cs" /> <Compile Include="Message\Setting\StopAlgorithmModel.cs" />
<Compile Include="Message\Setting\UEControlModel.cs" /> <Compile Include="Message\Setting\UEControlModel.cs" />
......
3499a5f618af3dcba82fa90554564593ef66ce2b d3e4f59c122a03f90859987a8cf2800734b297bb
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
using log4net; using log4net;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics.Eventing.Reader;
using System.Linq; using System.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
...@@ -132,7 +131,26 @@ namespace VIZ.FGOUT.Module ...@@ -132,7 +131,26 @@ namespace VIZ.FGOUT.Module
/// </summary> /// </summary>
private void InitMessage() private void InitMessage()
{ {
//Replay入点值
ApplicationDomain.MessageManager.Register<ReplayStartValueModel>(this, this.ReplayStartValueFromNDIViewModel);
//Replay出点值
ApplicationDomain.MessageManager.Register<ReplayEndValueModel>(this, this.ReplayEndValueFromNDIViewModel);
}
int _sliderStartInitValue;
int _sliderEndInitValue;
private void ReplayStartValueFromNDIViewModel(ReplayStartValueModel vm)
{
_isReplayChecked = true;
SliderStartValue = _sliderStartInitValue = vm.ReplayStartValue;
_isReplayChecked = false;
}
private void ReplayEndValueFromNDIViewModel(ReplayEndValueModel vm)
{
_isReplayChecked = true;
SliderEndValue = _sliderEndInitValue = vm.ReplayEndValue;
_isReplayChecked = false;
} }
private SetManualConfig manualConfig; private SetManualConfig manualConfig;
...@@ -422,7 +440,7 @@ namespace VIZ.FGOUT.Module ...@@ -422,7 +440,7 @@ namespace VIZ.FGOUT.Module
private bool isAutoEnable = true; private bool isAutoEnable = true;
private bool _flagAutoValue = false; private bool _flagAutoValue;
public bool IsAutoEnable public bool IsAutoEnable
{ {
...@@ -431,6 +449,7 @@ namespace VIZ.FGOUT.Module ...@@ -431,6 +449,7 @@ namespace VIZ.FGOUT.Module
{ {
isAutoEnable = value; isAutoEnable = value;
RaisePropertyChanged(nameof(IsAutoEnable)); RaisePropertyChanged(nameof(IsAutoEnable));
//自动
if(value && !_flagAutoValue) if(value && !_flagAutoValue)
{ {
_flagAutoValue = true; _flagAutoValue = true;
...@@ -463,6 +482,7 @@ namespace VIZ.FGOUT.Module ...@@ -463,6 +482,7 @@ namespace VIZ.FGOUT.Module
{ {
isEnableTarget = value; isEnableTarget = value;
this.RaisePropertyChanged(nameof(IsEnableTarget)); this.RaisePropertyChanged(nameof(IsEnableTarget));
//手动
if(value && !_flagManualValue) if(value && !_flagManualValue)
{ {
_flagAutoValue = false; _flagAutoValue = false;
...@@ -473,13 +493,23 @@ namespace VIZ.FGOUT.Module ...@@ -473,13 +493,23 @@ namespace VIZ.FGOUT.Module
manualConfig.IsManual = true; manualConfig.IsManual = true;
ApplicationDomainEx.LiteDbContext.SetManualConfig.Upsert(manualConfig); ApplicationDomainEx.LiteDbContext.SetManualConfig.Upsert(manualConfig);
//CleanRect(); //CleanRect();
HidePlace(); //HidePlace();
ShowInvalidePlace();
PositionButtonDisEnable(); PositionButtonDisEnable();
} }
} }
} }
/// <summary> /// <summary>
/// 显示无效位置
/// </summary>
private void ShowInvalidePlace()
{
ShowInvalidPlaceModel showInvalidPlaceModel = new ShowInvalidPlaceModel();
ApplicationDomain.MessageManager.Send(showInvalidPlaceModel);
}
/// <summary>
/// 隐藏位置 /// 隐藏位置
/// </summary> /// </summary>
private void HidePlace() private void HidePlace()
...@@ -765,10 +795,10 @@ namespace VIZ.FGOUT.Module ...@@ -765,10 +795,10 @@ namespace VIZ.FGOUT.Module
managerAlgorithm.SendJson(replayPackage); managerAlgorithm.SendJson(replayPackage);
manager.SendJson(replayPackage); manager.SendJson(replayPackage);
_isReplayChecked = true; //_isReplayChecked = true;
SliderStartValue = NDIViewModel.SliderStartValue; //SliderStartValue = NDIViewModel.SliderStartValue;
SliderEndValue = NDIViewModel.SliderEndValue; //SliderEndValue = NDIViewModel.SliderEndValue;
_isReplayChecked = false; //_isReplayChecked = false;
} }
private void ReplayUnchecked() private void ReplayUnchecked()
...@@ -1451,7 +1481,7 @@ namespace VIZ.FGOUT.Module ...@@ -1451,7 +1481,7 @@ namespace VIZ.FGOUT.Module
set { _invalidIsChecked = value; this.RaisePropertyChanged(nameof(InvalidIsChecked)); } set { _invalidIsChecked = value; this.RaisePropertyChanged(nameof(InvalidIsChecked)); }
} }
private bool invalidEnable = false; private bool invalidEnable = true;
/// <summary> /// <summary>
/// 无效位置按钮可用性 /// 无效位置按钮可用性
/// </summary> /// </summary>
...@@ -1461,7 +1491,7 @@ namespace VIZ.FGOUT.Module ...@@ -1461,7 +1491,7 @@ namespace VIZ.FGOUT.Module
set { invalidEnable = value; this.RaisePropertyChanged(nameof(InvalidEnable)); } set { invalidEnable = value; this.RaisePropertyChanged(nameof(InvalidEnable)); }
} }
private bool cleanEnable = false; private bool cleanEnable = true;
/// <summary> /// <summary>
/// 清空位置按钮可用性 /// 清空位置按钮可用性
/// </summary> /// </summary>
...@@ -1471,7 +1501,7 @@ namespace VIZ.FGOUT.Module ...@@ -1471,7 +1501,7 @@ namespace VIZ.FGOUT.Module
set { cleanEnable = value; this.RaisePropertyChanged(nameof(CleanEnable)); } set { cleanEnable = value; this.RaisePropertyChanged(nameof(CleanEnable)); }
} }
private bool sendEnable = false; private bool sendEnable = true;
/// <summary> /// <summary>
/// 发送位置按钮可用性 /// 发送位置按钮可用性
/// </summary> /// </summary>
...@@ -1481,7 +1511,7 @@ namespace VIZ.FGOUT.Module ...@@ -1481,7 +1511,7 @@ namespace VIZ.FGOUT.Module
set { sendEnable = value; this.RaisePropertyChanged(nameof(SendEnable)); } set { sendEnable = value; this.RaisePropertyChanged(nameof(SendEnable)); }
} }
private bool saveEnable = false; private bool saveEnable = true;
/// <summary> /// <summary>
/// 保存位置按钮可用性 /// 保存位置按钮可用性
/// </summary> /// </summary>
...@@ -1784,12 +1814,14 @@ namespace VIZ.FGOUT.Module ...@@ -1784,12 +1814,14 @@ namespace VIZ.FGOUT.Module
{ {
if (context.hotkey.Equals(NDIMainViewHotkeys.Up)) if (context.hotkey.Equals(NDIMainViewHotkeys.Up))
{ {
SliderStartValue = NDIViewModel.SliderStartValue; //SliderStartValue = NDIViewModel.SliderStartValue;
SliderStartValue = _sliderStartInitValue;
_isDown = false; _isDown = false;
} }
else if (context.hotkey.Equals(NDIMainViewHotkeys.Down)) else if (context.hotkey.Equals(NDIMainViewHotkeys.Down))
{ {
SliderEndValue = NDIViewModel.SliderEndValue; //SliderEndValue = NDIViewModel.SliderEndValue;
SliderEndValue = _sliderEndInitValue;
_isDown = true; _isDown = true;
} }
else if (context.hotkey.Equals(NDIMainViewHotkeys.Left)) else if (context.hotkey.Equals(NDIMainViewHotkeys.Left))
......
...@@ -12,6 +12,7 @@ using VIZ.FGOUT.Storage; ...@@ -12,6 +12,7 @@ using VIZ.FGOUT.Storage;
using VIZ.Framework.Common; using VIZ.Framework.Common;
using VIZ.Framework.Connection; using VIZ.Framework.Connection;
using VIZ.Framework.Core; using VIZ.Framework.Core;
using VIZ.Framework.Domain;
namespace VIZ.FGOUT.Module namespace VIZ.FGOUT.Module
{ {
...@@ -195,7 +196,11 @@ namespace VIZ.FGOUT.Module ...@@ -195,7 +196,11 @@ namespace VIZ.FGOUT.Module
//else if(matExtend.TimeStamp == SliderEndTimeStamp) //else if(matExtend.TimeStamp == SliderEndTimeStamp)
// break; // break;
if (matExtend.TimeStamp == StartTime) if (matExtend.TimeStamp == StartTime)
SliderStartValue = index; {
//SliderStartValue = index;
var replayStartValueModel = new ReplayStartValueModel() { ReplayStartValue = index};
ApplicationDomain.MessageManager.Send(replayStartValueModel);
}
else if (matExtend.TimeStamp == EndTime) else if (matExtend.TimeStamp == EndTime)
break; break;
index++; index++;
...@@ -204,7 +209,9 @@ namespace VIZ.FGOUT.Module ...@@ -204,7 +209,9 @@ namespace VIZ.FGOUT.Module
//view.vm.SliderStartValue = index; //view.vm.SliderStartValue = index;
//view.vm.SliderEndValue = index; //view.vm.SliderEndValue = index;
SliderEndValue = index; //SliderEndValue = index;
var replayEndValueModel = new ReplayEndValueModel() { ReplayEndValue = index };
ApplicationDomain.MessageManager.Send(replayEndValueModel);
} }
//} //}
} }
...@@ -225,7 +232,7 @@ namespace VIZ.FGOUT.Module ...@@ -225,7 +232,7 @@ namespace VIZ.FGOUT.Module
//var index = view.vm.SliderValue; //var index = view.vm.SliderValue;
if (index >= 500) index = 499; if (index >= 500) index = 499;
if ((buffer.Count - 1) >= index) if ((buffer.Count - 1) >= index && index >= 0)
{ {
var dse = buffer.ElementAt(index); var dse = buffer.ElementAt(index);
var lowResolutionData = new byte[dse.Mat.Width * dse.Mat.Height * 4]; var lowResolutionData = new byte[dse.Mat.Width * dse.Mat.Height * 4];
...@@ -253,7 +260,7 @@ namespace VIZ.FGOUT.Module ...@@ -253,7 +260,7 @@ namespace VIZ.FGOUT.Module
{ {
try try
{ {
var view3 = this.FindChild<NDIView>(Application.Current.MainWindow, "cam3"); var view3 = this.FindChild<NDIView>(Application.Current.MainWindow, NDIViewKeys.cam3);
view3.video.UpdateVideoFrame(dsExtend, true); view3.video.UpdateVideoFrame(dsExtend, true);
} }
catch (Exception ex) catch (Exception ex)
......
...@@ -153,6 +153,9 @@ namespace VIZ.FGOUT.Module ...@@ -153,6 +153,9 @@ namespace VIZ.FGOUT.Module
// 清除开始、结束、无效位置 // 清除开始、结束、无效位置
ApplicationDomain.MessageManager.Register<CleanPlaceModel>(this, this.CleanPlace); ApplicationDomain.MessageManager.Register<CleanPlaceModel>(this, this.CleanPlace);
// 显示无效位置
ApplicationDomain.MessageManager.Register<ShowInvalidPlaceModel>(this, this.ShowInvalidPlace);
// 显示开始、结束、无效位置 // 显示开始、结束、无效位置
ApplicationDomain.MessageManager.Register<DisplayPlaceModel>(this, this.DisplayPlace); ApplicationDomain.MessageManager.Register<DisplayPlaceModel>(this, this.DisplayPlace);
...@@ -360,8 +363,8 @@ namespace VIZ.FGOUT.Module ...@@ -360,8 +363,8 @@ namespace VIZ.FGOUT.Module
public bool IsSliderEndClicked; public bool IsSliderEndClicked;
//public long SliderStartTimeStamp; //public long SliderStartTimeStamp;
//public long SliderEndTimeStamp; //public long SliderEndTimeStamp;
public static int SliderStartValue; //public static int SliderStartValue;
public static int SliderEndValue; //public static int SliderEndValue;
public static long StartTime { get; set; } public static long StartTime { get; set; }
public static long EndTime { get; set; } public static long EndTime { get; set; }
...@@ -558,6 +561,37 @@ namespace VIZ.FGOUT.Module ...@@ -558,6 +561,37 @@ namespace VIZ.FGOUT.Module
ndiView.polygon = null; ndiView.polygon = null;
} }
private void ShowInvalidPlace(ShowInvalidPlaceModel showInvalidPlaceModel)
{
if (this.ViewKey != NDIViewKeys.CAM_1)
return;
var ndiView = this.GetView<NDIView>();
if (ndiView == null)
return;
IsDrawStartPlace = false;
IsDrawEndPlace = false;
IsDrawInvalidPlace = false;
ndiView.polygonsStart.Clear();
ndiView.polygonsEnd.Clear();
ndiView.polygonsInvalid.Clear();
ndiView.canvas1.Children.Clear();
ndiView.polygon = null;
var setPlaceNewConfig = ApplicationDomainEx.LiteDbContext.SetPlaceNewConfig.FindOne(p =>
p.SportCode == this.viewConfig.GameName);
if (setPlaceNewConfig == null) return;
if (setPlaceNewConfig.InvlidPlace.Count > 0)
{
ndiView.polygonsInvalid = setPlaceNewConfig.InvlidPlace;
foreach (var points in setPlaceNewConfig.InvlidPlace)
AddPoints(ndiView, points, Brushes.Red);
}
}
/// <summary> /// <summary>
/// 保存并发送位置命令 /// 保存并发送位置命令
/// </summary> /// </summary>
...@@ -1088,12 +1122,23 @@ namespace VIZ.FGOUT.Module ...@@ -1088,12 +1122,23 @@ namespace VIZ.FGOUT.Module
////如果结束位置的count为0,则不加载位置标记 ////如果结束位置的count为0,则不加载位置标记
//if (setPlaceNewConfig.EndPlace.Count == 0) return; //if (setPlaceNewConfig.EndPlace.Count == 0) return;
//在自动模式下显示位置
if (this.manualConfig != null && !this.manualConfig.IsManual)
{
NDIView view = this.GetView<NDIView>(); NDIView view = this.GetView<NDIView>();
if (view == null) return; if (view == null) return;
//在任何模式下都显示无效位置
if (setPlaceNewConfig.InvlidPlace.Count > 0)
{
view.polygonsInvalid = setPlaceNewConfig.InvlidPlace;
foreach (var points in setPlaceNewConfig.InvlidPlace)
AddPoints(view, points, Brushes.Red);
}
//在自动模式下显示开始、结束位置
if (this.manualConfig != null && !this.manualConfig.IsManual)
{
//NDIView view = this.GetView<NDIView>();
//if (view == null) return;
//WPFHelper.Invoke(() => //WPFHelper.Invoke(() =>
//{ //{
// try // try
...@@ -1110,14 +1155,15 @@ namespace VIZ.FGOUT.Module ...@@ -1110,14 +1155,15 @@ namespace VIZ.FGOUT.Module
foreach (var points in setPlaceNewConfig.EndPlace) foreach (var points in setPlaceNewConfig.EndPlace)
AddPoints(view, points, Brushes.Green); AddPoints(view, points, Brushes.Green);
} }
if (setPlaceNewConfig.InvlidPlace.Count > 0) //if (setPlaceNewConfig.InvlidPlace.Count > 0)
{ //{
//view.rectsInvalid = setPlaceNewConfig.InvlidPlace; // //view.rectsInvalid = setPlaceNewConfig.InvlidPlace;
view.polygonsInvalid = setPlaceNewConfig.InvlidPlace; // view.polygonsInvalid = setPlaceNewConfig.InvlidPlace;
foreach (var points in setPlaceNewConfig.InvlidPlace) // foreach (var points in setPlaceNewConfig.InvlidPlace)
AddPoints(view, points, Brushes.Red); // AddPoints(view, points, Brushes.Red);
//AddRects(view, points, Brushes.Red); // //AddRects(view, points, Brushes.Red);
} //}
// } // }
// catch (Exception ex) // catch (Exception ex)
// { // {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -10,11 +10,11 @@ none ...@@ -10,11 +10,11 @@ none
false false
DEBUG;TRACE DEBUG;TRACE
C:\Projects\FGOUT\VIZ.FGOUT\VIZ.FGOUT\App.xaml C:\Projects\FGOUT\VIZ.FGOUT\VIZ.FGOUT\App.xaml
21265083526 2-1347366880
6-790135758 6968741766
421356718200 43-1958993781
CloseAlgorithmWindow.xaml;MainWindow.xaml; CloseAlgorithmWindow.xaml;MainWindow.xaml;
True False
//------------------------------------------------------------------------------ 
// <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);
}
}
}
 C:\Projects\FGOUT\VIZ.Framework\VIZ.Framework.Common\obj\x64\Debug\GeneratedInternalTypeHelper.g.cs
FC:\Projects\FGOUT\VIZ.Framework\VIZ.Framework.Common\MessageBox\MessageBoxEx.xaml;; FC:\Projects\FGOUT\VIZ.Framework\VIZ.Framework.Common\MessageBox\MessageBoxEx.xaml;;
FC:\Projects\FGOUT\VIZ.Framework\VIZ.Framework.Common\MessageBox\MessageBoxExWindow.xaml;; FC:\Projects\FGOUT\VIZ.Framework\VIZ.Framework.Common\MessageBox\MessageBoxExWindow.xaml;;
......
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