Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
V
VIZ.H2V
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘龙飞
VIZ.H2V
Commits
adea8cba
Commit
adea8cba
authored
Oct 19, 2022
by
liulongfei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
算法 & 裁切 服务状态调整
parent
035fa7e8
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
202 additions
and
206 deletions
+202
-206
VIZ.H2V.Module.Resource/Icons/status_yellow_25x22.png
+0
-0
VIZ.H2V.Module.Resource/VIZ.H2V.Module.Resource.csproj
+4
-0
VIZ.H2V.Module/NDIMainView/View/AlgorithmServiceStatusPanelView.xaml
+0
-21
VIZ.H2V.Module/NDIMainView/View/AlgorithmServiceStatusPanelView.xaml.cs
+0
-31
VIZ.H2V.Module/NDIMainView/View/ClipServiceStatusPanelView.xaml
+0
-21
VIZ.H2V.Module/NDIMainView/View/ClipServiceStatusPanelView.xaml.cs
+0
-31
VIZ.H2V.Module/NDIMainView/View/NDIMainView.xaml
+34
-4
VIZ.H2V.Module/NDIMainView/ViewModel/AlgorithmServiceStatusPanelViewModel.cs
+0
-40
VIZ.H2V.Module/NDIMainView/ViewModel/ClipServiceStatusPanelViewModel.cs
+0
-40
VIZ.H2V.Module/NDIMainView/ViewModel/NDIMainViewModel.cs
+119
-0
VIZ.H2V.Module/NDIView/Service/INDIViewService.cs
+10
-0
VIZ.H2V.Module/NDIView/View/NDIView.xaml
+8
-2
VIZ.H2V.Module/NDIView/VieweModel/NDIViewModel.Command.cs
+17
-0
VIZ.H2V.Module/NDIView/VieweModel/NDIViewModel.cs
+9
-0
VIZ.H2V.Module/VIZ.H2V.Module.csproj
+1
-16
No files found.
VIZ.H2V.Module.Resource/Icons/status_yellow_25x22.png
0 → 100644
View file @
adea8cba
2.96 KB
VIZ.H2V.Module.Resource/VIZ.H2V.Module.Resource.csproj
View file @
adea8cba
...
...
@@ -241,5 +241,8 @@
<Resource Include="Icons\triangle_down_16x16.png" />
<Resource Include="Icons\triangle_up_16x16.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Icons\status_yellow_25x22.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file
VIZ.H2V.Module/NDIMainView/View/AlgorithmServiceStatusPanelView.xaml
deleted
100644 → 0
View file @
035fa7e8
<UserControl x:Class="VIZ.H2V.Module.AlgorithmServiceStatusPanelView"
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:behaviors="http://schemas.microsoft.com/xaml/behaviors"
xmlns:local="clr-namespace:VIZ.H2V.Module"
d:DataContext="{d:DesignInstance Type=local:AlgorithmServiceStatusPanelViewModel}"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<behaviors:Interaction.Triggers>
<behaviors:EventTrigger EventName="Loaded">
<behaviors:InvokeCommandAction Command="{Binding LoadedCommand}" />
</behaviors:EventTrigger>
</behaviors:Interaction.Triggers>
<Grid>
</Grid>
</UserControl>
VIZ.H2V.Module/NDIMainView/View/AlgorithmServiceStatusPanelView.xaml.cs
deleted
100644 → 0
View file @
035fa7e8
using
System
;
using
System.Collections.Generic
;
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.Navigation
;
using
System.Windows.Shapes
;
using
VIZ.Framework.Core
;
namespace
VIZ.H2V.Module
{
/// <summary>
/// AlgorithmServiceStatusPanelView.xaml 的交互逻辑
/// </summary>
public
partial
class
AlgorithmServiceStatusPanelView
:
UserControl
{
public
AlgorithmServiceStatusPanelView
()
{
InitializeComponent
();
WPFHelper
.
BindingViewModel
(
this
,
new
AlgorithmServiceStatusPanelViewModel
());
}
}
}
VIZ.H2V.Module/NDIMainView/View/ClipServiceStatusPanelView.xaml
deleted
100644 → 0
View file @
035fa7e8
<UserControl x:Class="VIZ.H2V.Module.ClipServiceStatusPanelView"
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:behaviors="http://schemas.microsoft.com/xaml/behaviors"
xmlns:local="clr-namespace:VIZ.H2V.Module"
d:DataContext="{d:DesignInstance Type=local:ClipServiceStatusPanelViewModel}"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<behaviors:Interaction.Triggers>
<behaviors:EventTrigger EventName="Loaded">
<behaviors:InvokeCommandAction Command="{Binding LoadedCommand}" />
</behaviors:EventTrigger>
</behaviors:Interaction.Triggers>
<Grid>
</Grid>
</UserControl>
VIZ.H2V.Module/NDIMainView/View/ClipServiceStatusPanelView.xaml.cs
deleted
100644 → 0
View file @
035fa7e8
using
System
;
using
System.Collections.Generic
;
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.Navigation
;
using
System.Windows.Shapes
;
using
VIZ.Framework.Core
;
namespace
VIZ.H2V.Module
{
/// <summary>
/// ClipServiceStatusPanelView.xaml 的交互逻辑
/// </summary>
public
partial
class
ClipServiceStatusPanelView
:
UserControl
{
public
ClipServiceStatusPanelView
()
{
InitializeComponent
();
WPFHelper
.
BindingViewModel
(
this
,
new
ClipServiceStatusPanelViewModel
());
}
}
}
VIZ.H2V.Module/NDIMainView/View/NDIMainView.xaml
View file @
adea8cba
...
...
@@ -77,10 +77,40 @@
<ColumnDefinition Width="120"></ColumnDefinition>
</Grid.ColumnDefinitions>
<!-- 算法服务监控 -->
<StackPanel Orientation="Horizontal" Background="Transparent">
<!--<StackPanel.ToolTip>
<local:AlgorithmServiceStatusPanelView></local:AlgorithmServiceStatusPanelView>
</StackPanel.ToolTip>-->
<StackPanel Orientation="Horizontal" Background="Transparent"
ToolTipService.Placement="Top" ToolTipService.HasDropShadow="True"
ToolTipService.HorizontalOffset="-60">
<StackPanel.ToolTip>
<ToolTip x:Name="ttAlgorithm" Background="#ff0f1221" BorderBrush="#ff0f1221">
<ListBox Style="{StaticResource ListBox_None}" Width="180" Height="160" Margin="10"
ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Hidden"
ItemsSource="{Binding Path=NDIViewServices,Mode=OneWay}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Height="40">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120"></ColumnDefinition>
<ColumnDefinition Width="60"></ColumnDefinition>
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
<TextBlock Text="{Binding Path=DisplayName}" FontSize="14" Foreground="White"
MaxWidth="90"
TextWrapping="NoWrap" TextTrimming="CharacterEllipsis"></TextBlock>
<TextBlock Text=":" Foreground="White" Margin="5,0,5,0"></TextBlock>
</StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Center" Grid.Column="1">
<TextBlock Text="{Binding Path=AlgorithmFPS.FPS}" Grid.Column="1" FontSize="14" Foreground="White"
Margin="5,0,0,0"></TextBlock>
<TextBlock Text="fps" Grid.Column="1" FontSize="14" Foreground="#88ffffff"
Margin="5,0,0,0"></TextBlock>
</StackPanel>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ToolTip>
</StackPanel.ToolTip>
<Image Width="18" Height="18" VerticalAlignment="Center"
Source="/VIZ.H2V.Module.Resource;component/Icons/status_25x22.png"></Image>
<TextBlock Text="算法服务" VerticalAlignment="Center" Foreground="White" FontSize="12" Margin="10,0,0,0"></TextBlock>
...
...
VIZ.H2V.Module/NDIMainView/ViewModel/AlgorithmServiceStatusPanelViewModel.cs
deleted
100644 → 0
View file @
035fa7e8
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
VIZ.Framework.Core
;
namespace
VIZ.H2V.Module
{
/// <summary>
/// 算法服务状态视图模型
/// </summary>
public
class
AlgorithmServiceStatusPanelViewModel
:
ViewModelBase
{
/// <summary>
/// 算法服务状态视图模型
/// </summary>
public
AlgorithmServiceStatusPanelViewModel
()
{
this
.
LoadedCommand
=
new
VCommand
(
this
.
Loaded
);
}
#
region
LoadedCommand
--
加载命令
/// <summary>
/// 加载命令
/// </summary>
public
VCommand
LoadedCommand
{
get
;
set
;
}
/// <summary>
/// 加载
/// </summary>
private
void
Loaded
()
{
}
#
endregion
}
}
VIZ.H2V.Module/NDIMainView/ViewModel/ClipServiceStatusPanelViewModel.cs
deleted
100644 → 0
View file @
035fa7e8
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
VIZ.Framework.Core
;
namespace
VIZ.H2V.Module
{
/// <summary>
/// 裁切服务状态面板视图模型
/// </summary>
public
class
ClipServiceStatusPanelViewModel
:
ViewModelBase
{
/// <summary>
/// 裁切服务状态面板视图模型
/// </summary>
public
ClipServiceStatusPanelViewModel
()
{
this
.
LoadedCommand
=
new
VCommand
(
this
.
Loaded
);
}
#
region
LoadedCommand
--
加载命令
/// <summary>
/// 加载命令
/// </summary>
public
VCommand
LoadedCommand
{
get
;
set
;
}
/// <summary>
/// 加载
/// </summary>
private
void
Loaded
()
{
}
#
endregion
}
}
VIZ.H2V.Module/NDIMainView/ViewModel/NDIMainViewModel.cs
View file @
adea8cba
...
...
@@ -13,6 +13,8 @@ using VIZ.H2V.Domain;
using
System.Diagnostics
;
using
Gma.System.MouseKeyHook
;
using
System.Windows.Interop
;
using
log4net
;
using
System.Threading
;
namespace
VIZ.H2V.Module
{
...
...
@@ -22,6 +24,11 @@ namespace VIZ.H2V.Module
public
class
NDIMainViewModel
:
ViewModelBase
,
INDIMainViewService
,
IHotkeySupport
,
IGpioSupport
{
/// <summary>
/// 日志
/// </summary>
private
readonly
static
ILog
log
=
LogManager
.
GetLogger
(
typeof
(
NDIMainViewModel
));
/// <summary>
/// NDI主视图模型
/// </summary>
public
NDIMainViewModel
()
...
...
@@ -152,6 +159,48 @@ namespace VIZ.H2V.Module
#
endregion
#
region
NDIViewServices
--
NDI
视图服务集合
private
List
<
INDIViewService
>
ndiViewServices
;
/// <summary>
/// NDI视图服务集合
/// </summary>
public
List
<
INDIViewService
>
NDIViewServices
{
get
{
return
ndiViewServices
;
}
set
{
ndiViewServices
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
NDIViewServices
));
}
}
#
endregion
#
region
AlgorithmStatusMinFps
--
算法状态最小
FPS
private
int
algorithmStatusMinFps
;
/// <summary>
/// 算法状态最小值
/// </summary>
public
int
AlgorithmStatusMinFps
{
get
{
return
algorithmStatusMinFps
;
}
set
{
algorithmStatusMinFps
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
AlgorithmStatusMinFps
));
}
}
#
endregion
#
region
ClipStatusMinFps
--
裁切状态最小
FPS
private
int
clipStatusMinFps
;
/// <summary>
/// 裁切状态最小FPS
/// </summary>
public
int
ClipStatusMinFps
{
get
{
return
clipStatusMinFps
;
}
set
{
clipStatusMinFps
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
ClipStatusMinFps
));
}
}
#
endregion
// ======================================================================================
// === Command ===
// ======================================================================================
...
...
@@ -170,6 +219,9 @@ namespace VIZ.H2V.Module
{
// 获取热键配置
this
.
HotkeyConfig
=
ApplicationDomainEx
.
LiteDbContext
.
HotkeyConfig
.
FindAll
().
FirstOrDefault
();
// 开始初始化服务状态
this
.
BeginInitServiceStatus
();
}
#
endregion
...
...
@@ -365,5 +417,72 @@ namespace VIZ.H2V.Module
}
});
}
/// <summary>
/// 开始初始化服务状态
/// </summary>
private
void
BeginInitServiceStatus
()
{
Task
.
Run
(()
=>
{
try
{
this
.
InitServiceStatus
();
}
catch
(
Exception
ex
)
{
log
.
Error
(
ex
);
}
});
}
/// <summary>
/// 初始化服务状态
/// </summary>
private
void
InitServiceStatus
()
{
while
(
true
)
{
// 获取视图服务
List
<
INDIViewService
>
services
=
ApplicationDomainEx
.
ServiceManager
.
GetServiceList
<
INDIViewService
>();
if
(
services
.
Count
!=
NDIViewModel
.
NDI_VIEW_MODEL_COUNT
)
{
Thread
.
Sleep
(
1000
);
continue
;
}
foreach
(
INDIViewService
service
in
services
)
{
// 算法服务
service
.
AlgorithmFPS
.
PropertyChanged
-=
Algorith_FPS_PropertyChanged
;
service
.
AlgorithmFPS
.
PropertyChanged
+=
Algorith_FPS_PropertyChanged
;
// 裁切服务
service
.
ClipFPS
.
PropertyChanged
-=
Clip_FPS_PropertyChanged
;
service
.
ClipFPS
.
PropertyChanged
+=
Clip_FPS_PropertyChanged
;
}
this
.
NDIViewServices
=
services
;
break
;
}
}
/// <summary>
/// 算法FPS属性改变后触发
/// </summary>
private
void
Algorith_FPS_PropertyChanged
(
object
sender
,
System
.
ComponentModel
.
PropertyChangedEventArgs
e
)
{
this
.
AlgorithmStatusMinFps
=
this
.
NDIViewServices
.
Min
(
p
=>
p
.
AlgorithmFPS
.
FPS
);
}
/// <summary>
/// 裁切FPS属性改变时触发
/// </summary>
private
void
Clip_FPS_PropertyChanged
(
object
sender
,
System
.
ComponentModel
.
PropertyChangedEventArgs
e
)
{
this
.
ClipStatusMinFps
=
this
.
NDIViewServices
.
Min
(
p
=>
p
.
ClipFPS
.
FPS
);
}
}
}
VIZ.H2V.Module/NDIView/Service/INDIViewService.cs
View file @
adea8cba
...
...
@@ -65,6 +65,16 @@ namespace VIZ.H2V.Module
NDIViewStatus
ViewStatus
{
get
;
set
;
}
/// <summary>
/// 裁切服务FPS
/// </summary>
FPSHelper
ClipFPS
{
get
;
}
/// <summary>
/// 算法服务FPS
/// </summary>
FPSHelper
AlgorithmFPS
{
get
;
}
/// <summary>
/// 加载样式
/// </summary>
void
LoadStyle
();
...
...
VIZ.H2V.Module/NDIView/View/NDIView.xaml
View file @
adea8cba
...
...
@@ -112,7 +112,13 @@
<!-- =================================================================================================== -->
<!-- 标题 -->
<Grid HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="1">
<Grid HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="1" Background="Transparent">
<behaviors:Interaction.Triggers>
<behaviors:EventTrigger EventName="PreviewMouseLeftButtonDown">
<behaviors:InvokeCommandAction Command="{Binding SetActiveCommand}" PassEventArgsToCommand="False" />
</behaviors:EventTrigger>
</behaviors:Interaction.Triggers>
<!-- 信号1 -->
<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
Visibility="{Binding Path=TallyPartViewModel.Tally1.PinValue,Converter={StaticResource Bool2VisibilityConverter}}"
...
...
@@ -122,7 +128,7 @@
ToolTip="{Binding Path=DisplayName,Mode=OneWay}"
Margin="60,5,60,5" Foreground="White" FontSize="18"
TextWrapping="NoWrap" TextTrimming="CharacterEllipsis"
MaxWidth="
4
00"></TextBlock>
MaxWidth="
3
00"></TextBlock>
</Grid>
<!-- 算法 -->
<Grid Grid.RowSpan="2" Margin="0,20,0,0"
...
...
VIZ.H2V.Module/NDIView/VieweModel/NDIViewModel.Command.cs
View file @
adea8cba
...
...
@@ -472,5 +472,22 @@ namespace VIZ.H2V.Module
}
#
endregion
#
region
SetActiveCommand
--
设置激活状态命令
/// <summary>
/// 设置激活状态命令
/// </summary>
public
VCommand
SetActiveCommand
{
get
;
set
;
}
/// <summary>
/// 设置激活状态
/// </summary>
private
void
SetActive
()
{
this
.
IsActive
=
true
;
}
#
endregion
}
}
VIZ.H2V.Module/NDIView/VieweModel/NDIViewModel.cs
View file @
adea8cba
...
...
@@ -36,10 +36,18 @@ namespace VIZ.H2V.Module
public
static
NDIViewModel
ActiveViewModel
{
get
;
private
set
;
}
/// <summary>
/// NDI视图模型个数
/// </summary>
public
static
int
NDI_VIEW_MODEL_COUNT
{
get
;
private
set
;
}
/// <summary>
/// NDI视图模型
/// </summary>
public
NDIViewModel
()
{
// 统计NDIViewModel的个数
++
NDI_VIEW_MODEL_COUNT
;
// 初始化命令
this
.
InitCommand
();
...
...
@@ -71,6 +79,7 @@ namespace VIZ.H2V.Module
this
.
IsBorderEnabledChangedCommand
=
new
VCommand
(
this
.
IsBorderEnabledChanged
);
this
.
IsAreaCorrectionEnabledChangedCommand
=
new
VCommand
(
this
.
IsAreaCorrectionEnabledChanged
);
this
.
SaveAlgorithmConfigCommand
=
new
VCommand
(
this
.
SaveAlgorithmConfig
);
this
.
SetActiveCommand
=
new
VCommand
(
this
.
SetActive
);
}
/// <summary>
...
...
VIZ.H2V.Module/VIZ.H2V.Module.csproj
View file @
adea8cba
...
...
@@ -132,14 +132,6 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Page Include="NDIMainView\View\AlgorithmServiceStatusPanelView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="NDIMainView\View\ClipServiceStatusPanelView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="NDISettingView\View\Algorithm\AlgorithmNearPanelView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
...
...
@@ -224,14 +216,6 @@
<ItemGroup>
<Compile Include="NDIMainView\Controller\Gpio\GpioController.cs" />
<Compile Include="NDIMainView\Controller\Gpio\IGpioSupport.cs" />
<Compile Include="NDIMainView\ViewModel\AlgorithmServiceStatusPanelViewModel.cs" />
<Compile Include="NDIMainView\ViewModel\ClipServiceStatusPanelViewModel.cs" />
<Compile Include="NDIMainView\View\AlgorithmServiceStatusPanelView.xaml.cs">
<DependentUpon>AlgorithmServiceStatusPanelView.xaml</DependentUpon>
</Compile>
<Compile Include="NDIMainView\View\ClipServiceStatusPanelView.xaml.cs">
<DependentUpon>ClipServiceStatusPanelView.xaml</DependentUpon>
</Compile>
<Compile Include="NDIMainView\Controller\Hotkey\HotkeyController.cs" />
<Compile Include="NDIMainView\Controller\Hotkey\IHotkeySupport.cs" />
<Compile Include="NDIMainView\Service\INDIMainViewService.cs" />
...
...
@@ -376,6 +360,7 @@
</None>
</ItemGroup>
<ItemGroup>
<Folder Include="NDIMainView\Model\" />
<Folder Include="NDISettingView\Service\" />
</ItemGroup>
<ItemGroup>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment