| | |
| | | xmlns:d="http://schemas.microsoft.com/expression/blend/2008" |
| | | xmlns:hb="clr-namespace:HMI.Base;assembly=HMI.Base" |
| | | xmlns:ui="clr-namespace:HMI.UI;assembly=HMI.UI" |
| | | xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI" |
| | | xmlns:pw="https://opensource.panuon.com/wpf" |
| | | xmlns:pu="https://opensource.panuon.com/wpf-ui" |
| | | xmlns:dp="clr-namespace:HMI.UI.DpUtil;assembly=HMI.UI" |
| | | xmlns:local="clr-namespace:Plugin.DeviceDebug" |
| | | xmlns:panels="clr-namespace:Plugin.DeviceDebug.Panels" |
| | | mc:Ignorable="d" |
| | | Loaded="SimpleMaskControl_Loaded" |
| | | d:DesignHeight="600" d:DesignWidth="1000"> |
| | |
| | | <Setter Property="Padding" Value="8,4"/> |
| | | <Setter Property="VerticalAlignment" Value="Center"/> |
| | | </Style> |
| | | <BooleanToVisibilityConverter x:Key="BoolToVis"/> |
| | | </ResourceDictionary> |
| | | </hb:SimpleMaskControl.Resources> |
| | | |
| | | <Grid dp:GridHelper.Space="8"> |
| | | <Grid.RowDefinitions> |
| | | <RowDefinition Height="Auto"/> |
| | | <RowDefinition Height="Auto"/> |
| | | <RowDefinition Height="Auto"/> |
| | | <RowDefinition Height="*"/> |
| | | </Grid.RowDefinitions> |
| | | |
| | | <!-- 顶部标题栏 --> |
| | | <!-- 顶部:标题 + 设备选择 + 加入/关闭 --> |
| | | <DockPanel Grid.Row="0"> |
| | | <StackPanel dp:StackPanelHelper.ChildSpace="10" DockPanel.Dock="Right" Orientation="Horizontal"> |
| | | <ComboBox x:Name="deviceSelector" Width="240" |
| | | ItemsSource="{Binding DeviceList}" |
| | | SelectedItem="{Binding SelectedDevice}" |
| | | SelectionChanged="DeviceSelector_SelectionChanged" |
| | | VerticalContentAlignment="Center" Padding="6,4"/> |
| | | <Button x:Name="addDeviceBtn" Content="加入调试" Width="90" Height="28" |
| | | Click="AddDeviceBtn_Click" |
| | | Background="#4CAF50" Foreground="White" BorderThickness="0" Cursor="Hand" FontWeight="SemiBold"/> |
| | | <Button x:Name="closeTabBtn" Content="关闭当前页" Width="100" Height="28" |
| | | Click="CloseTabBtn_Click" |
| | | Background="#FF5722" Foreground="White" BorderThickness="0" Cursor="Hand"/> |
| | | <Button Style="{StaticResource RfhBtn}" x:Name="rfhBtn" Click="RfhBtn_Click"/> |
| | | </StackPanel> |
| | | <TextBlock Style="{StaticResource TitleBox}" Text="硬件调试"/> |
| | | <TextBlock Style="{StaticResource TitleBox}" Text="硬件调试(可多设备并发)"/> |
| | | </DockPanel> |
| | | |
| | | <!-- 设备信息栏 --> |
| | | <Border Grid.Row="1" BorderBrush="#CCCCCC" BorderThickness="1" Padding="10,6" Background="#F9F9F9" |
| | | Visibility="{Binding HasDevice, Converter={StaticResource BoolToVis}}"> |
| | | <WrapPanel dp:StackPanelHelper.ChildSpace="20"> |
| | | <StackPanel Orientation="Horizontal" dp:StackPanelHelper.ChildSpace="4"> |
| | | <TextBlock Text="设备ID:" FontWeight="Bold" Foreground="#555"/> |
| | | <TextBlock Text="{Binding CurrentDeviceId}" Style="{StaticResource ListTableTextBlock}"/> |
| | | </StackPanel> |
| | | <StackPanel Orientation="Horizontal" dp:StackPanelHelper.ChildSpace="4"> |
| | | <TextBlock Text="型号:" FontWeight="Bold" Foreground="#555"/> |
| | | <TextBlock Text="{Binding CurrentDeviceKind}" Style="{StaticResource ListTableTextBlock}"/> |
| | | </StackPanel> |
| | | <StackPanel Orientation="Horizontal" dp:StackPanelHelper.ChildSpace="4"> |
| | | <TextBlock Text="连接状态:" FontWeight="Bold" Foreground="#555"/> |
| | | <TextBlock Text="{Binding ConnectionStateText}" Foreground="{Binding ConnectionBrush}"/> |
| | | </StackPanel> |
| | | <StackPanel Orientation="Horizontal" dp:StackPanelHelper.ChildSpace="4"> |
| | | <TextBlock Text="版本:" FontWeight="Bold" Foreground="#555"/> |
| | | <TextBlock Text="{Binding CurrentEffectiveVersion}" Style="{StaticResource ListTableTextBlock}"/> |
| | | </StackPanel> |
| | | <StackPanel Orientation="Horizontal" dp:StackPanelHelper.ChildSpace="4"> |
| | | <TextBlock Text="预约状态:" FontWeight="Bold" Foreground="#555"/> |
| | | <TextBlock Text="{Binding ReservationStatusText}" Style="{StaticResource ListTableTextBlock}"/> |
| | | </StackPanel> |
| | | <StackPanel Orientation="Horizontal" dp:StackPanelHelper.ChildSpace="4"> |
| | | <TextBlock Text="会话状态:" FontWeight="Bold" Foreground="#555"/> |
| | | <TextBlock Text="{Binding SessionStateText}" Foreground="{Binding SessionStateBrush}" FontWeight="Bold"/> |
| | | </StackPanel> |
| | | </WrapPanel> |
| | | </Border> |
| | | |
| | | <!-- 操作按钮栏 --> |
| | | <StackPanel Grid.Row="2" Orientation="Horizontal" dp:StackPanelHelper.ChildSpace="10" |
| | | Visibility="{Binding HasDevice, Converter={StaticResource BoolToVis}}"> |
| | | <Button x:Name="enterMaintenanceBtn" Content="进入维护控制" Padding="14,6" |
| | | IsEnabled="{Binding CanEnterMaintenance}" |
| | | Click="EnterMaintenanceBtn_Click" |
| | | Background="#2196F3" Foreground="White" BorderThickness="0" Cursor="Hand"/> |
| | | <Button x:Name="exitMaintenanceBtn" Content="退出维护" Padding="14,6" |
| | | IsEnabled="{Binding CanExitMaintenance}" |
| | | Click="ExitMaintenanceBtn_Click" |
| | | Background="#FF5722" Foreground="White" BorderThickness="0" Cursor="Hand"/> |
| | | </StackPanel> |
| | | |
| | | <!-- 主体区域 --> |
| | | <Grid Grid.Row="3"> |
| | | <Grid.ColumnDefinitions> |
| | | <ColumnDefinition Width="*"/> |
| | | <ColumnDefinition Width="350"/> |
| | | </Grid.ColumnDefinitions> |
| | | |
| | | <!-- 左侧面板容器 --> |
| | | <Border Grid.Column="0" BorderBrush="#DDDDDD" BorderThickness="1" Margin="0,0,8,0"> |
| | | <ContentControl x:Name="panelContainer"> |
| | | <TextBlock Text="请选择设备" HorizontalAlignment="Center" VerticalAlignment="Center" |
| | | FontSize="16" Foreground="#999"/> |
| | | </ContentControl> |
| | | </Border> |
| | | |
| | | <!-- 右侧操作日志 --> |
| | | <Border Grid.Column="1" BorderBrush="#DDDDDD" BorderThickness="1"> |
| | | <Grid> |
| | | <Grid.RowDefinitions> |
| | | <RowDefinition Height="Auto"/> |
| | | <RowDefinition Height="*"/> |
| | | </Grid.RowDefinitions> |
| | | <Border Grid.Row="0" Background="#F0F0F0" Padding="8,6"> |
| | | <TextBlock Text="操作日志" FontWeight="Bold" FontSize="14"/> |
| | | </Border> |
| | | <ListView Grid.Row="1" x:Name="operationLogList" |
| | | ItemsSource="{Binding OperationLogs}" |
| | | Style="{StaticResource DefaultListTable}" |
| | | VirtualizingPanel.IsVirtualizing="True" |
| | | VirtualizingPanel.VirtualizationMode="Standard"> |
| | | <ListView.View> |
| | | <GridView AllowsColumnReorder="False"> |
| | | <GridViewColumn Width="60" Header="类型"> |
| | | <GridViewColumn.CellTemplate> |
| | | <DataTemplate> |
| | | <Border Style="{StaticResource CellBorder}"> |
| | | <TextBlock Style="{StaticResource ListTableTextBlock}" |
| | | Text="{Binding CommandType}"/> |
| | | </Border> |
| | | </DataTemplate> |
| | | </GridViewColumn.CellTemplate> |
| | | </GridViewColumn> |
| | | <GridViewColumn Width="120" Header="参数"> |
| | | <GridViewColumn.CellTemplate> |
| | | <DataTemplate> |
| | | <Border Style="{StaticResource CellBorder}"> |
| | | <TextBlock Style="{StaticResource ListTableTextBlock}" |
| | | Text="{Binding Parameters}" TextTrimming="CharacterEllipsis" |
| | | ToolTip="{Binding Parameters}"/> |
| | | </Border> |
| | | </DataTemplate> |
| | | </GridViewColumn.CellTemplate> |
| | | </GridViewColumn> |
| | | <GridViewColumn Width="60" Header="结果"> |
| | | <GridViewColumn.CellTemplate> |
| | | <DataTemplate> |
| | | <Border Style="{StaticResource CellBorder}"> |
| | | <TextBlock Style="{StaticResource ListTableTextBlock}" |
| | | Text="{Binding Outcome}"/> |
| | | </Border> |
| | | </DataTemplate> |
| | | </GridViewColumn.CellTemplate> |
| | | </GridViewColumn> |
| | | <GridViewColumn Width="100" Header="时间"> |
| | | <GridViewColumn.CellTemplate> |
| | | <DataTemplate> |
| | | <Border Style="{StaticResource CellBorder}"> |
| | | <TextBlock Style="{StaticResource ListTableTextBlock}" |
| | | Text="{Binding Timestamp, StringFormat=HH:mm:ss}"/> |
| | | </Border> |
| | | </DataTemplate> |
| | | </GridViewColumn.CellTemplate> |
| | | </GridViewColumn> |
| | | </GridView> |
| | | </ListView.View> |
| | | </ListView> |
| | | </Grid> |
| | | </Border> |
| | | </Grid> |
| | | <!-- 多设备标签区 --> |
| | | <TabControl Grid.Row="1" x:Name="debugTabs" Background="White" BorderThickness="0"/> |
| | | </Grid> |
| | | </hb:SimpleMaskControl> |