Commit 05838af8 by 鲁志-悦动

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

parent d22b021e
......@@ -20,6 +20,8 @@
///// </summary>
public const string CAM_3 = "CAM_3";
public const string cam3 = "cam3";
///// <summary>
///// CAM 4
///// </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 @@
<Compile Include="Message\Setting\ReconfirmAutoSendIntervalTimeModel.cs" />
<Compile Include="Message\Setting\ReconfirmSendModel.cs" />
<Compile Include="Message\Setting\RefreshPositionModel.cs" />
<Compile Include="Message\Setting\ReplayEndValueModel.cs" />
<Compile Include="Message\Setting\ReplayInPortModel.cs" />
<Compile Include="Message\Setting\ReplayModel.cs" />
<Compile Include="Message\Setting\ReplayOutPointModel.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\SaveMarkModel.cs" />
<Compile Include="Message\Setting\SavePlaceModel.cs" />
<Compile Include="Message\Setting\SendPlaceModel.cs" />
<Compile Include="Message\Setting\ShowInvalidPlaceModel.cs" />
<Compile Include="Message\Setting\StartPlaceModel.cs" />
<Compile Include="Message\Setting\StopAlgorithmModel.cs" />
<Compile Include="Message\Setting\UEControlModel.cs" />
......
3499a5f618af3dcba82fa90554564593ef66ce2b
d3e4f59c122a03f90859987a8cf2800734b297bb
......@@ -2,7 +2,6 @@
using log4net;
using System;
using System.Collections.Generic;
using System.Diagnostics.Eventing.Reader;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
......@@ -132,7 +131,26 @@ namespace VIZ.FGOUT.Module
/// </summary>
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;
......@@ -422,7 +440,7 @@ namespace VIZ.FGOUT.Module
private bool isAutoEnable = true;
private bool _flagAutoValue = false;
private bool _flagAutoValue;
public bool IsAutoEnable
{
......@@ -431,6 +449,7 @@ namespace VIZ.FGOUT.Module
{
isAutoEnable = value;
RaisePropertyChanged(nameof(IsAutoEnable));
//自动
if(value && !_flagAutoValue)
{
_flagAutoValue = true;
......@@ -463,6 +482,7 @@ namespace VIZ.FGOUT.Module
{
isEnableTarget = value;
this.RaisePropertyChanged(nameof(IsEnableTarget));
//手动
if(value && !_flagManualValue)
{
_flagAutoValue = false;
......@@ -473,13 +493,23 @@ namespace VIZ.FGOUT.Module
manualConfig.IsManual = true;
ApplicationDomainEx.LiteDbContext.SetManualConfig.Upsert(manualConfig);
//CleanRect();
HidePlace();
//HidePlace();
ShowInvalidePlace();
PositionButtonDisEnable();
}
}
}
/// <summary>
/// 显示无效位置
/// </summary>
private void ShowInvalidePlace()
{
ShowInvalidPlaceModel showInvalidPlaceModel = new ShowInvalidPlaceModel();
ApplicationDomain.MessageManager.Send(showInvalidPlaceModel);
}
/// <summary>
/// 隐藏位置
/// </summary>
private void HidePlace()
......@@ -765,10 +795,10 @@ namespace VIZ.FGOUT.Module
managerAlgorithm.SendJson(replayPackage);
manager.SendJson(replayPackage);
_isReplayChecked = true;
SliderStartValue = NDIViewModel.SliderStartValue;
SliderEndValue = NDIViewModel.SliderEndValue;
_isReplayChecked = false;
//_isReplayChecked = true;
//SliderStartValue = NDIViewModel.SliderStartValue;
//SliderEndValue = NDIViewModel.SliderEndValue;
//_isReplayChecked = false;
}
private void ReplayUnchecked()
......@@ -1451,7 +1481,7 @@ namespace VIZ.FGOUT.Module
set { _invalidIsChecked = value; this.RaisePropertyChanged(nameof(InvalidIsChecked)); }
}
private bool invalidEnable = false;
private bool invalidEnable = true;
/// <summary>
/// 无效位置按钮可用性
/// </summary>
......@@ -1461,7 +1491,7 @@ namespace VIZ.FGOUT.Module
set { invalidEnable = value; this.RaisePropertyChanged(nameof(InvalidEnable)); }
}
private bool cleanEnable = false;
private bool cleanEnable = true;
/// <summary>
/// 清空位置按钮可用性
/// </summary>
......@@ -1471,7 +1501,7 @@ namespace VIZ.FGOUT.Module
set { cleanEnable = value; this.RaisePropertyChanged(nameof(CleanEnable)); }
}
private bool sendEnable = false;
private bool sendEnable = true;
/// <summary>
/// 发送位置按钮可用性
/// </summary>
......@@ -1481,7 +1511,7 @@ namespace VIZ.FGOUT.Module
set { sendEnable = value; this.RaisePropertyChanged(nameof(SendEnable)); }
}
private bool saveEnable = false;
private bool saveEnable = true;
/// <summary>
/// 保存位置按钮可用性
/// </summary>
......@@ -1784,12 +1814,14 @@ namespace VIZ.FGOUT.Module
{
if (context.hotkey.Equals(NDIMainViewHotkeys.Up))
{
SliderStartValue = NDIViewModel.SliderStartValue;
//SliderStartValue = NDIViewModel.SliderStartValue;
SliderStartValue = _sliderStartInitValue;
_isDown = false;
}
else if (context.hotkey.Equals(NDIMainViewHotkeys.Down))
{
SliderEndValue = NDIViewModel.SliderEndValue;
//SliderEndValue = NDIViewModel.SliderEndValue;
SliderEndValue = _sliderEndInitValue;
_isDown = true;
}
else if (context.hotkey.Equals(NDIMainViewHotkeys.Left))
......
......@@ -12,6 +12,7 @@ using VIZ.FGOUT.Storage;
using VIZ.Framework.Common;
using VIZ.Framework.Connection;
using VIZ.Framework.Core;
using VIZ.Framework.Domain;
namespace VIZ.FGOUT.Module
{
......@@ -195,7 +196,11 @@ namespace VIZ.FGOUT.Module
//else if(matExtend.TimeStamp == SliderEndTimeStamp)
// break;
if (matExtend.TimeStamp == StartTime)
SliderStartValue = index;
{
//SliderStartValue = index;
var replayStartValueModel = new ReplayStartValueModel() { ReplayStartValue = index};
ApplicationDomain.MessageManager.Send(replayStartValueModel);
}
else if (matExtend.TimeStamp == EndTime)
break;
index++;
......@@ -204,7 +209,9 @@ namespace VIZ.FGOUT.Module
//view.vm.SliderStartValue = 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
//var index = view.vm.SliderValue;
if (index >= 500) index = 499;
if ((buffer.Count - 1) >= index)
if ((buffer.Count - 1) >= index && index >= 0)
{
var dse = buffer.ElementAt(index);
var lowResolutionData = new byte[dse.Mat.Width * dse.Mat.Height * 4];
......@@ -253,7 +260,7 @@ namespace VIZ.FGOUT.Module
{
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);
}
catch (Exception ex)
......
......@@ -152,7 +152,10 @@ namespace VIZ.FGOUT.Module
// 清除开始、结束、无效位置
ApplicationDomain.MessageManager.Register<CleanPlaceModel>(this, this.CleanPlace);
// 显示无效位置
ApplicationDomain.MessageManager.Register<ShowInvalidPlaceModel>(this, this.ShowInvalidPlace);
// 显示开始、结束、无效位置
ApplicationDomain.MessageManager.Register<DisplayPlaceModel>(this, this.DisplayPlace);
......@@ -360,8 +363,8 @@ namespace VIZ.FGOUT.Module
public bool IsSliderEndClicked;
//public long SliderStartTimeStamp;
//public long SliderEndTimeStamp;
public static int SliderStartValue;
public static int SliderEndValue;
//public static int SliderStartValue;
//public static int SliderEndValue;
public static long StartTime { get; set; }
public static long EndTime { get; set; }
......@@ -558,6 +561,37 @@ namespace VIZ.FGOUT.Module
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>
......@@ -1088,11 +1122,22 @@ namespace VIZ.FGOUT.Module
////如果结束位置的count为0,则不加载位置标记
//if (setPlaceNewConfig.EndPlace.Count == 0) return;
//在自动模式下显示位置
NDIView view = this.GetView<NDIView>();
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;
//NDIView view = this.GetView<NDIView>();
//if (view == null) return;
//WPFHelper.Invoke(() =>
//{
......@@ -1110,14 +1155,15 @@ namespace VIZ.FGOUT.Module
foreach (var points in setPlaceNewConfig.EndPlace)
AddPoints(view, points, Brushes.Green);
}
if (setPlaceNewConfig.InvlidPlace.Count > 0)
{
//view.rectsInvalid = setPlaceNewConfig.InvlidPlace;
view.polygonsInvalid = setPlaceNewConfig.InvlidPlace;
foreach (var points in setPlaceNewConfig.InvlidPlace)
AddPoints(view, points, Brushes.Red);
//AddRects(view, points, Brushes.Red);
}
//if (setPlaceNewConfig.InvlidPlace.Count > 0)
//{
// //view.rectsInvalid = setPlaceNewConfig.InvlidPlace;
// view.polygonsInvalid = setPlaceNewConfig.InvlidPlace;
// foreach (var points in setPlaceNewConfig.InvlidPlace)
// AddPoints(view, points, Brushes.Red);
// //AddRects(view, points, Brushes.Red);
//}
// }
// 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
false
DEBUG;TRACE
C:\Projects\FGOUT\VIZ.FGOUT\VIZ.FGOUT\App.xaml
21265083526
2-1347366880
6-790135758
421356718200
6968741766
43-1958993781
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\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