Status.xaml 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. <UserControl x:Class="HistoryUI.Views.Status"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:hc="https://handyorg.github.io/handycontrol"
  7. xmlns:local="clr-namespace:HistoryUI.Views"
  8. mc:Ignorable="d"
  9. xmlns:ScottPlot="clr-namespace:ScottPlot.WPF;assembly=ScottPlot.WPF"
  10. xmlns:prism="http://prismlibrary.com/"
  11. prism:ViewModelLocator.AutoWireViewModel="True">
  12. <Grid Background="{StaticResource BackgroundColor}">
  13. <Grid Background="#50FFFFFF" Panel.ZIndex="1" Visibility="{Binding Loading}">
  14. <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
  15. <TextBlock FontSize="32">Loading Data...</TextBlock>
  16. </StackPanel>
  17. </Grid>
  18. <Grid Margin="8">
  19. <Grid.RowDefinitions>
  20. <RowDefinition Height="auto"/>
  21. <RowDefinition Height="0"/>
  22. <RowDefinition Height="*"/>
  23. <RowDefinition Height="8"/>
  24. <RowDefinition Height="auto"/>
  25. <RowDefinition Height="16"/>
  26. <RowDefinition Height="auto"/>
  27. <RowDefinition Height="8"/>
  28. </Grid.RowDefinitions>
  29. <Grid Grid.Row="0" Margin="8,0">
  30. <Grid.ColumnDefinitions>
  31. <ColumnDefinition Width="auto"/>
  32. <ColumnDefinition Width="8"/>
  33. <ColumnDefinition Width="auto"/>
  34. <ColumnDefinition Width="8"/>
  35. <ColumnDefinition Width="auto"/>
  36. <ColumnDefinition Width="8"/>
  37. <ColumnDefinition Width="auto"/>
  38. <ColumnDefinition Width="*"/>
  39. <ColumnDefinition Width="auto"/>
  40. <ColumnDefinition Width="8"/>
  41. <ColumnDefinition Width="auto"/>
  42. <ColumnDefinition Width="8"/>
  43. </Grid.ColumnDefinitions>
  44. <GroupBox Header="Start Time" BorderThickness="0">
  45. <hc:DateTimePicker MinWidth="160" Height="32" SelectedDateTime="{Binding StartTime}"/>
  46. </GroupBox>
  47. <GroupBox Grid.Column="2" Header="End Time" BorderThickness="0">
  48. <hc:DateTimePicker MinWidth="160" Height="32" SelectedDateTime="{Binding EndTime}"/>
  49. </GroupBox>
  50. <GroupBox Grid.Column="4" Header="Mini8" BorderThickness="0">
  51. <hc:ComboBox MinWidth="160" Height="32" ItemsSource="{Binding Hardwares.Mini8s}" SelectedItem="{Binding SelectedMini8}" DisplayMemberPath="Value.Name"/>
  52. </GroupBox>
  53. <GroupBox Grid.Column="6" Header="Channel" BorderThickness="0">
  54. <hc:ComboBox MinWidth="160" Height="32" ItemsSource="{Binding Channels}" SelectedItem="{Binding SelectedChannel}" DisplayMemberPath="Value.Name"/>
  55. </GroupBox>
  56. <Button Grid.Column="8" Margin="0,8,0,0" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource FunctionButton}" Command="{Binding QueryCommand}" MinWidth="80" Height="32">Query</Button>
  57. <Button Grid.Column="10" Margin="0,8,0,0" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource FunctionButton}" Command="{Binding ExitCommand}" Background="{StaticResource EmergencyColor}" MinWidth="80" Height="32">Exit</Button>
  58. </Grid>
  59. <ContentControl Grid.Row="2" Content="{Binding PlotControl, Mode=OneTime}" TouchEnter="ContentControl_TouchEnter" TouchLeave="ContentControl_TouchLeave" TouchMove="ContentControl_TouchMove"/>
  60. <Grid Grid.Row="4" Margin="16,0">
  61. <Grid.ColumnDefinitions>
  62. <ColumnDefinition Width="auto"/>
  63. <ColumnDefinition Width="8"/>
  64. <ColumnDefinition Width="*"/>
  65. <ColumnDefinition Width="8"/>
  66. <ColumnDefinition Width="auto"/>
  67. </Grid.ColumnDefinitions>
  68. <GroupBox Header="Legend">
  69. <Grid VerticalAlignment="Center" Margin="0,2,0,0">
  70. <Grid.RowDefinitions>
  71. <RowDefinition Height="auto"/>
  72. <RowDefinition Height="4"/>
  73. <RowDefinition Height="auto"/>
  74. </Grid.RowDefinitions>
  75. <Grid>
  76. <Grid.ColumnDefinitions>
  77. <ColumnDefinition Width="auto"/>
  78. <ColumnDefinition Width="4"/>
  79. <ColumnDefinition Width="auto"/>
  80. <ColumnDefinition Width="4"/>
  81. <ColumnDefinition Width="auto"/>
  82. <ColumnDefinition Width="4"/>
  83. <ColumnDefinition Width="auto"/>
  84. <!--<ColumnDefinition Width="4"/>
  85. <ColumnDefinition Width="auto"/>-->
  86. </Grid.ColumnDefinitions>
  87. <StackPanel VerticalAlignment="Center">
  88. <TextBlock HorizontalAlignment="Center">Limit</TextBlock>
  89. <Line X1="10" Y1="0" X2="70" Y2="0" HorizontalAlignment="Center" Margin="0,2" Stroke="#FF0000" StrokeThickness="2" StrokeDashArray="2,2"/>
  90. </StackPanel>
  91. <StackPanel Grid.Column="2" VerticalAlignment="Center">
  92. <TextBlock HorizontalAlignment="Center">Warning</TextBlock>
  93. <Line X1="10" Y1="0" X2="70" Y2="0" HorizontalAlignment="Center" Margin="0,2" Stroke="#FFA500" StrokeThickness="2" StrokeDashArray="2,2"/>
  94. </StackPanel>
  95. <StackPanel Grid.Column="4" VerticalAlignment="Center">
  96. <TextBlock HorizontalAlignment="Center">SetPoint</TextBlock>
  97. <Line X1="10" Y1="0" X2="70" Y2="0" HorizontalAlignment="Center" Margin="0,2" Stroke="#54FF9F" StrokeThickness="2" StrokeDashArray="2,2"/>
  98. </StackPanel>
  99. <!--<StackPanel Grid.Column="6" VerticalAlignment="Center">
  100. <TextBlock HorizontalAlignment="Center">Trend</TextBlock>
  101. <Line X1="10" Y1="0" X2="70" Y2="0" HorizontalAlignment="Center" Margin="0,2" Stroke="#ff9933" StrokeThickness="2" StrokeDashArray="2,2"/>
  102. </StackPanel>-->
  103. <StackPanel Grid.Column="6" VerticalAlignment="Center">
  104. <TextBlock HorizontalAlignment="Center">PV</TextBlock>
  105. <Line X1="10" Y1="0" X2="70" Y2="0" HorizontalAlignment="Center" Margin="0,2" Stroke="#0000CD" StrokeThickness="2"/>
  106. </StackPanel>
  107. </Grid>
  108. <Grid Grid.Row="2" Margin="8,0">
  109. <Grid.ColumnDefinitions>
  110. <ColumnDefinition Width="auto"/>
  111. <ColumnDefinition Width="*"/>
  112. <ColumnDefinition Width="auto"/>
  113. <ColumnDefinition Width="*"/>
  114. <ColumnDefinition Width="auto"/>
  115. <ColumnDefinition Width="*"/>
  116. <ColumnDefinition Width="auto"/>
  117. </Grid.ColumnDefinitions>
  118. <StackPanel Grid.Row="2" Grid.Column="0" Orientation="Horizontal">
  119. <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Margin="4">AutoTune</TextBlock>
  120. <Rectangle Width="12" Height="24" HorizontalAlignment="Center" Margin="0" Fill="#4000FF00" StrokeThickness="0"/>
  121. </StackPanel>
  122. <StackPanel Grid.Row="2" Grid.Column="2" Orientation="Horizontal">
  123. <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Margin="4">AutoTune Failed</TextBlock>
  124. <Rectangle Width="12" Height="24" HorizontalAlignment="Center" Margin="0" Fill="#40828282" StrokeThickness="0"/>
  125. </StackPanel>
  126. <StackPanel Grid.Row="2" Grid.Column="4" Orientation="Horizontal">
  127. <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Margin="4">TcBorken</TextBlock>
  128. <Rectangle Width="12" Height="24" HorizontalAlignment="Center" Margin="0" Fill="#40ff6666" StrokeThickness="0"/>
  129. </StackPanel>
  130. </Grid>
  131. </Grid>
  132. </GroupBox>
  133. <StackPanel Grid.ColumnSpan="6" VerticalAlignment="Center">
  134. <!--<TextBlock Background="{StaticResource WarningColor}" VerticalAlignment="Center" HorizontalAlignment="Center" Padding="4" TextDecorations="Underline">
  135. <Run>Trend Line: </Run>
  136. <Run Text="{Binding Hint}"/>
  137. </TextBlock>-->
  138. <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">
  139. <Run Text="{Binding Results.Count, Mode=OneWay}"/>
  140. <Run> Item(s)</Run>
  141. </TextBlock>
  142. <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
  143. <Button VerticalAlignment="Center" HorizontalAlignment="Center" Height="24" Style="{StaticResource FunctionButton}"
  144. Command="{Binding ShowCommand}" CommandParameter="Show" Margin="2">Show Data</Button>
  145. <Button VerticalAlignment="Center" HorizontalAlignment="Center" Height="24" Style="{StaticResource FunctionButton}"
  146. Command="{Binding ShowCommand}" CommandParameter="Hide" Margin="2">Hide Data</Button>
  147. </StackPanel>
  148. </StackPanel>
  149. <StackPanel Grid.Column="4" HorizontalAlignment="Right" VerticalAlignment="Center" Orientation="Horizontal">
  150. <Button VerticalAlignment="Center" Width="48" Command="{Binding ReScaleCommand}" CommandParameter="add">↑</Button>
  151. <Button VerticalAlignment="Center" Width="48" Margin="8,0" Command="{Binding ReScaleCommand}" CommandParameter="minus">↓</Button>
  152. <Button VerticalAlignment="Center" Width="48" Command="{Binding ReScaleCommand}" CommandParameter="+">+</Button>
  153. <Button VerticalAlignment="Center" Width="48" Margin="8,0" Command="{Binding ReScaleCommand}" CommandParameter="-">-</Button>
  154. <Button VerticalAlignment="Center" Command="{Binding ReScaleCommand}" CommandParameter="Re">AutoScale</Button>
  155. </StackPanel>
  156. </Grid>
  157. <DataGrid Grid.Row="6" ItemsSource="{Binding Results}" Visibility="{Binding DataGirdVis}"
  158. Background="Transparent" BorderThickness="1" Margin="16,0" Height="380"
  159. CanUserAddRows="False"
  160. CanUserDeleteRows="False"
  161. CanUserResizeColumns="False"
  162. CanUserResizeRows="False"
  163. IsReadOnly="True"
  164. HorizontalScrollBarVisibility="Disabled"
  165. TextElement.FontSize="16">
  166. <DataGrid.Columns>
  167. <!--<DataGridTextColumn Width="50" CanUserSort="True" Header="Index" Binding="{Binding Key}"/>-->
  168. <DataGridTemplateColumn Width="170" Header="Time">
  169. <DataGridTemplateColumn.CellTemplate>
  170. <DataTemplate>
  171. <TextBlock>
  172. <Run Text="{Binding Value.DateTime , StringFormat={}{0:yyyy-MM-dd}}"/>
  173. <Run> </Run>
  174. <Run Text="{Binding Value.DateTime , StringFormat={}{0:HH:mm:ss}}"/>
  175. </TextBlock>
  176. </DataTemplate>
  177. </DataGridTemplateColumn.CellTemplate>
  178. </DataGridTemplateColumn>
  179. <DataGridTextColumn Width="*" CanUserSort="False" Header="Tc" Binding="{Binding Value.SensorBreakAlarm}"/>
  180. <DataGridTextColumn Width="*" CanUserSort="False" Header="SetPoint" Binding="{Binding Value.SetPoint,StringFormat=0.0}"/>
  181. <DataGridTextColumn Width="*" CanUserSort="False" Header="PV" Binding="{Binding Value.PV ,StringFormat=0.0}"/>
  182. <DataGridTextColumn Width="*" CanUserSort="False" Header="Caps" Binding="{Binding Value.Caps}"/>
  183. <DataGridTextColumn Width="*" CanUserSort="False" Header="CapsW" Binding="{Binding Value.CapsWarning}"/>
  184. <DataGridTextColumn Width="*" CanUserSort="False" Header="FloorW" Binding="{Binding Value.FloorWarning}"/>
  185. <DataGridTextColumn Width="*" CanUserSort="False" Header="Floor" Binding="{Binding Value.Floor}"/>
  186. <DataGridTextColumn Width="*" CanUserSort="False" Header="AT" Binding="{Binding Value.AutoTuneStatus}"/>
  187. <DataGridTemplateColumn Width="*" Header="Output">
  188. <DataGridTemplateColumn.CellTemplate>
  189. <DataTemplate>
  190. <TextBlock>
  191. <Run Text="{Binding Value.WorkingOutput, StringFormat=0.0}"/>
  192. <Run> %</Run>
  193. </TextBlock>
  194. </DataTemplate>
  195. </DataGridTemplateColumn.CellTemplate>
  196. </DataGridTemplateColumn>
  197. <DataGridTextColumn Width="auto" MinWidth="48" CanUserSort="False" Header="P" Binding="{Binding Value.Running_P ,StringFormat=0.0}"/>
  198. <DataGridTextColumn Width="auto" MinWidth="48" CanUserSort="False" Header="I" Binding="{Binding Value.Running_I ,StringFormat=0.0}"/>
  199. <DataGridTextColumn Width="auto" MinWidth="48" CanUserSort="False" Header="D" Binding="{Binding Value.Running_D ,StringFormat=0.0}"/>
  200. </DataGrid.Columns>
  201. </DataGrid>
  202. </Grid>
  203. </Grid>
  204. </UserControl>