|
2494 | 2494 | </Grid> |
2495 | 2495 | </Border> |
2496 | 2496 |
|
2497 | | - <!-- Unified cards --> |
2498 | | - <!-- Read-first status: four decisions; forensic explanations via hover/details. --> |
| 2497 | + <!-- Immediate SV engineering evidence. Keep numerical jitter and |
| 2498 | + smpCnt discontinuities visible without opening Advanced. --> |
2499 | 2499 | <UniformGrid Grid.Row="2" Columns="4"> |
2500 | 2500 | <UniformGrid.Style> |
2501 | 2501 | <Style TargetType="UniformGrid"> |
2502 | | - <Setter Property="Visibility" Value="Visible"/> |
| 2502 | + <Setter Property="Visibility" Value="Collapsed"/> |
2503 | 2503 | <Style.Triggers> |
2504 | | - <DataTrigger Binding="{Binding SelectedDiagnosticTarget.Protocol}" Value="PTP"> |
2505 | | - <Setter Property="Visibility" Value="Collapsed"/> |
2506 | | - </DataTrigger> |
2507 | | - <DataTrigger Binding="{Binding SelectedDiagnosticTarget.Protocol}" Value="GOOSE"> |
2508 | | - <Setter Property="Visibility" Value="Collapsed"/> |
| 2504 | + <DataTrigger Binding="{Binding SelectedDiagnosticTarget.Protocol}" Value="SV"> |
| 2505 | + <Setter Property="Visibility" Value="Visible"/> |
2509 | 2506 | </DataTrigger> |
2510 | 2507 | </Style.Triggers> |
2511 | 2508 | </Style> |
2512 | 2509 | </UniformGrid.Style> |
2513 | | - <Border Background="#0F2538" BorderBrush="#294864" |
2514 | | - BorderThickness="1" CornerRadius="12" |
2515 | | - Padding="13,12" Margin="0,0,8,0" |
2516 | | - ToolTip="{Binding TimingReferenceText}"> |
| 2510 | + |
| 2511 | + <Border Background="#0F2538" BorderBrush="#294864" BorderThickness="1" |
| 2512 | + CornerRadius="9" Padding="12,10" Margin="0,0,8,0" |
| 2513 | + ToolTip="{Binding Diagnostics.JitterStatusText}"> |
2517 | 2514 | <StackPanel> |
2518 | | - <TextBlock Text="ARRIVAL" Foreground="#91B3CF" |
2519 | | - FontSize="10.5" FontWeight="SemiBold"/> |
2520 | | - <TextBlock Text="{Binding FrequencyText}" |
2521 | | - Foreground="#F2F8FF" FontSize="17" |
2522 | | - FontWeight="SemiBold" |
2523 | | - Margin="0,8,0,5" |
| 2515 | + <TextBlock Text="ARRIVAL JITTER" Foreground="#9BC7E4" FontSize="10.5" |
| 2516 | + FontWeight="SemiBold"/> |
| 2517 | + <TextBlock Text="{Binding Diagnostics.SvJitterHeadlineText}" |
| 2518 | + Foreground="#F3F9FF" FontSize="20" FontWeight="SemiBold" |
| 2519 | + FontFamily="Consolas" Margin="0,6,0,4" |
2524 | 2520 | TextTrimming="CharacterEllipsis"/> |
2525 | | - <TextBlock Text="{Binding JitterText}" |
2526 | | - Foreground="#A7C2D9" FontSize="11.5" |
2527 | | - TextTrimming="CharacterEllipsis" |
2528 | | - ToolTip="{Binding TimestampSourceText}"/> |
| 2521 | + <TextBlock Text="{Binding Diagnostics.SvJitterStatisticsText}" |
| 2522 | + Foreground="#B9D1E5" FontSize="11" TextWrapping="Wrap"/> |
| 2523 | + <TextBlock Text="{Binding Diagnostics.SvJitterExcursionsText}" |
| 2524 | + Foreground="#F3C76D" FontSize="11" Margin="0,3,0,0" |
| 2525 | + TextWrapping="Wrap"/> |
2529 | 2526 | </StackPanel> |
2530 | 2527 | </Border> |
2531 | | - <Border Background="#0F2538" BorderBrush="#294864" |
2532 | | - BorderThickness="1" CornerRadius="12" |
2533 | | - Padding="13,12" Margin="0,0,8,0" |
2534 | | - ToolTip="{Binding OutOfSequenceText}"> |
| 2528 | + |
| 2529 | + <Border Background="#0F2538" BorderBrush="#294864" BorderThickness="1" |
| 2530 | + CornerRadius="9" Padding="12,10" Margin="0,0,8,0" |
| 2531 | + ToolTip="Discontinuous smpCnt transitions for the selected SV stream. Not the number of missing samples."> |
2535 | 2532 | <StackPanel> |
2536 | | - <TextBlock Text="SEQUENCE" Foreground="#91B3CF" |
2537 | | - FontSize="10.5" FontWeight="SemiBold"/> |
2538 | | - <TextBlock Text="{Binding SmcCntStatus}" |
2539 | | - Foreground="#F2F8FF" FontSize="17" |
2540 | | - FontWeight="SemiBold" |
2541 | | - Margin="0,8,0,5" |
2542 | | - TextTrimming="CharacterEllipsis"/> |
2543 | | - <TextBlock Text="{Binding PacketLossText}" |
2544 | | - Foreground="#A7C2D9" FontSize="11.5" |
2545 | | - TextTrimming="CharacterEllipsis" |
2546 | | - ToolTip="{Binding ExpectedDeltaText}"/> |
| 2533 | + <TextBlock Text="SMP COUNT JUMPS" Foreground="#9BC7E4" FontSize="10.5" |
| 2534 | + FontWeight="SemiBold"/> |
| 2535 | + <TextBlock Text="{Binding Diagnostics.SvSequenceJumpsText}" |
| 2536 | + Foreground="#F3F9FF" FontSize="20" FontWeight="SemiBold" |
| 2537 | + FontFamily="Consolas" Margin="0,6,0,4"/> |
| 2538 | + <TextBlock Text="{Binding Diagnostics.SvSequenceEvidenceText}" |
| 2539 | + Foreground="#B9D1E5" FontSize="11.5" |
| 2540 | + TextWrapping="Wrap"/> |
| 2541 | + <TextBlock Text="{Binding SmcCntStatus, StringFormat=\'Continuity: {0}\'}" |
| 2542 | + Foreground="#9EBAD1" FontSize="11" Margin="0,3,0,0"/> |
2547 | 2543 | </StackPanel> |
2548 | 2544 | </Border> |
2549 | | - <Border Background="#0F2538" BorderBrush="#294864" |
2550 | | - BorderThickness="1" CornerRadius="12" |
2551 | | - Padding="13,12" Margin="0,0,8,0" |
2552 | | - ToolTip="{Binding CaptureTimingCautionText}"> |
| 2545 | + |
| 2546 | + <Border Background="#0F2538" BorderBrush="#294864" BorderThickness="1" |
| 2547 | + CornerRadius="9" Padding="12,10" Margin="0,0,8,0" |
| 2548 | + ToolTip="Missing sample count comes from selected SV smpCnt continuity; decoder rejects are capture-wide."> |
2553 | 2549 | <StackPanel> |
2554 | | - <TextBlock Text="CAPTURE PATH" Foreground="#91B3CF" |
2555 | | - FontSize="10.5" FontWeight="SemiBold"/> |
2556 | | - <TextBlock Text="{Binding NetworkHealthText}" |
2557 | | - Foreground="#F2F8FF" FontSize="17" |
2558 | | - FontWeight="SemiBold" |
2559 | | - Margin="0,8,0,5" |
2560 | | - TextTrimming="CharacterEllipsis"/> |
2561 | | - <TextBlock Text="{Binding Diagnostics.CaptureDropEvidenceText}" |
2562 | | - Foreground="#A7C2D9" FontSize="11.5" |
2563 | | - TextTrimming="CharacterEllipsis" |
2564 | | - ToolTip="{Binding AdapterTimingRiskText}"/> |
| 2550 | + <TextBlock Text="MISSING SAMPLES" Foreground="#9BC7E4" FontSize="10.5" |
| 2551 | + FontWeight="SemiBold"/> |
| 2552 | + <TextBlock Text="{Binding Diagnostics.SvMissingSamplesText}" |
| 2553 | + Foreground="#F3F9FF" FontSize="20" FontWeight="SemiBold" |
| 2554 | + FontFamily="Consolas" Margin="0,6,0,4"/> |
| 2555 | + <TextBlock Text="{Binding PacketRateText}" |
| 2556 | + Foreground="#B9D1E5" FontSize="11.5"/> |
| 2557 | + <TextBlock Text="{Binding Diagnostics.SvDecodeRejectText}" |
| 2558 | + Foreground="#9EBAD1" FontSize="11" Margin="0,3,0,0" |
| 2559 | + TextWrapping="Wrap"/> |
2565 | 2560 | </StackPanel> |
2566 | 2561 | </Border> |
2567 | | - <Border Background="#0F2538" BorderBrush="#294864" |
2568 | | - BorderThickness="1" CornerRadius="12" |
2569 | | - Padding="13,12" Margin="0" |
2570 | | - ToolTip="{Binding FrequencyStabilityText}"> |
| 2562 | + |
| 2563 | + <Border Background="#0F2538" BorderBrush="#294864" BorderThickness="1" |
| 2564 | + CornerRadius="9" Padding="12,10" |
| 2565 | + ToolTip="{Binding Diagnostics.ValidityText}"> |
2571 | 2566 | <StackPanel> |
2572 | | - <TextBlock Text="SIGNAL" Foreground="#91B3CF" |
2573 | | - FontSize="10.5" FontWeight="SemiBold"/> |
2574 | | - <TextBlock Text="{Binding SignalHealthText}" |
2575 | | - Foreground="#F2F8FF" FontSize="17" |
2576 | | - FontWeight="SemiBold" |
2577 | | - Margin="0,8,0,5" |
2578 | | - TextTrimming="CharacterEllipsis"/> |
2579 | | - <TextBlock Text="{Binding VoltageBalanceText}" |
2580 | | - Foreground="#A7C2D9" FontSize="11.5" |
2581 | | - TextTrimming="CharacterEllipsis" |
2582 | | - ToolTip="{Binding TimingMetricText}"/> |
| 2567 | + <TextBlock Text="SV QUALITY / SYNC" Foreground="#9BC7E4" FontSize="10.5" |
| 2568 | + FontWeight="SemiBold"/> |
| 2569 | + <TextBlock Text="{Binding Diagnostics.SvQualityHeadlineText}" |
| 2570 | + FontSize="20" FontWeight="SemiBold" |
| 2571 | + Margin="0,6,0,4" TextTrimming="CharacterEllipsis"> |
| 2572 | + <TextBlock.Style> |
| 2573 | + <Style TargetType="TextBlock"> |
| 2574 | + <Setter Property="Foreground" Value="#F3C76D"/> |
| 2575 | + <Style.Triggers> |
| 2576 | + <DataTrigger Binding="{Binding Diagnostics.SvQualityHeadlineText}" Value="GOOD"> |
| 2577 | + <Setter Property="Foreground" Value="#74D9AA"/> |
| 2578 | + </DataTrigger> |
| 2579 | + <DataTrigger Binding="{Binding Diagnostics.SvQualityHeadlineText}" Value="INVALID"> |
| 2580 | + <Setter Property="Foreground" Value="#FF8484"/> |
| 2581 | + </DataTrigger> |
| 2582 | + </Style.Triggers> |
| 2583 | + </Style> |
| 2584 | + </TextBlock.Style> |
| 2585 | + </TextBlock> |
| 2586 | + <TextBlock Text="{Binding Diagnostics.SvQualityEvidenceText}" |
| 2587 | + Foreground="#B9D1E5" FontSize="11" |
| 2588 | + TextWrapping="Wrap" ToolTip="{Binding Diagnostics.ValidityText}"/> |
2583 | 2589 | </StackPanel> |
2584 | 2590 | </Border> |
2585 | 2591 | </UniformGrid> |
|
2831 | 2837 | </Grid> |
2832 | 2838 | </Border> |
2833 | 2839 |
|
2834 | | - <Border Grid.Row="5" |
2835 | | - Style="{StaticResource DenseGroupBorderStyle}" |
2836 | | - Padding="12,10" |
2837 | | - Margin="0,14,0,14"> |
| 2840 | + <!-- Selected SV evidence stays visible; PTP is already covered |
| 2841 | + by the separate Timing/PTP tab. --> |
| 2842 | + <Border Grid.Row="5" Background="#0A1C2D" BorderBrush="#24415C" |
| 2843 | + BorderThickness="1" CornerRadius="9" Padding="12,9" |
| 2844 | + Margin="0,12,0,12"> |
| 2845 | + <Border.Style> |
| 2846 | + <Style TargetType="Border"> |
| 2847 | + <Setter Property="Visibility" Value="Collapsed"/> |
| 2848 | + <Style.Triggers> |
| 2849 | + <DataTrigger Binding="{Binding SelectedDiagnosticTarget.Protocol}" Value="SV"> |
| 2850 | + <Setter Property="Visibility" Value="Visible"/> |
| 2851 | + </DataTrigger> |
| 2852 | + </Style.Triggers> |
| 2853 | + </Style> |
| 2854 | + </Border.Style> |
2838 | 2855 | <Grid> |
2839 | 2856 | <Grid.ColumnDefinitions> |
2840 | | - <ColumnDefinition Width="180"/> |
2841 | | - <ColumnDefinition Width="*"/> |
2842 | | - <ColumnDefinition Width="*"/> |
| 2857 | + <ColumnDefinition Width="1.05*"/> |
| 2858 | + <ColumnDefinition Width="1.45*"/> |
| 2859 | + <ColumnDefinition Width="1.15*"/> |
2843 | 2860 | </Grid.ColumnDefinitions> |
2844 | 2861 | <StackPanel Grid.Column="0"> |
2845 | | - <TextBlock Text="TIMING REFERENCE" Foreground="#8FAAC3" FontSize="10.5" FontWeight="SemiBold"/> |
2846 | | - <TextBlock Text="{Binding PtpStatusText}" Foreground="#FFFFFF" FontSize="15" FontWeight="Bold" TextWrapping="Wrap" Margin="0,4,0,0"/> |
| 2862 | + <TextBlock Text="SV CAPTURE EVIDENCE" Foreground="#9BC7E4" |
| 2863 | + FontSize="10.5" FontWeight="SemiBold"/> |
| 2864 | + <TextBlock Text="{Binding Diagnostics.SvArrivalIntervalText}" |
| 2865 | + FontSize="11.5" Foreground="#E3F1FB" |
| 2866 | + Margin="0,5,6,0" TextWrapping="Wrap"/> |
2847 | 2867 | </StackPanel> |
2848 | | - <StackPanel Grid.Column="1" Margin="14,0,10,0"> |
2849 | | - <TextBlock Text="{Binding PtpDomainText}" Foreground="#D6E8F8" FontSize="11.5"/> |
2850 | | - <TextBlock Text="{Binding PtpGrandmasterText}" Foreground="#D6E8F8" FontSize="11.5" TextWrapping="Wrap" Margin="0,3,0,0"/> |
2851 | | - <TextBlock Text="{Binding PtpClockQualityText}" Foreground="#8FAAC3" FontSize="11" TextWrapping="Wrap" Margin="0,3,0,0"/> |
| 2868 | + <StackPanel Grid.Column="1" Margin="10,0,10,0"> |
| 2869 | + <TextBlock Text="TIMESTAMP AUTHORITY" Foreground="#9BC7E4" |
| 2870 | + FontSize="10.5" FontWeight="SemiBold"/> |
| 2871 | + <TextBlock Text="{Binding Diagnostics.SvArrivalAuthorityText}" |
| 2872 | + FontSize="11.5" Foreground="#D1E4F3" |
| 2873 | + Margin="0,5,0,0" TextWrapping="Wrap"/> |
2852 | 2874 | </StackPanel> |
2853 | 2875 | <StackPanel Grid.Column="2"> |
2854 | | - <TextBlock Text="{Binding PtpRateText}" Foreground="#D6E8F8" FontSize="11.5" TextWrapping="Wrap"/> |
2855 | | - <TextBlock Text="{Binding PtpProfileText}" Foreground="#8FAAC3" FontSize="11" TextWrapping="Wrap" Margin="0,3,0,0"/> |
2856 | | - <TextBlock Text="{Binding TimingMetricText}" Foreground="#8FAAC3" FontSize="11" TextWrapping="Wrap" Margin="0,3,0,0"/> |
| 2876 | + <TextBlock Text="NIC / CAPTURE DROPS" Foreground="#9BC7E4" |
| 2877 | + FontSize="10.5" FontWeight="SemiBold"/> |
| 2878 | + <TextBlock Text="{Binding Diagnostics.CaptureDropEvidenceText}" |
| 2879 | + FontSize="11.5" Foreground="#D1E4F3" |
| 2880 | + Margin="0,5,0,0" TextWrapping="Wrap" |
| 2881 | + ToolTip="{Binding AdapterTimingRiskText}"/> |
2857 | 2882 | </StackPanel> |
2858 | 2883 | </Grid> |
2859 | 2884 | </Border> |
|
0 commit comments