ChannelDetail.xaml 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618
  1. <UserControl x:Class="HistoryView.Views.Dialogs.ChannelDetail"
  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:local="clr-namespace:HistoryView.Views.Dialogs"
  7. xmlns:sys="clr-namespace:System;assembly=mscorlib"
  8. xmlns:data="clr-namespace:HistoryView.Data"
  9. xmlns:Inputs="clr-namespace:HistoryView.Controls.Input"
  10. xmlns:convert="clr-namespace:HistoryView.Converters"
  11. xmlns:ScottPlot="clr-namespace:ScottPlot.WPF;assembly=ScottPlot.WPF"
  12. mc:Ignorable="d"
  13. d:DesignHeight="450" d:DesignWidth="800">
  14. <UserControl.Resources>
  15. <convert:AuthorityToVis x:Key="Authority"/>
  16. <convert:InhibitToBool x:Key="Inhibit"/>
  17. <convert:AutoTuneStatusToBool x:Key="AutoTuneEnable"/>
  18. <convert:WorkoutToText x:Key="Workout"/>
  19. <convert:ActiveTuneSetToVis x:Key="ActiveTuneSet"/>
  20. <convert:BoolToVisibility x:Key="BoolVis"/>
  21. </UserControl.Resources>
  22. <Grid>
  23. <Grid.RowDefinitions>
  24. <RowDefinition Height="auto"/>
  25. <RowDefinition Height="0"/>
  26. <RowDefinition Height="auto"/>
  27. <RowDefinition Height="0"/>
  28. <RowDefinition/>
  29. <RowDefinition Height="auto"/>
  30. <RowDefinition Height="4"/>
  31. </Grid.RowDefinitions>
  32. <GroupBox Margin="8,4" Header="{DynamicResource ChannelDetailDeviceInfo}">
  33. <Grid Margin="16,4">
  34. <Grid.ColumnDefinitions>
  35. <ColumnDefinition Width="auto"/>
  36. <ColumnDefinition Width="16"/>
  37. <ColumnDefinition Width="auto"/>
  38. <ColumnDefinition Width="16"/>
  39. <ColumnDefinition Width="auto"/>
  40. <ColumnDefinition Width="16"/>
  41. <ColumnDefinition Width="auto"/>
  42. </Grid.ColumnDefinitions>
  43. <StackPanel>
  44. <TextBlock Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Left">Mini8:</TextBlock>
  45. <TextBox Grid.Column="2" MinWidth="100" Background="#f8f8f8" Text="{Binding Mini8Info.Name, Mode=OneWay}" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True"/>
  46. </StackPanel>
  47. <StackPanel Grid.Column="2">
  48. <TextBlock Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Left">Channel:</TextBlock>
  49. <TextBox Grid.Column="6" MinWidth="100" Background="#f8f8f8" Text="{Binding Channel.Name, Mode=OneWay}" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True"/>
  50. </StackPanel>
  51. <StackPanel Grid.Column="4">
  52. <TextBlock Grid.Column="8" VerticalAlignment="Center" HorizontalAlignment="Left">IsEnable:</TextBlock>
  53. <TextBox Grid.Column="10" Text="{Binding Channel.Inhibit}" MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" IsReadOnly="True" Height="24"/>
  54. </StackPanel>
  55. <StackPanel Grid.Column="6">
  56. <TextBlock Grid.Column="8" VerticalAlignment="Center" HorizontalAlignment="Left">Mode:</TextBlock>
  57. <TextBox Grid.Column="10" Text="{Binding Channel.ChannelMode, Mode=OneWay}" MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" IsReadOnly="True" Height="24"/>
  58. </StackPanel>
  59. </Grid>
  60. </GroupBox>
  61. <GroupBox Margin="8,4" Grid.Row="4" Header="{DynamicResource ChannelSetting}">
  62. <TabControl Margin="0,0" BorderBrush="Transparent" Background="Transparent">
  63. <TabItem Style="{StaticResource TabTheme}" Header="{DynamicResource ChannelDetailActrual}">
  64. <Grid Margin="8,4">
  65. <Grid.RowDefinitions>
  66. <RowDefinition Height="auto"/>
  67. <RowDefinition Height="4"/>
  68. <RowDefinition Height="auto"/>
  69. <RowDefinition Height="4"/>
  70. <RowDefinition Height="auto"/>
  71. <RowDefinition Height="4"/>
  72. <RowDefinition Height="auto"/>
  73. <RowDefinition Height="12"/>
  74. <RowDefinition Height="auto"/>
  75. <RowDefinition Height="4"/>
  76. <RowDefinition Height="auto"/>
  77. <RowDefinition Height="0"/>
  78. <RowDefinition Height="auto"/>
  79. </Grid.RowDefinitions>
  80. <Grid Grid.Row="0" Margin="4,0">
  81. <Grid.ColumnDefinitions>
  82. <ColumnDefinition Width="auto"/>
  83. <ColumnDefinition Width="16"/>
  84. <ColumnDefinition Width="auto"/>
  85. <ColumnDefinition Width="16"/>
  86. <ColumnDefinition Width="auto"/>
  87. <ColumnDefinition Width="16"/>
  88. <ColumnDefinition Width="auto"/>
  89. <ColumnDefinition Width="16"/>
  90. <ColumnDefinition Width="auto"/>
  91. </Grid.ColumnDefinitions>
  92. <!--<StackPanel>
  93. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">Operation Mode:</TextBlock>
  94. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.Mode}"/>
  95. </StackPanel>-->
  96. <StackPanel Grid.Column="0">
  97. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">PV:</TextBlock>
  98. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.PV, StringFormat=0.00}"/>
  99. </StackPanel>
  100. <StackPanel Grid.Column="2">
  101. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">SetPoint:</TextBlock>
  102. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.SetPoint, StringFormat=0.00}"/>
  103. </StackPanel>
  104. <StackPanel Grid.Column="4">
  105. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">Up Rate:</TextBlock>
  106. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.SetpointUpRate, StringFormat=0.00}"/>
  107. </StackPanel>
  108. <StackPanel Grid.Column="6">
  109. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">Down Rate:</TextBlock>
  110. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.SetpointDownRate, StringFormat=0.00}"/>
  111. </StackPanel>
  112. <!--<StackPanel Grid.Column="6">
  113. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">Delay time:</TextBlock>
  114. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.DelayMillionSeconds}"/>
  115. </StackPanel>-->
  116. </Grid>
  117. <Grid Grid.Row="2" Margin="4,0">
  118. <Grid.ColumnDefinitions>
  119. <ColumnDefinition Width="auto"/>
  120. <ColumnDefinition Width="16"/>
  121. <ColumnDefinition Width="auto"/>
  122. <ColumnDefinition Width="16"/>
  123. <ColumnDefinition Width="auto"/>
  124. <ColumnDefinition Width="16"/>
  125. <ColumnDefinition Width="auto"/>
  126. </Grid.ColumnDefinitions>
  127. <StackPanel Grid.Column="0">
  128. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="{StaticResource EmergencyColor}">Floor Limit:</TextBlock>
  129. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.Floor}"/>
  130. </StackPanel>
  131. <StackPanel Grid.Column="2">
  132. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="{StaticResource WarningColor}">Floor Warning:</TextBlock>
  133. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.FloorWarning}"/>
  134. </StackPanel>
  135. <StackPanel Grid.Column="4">
  136. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="{StaticResource WarningColor}">Caps Warning:</TextBlock>
  137. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.CapsWarning}"/>
  138. </StackPanel>
  139. <StackPanel Grid.Column="6">
  140. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="{StaticResource EmergencyColor}">Caps Limit:</TextBlock>
  141. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.Caps}"/>
  142. </StackPanel>
  143. </Grid>
  144. <Grid Grid.Row="4" Margin="4,0">
  145. <Grid.ColumnDefinitions>
  146. <ColumnDefinition Width="auto"/>
  147. <ColumnDefinition Width="16"/>
  148. <ColumnDefinition Width="auto"/>
  149. <ColumnDefinition Width="16"/>
  150. <ColumnDefinition Width="auto"/>
  151. <ColumnDefinition Width="16"/>
  152. <ColumnDefinition Width="auto"/>
  153. <ColumnDefinition Width="16"/>
  154. <ColumnDefinition Width="auto"/>
  155. </Grid.ColumnDefinitions>
  156. <StackPanel Grid.Column="0" Orientation="Vertical" VerticalAlignment="Center" Width="100">
  157. <!--<TextBlock Margin="0,4" VerticalAlignment="Center" >AT Mode</TextBlock>
  158. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.AutoTuneStatus}"/>-->
  159. </StackPanel>
  160. <StackPanel Grid.Column="2">
  161. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">P :</TextBlock>
  162. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.Running_P,Mode=TwoWay, StringFormat=0.00 }"/>
  163. </StackPanel>
  164. <StackPanel Grid.Column="4">
  165. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">I :</TextBlock>
  166. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.Running_I, StringFormat=0.00}"/>
  167. </StackPanel>
  168. <StackPanel Grid.Column="6">
  169. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">D :</TextBlock>
  170. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.Running_D, StringFormat=0.00}"/>
  171. </StackPanel>
  172. <Image Grid.Column="8" Visibility="{Binding Channel.ActiveTuneSet, Converter={StaticResource ActiveTuneSet}, ConverterParameter=Running}" Source="{StaticResource ArrowLeft}" Width="20" Margin="0,0,0,3" VerticalAlignment="Bottom"/>
  173. </Grid>
  174. <Grid Grid.Row="6" Margin="4,0">
  175. <Grid.ColumnDefinitions>
  176. <ColumnDefinition Width="auto"/>
  177. <ColumnDefinition Width="16"/>
  178. <ColumnDefinition Width="auto"/>
  179. <ColumnDefinition Width="16"/>
  180. <ColumnDefinition Width="auto"/>
  181. <ColumnDefinition Width="16"/>
  182. <ColumnDefinition Width="auto"/>
  183. <ColumnDefinition Width="16"/>
  184. <ColumnDefinition Width="auto"/>
  185. </Grid.ColumnDefinitions>
  186. <StackPanel Grid.Column="0" Orientation="Vertical" VerticalAlignment="Center" Width="100">
  187. <TextBlock Margin="0,4" VerticalAlignment="Center" >AT Mode</TextBlock>
  188. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.AutoTuneStatus}"/>
  189. </StackPanel>
  190. <StackPanel Grid.Column="2">
  191. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">Auto Tune P :</TextBlock>
  192. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.AutoTune_P,Mode=TwoWay, StringFormat=0.00}"/>
  193. </StackPanel>
  194. <StackPanel Grid.Column="4">
  195. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">Auto Tune I :</TextBlock>
  196. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.AutoTune_I, StringFormat=0.00}"/>
  197. </StackPanel>
  198. <StackPanel Grid.Column="6">
  199. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">Auto Tune D :</TextBlock>
  200. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.AutoTune_D, StringFormat=0.00}"/>
  201. </StackPanel>
  202. <Image Grid.Column="8" Source="{StaticResource ArrowLeft}" Visibility="{Binding Channel.ActiveTuneSet, Converter={StaticResource ActiveTuneSet}, ConverterParameter=AutoTune}" Width="20" Margin="0,0,0,3" VerticalAlignment="Bottom"/>
  203. </Grid>
  204. <Grid Grid.Row="8" Margin="4,0">
  205. <Grid Grid.Column="0" VerticalAlignment="Center" >
  206. <Grid.ColumnDefinitions>
  207. <ColumnDefinition Width="100"/>
  208. <ColumnDefinition Width="16"/>
  209. <ColumnDefinition Width="*"/>
  210. <ColumnDefinition Width="36"/>
  211. </Grid.ColumnDefinitions>
  212. <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">Working Output:</TextBlock>
  213. <TextBlock Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center" Panel.ZIndex="1" >
  214. <Run Text="{Binding Channel.WorkingOutput, StringFormat=0.0}"/>
  215. <Run> %</Run>
  216. </TextBlock>
  217. <ProgressBar Grid.Column="2" Height="14" VerticalAlignment="Center" Style="{StaticResource ThemeProgressBar}" Value="{Binding Channel.WorkingOutput}"/>
  218. </Grid>
  219. </Grid>
  220. <ContentControl Grid.Row="10" Margin="-8,-5,-8,-10" Content="{Binding PlotHelper.PlotControl, Mode=OneTime}" Height="245"/>
  221. <Grid Grid.Row="12">
  222. <Grid.ColumnDefinitions>
  223. <ColumnDefinition Width="auto"/>
  224. <ColumnDefinition Width="*"/>
  225. <ColumnDefinition Width="auto"/>
  226. </Grid.ColumnDefinitions>
  227. <Button Grid.Column="0" Style="{StaticResource FunctionButton}" Command="{Binding ViewHistoryCommand}" MinWidth="100" Height="32">
  228. <StackPanel Orientation="Horizontal">
  229. <Image Source="{StaticResource Log_Icon}" Height="16" Margin="4,2"/>
  230. <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Margin="4,2" Text="{DynamicResource ChannelDetailHistory}"/>
  231. </StackPanel>
  232. </Button>
  233. <Button Grid.Column="2" Style="{StaticResource FunctionButton}" Command="{Binding ExitCommand}" Background="Gray" MinWidth="100" Height="32">
  234. <StackPanel Orientation="Horizontal">
  235. <Image Source="{StaticResource Icon_Reset}" Height="16" Margin="4,2"/>
  236. <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Margin="4,2" Text="{DynamicResource Retrun}"/>
  237. </StackPanel>
  238. </Button>
  239. </Grid>
  240. </Grid>
  241. </TabItem>
  242. <!--Visibility="{Binding UserInfo.Authority, Converter={StaticResource Authority}, ConverterParameter=Operator}"-->
  243. <TabItem Style="{StaticResource TabTheme}" Header="{DynamicResource ChannelDetailTarget}" Visibility="{Binding Mini8Info.IsLocked, Converter={StaticResource BoolVis}, ConverterParameter=Reverse}">
  244. <Grid Margin="8">
  245. <Grid.RowDefinitions>
  246. <RowDefinition Height="auto"/>
  247. <RowDefinition Height="8"/>
  248. <RowDefinition Height="auto"/>
  249. <RowDefinition Height="8"/>
  250. <RowDefinition Height="auto"/>
  251. <RowDefinition Height="8"/>
  252. <RowDefinition Height="auto"/>
  253. <RowDefinition Height="0"/>
  254. <RowDefinition Height="auto"/>
  255. <RowDefinition Height="48"/>
  256. <RowDefinition Height="auto"/>
  257. </Grid.RowDefinitions>
  258. <Grid Grid.Row="0" Margin="0,0">
  259. <Grid.ColumnDefinitions>
  260. <ColumnDefinition Width="auto"/>
  261. <ColumnDefinition Width="4"/>
  262. <ColumnDefinition Width="auto"/>
  263. </Grid.ColumnDefinitions>
  264. <GroupBox Header="Channel Enable:" >
  265. <Grid Grid.Row="0" Margin="0,4">
  266. <Grid.ColumnDefinitions>
  267. <ColumnDefinition Width="auto"/>
  268. <ColumnDefinition Width="16"/>
  269. <ColumnDefinition Width="auto"/>
  270. </Grid.ColumnDefinitions>
  271. <Button Grid.Column="0" Style="{StaticResource FunctionButton}" VerticalAlignment="Center" HorizontalAlignment="Center" Command="{Binding EnableChannelCommand}" CommandParameter="Enable" MinWidth="100">
  272. <TextBlock Margin="2" VerticalAlignment="Center" HorizontalAlignment="Center">Enable</TextBlock>
  273. </Button>
  274. <Button Grid.Column="2" Style="{StaticResource FunctionButton}" VerticalAlignment="Center" HorizontalAlignment="Center" Command="{Binding EnableChannelCommand}" Background="{StaticResource EmergencyColor}" CommandParameter="Disable" MinWidth="100">
  275. <TextBlock Margin="2" VerticalAlignment="Center" HorizontalAlignment="Center" >Disable</TextBlock>
  276. </Button>
  277. </Grid>
  278. </GroupBox>
  279. <GroupBox Header="Channel Mode:" Grid.Column="2">
  280. <Grid Grid.Row="0" Margin="0,4">
  281. <Grid.ColumnDefinitions>
  282. <ColumnDefinition Width="auto"/>
  283. <ColumnDefinition Width="16"/>
  284. <ColumnDefinition Width="auto"/>
  285. </Grid.ColumnDefinitions>
  286. <Button Grid.Column="0" Style="{StaticResource FunctionButton}" VerticalAlignment="Center" HorizontalAlignment="Center" Command="{Binding EnableChannelCommand}" CommandParameter="Control" MinWidth="100">
  287. <TextBlock Margin="2" VerticalAlignment="Center" HorizontalAlignment="Center">Control</TextBlock>
  288. </Button>
  289. <Button Grid.Column="2" Style="{StaticResource FunctionButton}" VerticalAlignment="Center" HorizontalAlignment="Center" Command="{Binding EnableChannelCommand}" CommandParameter="Monitor" MinWidth="100">
  290. <TextBlock Margin="2" VerticalAlignment="Center" HorizontalAlignment="Center">Monitor</TextBlock>
  291. </Button>
  292. </Grid>
  293. </GroupBox>
  294. </Grid>
  295. <Grid Grid.Row="2" Margin="4,0">
  296. <Grid.ColumnDefinitions>
  297. <ColumnDefinition Width="auto"/>
  298. <ColumnDefinition Width="16"/>
  299. <ColumnDefinition Width="auto"/>
  300. <ColumnDefinition Width="16"/>
  301. <ColumnDefinition Width="auto"/>
  302. <ColumnDefinition Width="16"/>
  303. <ColumnDefinition Width="auto"/>
  304. </Grid.ColumnDefinitions>
  305. <!--<StackPanel Grid.Column="0">
  306. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">Operation Mode:</TextBlock>
  307. <ComboBox Grid.Column="6" MinWidth="100" Background="#f8f8f8"
  308. ItemsSource="{Binding Source={StaticResource ChannelModeEnum}}"
  309. SelectedItem="{Binding ChannelSet.Mode, Mode=TwoWay}"/>
  310. </StackPanel>-->
  311. <StackPanel Grid.Column="0">
  312. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">SetPoint:</TextBlock>
  313. <Inputs:NumberKeyboard Text="{Binding ChannelSet.SetPoint, Mode=TwoWay}">
  314. <Inputs:NumberKeyboard.DisplayContent>
  315. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24"
  316. Text="{Binding ChannelSet.SetPoint, Mode=TwoWay}"/>
  317. </Inputs:NumberKeyboard.DisplayContent>
  318. </Inputs:NumberKeyboard>
  319. </StackPanel>
  320. <StackPanel Grid.Column="2">
  321. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">UpRate:</TextBlock>
  322. <Inputs:NumberKeyboard Text="{Binding ChannelSet.SetpointUpRate, Mode=TwoWay}">
  323. <Inputs:NumberKeyboard.DisplayContent>
  324. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24"
  325. Text="{Binding ChannelSet.SetpointUpRate, Mode=TwoWay}"/>
  326. </Inputs:NumberKeyboard.DisplayContent>
  327. </Inputs:NumberKeyboard>
  328. </StackPanel>
  329. <StackPanel Grid.Column="4">
  330. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">DownRate:</TextBlock>
  331. <Inputs:NumberKeyboard Text="{Binding ChannelSet.SetpointDownRate, Mode=TwoWay}">
  332. <Inputs:NumberKeyboard.DisplayContent>
  333. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24"
  334. Text="{Binding ChannelSet.SetpointDownRate, Mode=TwoWay}"/>
  335. </Inputs:NumberKeyboard.DisplayContent>
  336. </Inputs:NumberKeyboard>
  337. </StackPanel>
  338. <!--<StackPanel Grid.Column="6">
  339. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">Delay time:</TextBlock>
  340. <Inputs:NumberKeyboard Text="{Binding ChannelSet.DelayMillionSeconds, Mode=TwoWay}">
  341. <Inputs:NumberKeyboard.DisplayContent>
  342. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" Text="{Binding ChannelSet.DelayMillionSeconds, Mode=TwoWay}"/>
  343. </Inputs:NumberKeyboard.DisplayContent>
  344. </Inputs:NumberKeyboard>
  345. </StackPanel>-->
  346. </Grid>
  347. <Grid Grid.Row="4" Margin="4,0">
  348. <Grid.ColumnDefinitions>
  349. <ColumnDefinition Width="auto"/>
  350. <ColumnDefinition Width="16"/>
  351. <ColumnDefinition Width="auto"/>
  352. <ColumnDefinition Width="16"/>
  353. <ColumnDefinition Width="auto"/>
  354. <ColumnDefinition Width="16"/>
  355. <ColumnDefinition Width="auto"/>
  356. </Grid.ColumnDefinitions>
  357. <StackPanel Grid.Column="0">
  358. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="{StaticResource EmergencyColor}">Floor Limit:</TextBlock>
  359. <Inputs:NumberKeyboard Text="{Binding ChannelSet.Floor, Mode=TwoWay}">
  360. <Inputs:NumberKeyboard.DisplayContent>
  361. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" Text="{Binding ChannelSet.Floor, Mode=TwoWay}"/>
  362. </Inputs:NumberKeyboard.DisplayContent>
  363. </Inputs:NumberKeyboard>
  364. </StackPanel>
  365. <StackPanel Grid.Column="2">
  366. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="{StaticResource WarningColor}">Floor Warning:</TextBlock>
  367. <Inputs:NumberKeyboard Text="{Binding ChannelSet.FloorWarning, Mode=TwoWay}">
  368. <Inputs:NumberKeyboard.DisplayContent>
  369. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" Text="{Binding ChannelSet.FloorWarning, Mode=TwoWay}"/>
  370. </Inputs:NumberKeyboard.DisplayContent>
  371. </Inputs:NumberKeyboard>
  372. </StackPanel>
  373. <StackPanel Grid.Column="4">
  374. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="{StaticResource WarningColor}">Caps Warning:</TextBlock>
  375. <Inputs:NumberKeyboard Text="{Binding ChannelSet.CapsWarning, Mode=TwoWay}">
  376. <Inputs:NumberKeyboard.DisplayContent>
  377. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" Text="{Binding ChannelSet.CapsWarning, Mode=TwoWay}"/>
  378. </Inputs:NumberKeyboard.DisplayContent>
  379. </Inputs:NumberKeyboard>
  380. </StackPanel>
  381. <StackPanel Grid.Column="6">
  382. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="{StaticResource EmergencyColor}">Caps Limit:</TextBlock>
  383. <Inputs:NumberKeyboard Text="{Binding ChannelSet.Caps, Mode=TwoWay}">
  384. <Inputs:NumberKeyboard.DisplayContent>
  385. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" Text="{Binding ChannelSet.Caps, Mode=TwoWay}"/>
  386. </Inputs:NumberKeyboard.DisplayContent>
  387. </Inputs:NumberKeyboard>
  388. </StackPanel>
  389. </Grid>
  390. <!--<Grid Grid.Row="6" Margin="4,0">
  391. <Grid.RowDefinitions>
  392. <RowDefinition Height="auto"/>
  393. <RowDefinition Height="4"/>
  394. <RowDefinition/>
  395. </Grid.RowDefinitions>
  396. <Grid.ColumnDefinitions>
  397. <ColumnDefinition Width="100"/>
  398. <ColumnDefinition Width="8"/>
  399. <ColumnDefinition/>
  400. </Grid.ColumnDefinitions>
  401. <TextBlock Margin="0,4" Grid.ColumnSpan="3" VerticalAlignment="Center" HorizontalAlignment="Left">Working Output (%):</TextBlock>
  402. <TextBlock Margin="0,4" Grid.ColumnSpan="3" VerticalAlignment="Center" HorizontalAlignment="Right">0% - No Limit</TextBlock>
  403. <Inputs:NumberKeyboard Grid.Row="2" Grid.Column="0" Text="{Binding ChannelSet.WorkingOutput, Mode=TwoWay}">
  404. <Inputs:NumberKeyboard.DisplayContent>
  405. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" Text="{Binding ChannelSet.WorkingOutput, Mode=TwoWay , StringFormat=0.00}"/>
  406. </Inputs:NumberKeyboard.DisplayContent>
  407. </Inputs:NumberKeyboard>
  408. <Slider Grid.Row="2" Grid.Column="2" TickFrequency="1" Style="{StaticResource MySliderStyle}" VerticalAlignment="Center" Maximum="100" Value="{Binding ChannelSet.WorkingOutput, Mode=TwoWay}"/>
  409. </Grid>-->
  410. <Grid Grid.Row="8">
  411. <Grid.RowDefinitions>
  412. <RowDefinition Height="auto"/>
  413. <RowDefinition Height="12"/>
  414. <RowDefinition Height="auto"/>
  415. <RowDefinition Height="6"/>
  416. <RowDefinition Height="auto"/>
  417. </Grid.RowDefinitions>
  418. <Grid.ColumnDefinitions>
  419. <ColumnDefinition Width="*"/>
  420. <ColumnDefinition Width="16"/>
  421. <ColumnDefinition Width="auto"/>
  422. <ColumnDefinition Width="8"/>
  423. <ColumnDefinition Width="auto"/>
  424. </Grid.ColumnDefinitions>
  425. <Button Grid.Column="0" Style="{StaticResource FunctionButton}" VerticalAlignment="Center" HorizontalAlignment="Center" Command="{Binding EnableATCommand}" Width="100">
  426. <StackPanel>
  427. <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">Start</TextBlock>
  428. <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">AutoTune</TextBlock>
  429. </StackPanel>
  430. </Button>
  431. <GroupBox Grid.Row="0" Grid.Column="2" Header="Running PID :">
  432. <Grid Margin="4">
  433. <Grid.ColumnDefinitions>
  434. <ColumnDefinition Width="auto"/>
  435. <ColumnDefinition Width="16"/>
  436. <ColumnDefinition Width="auto"/>
  437. <ColumnDefinition Width="16"/>
  438. <ColumnDefinition Width="auto"/>
  439. </Grid.ColumnDefinitions>
  440. <StackPanel Grid.Column="0">
  441. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">P :</TextBlock>
  442. <Inputs:NumberKeyboard Text="{Binding ChannelSet.Running_P, Mode=TwoWay}">
  443. <Inputs:NumberKeyboard.DisplayContent>
  444. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" Text="{Binding ChannelSet.Running_P, Mode=TwoWay , StringFormat=0.00}"/>
  445. </Inputs:NumberKeyboard.DisplayContent>
  446. </Inputs:NumberKeyboard>
  447. </StackPanel>
  448. <StackPanel Grid.Column="2">
  449. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">I :</TextBlock>
  450. <Inputs:NumberKeyboard Text="{Binding ChannelSet.Running_I, Mode=TwoWay }">
  451. <Inputs:NumberKeyboard.DisplayContent>
  452. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" Text="{Binding ChannelSet.Running_I, Mode=TwoWay , StringFormat=0.00}"/>
  453. </Inputs:NumberKeyboard.DisplayContent>
  454. </Inputs:NumberKeyboard>
  455. </StackPanel>
  456. <StackPanel Grid.Column="4">
  457. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">D :</TextBlock>
  458. <Inputs:NumberKeyboard Text="{Binding ChannelSet.Running_D, Mode=TwoWay}">
  459. <Inputs:NumberKeyboard.DisplayContent>
  460. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" Text="{Binding ChannelSet.Running_D, Mode=TwoWay , StringFormat=0.00}"/>
  461. </Inputs:NumberKeyboard.DisplayContent>
  462. </Inputs:NumberKeyboard>
  463. </StackPanel>
  464. </Grid>
  465. </GroupBox>
  466. <Button Grid.Column="4" VerticalAlignment="Center" HorizontalContentAlignment="Center" Width="32" Height="32"
  467. Command="{Binding SelectPIDCommand}" CommandParameter="Running">
  468. <Image Source="{StaticResource ArrowLeft}" Visibility="{Binding Channel.ActiveTuneSet, Converter={StaticResource ActiveTuneSet}, ConverterParameter=Running}" Width="20" Margin="0,0,0,0" VerticalAlignment="Center"/>
  469. </Button>
  470. <Button Grid.Row="2" Grid.Column="0" Style="{StaticResource FunctionButton}" VerticalAlignment="Center" HorizontalAlignment="Center" Command="{Binding AbortATCommand}" Background="{StaticResource WarningColor}" Width="100">
  471. <TextBlock Margin="2" VerticalAlignment="Center" HorizontalAlignment="Center">Abort</TextBlock>
  472. </Button>
  473. <Button Grid.Row="2" Grid.Column="2" Style="{StaticResource FunctionButton}" VerticalAlignment="Center" HorizontalAlignment="Center" Command="{Binding ApplyPIDCommand}" >
  474. <TextBlock Margin="2" IsEnabled="{Binding Channel.AutoTuneStatus, Converter={StaticResource AutoTuneEnable}}">Apply AutoTune PID ↑↑</TextBlock>
  475. </Button>
  476. <StackPanel Grid.Column="0" Grid.Row="4" Orientation="Vertical" VerticalAlignment="Center">
  477. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Center">AutoTune Status</TextBlock>
  478. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.AutoTuneStatus}"/>
  479. </StackPanel>
  480. <!--<GroupBox Grid.Row="4" Grid.Column="2" Header="{DynamicResource ChannelDetailActrual}">-->
  481. <GroupBox Grid.Row="4" Grid.Column="2" Header="AutoTune PID :">
  482. <Grid Margin="4">
  483. <Grid.ColumnDefinitions>
  484. <ColumnDefinition Width="auto"/>
  485. <ColumnDefinition Width="16"/>
  486. <ColumnDefinition Width="auto"/>
  487. <ColumnDefinition Width="16"/>
  488. <ColumnDefinition Width="auto"/>
  489. </Grid.ColumnDefinitions>
  490. <StackPanel Grid.Column="0">
  491. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">P :</TextBlock>
  492. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.AutoTune_P, StringFormat=0.00}"/>
  493. </StackPanel>
  494. <StackPanel Grid.Column="2">
  495. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">I :</TextBlock>
  496. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.AutoTune_I, StringFormat=0.00}"/>
  497. </StackPanel>
  498. <StackPanel Grid.Column="4">
  499. <TextBlock Margin="0,4" VerticalAlignment="Center" HorizontalAlignment="Left">D :</TextBlock>
  500. <TextBox MinWidth="100" Background="#f8f8f8" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0" Height="24" IsReadOnly="True" Text="{Binding Channel.AutoTune_D, StringFormat=0.00}"/>
  501. </StackPanel>
  502. </Grid>
  503. </GroupBox>
  504. <Button Grid.Row="4" Grid.Column="4" VerticalAlignment="Center" HorizontalContentAlignment="Center" Width="32" Height="32"
  505. Command="{Binding SelectPIDCommand}" CommandParameter="Autotune">
  506. <Image Source="{StaticResource ArrowLeft}" Visibility="{Binding Channel.ActiveTuneSet, Converter={StaticResource ActiveTuneSet}, ConverterParameter=AutoTune}" Width="20" Margin="0,0,0,0" VerticalAlignment="Center"/>
  507. </Button>
  508. </Grid>
  509. <Grid Grid.Row="10">
  510. <Grid.ColumnDefinitions>
  511. <ColumnDefinition Width="auto"/>
  512. <ColumnDefinition Width="0"/>
  513. <ColumnDefinition Width="auto"/>
  514. <ColumnDefinition Width="*"/>
  515. <ColumnDefinition Width="auto"/>
  516. </Grid.ColumnDefinitions>
  517. <!--<Button Grid.Column="0" Style="{StaticResource FunctionButton}" Command="{Binding OperateCommand}" CommandParameter="Save" MinWidth="100" Height="32">
  518. <StackPanel Orientation="Horizontal">
  519. <Image Source="{StaticResource application_recordDrawingImage}" Height="16" Margin="4,2"/>
  520. <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Margin="4,2" Text="{DynamicResource Save}"/>
  521. </StackPanel>
  522. </Button>-->
  523. <Button Grid.Column="2" Style="{StaticResource FunctionButton}" Command="{Binding OperateCommand}" CommandParameter="Send" MinWidth="100" Height="32">
  524. <StackPanel Orientation="Horizontal">
  525. <Image Source="{StaticResource Icon_Start}" Height="16" Margin="4,2"/>
  526. <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Margin="4,2" Text="{DynamicResource ChannelDetailSend}"/>
  527. </StackPanel>
  528. </Button>
  529. <Button Grid.Column="4" Style="{StaticResource FunctionButton}" Command="{Binding ExitCommand}" MinWidth="100" Height="32" Background="Gray">
  530. <StackPanel Orientation="Horizontal">
  531. <Image Source="{StaticResource Icon_Reset}" Height="16" Margin="4,2"/>
  532. <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Margin="4,2" Text="{DynamicResource Retrun}"/>
  533. </StackPanel>
  534. </Button>
  535. </Grid>
  536. </Grid>
  537. </TabItem>
  538. </TabControl>
  539. </GroupBox>
  540. </Grid>
  541. </UserControl>