ChannelDetail.xaml 46 KB

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