<UserControl x:Class="GSF.PhasorProtocols.UI.UserControls.RealTimeMeasurementUserControl" 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" mc:Ignorable="d" d:DesignHeight="590" d:DesignWidth="850" xmlns:tsfBinding="clr-namespace:GSF.TimeSeries.UI.Binding;assembly=GSF.TimeSeries.UI" xmlns:tsf="clr-namespace:GSF.TimeSeries.UI;assembly=GSF.TimeSeries.UI.WPF" Background="Transparent"> <UserControl.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/GSF.TimeSeries.UI.WPF;Component/Resources/CommonResource.xaml"/> <ResourceDictionary Source="/GSF.TimeSeries.UI.WPF;Component/Resources/StyleResource.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </UserControl.Resources> <StackPanel Orientation="Vertical"> <StackPanel.Resources> <HierarchicalDataTemplate x:Key="MeasurementNodeTemplate"> <Border BorderThickness="0,0,0,1" BorderBrush="#FFDDDDDD"> <StackPanel Orientation="Horizontal" VerticalAlignment="Center"> <StackPanel.Resources> <Style TargetType="{x:Type TextBlock}"> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="TextAlignment" Value="Left"/> <Setter Property="VerticalAlignment" Value="Center"/> </Style> </StackPanel.Resources> <TextBlock Text="{tsfBinding:Column Path=ID}" Width="150"/> <TextBlock Text="{tsfBinding:Column Path=Description}" Width="350" TextWrapping="Wrap"/> <TextBlock Text="{tsfBinding:Column Path=TimeTag}" FontWeight="Bold" Width="100" HorizontalAlignment="Center" TextAlignment="Center"/> <TextBlock Text="{tsfBinding:Column Path=Value}" FontWeight="Bold" Width="90" Foreground="{tsfBinding:Column Path=Quality, Converter={StaticResource StringToStatusColorConverter}}" HorizontalAlignment="Center" TextAlignment="Center"/> <TextBlock Text="{tsfBinding:Column Path=EngineeringUnit}" Width="60" HorizontalAlignment="Center" TextAlignment="Center"/> </StackPanel> </Border> </HierarchicalDataTemplate> <HierarchicalDataTemplate x:Key="DeviceNodeTemplate" ItemsSource="{tsfBinding:Column Path=MeasurementList}" ItemTemplate="{StaticResource MeasurementNodeTemplate}"> <StackPanel Orientation="Horizontal" VerticalAlignment="Center"> <StackPanel.Resources> <Style TargetType="{x:Type TextBlock}"> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="TextAlignment" Value="Left"/> <Setter Property="VerticalAlignment" Value="Center"/> </Style> </StackPanel.Resources> <Ellipse Width="12" Height="12" VerticalAlignment="Center" Fill="{tsfBinding:Column Path=StatusColor, Converter={StaticResource StringToStatusColorConverter}}" Margin="2"/> <TextBlock Text="{tsfBinding:Column Path=Acronym}" Width="175" FontWeight="Bold"/> <TextBlock Text="{tsfBinding:Column Path=Name}" Width="300" FontWeight="Bold"/> <TextBlock Text="{tsfBinding:Column Path=ProtocolName}" Width="135" FontWeight="Bold"/> <TextBlock Text="{tsfBinding:Column Path=VendorDeviceName}" Width="100" FontWeight="Bold"/> <Button Content="Edit" Tag="{tsfBinding:Column Path=Acronym}" Template="{StaticResource HyperlinkStyleButtonTemplate}" Width="50" Click="ButtonEdit_Click" /> </StackPanel> </HierarchicalDataTemplate> <HierarchicalDataTemplate x:Key="RootNodeTemplate" ItemsSource="{tsfBinding:Column Path=DeviceList}" ItemTemplate="{StaticResource DeviceNodeTemplate}"> <StackPanel Orientation="Horizontal" VerticalAlignment="Center"> <StackPanel.Resources> <Style TargetType="{x:Type TextBlock}"> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="TextAlignment" Value="Left"/> <Setter Property="VerticalAlignment" Value="Center"/> </Style> </StackPanel.Resources> <Ellipse Width="12" Height="12" VerticalAlignment="Center" Fill="{tsfBinding:Column Path=StatusColor, Converter={StaticResource StringToStatusColorConverter}}" Margin="2"/> <TextBlock Text="{tsfBinding:Column Path=Acronym}" Width="175" FontWeight="Bold"/> <TextBlock Text="{tsfBinding:Column Path=Name}" Width="550" FontWeight="Bold"/> <Button Content="Edit" Template="{StaticResource HyperlinkStyleButtonTemplate}" Width="50" Click="ButtonEdit_Click" Visibility="{tsfBinding:Column Path=ID, Converter={StaticResource ObjectToVisibilityConverter}}"/> </StackPanel> </HierarchicalDataTemplate> <!--<Style x:Key="ExpandedItemStyle" TargetType="TreeViewItem"> <Setter Property="IsExpanded" Value="{tsfBinding:Column Path=DataContext.Expanded, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl, AncestorLevel=1}}"/> </Style>--> <Style x:Key="ExpandedItemStyle" TargetType="TreeViewItem"> <Setter Property="IsExpanded" Value="{tsfBinding:Column Path=Expanded}" /> </Style> </StackPanel.Resources> <StackPanel Orientation="Vertical"> <tsf:TsfPopup x:Name="PopupSettings" Topmost="False" Placement="Center"> <Border CornerRadius="5" BorderThickness="1" Background="White" BorderBrush="Blue"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="2*"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <TextBlock Text="Measurement Data Refresh Interval (in seconds)" Grid.Column="0" Grid.Row="0"/> <TextBox x:Name="TextBoxRefreshInterval" Grid.Row="0" Grid.Column="1" Width="50"/> <StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" HorizontalAlignment="Right"> <Button Content="Restore Default" Margin="2" Width="Auto" Click="ButtonRestore_Click"/> <Button Content="Cancel" Margin="2" Click="ButtonCancel_Click"/> <Button Content="Save" Margin="2" IsDefault="True" Click="ButtonSave_Click"/> </StackPanel> </Grid> </Border> </tsf:TsfPopup> <tsf:TsfPopup x:Name="ShowuserStatusDoc" Topmost="False" Placement="Center" MinHeight="540"> <Border CornerRadius="5" BorderThickness="2" Background="White" BorderBrush="Blue"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <TabControl VerticalAlignment="Stretch"> <TabItem Header="IEEE C37.118"> <Grid Margin="5"> <Grid.Resources> <Style TargetType="{x:Type TextBlock}"> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="TextAlignment" Value="Left"/> <Setter Property="VerticalAlignment" Value="Center"/> <Setter Property="Padding" Value="0"/> </Style> <Style TargetType="{x:Type CheckBox}"> <Setter Property="Width" Value="Auto"/> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="HorizontalContentAlignment" Value="Left"/> </Style> </Grid.Resources> <Grid.ColumnDefinitions> <ColumnDefinition Width="45" MinWidth="1" MaxWidth="50" /> <ColumnDefinition Width="155" MinWidth="1" MaxWidth="165" /> <ColumnDefinition Width="600" MinWidth="1" MaxWidth="1005"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <TextBlock Text="Bit(s)" Grid.Row="0" Grid.Column="0" FontWeight="Bold" /> <TextBlock Text="Description" Grid.Row="0" Grid.Column="1" FontWeight="Bold"/> <TextBlock Text="Comment" Grid.Row="0" Grid.Column="2" FontWeight="Bold"/> <TextBlock Text="15" Grid.Row="1" Grid.Column="0"/> <TextBlock Text="Data valid" Grid.Row="1" Grid.Column="1"/> <TextBlock Text="0 when PMU data is valid, 1 when invalid or PMU is in test mode." Grid.Row="1" Grid.Column="2"/> <TextBlock Text="14" Grid.Row="2" Grid.Column="0"/> <TextBlock Text="PMU error" Grid.Row="2" Grid.Column="1"/> <TextBlock Text="0 when no error, including configuration error." Grid.Row="2" Grid.Column="2"/> <TextBlock Text="13" Grid.Row="3" Grid.Column="0"/> <TextBlock Text="PMU sync" Grid.Row="3" Grid.Column="1"/> <TextBlock Text="0 when in sync." Grid.Row="3" Grid.Column="2"/> <TextBlock Text="12" Grid.Row="4" Grid.Column="0"/> <TextBlock Text="Data sorting" Grid.Row="4" Grid.Column="1"/> <TextBlock Text="0 by time stamp, 1 by arrival." Grid.Row="4" Grid.Column="2"/> <TextBlock Text="11" Grid.Row="5" Grid.Column="0"/> <TextBlock Text="PMU trigger detected" Grid.Row="5" Grid.Column="1"/> <TextBlock Text="0 when no trigger." Grid.Row="5" Grid.Column="2"/> <TextBlock Text="10" Grid.Row="6" Grid.Column="0"/> <TextBlock Text="Configuration changed" Grid.Row="6" Grid.Column="1"/> <TextBlock Text="set to 1 for 1 min when configuration changed." Grid.Row="6" Grid.Column="2"/> <TextBlock Text="09-06" Grid.Row="7" Grid.Column="0"/> <TextBlock Text="Reserved for security" Grid.Row="7" Grid.Column="1"/> <TextBlock Text="presently set to 0." Grid.Row="7" Grid.Column="2"/> <TextBlock VerticalAlignment="Top" Text="05-04" Grid.Row="8" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="Unlocked time" Grid.Row="8" Grid.Column="1"/> <StackPanel Grid.Row="8" Grid.Column="2"> <TextBlock Text="00 = sync locked, best quality." /> <TextBlock Text="01 = Unlocked for 10 s " /> <TextBlock Text="10 = Unlocked for 100 s" /> <TextBlock Text="11 = Unlocked over 1000 s" /> </StackPanel> <TextBlock VerticalAlignment="Top" Text="03-00" Grid.Row="9" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="Trigger reason" Grid.Row="9" Grid.Column="1"/> <Grid Grid.Row="9" Grid.Column="2"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <TextBlock Margin="5,0" Text="1111–1000: Available for user definition" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" /> <TextBlock Margin="5,0" Text="0111: Digital" Grid.Row="1" Grid.Column="0" /> <TextBlock Margin="5,0" Text="0101: df/dt high" Grid.Row="2" Grid.Column="0" /> <TextBlock Margin="5,0" Text="0011: Phase-angle diff" Grid.Row="3" Grid.Column="0" /> <TextBlock Margin="5,0" Text="0011: 0001: Magnitude low" Grid.Row="4" Grid.Column="0" /> <TextBlock Margin="5,0" Text="0110: Reserved" Grid.Row="1" Grid.Column="1" /> <TextBlock Margin="5,0" Text="0100: Frequency high/low" Grid.Row="2" Grid.Column="1" /> <TextBlock Margin="5,0" Text="0010: Magnitude high" Grid.Row="3" Grid.Column="1" /> <TextBlock Margin="5,0" Text="0000: Manual" Grid.Row="4" Grid.Column="1" /> </Grid> </Grid> </TabItem> <TabItem Header="IEEE C37.118.2"> <Grid Margin="5"> <Grid.Resources> <Style TargetType="{x:Type TextBlock}"> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="TextAlignment" Value="Left"/> <Setter Property="VerticalAlignment" Value="Center"/> <Setter Property="Padding" Value="0"/> </Style> <Style TargetType="{x:Type CheckBox}"> <Setter Property="Width" Value="Auto"/> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="HorizontalContentAlignment" Value="Left"/> </Style> </Grid.Resources> <Grid.ColumnDefinitions> <ColumnDefinition Width="45" MinWidth="1" MaxWidth="50" /> <ColumnDefinition Width="155" MinWidth="1" MaxWidth="165" /> <ColumnDefinition Width="600" MinWidth="1" MaxWidth="1005"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <TextBlock Text="Bit(s)" Grid.Row="0" Grid.Column="0" FontWeight="Bold" /> <TextBlock Text="Description" Grid.Row="0" Grid.Column="1" FontWeight="Bold"/> <TextBlock Text="Comment" Grid.Row="0" Grid.Column="2" FontWeight="Bold"/> <TextBlock VerticalAlignment="Top" Text="15-14" Grid.Row="1" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="Data error" Grid.Row="1" Grid.Column="1"/> <Grid Grid.Row="1" Grid.Column="2"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <TextBlock Margin="5,0" Text="00" Grid.Row="0" Grid.Column="0" /> <TextBlock Margin="5,0" Text="01" Grid.Row="1" Grid.Column="0" /> <TextBlock Margin="5,0" Text="10" Grid.Row="2" Grid.Column="0" /> <TextBlock Margin="5,0" Text="11" Grid.Row="3" Grid.Column="0" /> <TextBlock Margin="5,0" Text="Good measurement data, no errors" Grid.Row="0" Grid.Column="1" /> <TextBlock Margin="5,0" Text="PMU error. No information about data" Grid.Row="1" Grid.Column="1" /> <TextBlock Margin="5,0" Text="PMU in test mode (do not use values) or absent data tags have been inserted (do not use values)" Grid.Row="2" Grid.Column="1" /> <TextBlock Margin="5,0" Text="PMU error (do not use values)" Grid.Row="3" Grid.Column="1" /> </Grid> <TextBlock VerticalAlignment="Top" Text="13" Grid.Row="2" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="PMU sync" Grid.Row="2" Grid.Column="1"/> <TextBlock VerticalAlignment="Top" Text="0 when in sync with a UTC traceable time source" Grid.Row="2" Grid.Column="2"/> <TextBlock VerticalAlignment="Top" Text="12" Grid.Row="3" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="Data sorting" Grid.Row="3" Grid.Column="1"/> <TextBlock VerticalAlignment="Top" Text="0 by time stamp, 1 by arrival" Grid.Row="3" Grid.Column="2"/> <TextBlock VerticalAlignment="Top" Text="11" Grid.Row="4" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="PMU trigger detected" Grid.Row="4" Grid.Column="1"/> <TextBlock VerticalAlignment="Top" Text="0 when no trigger" Grid.Row="4" Grid.Column="2"/> <TextBlock VerticalAlignment="Top" Text="10" Grid.Row="5" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="Configuration changed" Grid.Row="5" Grid.Column="1"/> <TextBlock VerticalAlignment="Top" Text="set to 1 for 1 min to advise configuration will change, and clear to 0 when change effected." Grid.Row="5" Grid.Column="2"/> <TextBlock VerticalAlignment="Top" Text="09" Grid.Row="6" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="Data modified" Grid.Row="6" Grid.Column="1"/> <TextBlock VerticalAlignment="Top" Text="1 if data modified by post processing, 0 otherwise" Grid.Row="6" Grid.Column="2"/> <TextBlock VerticalAlignment="Top" Text="08-06" Grid.Row="7" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="PMU Time quality" Grid.Row="7" Grid.Column="1"/> <Grid Grid.Row="7" Grid.Column="2"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <TextBlock Margin="5,0" FontWeight="Bold" Text="Binary" Grid.Row="0" Grid.Column="0" /> <TextBlock Margin="5,0" Text="111" Grid.Row="1" Grid.Column="0" /> <TextBlock Margin="5,0" Text="110" Grid.Row="2" Grid.Column="0" /> <TextBlock Margin="5,0" Text="101" Grid.Row="3" Grid.Column="0" /> <TextBlock Margin="5,0" Text="100" Grid.Row="4" Grid.Column="0" /> <TextBlock Margin="5,0" Text="011" Grid.Row="5" Grid.Column="0" /> <TextBlock Margin="5,0" Text="010" Grid.Row="6" Grid.Column="0" /> <TextBlock Margin="5,0" Text="001" Grid.Row="7" Grid.Column="0" /> <TextBlock Margin="5,0" Text="000" Grid.Row="8" Grid.Column="0" /> <TextBlock Margin="5,0" FontWeight="Bold" Text="hex" Grid.Row="0" Grid.Column="1" /> <TextBlock Margin="5,0" Text="7" Grid.Row="1" Grid.Column="1" /> <TextBlock Margin="5,0" Text="6" Grid.Row="2" Grid.Column="1" /> <TextBlock Margin="5,0" Text="5" Grid.Row="3" Grid.Column="1" /> <TextBlock Margin="5,0" Text="4" Grid.Row="4" Grid.Column="1" /> <TextBlock Margin="5,0" Text="3" Grid.Row="5" Grid.Column="1" /> <TextBlock Margin="5,0" Text="2" Grid.Row="6" Grid.Column="1" /> <TextBlock Margin="5,0" Text="1" Grid.Row="7" Grid.Column="1" /> <TextBlock Margin="5,0" Text="0" Grid.Row="8" Grid.Column="1" /> <TextBlock Margin="5,0" FontWeight="Bold" Text="Value (worst-case accuracy)" Grid.Row="0" Grid.Column="2" /> <TextBlock Margin="5,0" Text="Estimated maximum time error > 10 ms or time error unknown" Grid.Row="1" Grid.Column="2" /> <TextBlock Margin="5,0" Text="Estimated maximum time error < 10 ms" Grid.Row="2" Grid.Column="2" /> <TextBlock Margin="5,0" Text="Estimated maximum time error < 1 ms" Grid.Row="3" Grid.Column="2" /> <TextBlock Margin="5,0" Text="Estimated maximum time error < 100 μs" Grid.Row="4" Grid.Column="2" /> <TextBlock Margin="5,0" Text="Estimated maximum time error < 10 μs" Grid.Row="5" Grid.Column="2" /> <TextBlock Margin="5,0" Text="Estimated maximum time error < 1 μs" Grid.Row="6" Grid.Column="2" /> <TextBlock Margin="5,0" Text="Estimated maximum time error < 100 ns" Grid.Row="7" Grid.Column="2" /> <TextBlock Margin="5,0" Text="Not used (indicates code from previous version of profile)" Grid.Row="8" Grid.Column="2" /> </Grid> <TextBlock VerticalAlignment="Top" Text="05-04" Grid.Row="8" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="Unlocked time" Grid.Row="8" Grid.Column="1"/> <StackPanel Grid.Row="8" Grid.Column="2"> <TextBlock Text="00 = sync locked, best quality." /> <TextBlock Text="01 = Unlocked for 10 s " /> <TextBlock Text="10 = Unlocked for 100 s" /> <TextBlock Text="11 = Unlocked over 1000 s" /> </StackPanel> <TextBlock VerticalAlignment="Top" Text="03-00" Grid.Row="9" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="Trigger reason" Grid.Row="9" Grid.Column="1"/> <Grid Grid.Row="9" Grid.Column="2"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <TextBlock Margin="5,0" Text="1111–1000: Available for user definition" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" /> <TextBlock Margin="5,0" Text="0111: Digital" Grid.Row="1" Grid.Column="0" /> <TextBlock Margin="5,0" Text="0101: df/dt high" Grid.Row="2" Grid.Column="0" /> <TextBlock Margin="5,0" Text="0011: Phase-angle diff" Grid.Row="3" Grid.Column="0" /> <TextBlock Margin="5,0" Text="0011: 0001: Magnitude low" Grid.Row="4" Grid.Column="0" /> <TextBlock Margin="5,0" Text="0110: Reserved" Grid.Row="1" Grid.Column="1" /> <TextBlock Margin="5,0" Text="0100: Frequency high/low" Grid.Row="2" Grid.Column="1" /> <TextBlock Margin="5,0" Text="0010: Magnitude high" Grid.Row="3" Grid.Column="1" /> <TextBlock Margin="5,0" Text="0000: Manual" Grid.Row="4" Grid.Column="1" /> </Grid> </Grid> </TabItem> <TabItem Header="IEEE 1344"> <Grid Margin="5"> <Grid.Resources> <Style TargetType="{x:Type TextBlock}"> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="TextAlignment" Value="Left"/> <Setter Property="VerticalAlignment" Value="Center"/> <Setter Property="Padding" Value="0"/> </Style> <Style TargetType="{x:Type CheckBox}"> <Setter Property="Width" Value="Auto"/> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="HorizontalContentAlignment" Value="Left"/> </Style> </Grid.Resources> <Grid.ColumnDefinitions> <ColumnDefinition Width="45" MinWidth="1" MaxWidth="50" /> <ColumnDefinition Width="155" MinWidth="1" MaxWidth="165" /> <ColumnDefinition Width="600" MinWidth="1" MaxWidth="1005"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <TextBlock Text="Bit(s)" Grid.Row="0" Grid.Column="0" FontWeight="Bold" /> <TextBlock Text="Description" Grid.Row="0" Grid.Column="1" FontWeight="Bold"/> <TextBlock Text="Comment" Grid.Row="0" Grid.Column="2" FontWeight="Bold"/> <TextBlock Text="15" Grid.Row="1" Grid.Column="0"/> <TextBlock Text="PMU sync" Grid.Row="1" Grid.Column="1"/> <TextBlock Text="synchronization status (0: valid data, 1: invalid data)." Grid.Row="1" Grid.Column="2"/> <TextBlock Text="14" Grid.Row="2" Grid.Column="0"/> <TextBlock Text="Data valid" Grid.Row="2" Grid.Column="1"/> <TextBlock Text="Data integrity (0: valid data, 1: invalid data)." Grid.Row="2" Grid.Column="2"/> <TextBlock Text="13-11" Grid.Row="3" Grid.Column="0"/> <TextBlock Text="Trigger reason" Grid.Row="3" Grid.Column="1"/> <TextBlock Text="Trigger Status:" Grid.Row="3" Grid.Column="2"/> <TextBlock Text="111: Frequency trigger" Grid.Row="4" Grid.Column="2"/> <TextBlock Text="110: df/dt trigger" Grid.Row="5" Grid.Column="2"/> <TextBlock Text="101: Angle trigger" Grid.Row="6" Grid.Column="2"/> <TextBlock Text="100: Overcurrent trigger" Grid.Row="7" Grid.Column="2"/> <TextBlock Text="011: Undervoltage trigger" Grid.Row="8" Grid.Column="2"/> <TextBlock Text="010: Rate trigger" Grid.Row="9" Grid.Column="2"/> <TextBlock Text="000-001: Unused, user defined" Grid.Row="10" Grid.Column="2"/> <TextBlock Text="10-0" Grid.Row="11" Grid.Column="0"/> <TextBlock Text="Byte count" Grid.Row="11" Grid.Column="1"/> <TextBlock Text="Number of bytes in frame including SOC," Grid.Row="11" Grid.Column="2"/> <TextBlock Text="SMPCNT, STAT, and CRC16, 10-2047" Grid.Row="12" Grid.Column="2"/> </Grid> </TabItem> <TabItem Header="Abstract High Order Bits"> <Grid Margin="5"> <Grid.Resources> <Style TargetType="{x:Type TextBlock}"> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="TextAlignment" Value="Left"/> <Setter Property="VerticalAlignment" Value="Center"/> <Setter Property="Padding" Value="0"/> </Style> Lines 1–500 of 583. Load more
<UserControl x:Class="GSF.PhasorProtocols.UI.UserControls.RealTimeMeasurementUserControl" 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" mc:Ignorable="d" d:DesignHeight="590" d:DesignWidth="850" xmlns:tsfBinding="clr-namespace:GSF.TimeSeries.UI.Binding;assembly=GSF.TimeSeries.UI" xmlns:tsf="clr-namespace:GSF.TimeSeries.UI;assembly=GSF.TimeSeries.UI.WPF" Background="Transparent"> <UserControl.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/GSF.TimeSeries.UI.WPF;Component/Resources/CommonResource.xaml"/> <ResourceDictionary Source="/GSF.TimeSeries.UI.WPF;Component/Resources/StyleResource.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </UserControl.Resources> <StackPanel Orientation="Vertical"> <StackPanel.Resources> <HierarchicalDataTemplate x:Key="MeasurementNodeTemplate"> <Border BorderThickness="0,0,0,1" BorderBrush="#FFDDDDDD"> <StackPanel Orientation="Horizontal" VerticalAlignment="Center"> <StackPanel.Resources> <Style TargetType="{x:Type TextBlock}"> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="TextAlignment" Value="Left"/> <Setter Property="VerticalAlignment" Value="Center"/> </Style> </StackPanel.Resources> <TextBlock Text="{tsfBinding:Column Path=ID}" Width="150"/> <TextBlock Text="{tsfBinding:Column Path=Description}" Width="350" TextWrapping="Wrap"/> <TextBlock Text="{tsfBinding:Column Path=TimeTag}" FontWeight="Bold" Width="100" HorizontalAlignment="Center" TextAlignment="Center"/> <TextBlock Text="{tsfBinding:Column Path=Value}" FontWeight="Bold" Width="90" Foreground="{tsfBinding:Column Path=Quality, Converter={StaticResource StringToStatusColorConverter}}" HorizontalAlignment="Center" TextAlignment="Center"/> <TextBlock Text="{tsfBinding:Column Path=EngineeringUnit}" Width="60" HorizontalAlignment="Center" TextAlignment="Center"/> </StackPanel> </Border> </HierarchicalDataTemplate> <HierarchicalDataTemplate x:Key="DeviceNodeTemplate" ItemsSource="{tsfBinding:Column Path=MeasurementList}" ItemTemplate="{StaticResource MeasurementNodeTemplate}"> <StackPanel Orientation="Horizontal" VerticalAlignment="Center"> <StackPanel.Resources> <Style TargetType="{x:Type TextBlock}"> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="TextAlignment" Value="Left"/> <Setter Property="VerticalAlignment" Value="Center"/> </Style> </StackPanel.Resources> <Ellipse Width="12" Height="12" VerticalAlignment="Center" Fill="{tsfBinding:Column Path=StatusColor, Converter={StaticResource StringToStatusColorConverter}}" Margin="2"/> <TextBlock Text="{tsfBinding:Column Path=Acronym}" Width="175" FontWeight="Bold"/> <TextBlock Text="{tsfBinding:Column Path=Name}" Width="300" FontWeight="Bold"/> <TextBlock Text="{tsfBinding:Column Path=ProtocolName}" Width="135" FontWeight="Bold"/> <TextBlock Text="{tsfBinding:Column Path=VendorDeviceName}" Width="100" FontWeight="Bold"/> <Button Content="Edit" Tag="{tsfBinding:Column Path=Acronym}" Template="{StaticResource HyperlinkStyleButtonTemplate}" Width="50" Click="ButtonEdit_Click" /> </StackPanel> </HierarchicalDataTemplate> <HierarchicalDataTemplate x:Key="RootNodeTemplate" ItemsSource="{tsfBinding:Column Path=DeviceList}" ItemTemplate="{StaticResource DeviceNodeTemplate}"> <StackPanel Orientation="Horizontal" VerticalAlignment="Center"> <StackPanel.Resources> <Style TargetType="{x:Type TextBlock}"> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="TextAlignment" Value="Left"/> <Setter Property="VerticalAlignment" Value="Center"/> </Style> </StackPanel.Resources> <Ellipse Width="12" Height="12" VerticalAlignment="Center" Fill="{tsfBinding:Column Path=StatusColor, Converter={StaticResource StringToStatusColorConverter}}" Margin="2"/> <TextBlock Text="{tsfBinding:Column Path=Acronym}" Width="175" FontWeight="Bold"/> <TextBlock Text="{tsfBinding:Column Path=Name}" Width="550" FontWeight="Bold"/> <Button Content="Edit" Template="{StaticResource HyperlinkStyleButtonTemplate}" Width="50" Click="ButtonEdit_Click" Visibility="{tsfBinding:Column Path=ID, Converter={StaticResource ObjectToVisibilityConverter}}"/> </StackPanel> </HierarchicalDataTemplate> <!--<Style x:Key="ExpandedItemStyle" TargetType="TreeViewItem"> <Setter Property="IsExpanded" Value="{tsfBinding:Column Path=DataContext.Expanded, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl, AncestorLevel=1}}"/> </Style>--> <Style x:Key="ExpandedItemStyle" TargetType="TreeViewItem"> <Setter Property="IsExpanded" Value="{tsfBinding:Column Path=Expanded}" /> </Style> </StackPanel.Resources> <StackPanel Orientation="Vertical"> <tsf:TsfPopup x:Name="PopupSettings" Topmost="False" Placement="Center"> <Border CornerRadius="5" BorderThickness="1" Background="White" BorderBrush="Blue"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="2*"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <TextBlock Text="Measurement Data Refresh Interval (in seconds)" Grid.Column="0" Grid.Row="0"/> <TextBox x:Name="TextBoxRefreshInterval" Grid.Row="0" Grid.Column="1" Width="50"/> <StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" HorizontalAlignment="Right"> <Button Content="Restore Default" Margin="2" Width="Auto" Click="ButtonRestore_Click"/> <Button Content="Cancel" Margin="2" Click="ButtonCancel_Click"/> <Button Content="Save" Margin="2" IsDefault="True" Click="ButtonSave_Click"/> </StackPanel> </Grid> </Border> </tsf:TsfPopup> <tsf:TsfPopup x:Name="ShowuserStatusDoc" Topmost="False" Placement="Center" MinHeight="540"> <Border CornerRadius="5" BorderThickness="2" Background="White" BorderBrush="Blue"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <TabControl VerticalAlignment="Stretch"> <TabItem Header="IEEE C37.118"> <Grid Margin="5"> <Grid.Resources> <Style TargetType="{x:Type TextBlock}"> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="TextAlignment" Value="Left"/> <Setter Property="VerticalAlignment" Value="Center"/> <Setter Property="Padding" Value="0"/> </Style> <Style TargetType="{x:Type CheckBox}"> <Setter Property="Width" Value="Auto"/> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="HorizontalContentAlignment" Value="Left"/> </Style> </Grid.Resources> <Grid.ColumnDefinitions> <ColumnDefinition Width="45" MinWidth="1" MaxWidth="50" /> <ColumnDefinition Width="155" MinWidth="1" MaxWidth="165" /> <ColumnDefinition Width="600" MinWidth="1" MaxWidth="1005"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <TextBlock Text="Bit(s)" Grid.Row="0" Grid.Column="0" FontWeight="Bold" /> <TextBlock Text="Description" Grid.Row="0" Grid.Column="1" FontWeight="Bold"/> <TextBlock Text="Comment" Grid.Row="0" Grid.Column="2" FontWeight="Bold"/> <TextBlock Text="15" Grid.Row="1" Grid.Column="0"/> <TextBlock Text="Data valid" Grid.Row="1" Grid.Column="1"/> <TextBlock Text="0 when PMU data is valid, 1 when invalid or PMU is in test mode." Grid.Row="1" Grid.Column="2"/> <TextBlock Text="14" Grid.Row="2" Grid.Column="0"/> <TextBlock Text="PMU error" Grid.Row="2" Grid.Column="1"/> <TextBlock Text="0 when no error, including configuration error." Grid.Row="2" Grid.Column="2"/> <TextBlock Text="13" Grid.Row="3" Grid.Column="0"/> <TextBlock Text="PMU sync" Grid.Row="3" Grid.Column="1"/> <TextBlock Text="0 when in sync." Grid.Row="3" Grid.Column="2"/> <TextBlock Text="12" Grid.Row="4" Grid.Column="0"/> <TextBlock Text="Data sorting" Grid.Row="4" Grid.Column="1"/> <TextBlock Text="0 by time stamp, 1 by arrival." Grid.Row="4" Grid.Column="2"/> <TextBlock Text="11" Grid.Row="5" Grid.Column="0"/> <TextBlock Text="PMU trigger detected" Grid.Row="5" Grid.Column="1"/> <TextBlock Text="0 when no trigger." Grid.Row="5" Grid.Column="2"/> <TextBlock Text="10" Grid.Row="6" Grid.Column="0"/> <TextBlock Text="Configuration changed" Grid.Row="6" Grid.Column="1"/> <TextBlock Text="set to 1 for 1 min when configuration changed." Grid.Row="6" Grid.Column="2"/> <TextBlock Text="09-06" Grid.Row="7" Grid.Column="0"/> <TextBlock Text="Reserved for security" Grid.Row="7" Grid.Column="1"/> <TextBlock Text="presently set to 0." Grid.Row="7" Grid.Column="2"/> <TextBlock VerticalAlignment="Top" Text="05-04" Grid.Row="8" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="Unlocked time" Grid.Row="8" Grid.Column="1"/> <StackPanel Grid.Row="8" Grid.Column="2"> <TextBlock Text="00 = sync locked, best quality." /> <TextBlock Text="01 = Unlocked for 10 s " /> <TextBlock Text="10 = Unlocked for 100 s" /> <TextBlock Text="11 = Unlocked over 1000 s" /> </StackPanel> <TextBlock VerticalAlignment="Top" Text="03-00" Grid.Row="9" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="Trigger reason" Grid.Row="9" Grid.Column="1"/> <Grid Grid.Row="9" Grid.Column="2"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <TextBlock Margin="5,0" Text="1111–1000: Available for user definition" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" /> <TextBlock Margin="5,0" Text="0111: Digital" Grid.Row="1" Grid.Column="0" /> <TextBlock Margin="5,0" Text="0101: df/dt high" Grid.Row="2" Grid.Column="0" /> <TextBlock Margin="5,0" Text="0011: Phase-angle diff" Grid.Row="3" Grid.Column="0" /> <TextBlock Margin="5,0" Text="0011: 0001: Magnitude low" Grid.Row="4" Grid.Column="0" /> <TextBlock Margin="5,0" Text="0110: Reserved" Grid.Row="1" Grid.Column="1" /> <TextBlock Margin="5,0" Text="0100: Frequency high/low" Grid.Row="2" Grid.Column="1" /> <TextBlock Margin="5,0" Text="0010: Magnitude high" Grid.Row="3" Grid.Column="1" /> <TextBlock Margin="5,0" Text="0000: Manual" Grid.Row="4" Grid.Column="1" /> </Grid> </Grid> </TabItem> <TabItem Header="IEEE C37.118.2"> <Grid Margin="5"> <Grid.Resources> <Style TargetType="{x:Type TextBlock}"> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="TextAlignment" Value="Left"/> <Setter Property="VerticalAlignment" Value="Center"/> <Setter Property="Padding" Value="0"/> </Style> <Style TargetType="{x:Type CheckBox}"> <Setter Property="Width" Value="Auto"/> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="HorizontalContentAlignment" Value="Left"/> </Style> </Grid.Resources> <Grid.ColumnDefinitions> <ColumnDefinition Width="45" MinWidth="1" MaxWidth="50" /> <ColumnDefinition Width="155" MinWidth="1" MaxWidth="165" /> <ColumnDefinition Width="600" MinWidth="1" MaxWidth="1005"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <TextBlock Text="Bit(s)" Grid.Row="0" Grid.Column="0" FontWeight="Bold" /> <TextBlock Text="Description" Grid.Row="0" Grid.Column="1" FontWeight="Bold"/> <TextBlock Text="Comment" Grid.Row="0" Grid.Column="2" FontWeight="Bold"/> <TextBlock VerticalAlignment="Top" Text="15-14" Grid.Row="1" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="Data error" Grid.Row="1" Grid.Column="1"/> <Grid Grid.Row="1" Grid.Column="2"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <TextBlock Margin="5,0" Text="00" Grid.Row="0" Grid.Column="0" /> <TextBlock Margin="5,0" Text="01" Grid.Row="1" Grid.Column="0" /> <TextBlock Margin="5,0" Text="10" Grid.Row="2" Grid.Column="0" /> <TextBlock Margin="5,0" Text="11" Grid.Row="3" Grid.Column="0" /> <TextBlock Margin="5,0" Text="Good measurement data, no errors" Grid.Row="0" Grid.Column="1" /> <TextBlock Margin="5,0" Text="PMU error. No information about data" Grid.Row="1" Grid.Column="1" /> <TextBlock Margin="5,0" Text="PMU in test mode (do not use values) or absent data tags have been inserted (do not use values)" Grid.Row="2" Grid.Column="1" /> <TextBlock Margin="5,0" Text="PMU error (do not use values)" Grid.Row="3" Grid.Column="1" /> </Grid> <TextBlock VerticalAlignment="Top" Text="13" Grid.Row="2" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="PMU sync" Grid.Row="2" Grid.Column="1"/> <TextBlock VerticalAlignment="Top" Text="0 when in sync with a UTC traceable time source" Grid.Row="2" Grid.Column="2"/> <TextBlock VerticalAlignment="Top" Text="12" Grid.Row="3" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="Data sorting" Grid.Row="3" Grid.Column="1"/> <TextBlock VerticalAlignment="Top" Text="0 by time stamp, 1 by arrival" Grid.Row="3" Grid.Column="2"/> <TextBlock VerticalAlignment="Top" Text="11" Grid.Row="4" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="PMU trigger detected" Grid.Row="4" Grid.Column="1"/> <TextBlock VerticalAlignment="Top" Text="0 when no trigger" Grid.Row="4" Grid.Column="2"/> <TextBlock VerticalAlignment="Top" Text="10" Grid.Row="5" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="Configuration changed" Grid.Row="5" Grid.Column="1"/> <TextBlock VerticalAlignment="Top" Text="set to 1 for 1 min to advise configuration will change, and clear to 0 when change effected." Grid.Row="5" Grid.Column="2"/> <TextBlock VerticalAlignment="Top" Text="09" Grid.Row="6" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="Data modified" Grid.Row="6" Grid.Column="1"/> <TextBlock VerticalAlignment="Top" Text="1 if data modified by post processing, 0 otherwise" Grid.Row="6" Grid.Column="2"/> <TextBlock VerticalAlignment="Top" Text="08-06" Grid.Row="7" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="PMU Time quality" Grid.Row="7" Grid.Column="1"/> <Grid Grid.Row="7" Grid.Column="2"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <TextBlock Margin="5,0" FontWeight="Bold" Text="Binary" Grid.Row="0" Grid.Column="0" /> <TextBlock Margin="5,0" Text="111" Grid.Row="1" Grid.Column="0" /> <TextBlock Margin="5,0" Text="110" Grid.Row="2" Grid.Column="0" /> <TextBlock Margin="5,0" Text="101" Grid.Row="3" Grid.Column="0" /> <TextBlock Margin="5,0" Text="100" Grid.Row="4" Grid.Column="0" /> <TextBlock Margin="5,0" Text="011" Grid.Row="5" Grid.Column="0" /> <TextBlock Margin="5,0" Text="010" Grid.Row="6" Grid.Column="0" /> <TextBlock Margin="5,0" Text="001" Grid.Row="7" Grid.Column="0" /> <TextBlock Margin="5,0" Text="000" Grid.Row="8" Grid.Column="0" /> <TextBlock Margin="5,0" FontWeight="Bold" Text="hex" Grid.Row="0" Grid.Column="1" /> <TextBlock Margin="5,0" Text="7" Grid.Row="1" Grid.Column="1" /> <TextBlock Margin="5,0" Text="6" Grid.Row="2" Grid.Column="1" /> <TextBlock Margin="5,0" Text="5" Grid.Row="3" Grid.Column="1" /> <TextBlock Margin="5,0" Text="4" Grid.Row="4" Grid.Column="1" /> <TextBlock Margin="5,0" Text="3" Grid.Row="5" Grid.Column="1" /> <TextBlock Margin="5,0" Text="2" Grid.Row="6" Grid.Column="1" /> <TextBlock Margin="5,0" Text="1" Grid.Row="7" Grid.Column="1" /> <TextBlock Margin="5,0" Text="0" Grid.Row="8" Grid.Column="1" /> <TextBlock Margin="5,0" FontWeight="Bold" Text="Value (worst-case accuracy)" Grid.Row="0" Grid.Column="2" /> <TextBlock Margin="5,0" Text="Estimated maximum time error > 10 ms or time error unknown" Grid.Row="1" Grid.Column="2" /> <TextBlock Margin="5,0" Text="Estimated maximum time error < 10 ms" Grid.Row="2" Grid.Column="2" /> <TextBlock Margin="5,0" Text="Estimated maximum time error < 1 ms" Grid.Row="3" Grid.Column="2" /> <TextBlock Margin="5,0" Text="Estimated maximum time error < 100 μs" Grid.Row="4" Grid.Column="2" /> <TextBlock Margin="5,0" Text="Estimated maximum time error < 10 μs" Grid.Row="5" Grid.Column="2" /> <TextBlock Margin="5,0" Text="Estimated maximum time error < 1 μs" Grid.Row="6" Grid.Column="2" /> <TextBlock Margin="5,0" Text="Estimated maximum time error < 100 ns" Grid.Row="7" Grid.Column="2" /> <TextBlock Margin="5,0" Text="Not used (indicates code from previous version of profile)" Grid.Row="8" Grid.Column="2" /> </Grid> <TextBlock VerticalAlignment="Top" Text="05-04" Grid.Row="8" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="Unlocked time" Grid.Row="8" Grid.Column="1"/> <StackPanel Grid.Row="8" Grid.Column="2"> <TextBlock Text="00 = sync locked, best quality." /> <TextBlock Text="01 = Unlocked for 10 s " /> <TextBlock Text="10 = Unlocked for 100 s" /> <TextBlock Text="11 = Unlocked over 1000 s" /> </StackPanel> <TextBlock VerticalAlignment="Top" Text="03-00" Grid.Row="9" Grid.Column="0"/> <TextBlock VerticalAlignment="Top" Text="Trigger reason" Grid.Row="9" Grid.Column="1"/> <Grid Grid.Row="9" Grid.Column="2"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <TextBlock Margin="5,0" Text="1111–1000: Available for user definition" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" /> <TextBlock Margin="5,0" Text="0111: Digital" Grid.Row="1" Grid.Column="0" /> <TextBlock Margin="5,0" Text="0101: df/dt high" Grid.Row="2" Grid.Column="0" /> <TextBlock Margin="5,0" Text="0011: Phase-angle diff" Grid.Row="3" Grid.Column="0" /> <TextBlock Margin="5,0" Text="0011: 0001: Magnitude low" Grid.Row="4" Grid.Column="0" /> <TextBlock Margin="5,0" Text="0110: Reserved" Grid.Row="1" Grid.Column="1" /> <TextBlock Margin="5,0" Text="0100: Frequency high/low" Grid.Row="2" Grid.Column="1" /> <TextBlock Margin="5,0" Text="0010: Magnitude high" Grid.Row="3" Grid.Column="1" /> <TextBlock Margin="5,0" Text="0000: Manual" Grid.Row="4" Grid.Column="1" /> </Grid> </Grid> </TabItem> <TabItem Header="IEEE 1344"> <Grid Margin="5"> <Grid.Resources> <Style TargetType="{x:Type TextBlock}"> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="TextAlignment" Value="Left"/> <Setter Property="VerticalAlignment" Value="Center"/> <Setter Property="Padding" Value="0"/> </Style> <Style TargetType="{x:Type CheckBox}"> <Setter Property="Width" Value="Auto"/> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="HorizontalContentAlignment" Value="Left"/> </Style> </Grid.Resources> <Grid.ColumnDefinitions> <ColumnDefinition Width="45" MinWidth="1" MaxWidth="50" /> <ColumnDefinition Width="155" MinWidth="1" MaxWidth="165" /> <ColumnDefinition Width="600" MinWidth="1" MaxWidth="1005"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <TextBlock Text="Bit(s)" Grid.Row="0" Grid.Column="0" FontWeight="Bold" /> <TextBlock Text="Description" Grid.Row="0" Grid.Column="1" FontWeight="Bold"/> <TextBlock Text="Comment" Grid.Row="0" Grid.Column="2" FontWeight="Bold"/> <TextBlock Text="15" Grid.Row="1" Grid.Column="0"/> <TextBlock Text="PMU sync" Grid.Row="1" Grid.Column="1"/> <TextBlock Text="synchronization status (0: valid data, 1: invalid data)." Grid.Row="1" Grid.Column="2"/> <TextBlock Text="14" Grid.Row="2" Grid.Column="0"/> <TextBlock Text="Data valid" Grid.Row="2" Grid.Column="1"/> <TextBlock Text="Data integrity (0: valid data, 1: invalid data)." Grid.Row="2" Grid.Column="2"/> <TextBlock Text="13-11" Grid.Row="3" Grid.Column="0"/> <TextBlock Text="Trigger reason" Grid.Row="3" Grid.Column="1"/> <TextBlock Text="Trigger Status:" Grid.Row="3" Grid.Column="2"/> <TextBlock Text="111: Frequency trigger" Grid.Row="4" Grid.Column="2"/> <TextBlock Text="110: df/dt trigger" Grid.Row="5" Grid.Column="2"/> <TextBlock Text="101: Angle trigger" Grid.Row="6" Grid.Column="2"/> <TextBlock Text="100: Overcurrent trigger" Grid.Row="7" Grid.Column="2"/> <TextBlock Text="011: Undervoltage trigger" Grid.Row="8" Grid.Column="2"/> <TextBlock Text="010: Rate trigger" Grid.Row="9" Grid.Column="2"/> <TextBlock Text="000-001: Unused, user defined" Grid.Row="10" Grid.Column="2"/> <TextBlock Text="10-0" Grid.Row="11" Grid.Column="0"/> <TextBlock Text="Byte count" Grid.Row="11" Grid.Column="1"/> <TextBlock Text="Number of bytes in frame including SOC," Grid.Row="11" Grid.Column="2"/> <TextBlock Text="SMPCNT, STAT, and CRC16, 10-2047" Grid.Row="12" Grid.Column="2"/> </Grid> </TabItem> <TabItem Header="Abstract High Order Bits"> <Grid Margin="5"> <Grid.Resources> <Style TargetType="{x:Type TextBlock}"> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="TextAlignment" Value="Left"/> <Setter Property="VerticalAlignment" Value="Center"/> <Setter Property="Padding" Value="0"/> </Style>