PmOverviewView.xaml 90 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275
  1. <UserControl x:Class="VirgoUI.Client.Models.PMs.PmOverviewView"
  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:i="http://schemas.microsoft.com/expression/2010/interactivity"
  7. xmlns:ctrl="http://OpenSEMI.Ctrlib.com/presentation"
  8. xmlns:cal="http://www.caliburn.org"
  9. xmlns:deviceControl="clr-namespace:Aitex.Core.UI.DeviceControl;assembly=MECF.Framework.UI.Core"
  10. xmlns:control="clr-namespace:Aitex.Core.UI.Control;assembly=MECF.Framework.UI.Core"
  11. xmlns:parts="clr-namespace:VirgoUI.Controls.Parts"
  12. xmlns:pMs="clr-namespace:VirgoUI.Client.Models.PMs"
  13. xmlns:converters="clr-namespace:Aitex.Core.UI.Converters;assembly=MECF.Framework.UI.Core"
  14. mc:Ignorable="d" IsEnabled="{Binding PageEnabled}"
  15. d:DesignHeight="800" d:DesignWidth="1530">
  16. <UserControl.Resources>
  17. <converters:bool2VisibilityConverter x:Key="bool2VisibilityConvert"/>
  18. <Storyboard x:Key="SlitValve_Open">
  19. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Height)" >
  20. <EasingDoubleKeyFrame KeyTime="0" Value="75"/>
  21. <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="55"/>
  22. </DoubleAnimationUsingKeyFrames>
  23. </Storyboard>
  24. <Storyboard x:Key="SlitValve_Close">
  25. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Height)" >
  26. <EasingDoubleKeyFrame KeyTime="0" Value="55"/>
  27. <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="75"/>
  28. </DoubleAnimationUsingKeyFrames>
  29. </Storyboard>
  30. <Style TargetType="{x:Type Rectangle}" x:Key="SlitValve_Animation" >
  31. <Style.Triggers>
  32. <DataTrigger Binding="{Binding IsSlitValveOpen}" Value="true">
  33. <DataTrigger.EnterActions>
  34. <BeginStoryboard Storyboard="{StaticResource SlitValve_Open}"/>
  35. </DataTrigger.EnterActions>
  36. <DataTrigger.ExitActions>
  37. <BeginStoryboard Storyboard="{StaticResource SlitValve_Close}"/>
  38. </DataTrigger.ExitActions>
  39. </DataTrigger>
  40. </Style.Triggers>
  41. </Style>
  42. <DataTemplate x:Key="Default">
  43. <Grid>
  44. <Grid.ColumnDefinitions>
  45. <ColumnDefinition Width="125"></ColumnDefinition>
  46. <ColumnDefinition></ColumnDefinition>
  47. </Grid.ColumnDefinitions>
  48. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,0,1,0" Grid.Row="0" Padding="0">
  49. <TextBlock Text="{Binding Feedback}" TextAlignment="Center" Width="90" Margin="0"></TextBlock>
  50. </Border>
  51. <TextBlock Text="{Binding Setpoint}" Grid.Column="1" TextAlignment="Center" Width="90">
  52. <TextBlock.Style>
  53. <Style>
  54. <Setter Property="TextBlock.Visibility" Value="Collapsed" ></Setter>
  55. <Style.Triggers>
  56. <DataTrigger Binding="{Binding SetpointEnabled}" Value="False">
  57. <Setter Property="TextBlock.Visibility" Value="Visible" ></Setter>
  58. </DataTrigger>
  59. </Style.Triggers>
  60. </Style>
  61. </TextBlock.Style>
  62. </TextBlock>
  63. <ctrl:TextBoxEx Text="{Binding Setpoint, UpdateSourceTrigger=PropertyChanged}" TextSaved="{Binding SetpointSaved, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Grid.Column="1" Width="90">
  64. <!--<i:Interaction.Triggers>
  65. <i:EventTrigger EventName="KeyDown">
  66. <cal:ActionMessage MethodName="SetParameter">
  67. <cal:Parameter Value="$eventargs" />
  68. <cal:Parameter Value="{Binding }" />
  69. </cal:ActionMessage>
  70. </i:EventTrigger>
  71. </i:Interaction.Triggers>-->
  72. <TextBox.Style>
  73. <Style>
  74. <Setter Property="TextBox.Visibility" Value="Collapsed" ></Setter>
  75. <Style.Triggers>
  76. <DataTrigger Binding="{Binding SetpointEnabled}" Value="True">
  77. <Setter Property="TextBox.Visibility" Value="Visible" ></Setter>
  78. </DataTrigger>
  79. </Style.Triggers>
  80. </Style>
  81. </TextBox.Style>
  82. </ctrl:TextBoxEx>
  83. </Grid>
  84. </DataTemplate>
  85. <DataTemplate x:Key="Share">
  86. <TextBlock Text="{Binding Feedback}" Width="250" TextAlignment="Center"></TextBlock>
  87. </DataTemplate>
  88. <DataTemplate x:Key="DropdownList">
  89. <Grid>
  90. <Grid.ColumnDefinitions>
  91. <ColumnDefinition Width="125"></ColumnDefinition>
  92. <ColumnDefinition></ColumnDefinition>
  93. </Grid.ColumnDefinitions>
  94. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,0,1,0" Grid.Row="0" Padding="0">
  95. <TextBlock Text="{Binding Feedback}" TextAlignment="Center" Width="90" Margin="0"></TextBlock>
  96. </Border>
  97. <ComboBox ItemsSource="{Binding Selections}" SelectedValue="{Binding Setpoint, UpdateSourceTrigger=PropertyChanged}" Grid.Column="1" Width="120"></ComboBox>
  98. </Grid>
  99. </DataTemplate>
  100. <DataTemplate x:Key="ListBoxDataTemp">
  101. <Canvas Width="60" Height="200">
  102. <Grid Width="60">
  103. <Grid.RowDefinitions>
  104. <RowDefinition Height="20"/>
  105. <RowDefinition Height="20"/>
  106. </Grid.RowDefinitions>
  107. <!--<TextBlock Text="{Binding Display}" FontFamily="Arial" TextAlignment="Center" FontSize="14" Foreground="{DynamicResource FG_Black}" HorizontalAlignment="Center" VerticalAlignment="Center"/>-->
  108. <TextBlock Grid.Row="1" Text="{Binding MfcData.DisplayName}" FontFamily="Arial" TextAlignment="Center" FontSize="14" Foreground="{DynamicResource FG_Black}" VerticalAlignment="Center" HorizontalAlignment="Center"/>
  109. </Grid>
  110. <ctrl:Gasline Orientation="Vertical" Height="160" Canvas.Left="27" Canvas.Top="40"/>
  111. <ctrl:GaslineJoint JointType="UP" Canvas.Left="27" Canvas.Top="200"/>
  112. <control:FlowPipeV2 Width="200" Height="8" FlowOrientation="Vertical" IsFlowing="{Binding ValveData.Feedback}" Canvas.Left="35" Canvas.Top="41" />
  113. <control:FlowPipeV2 Width="50" Height="8" FlowOrientation="Vertical" IsFlowing="{Binding ValveData.Feedback}" Canvas.Left="35" Canvas.Top="100" />
  114. <deviceControl:AITGasValve Canvas.Left="14" Canvas.Top="130" ValveOpenOrientation="Vertical" DeviceData="{Binding ValveData}" EnableServiceControl="True" IsAutoMode="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type UserControl}},Path= DataContext.IsAutoMode}"/>
  115. <control:MfcControl Canvas.Left="10" Canvas.Top="90" DeviceData="{Binding MfcData}" IsAutoMode="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type UserControl}},Path= DataContext.IsAutoMode}" />
  116. </Canvas>
  117. </DataTemplate>
  118. <pMs:PMTemplateSelector x:Key="SPSelector" DefaultTemplate="{StaticResource Default}" ShareTemplate="{StaticResource Share}" DropDownListTemplate="{StaticResource DropdownList}" />
  119. </UserControl.Resources>
  120. <Grid>
  121. <Grid.ColumnDefinitions>
  122. <ColumnDefinition />
  123. <ColumnDefinition Width="Auto"/>
  124. <ColumnDefinition Width="Auto"/>
  125. </Grid.ColumnDefinitions>
  126. <Canvas Grid.Column="0" Width="800" Height="800" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0 0 20 0" >
  127. <!--Lid 盖子,其实没有Lid开关控制信号,盖子上有把锁, 和温度有interlock-->
  128. <!--<Grid Width="220" HorizontalAlignment="Center" VerticalAlignment="Top" Canvas.Left="425" Canvas.Top="10">
  129. <Grid.RowDefinitions>
  130. <RowDefinition Height="24"/>
  131. <RowDefinition Height="40"/>
  132. <RowDefinition />
  133. </Grid.RowDefinitions>
  134. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1" Background="{DynamicResource Table_BG_Title}" Grid.Row="0" Grid.Column="0" Padding="5,1">
  135. <TextBlock Text="Lid Control" TextWrapping="Wrap" TextAlignment="Center" Foreground="{DynamicResource FG_Black}" FontSize="12" FontFamily="Arial" VerticalAlignment="Center"/>
  136. </Border>
  137. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1,0,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="1" Grid.ColumnSpan="2" Padding="5,1">
  138. <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" >
  139. <Button Content="Open Lid" IsEnabled="{Binding EnableOpenLid}" Width="90" Height="25" Margin="0">
  140. <i:Interaction.Triggers>
  141. <i:EventTrigger EventName="Click">
  142. <cal:ActionMessage MethodName="OpenLid"></cal:ActionMessage>
  143. </i:EventTrigger>
  144. </i:Interaction.Triggers>
  145. </Button>
  146. <Button Content="Close Lid" IsEnabled="{Binding EnableCloseLid}" Width="90" Height="25" Margin="5">
  147. <i:Interaction.Triggers>
  148. <i:EventTrigger EventName="Click">
  149. <cal:ActionMessage MethodName="CloseLid"></cal:ActionMessage>
  150. </i:EventTrigger>
  151. </i:Interaction.Triggers>
  152. </Button>
  153. </StackPanel>
  154. </Border>
  155. </Grid>-->
  156. <!--DI switch signals-->
  157. <Grid Canvas.Left="45" Canvas.Top="90">
  158. <Grid.ColumnDefinitions>
  159. <ColumnDefinition Width="100"/>
  160. <ColumnDefinition Width="100"/>
  161. <ColumnDefinition Width="100"/>
  162. <ColumnDefinition Width="100"/>
  163. </Grid.ColumnDefinitions>
  164. <Grid.RowDefinitions>
  165. <RowDefinition Height="25"/>
  166. <RowDefinition Height="25"/>
  167. <RowDefinition Height="25"/>
  168. <RowDefinition Height="25"/>
  169. </Grid.RowDefinitions>
  170. <!--chamber status-->
  171. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1" Background="{DynamicResource Table_BG_Title}" Grid.Row="0" Padding="5,1">
  172. <TextBlock Text="腔体状态" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="12" FontFamily="Arial" VerticalAlignment="Center"/>
  173. </Border>
  174. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,1,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="0" Grid.Column="1" Padding="5,1">
  175. <TextBlock Text="{Binding Path=ChamberStatus}" Background="{Binding ChamberStatusBkColor}" TextAlignment="Center" VerticalAlignment="Center"/>
  176. </Border>
  177. <!--SensorWaterFlowOk-->
  178. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1,0,1,1" Background="{DynamicResource Table_BG_Title}" Grid.Row="1" Padding="5,1">
  179. <TextBlock Text="水流量信号" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="12" FontFamily="Arial" VerticalAlignment="Center"/>
  180. </Border>
  181. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,0,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="1" Grid.Column="1" Padding="5,1">
  182. <deviceControl:AITSensor IsInterlockMode="True" DeviceData="{Binding SensorWaterFlowOk}" />
  183. </Border>
  184. <!--SensorCDAPressureOk-->
  185. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1,0,1,1" Background="{DynamicResource Table_BG_Title}" Grid.Row="2" Padding="5,1">
  186. <TextBlock Text="CDA" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="12" FontFamily="Arial" VerticalAlignment="Center"/>
  187. </Border>
  188. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,0,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="2" Grid.Column="1" Padding="5,1">
  189. <deviceControl:AITSensor IsInterlockMode="True" DeviceData="{Binding SensorCDAPressureOk}" />
  190. </Border>
  191. <!--SourceFan1-->
  192. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1,0,1,1" Background="{DynamicResource Table_BG_Title}" Grid.Row="3" Padding="5,1">
  193. <TextBlock Text="电感风扇 1&amp;2" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="12" FontFamily="Arial" VerticalAlignment="Center"/>
  194. </Border>
  195. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,0,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="3" Grid.Column="1" Padding="5,1">
  196. <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
  197. <deviceControl:AITSensor IsInterlockMode="True" DeviceData="{Binding SourceFan1}" />
  198. <deviceControl:AITSensor IsInterlockMode="True" DeviceData="{Binding SourceFan2}" Margin="5,0,0,0" />
  199. </StackPanel>
  200. </Border>
  201. <!--SensorWaterLeakOk-->
  202. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,1,1,1" Background="{DynamicResource Table_BG_Title}" Grid.Row="0" Grid.Column="2" Padding="5,1">
  203. <TextBlock Text="漏水信号" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="12" FontFamily="Arial" VerticalAlignment="Center"/>
  204. </Border>
  205. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,1,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="0" Grid.Column="3" Padding="5,1">
  206. <deviceControl:AITSensor IsInterlockMode="True" DeviceData="{Binding SensorWaterLeakOk}" />
  207. </Border>
  208. <!--SensorArmNotExtend-->
  209. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,0,1,1" Background="{DynamicResource Table_BG_Title}" Grid.Row="2" Grid.Column="2" Padding="5,1">
  210. <TextBlock Text="手臂不在腔体内" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="12" FontFamily="Arial" VerticalAlignment="Center"/>
  211. </Border>
  212. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,0,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="2" Grid.Column="3" Padding="5,1">
  213. <deviceControl:AITSensor IsInterlockMode="True" DeviceData="{Binding SensorArmNotExtend}" />
  214. </Border>
  215. <!--ATM Switch-->
  216. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,0,1,1" Background="{DynamicResource Table_BG_Title}" Grid.Row="3" Grid.Column="2" Padding="5,1">
  217. <TextBlock Text="大气压" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="12" FontFamily="Arial" VerticalAlignment="Center"/>
  218. </Border>
  219. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,0,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="3" Grid.Column="3" Padding="5,1">
  220. <deviceControl:AITSensor GreenColor="True" DeviceData="{Binding SensorATMSwitch}" />
  221. </Border>
  222. <!--VAC switch-->
  223. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,0,1,1" Background="{DynamicResource Table_BG_Title}" Grid.Row="1" Grid.Column="2" Padding="5,1">
  224. <TextBlock Text="真空" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="12" FontFamily="Arial" VerticalAlignment="Center"/>
  225. </Border>
  226. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,0,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="1" Grid.Column="3" Padding="5,1">
  227. <deviceControl:AITSensor GreenColor="True" DeviceData="{Binding SensorVacSwitch}" />
  228. </Border>
  229. </Grid>
  230. <Canvas Canvas.Left="121" Canvas.Top="280" >
  231. <!-- Fast vent valve-->
  232. <TextBlock Text="Vent" FontFamily="Arial" TextAlignment="Center" FontSize="14" Foreground="{DynamicResource FG_Black}" Canvas.Left="212" Canvas.Top="-87"/>
  233. <TextBlock Text="Purge" FontFamily="Arial" TextAlignment="Center" FontSize="14" Foreground="{DynamicResource FG_Black}" Canvas.Left="252" Canvas.Top="-60"/>
  234. <ctrl:Gasline Orientation="Vertical" Height="166" Canvas.Left="220" Canvas.Top="-66" />
  235. <control:FlowPipeV2 Width="168" Height="7" IsFlowing="{Binding FastVentVlv.Feedback}" Canvas.Left="228" Canvas.Top="-66" >
  236. <control:FlowPipeV2.RenderTransform>
  237. <RotateTransform Angle="90"></RotateTransform>
  238. </control:FlowPipeV2.RenderTransform>
  239. </control:FlowPipeV2>
  240. <deviceControl:AITGasValve Canvas.Left="208" Canvas.Top="-19" ValveOpenOrientation="Vertical" DeviceData="{Binding FastVentVlv}" EnableServiceControl="True" IsAutoMode="{Binding IsAutoMode}"/>
  241. <ctrl:Gasline Orientation="Vertical" Height="73" Canvas.Left="265" Canvas.Top="-41" />
  242. <ctrl:Gasline Orientation="Horizontal" Canvas.Left="227" Canvas.Top="-41" Width="38" />
  243. <ctrl:Gasline Orientation="Horizontal" Canvas.Left="227" Canvas.Top="27" Width="38" />
  244. <ctrl:GaslineJoint JointType="RIGHT" Canvas.Left="220" Canvas.Top="27" />
  245. <ctrl:GaslineJoint JointType="RIGHT_BOTTOM" Canvas.Left="265" Canvas.Top="27" />
  246. <ctrl:GaslineJoint JointType="RIGHT_TOP" Canvas.Left="265" Canvas.Top="-41" />
  247. <ctrl:GaslineJoint JointType="RIGHT" Canvas.Left="220" Canvas.Top="-41" />
  248. <control:FlowPipeV2 Width="38" Height="8" IsFlowing="{Binding SoftVentVlv.Feedback}" Visibility="{Binding Path=SoftVentVlv.Feedback, Converter={StaticResource bool2VisibilityConvert}}" Canvas.Left="227" Canvas.Top="-41" />
  249. <control:FlowPipeV2 Width="29" Height="8" IsFlowing="{Binding SoftVentVlv.Feedback}" Visibility="{Binding Path=SoftVentVlv.Feedback, Converter={StaticResource bool2VisibilityConvert}}" Canvas.Left="210" Canvas.Top="-55" RenderTransformOrigin="0.5,0.5" >
  250. <control:FlowPipeV2.RenderTransform>
  251. <TransformGroup>
  252. <ScaleTransform/>
  253. <SkewTransform/>
  254. <RotateTransform Angle="90"/>
  255. <TranslateTransform/>
  256. </TransformGroup>
  257. </control:FlowPipeV2.RenderTransform>
  258. </control:FlowPipeV2>
  259. <control:FlowPipeV2 Width="77" Height="8" IsFlowing="{Binding SoftVentVlv.Feedback}" Visibility="{Binding Path=SoftVentVlv.Feedback, Converter={StaticResource bool2VisibilityConvert}}" Canvas.Left="231" Canvas.Top="-7" RenderTransformOrigin="0.5,0.5" >
  260. <control:FlowPipeV2.RenderTransform>
  261. <TransformGroup>
  262. <ScaleTransform/>
  263. <SkewTransform/>
  264. <RotateTransform Angle="90"/>
  265. <TranslateTransform/>
  266. </TransformGroup>
  267. </control:FlowPipeV2.RenderTransform>
  268. </control:FlowPipeV2>
  269. <control:FlowPipeV2 Width="62" Height="8" IsFlowing="{Binding SoftVentVlv.Feedback}" Visibility="{Binding Path=SoftVentVlv.Feedback, Converter={StaticResource bool2VisibilityConvert}}" Canvas.Left="194" Canvas.Top="56" RenderTransformOrigin="0.5,0.5" >
  270. <control:FlowPipeV2.RenderTransform>
  271. <TransformGroup>
  272. <ScaleTransform/>
  273. <SkewTransform/>
  274. <RotateTransform Angle="90"/>
  275. <TranslateTransform/>
  276. </TransformGroup>
  277. </control:FlowPipeV2.RenderTransform>
  278. </control:FlowPipeV2>
  279. <control:FlowPipeV2 Width="38" Height="8" IsFlowing="{Binding SoftVentVlv.Feedback}" Visibility="{Binding Path=SoftVentVlv.Feedback, Converter={StaticResource bool2VisibilityConvert}}" Canvas.Left="227" Canvas.Top="27" RenderTransformOrigin="0.5,0.5" >
  280. <control:FlowPipeV2.RenderTransform>
  281. <TransformGroup>
  282. <ScaleTransform/>
  283. <SkewTransform/>
  284. <RotateTransform Angle="180"/>
  285. <TranslateTransform/>
  286. </TransformGroup>
  287. </control:FlowPipeV2.RenderTransform>
  288. </control:FlowPipeV2>
  289. <deviceControl:AITGasValve Canvas.Left="253" Canvas.Top="-18" ValveOpenOrientation="Vertical" DeviceData="{Binding SoftVentVlv}" EnableServiceControl="True" IsAutoMode="{Binding IsAutoMode}"/>
  290. </Canvas>
  291. <ctrl:Gasline Width="430" Canvas.Left="15" Canvas.Top="376" />
  292. <!--<control:FlowPipeV2 Width="170" Height="8" IsFlowing="{Binding GP1Valve.Feedback}" Canvas.Left="50" Canvas.Top="292" RenderTransformOrigin="0.5,0.5" >
  293. <control:FlowPipeV2.RenderTransform>
  294. <TransformGroup>
  295. <ScaleTransform/>
  296. <SkewTransform/>
  297. <RotateTransform Angle="90"/>
  298. <TranslateTransform/>
  299. </TransformGroup>
  300. </control:FlowPipeV2.RenderTransform>
  301. </control:FlowPipeV2>
  302. <control:FlowPipeV2 Width="170" Height="8" IsFlowing="{Binding GP2Valve.Feedback}" Canvas.Left="112" Canvas.Top="296" RenderTransformOrigin="0.5,0.5" >
  303. <control:FlowPipeV2.RenderTransform>
  304. <TransformGroup>
  305. <ScaleTransform/>
  306. <SkewTransform/>
  307. <RotateTransform Angle="90"/>
  308. <TranslateTransform/>
  309. </TransformGroup>
  310. </control:FlowPipeV2.RenderTransform>
  311. </control:FlowPipeV2>
  312. <control:FlowPipeV2 Width="170" Height="8" IsFlowing="{Binding GP3Valve.Feedback}" Canvas.Left="180" Canvas.Top="295" RenderTransformOrigin="0.5,0.5" >
  313. <control:FlowPipeV2.RenderTransform>
  314. <TransformGroup>
  315. <ScaleTransform/>
  316. <SkewTransform/>
  317. <RotateTransform Angle="90"/>
  318. <TranslateTransform/>
  319. </TransformGroup>
  320. </control:FlowPipeV2.RenderTransform>
  321. </control:FlowPipeV2>-->
  322. <ItemsControl Canvas.Left="-15" Canvas.Top="176" Width="300" Height="200" ItemsSource="{Binding Gaslines}"
  323. ItemTemplate="{StaticResource ListBoxDataTemp}" Focusable="False" HorizontalAlignment="Left" VerticalAlignment="Top" >
  324. <ItemsControl.ItemsPanel>
  325. <ItemsPanelTemplate >
  326. <VirtualizingStackPanel Orientation="Horizontal"/>
  327. </ItemsPanelTemplate>
  328. </ItemsControl.ItemsPanel>
  329. </ItemsControl>
  330. <control:FlowPipeV2 Width="430" Height="8" Canvas.Left="15" Canvas.Top="376" >
  331. <control:FlowPipeV2.IsFlowing>
  332. <MultiBinding>
  333. <MultiBinding.Converter>
  334. <converters:FlowConverterFirstFalseMultiBinding></converters:FlowConverterFirstFalseMultiBinding>
  335. </MultiBinding.Converter>
  336. <MultiBinding.Bindings>
  337. <Binding Path="ProcessVlv.Feedback"></Binding>
  338. <Binding Path="GP1Valve.Feedback"></Binding>
  339. </MultiBinding.Bindings>
  340. </MultiBinding>
  341. </control:FlowPipeV2.IsFlowing>
  342. </control:FlowPipeV2>
  343. <control:FlowPipeV2 Width="365" Height="8" Canvas.Left="80" Canvas.Top="376" >
  344. <control:FlowPipeV2.IsFlowing>
  345. <MultiBinding>
  346. <MultiBinding.Converter>
  347. <converters:FlowConverterFirstFalseMultiBinding></converters:FlowConverterFirstFalseMultiBinding>
  348. </MultiBinding.Converter>
  349. <MultiBinding.Bindings>
  350. <Binding Path="ProcessVlv.Feedback"></Binding>
  351. <Binding Path="GP2Valve.Feedback"></Binding>
  352. </MultiBinding.Bindings>
  353. </MultiBinding>
  354. </control:FlowPipeV2.IsFlowing>
  355. </control:FlowPipeV2>
  356. <control:FlowPipeV2 Width="305" Height="8" Canvas.Left="140" Canvas.Top="376" >
  357. <control:FlowPipeV2.IsFlowing>
  358. <MultiBinding>
  359. <MultiBinding.Converter>
  360. <converters:FlowConverterFirstFalseMultiBinding></converters:FlowConverterFirstFalseMultiBinding>
  361. </MultiBinding.Converter>
  362. <MultiBinding.Bindings>
  363. <Binding Path="ProcessVlv.Feedback"></Binding>
  364. <Binding Path="GP3Valve.Feedback"></Binding>
  365. </MultiBinding.Bindings>
  366. </MultiBinding>
  367. </control:FlowPipeV2.IsFlowing>
  368. </control:FlowPipeV2>
  369. <control:FlowPipeV2 Width="252" Height="8" Canvas.Left="193" Canvas.Top="376" >
  370. <control:FlowPipeV2.IsFlowing>
  371. <MultiBinding>
  372. <MultiBinding.Converter>
  373. <converters:FlowConverterFirstFalseMultiBinding></converters:FlowConverterFirstFalseMultiBinding>
  374. </MultiBinding.Converter>
  375. <MultiBinding.Bindings>
  376. <Binding Path="ProcessVlv.Feedback"></Binding>
  377. <Binding Path="GP4Valve.Feedback"></Binding>
  378. </MultiBinding.Bindings>
  379. </MultiBinding>
  380. </control:FlowPipeV2.IsFlowing>
  381. </control:FlowPipeV2>
  382. <control:FlowPipeV2 Width="187" Height="8" Canvas.Left="258" Canvas.Top="376" >
  383. <control:FlowPipeV2.IsFlowing>
  384. <MultiBinding>
  385. <MultiBinding.Converter>
  386. <converters:FlowConverterFirstFalseMultiBinding></converters:FlowConverterFirstFalseMultiBinding>
  387. </MultiBinding.Converter>
  388. <MultiBinding.Bindings>
  389. <Binding Path="ProcessVlv.Feedback"></Binding>
  390. <Binding Path="GP5Valve.Feedback"></Binding>
  391. </MultiBinding.Bindings>
  392. </MultiBinding>
  393. </control:FlowPipeV2.IsFlowing>
  394. </control:FlowPipeV2>
  395. <control:FlowPipeV2 Width="105" Height="8" Canvas.Left="341" Canvas.Top="376" >
  396. <control:FlowPipeV2.IsFlowing>
  397. <MultiBinding>
  398. <MultiBinding.Converter>
  399. <converters:FlowConverterFirstFalseMultiBinding></converters:FlowConverterFirstFalseMultiBinding>
  400. </MultiBinding.Converter>
  401. <MultiBinding.Bindings>
  402. <Binding Path="ProcessVlv.Feedback"></Binding>
  403. <Binding Path="FastVentVlv.Feedback"></Binding>
  404. <Binding Path="SoftVentVlv.Feedback"></Binding>
  405. </MultiBinding.Bindings>
  406. </MultiBinding>
  407. </control:FlowPipeV2.IsFlowing>
  408. </control:FlowPipeV2>
  409. <!--<TextBlock Canvas.Left="62" Canvas.Top="198" Text="N2"></TextBlock>-->
  410. <!--<ctrl:Gasline Orientation="Vertical" Height="166" Canvas.Left="66" Canvas.Top="218" />-->
  411. <ctrl:GaslineJoint JointType="LEFT_BOTTOM" Canvas.Left="12" Canvas.Top="376" />
  412. <!--<ctrl:Gasline Height="8" Width="5" Canvas.Left="135" Canvas.Top="396" />-->
  413. <!--<deviceControl:AITGasValve Canvas.Left="53" Canvas.Top="302" ValveOpenOrientation="Vertical" DeviceData="{Binding N2PurgeValveData}" EnableServiceControl="True" />-->
  414. <deviceControl:AITGasValve Canvas.Left="405" Canvas.Top="365" ValveOpenOrientation="Horizontal" DeviceData="{Binding ProcessVlv}" EnableServiceControl="True" IsAutoMode="{Binding IsAutoMode}"/>
  415. <!--chamber-->
  416. <Canvas Height="550" Width="350" Canvas.Left="445" Canvas.Top="171">
  417. <TextBlock Text="射频" Canvas.Left="284" Canvas.Top="129" />
  418. <deviceControl:AITSensor Canvas.Left="264" Canvas.Top="129" GreenColor="True" LightOnValue="{Binding IsRfPowerOn}" />
  419. <deviceControl:AITRfGenerator DeviceData="{Binding Rf}" Canvas.Left="250" Canvas.Top="144" IsAutoMode="{Binding IsAutoMode}"></deviceControl:AITRfGenerator>
  420. <!--wall temperature-->
  421. <Canvas Visibility="{Binding WallHeaterVisibility}">
  422. <TextBlock Text="Wall 温度" Canvas.Left="269" Canvas.Top="179" />
  423. <deviceControl:AITHeaterControl DeviceData="{Binding WallHeater}" Width="80" Canvas.Left="256" Canvas.Top="194" IsAutoMode="{Binding IsAutoMode}"/>
  424. </Canvas>
  425. <!--substrate heater temperature-->
  426. <TextBlock Text="底座温度" Canvas.Left="272" Canvas.Top="227" Visibility="{Binding Path=IsHeaterVisibility, Converter={StaticResource bool2VisibilityConvert}}"/>
  427. <TextBlock Text="水冷温度" Canvas.Left="272" Canvas.Top="227" Visibility="{Binding Path=IsChillerVisibility, Converter={StaticResource bool2VisibilityConvert}}"/>
  428. <deviceControl:AITChillerControl DeviceData="{Binding ChillerData}" Canvas.Left="256" Canvas.Top="242" Width="80" IsAutoMode="{Binding IsAutoMode}" IsEnabled="{Binding IsChillerEnable}" Visibility="{Binding Path=IsChillerVisibility, Converter={StaticResource bool2VisibilityConvert}}"/>
  429. <deviceControl:AITHeaterControl DeviceData="{Binding HeaterChamber}" Canvas.Left="256" Canvas.Top="242" Width="80" IsAutoMode="{Binding IsAutoMode}" IsEnabled="{Binding IsHeaterEnable}" Visibility="{Binding Path=IsHeaterVisibility, Converter={StaticResource bool2VisibilityConvert}}"/>
  430. <!--grid heater temperature-->
  431. <Canvas Visibility="{Binding GridHeaterVisibility}">
  432. <TextBlock Text="Grid温度" Canvas.Left="0" Canvas.Top="25" />
  433. <deviceControl:AITHeaterControl DeviceData="{Binding GridHeater}" Width="80" Canvas.Left="-15" Canvas.Top="40" IsAutoMode="{Binding IsAutoMode}"/>
  434. </Canvas>
  435. <!--Foreline teamperature-->
  436. <TextBlock Text="前端温度" Canvas.Left="150" Canvas.Top="444" />
  437. <deviceControl:AITHeaterControl DeviceData="{Binding ForelineHeater}" Canvas.Left="148" Canvas.Top="460" IsAutoMode="{Binding IsAutoMode}"/>
  438. <ctrl:Gasline Orientation="Vertical" Height="20" Width="10" Canvas.Left="20" Canvas.Top="240"/>
  439. <ctrl:Gasline Orientation="Horizontal" Height="8" Canvas.Left="-102" Canvas.Top="250" Width="123"/>
  440. <ctrl:GaslineJoint JointType="LEFT" Width="10" Height="10" Canvas.Left="20" Canvas.Top="249" />
  441. <!--<ctrl:Gasline Orientation="Horizontal" Height="10" Canvas.Left="-105" Canvas.Top="288" Width="133"/>-->
  442. <!--<ctrl:GaslineJoint JointType="RIGHT_BOTTOM" Width="10" Height="10" Canvas.Left="20" Canvas.Top="288" />-->
  443. <deviceControl:AITPressureMeter DeviceData="{Binding ProcessGauge}" Height="30" Width="100" Canvas.Left="-112" Canvas.Top="240" />
  444. <TextBlock Text="工艺压力" FontFamily="Arial" TextAlignment="Center" FontSize="14" Foreground="{DynamicResource FG_Black}" Canvas.Left="-170" Canvas.Top="248"/>
  445. <Canvas Visibility="{Binding ChamberPressureVisibility}">
  446. <TextBlock Text="腔体压力" FontFamily="Arial" TextAlignment="Center" FontSize="14" Foreground="{DynamicResource FG_Black}" Canvas.Left="-170" Canvas.Top="270"/>
  447. <deviceControl:AITPressureMeter DeviceData="{Binding PressureGauge}" Height="30" Width="100" Canvas.Left="-112" Canvas.Top="264" />
  448. </Canvas>
  449. <ctrl:Gasline Orientation="Vertical" Height="268" Canvas.Left="208" Canvas.Top="240"/>
  450. <!--<control:FlowPipeV2 Width="274" Height="7" IsFlowing="{Binding FastPumpVlv.Feedback}" Visibility="{Binding Path=FastPumpVlv.Feedback, Converter={StaticResource bool2VisibilityConvert}}" Canvas.Left="216" Canvas.Top="238" >
  451. <control:FlowPipeV2.RenderTransform>
  452. <TransformGroup>
  453. <ScaleTransform/>
  454. <SkewTransform/>
  455. <RotateTransform Angle="90"/>
  456. <TranslateTransform/>
  457. </TransformGroup>
  458. </control:FlowPipeV2.RenderTransform>
  459. </control:FlowPipeV2>-->
  460. <control:FlowPipeV2 Width="275" Height="7" IsFlowing="{Binding FastPumpVlv.Feedback}" Visibility="{Binding Path=FastPumpVlv.Feedback, Converter={StaticResource bool2VisibilityConvert}}" Canvas.Left="74" Canvas.Top="370" RenderTransformOrigin="0.5,0.5" >
  461. <control:FlowPipeV2.RenderTransform>
  462. <TransformGroup>
  463. <ScaleTransform/>
  464. <SkewTransform/>
  465. <RotateTransform Angle="90"/>
  466. <TranslateTransform/>
  467. </TransformGroup>
  468. </control:FlowPipeV2.RenderTransform>
  469. </control:FlowPipeV2>
  470. <deviceControl:AITGasValve Canvas.Left="196" Canvas.Top="360" ValveOpenOrientation="Vertical" DeviceData="{Binding FastPumpVlv}" EnableServiceControl="True" IsAutoMode="{Binding IsAutoMode}"/>
  471. <TextBlock Text="快抽" FontFamily="Arial" TextAlignment="Center" FontSize="14" Foreground="{DynamicResource FG_Black}" Canvas.Left="166" Canvas.Top="370"/>
  472. <TextBlock Text="慢抽" FontFamily="Arial" TextAlignment="Center" FontSize="14" Foreground="{DynamicResource FG_Black}" Canvas.Left="276" Canvas.Top="370"/>
  473. <Canvas Canvas.Left="-12" Canvas.Top="341" >
  474. <ctrl:Gasline Orientation="Vertical" Height="73" Canvas.Left="266" Canvas.Top="1" />
  475. <ctrl:Gasline Orientation="Horizontal" Canvas.Left="229" Width="37" Canvas.Top="-7" />
  476. <ctrl:Gasline Orientation="Horizontal" Canvas.Left="228" Canvas.Top="66" Width="38" />
  477. <!--<ctrl:GaslineJoint JointType="RIGHT" Canvas.Left="220" Canvas.Top="27" />-->
  478. <ctrl:GaslineJoint JointType="RIGHT_BOTTOM" Canvas.Left="266" Canvas.Top="66" />
  479. <ctrl:GaslineJoint JointType="RIGHT_TOP" Canvas.Left="266" Canvas.Top="-7" />
  480. <!--<ctrl:GaslineJoint JointType="RIGHT" Canvas.Left="220" Canvas.Top="-41" />-->
  481. <control:FlowPipeV2 Width="39" Height="8" IsFlowing="{Binding SoftPumpVlv.Feedback}" Visibility="{Binding Path=SoftPumpVlv.Feedback, Converter={StaticResource bool2VisibilityConvert}}" Canvas.Left="227" Canvas.Top="-7" />
  482. <control:FlowPipeV2 Width="94" Height="8" IsFlowing="{Binding SoftPumpVlv.Feedback}" Visibility="{Binding Path=SoftPumpVlv.Feedback, Converter={StaticResource bool2VisibilityConvert}}" Canvas.Left="176" Canvas.Top="-58" RenderTransformOrigin="0.5,0.5" >
  483. <control:FlowPipeV2.RenderTransform>
  484. <TransformGroup>
  485. <ScaleTransform/>
  486. <SkewTransform/>
  487. <RotateTransform Angle="90"/>
  488. <TranslateTransform/>
  489. </TransformGroup>
  490. </control:FlowPipeV2.RenderTransform>
  491. </control:FlowPipeV2>
  492. <control:FlowPipeV2 Width="66" Height="8" IsFlowing="{Binding SoftPumpVlv.Feedback}" Visibility="{Binding Path=SoftPumpVlv.Feedback, Converter={StaticResource bool2VisibilityConvert}}" Canvas.Left="237" Canvas.Top="29" RenderTransformOrigin="0.5,0.5" >
  493. <control:FlowPipeV2.RenderTransform>
  494. <TransformGroup>
  495. <ScaleTransform/>
  496. <SkewTransform/>
  497. <RotateTransform Angle="90"/>
  498. <TranslateTransform/>
  499. </TransformGroup>
  500. </control:FlowPipeV2.RenderTransform>
  501. </control:FlowPipeV2>
  502. <control:FlowPipeV2 Width="88" Height="6" IsFlowing="{Binding SoftPumpVlv.Feedback}" Visibility="{Binding Path=SoftPumpVlv.Feedback, Converter={StaticResource bool2VisibilityConvert}}" Canvas.Left="179" Canvas.Top="115" RenderTransformOrigin="0.5,0.5" >
  503. <control:FlowPipeV2.RenderTransform>
  504. <TransformGroup>
  505. <ScaleTransform/>
  506. <SkewTransform/>
  507. <RotateTransform Angle="90"/>
  508. <TranslateTransform/>
  509. </TransformGroup>
  510. </control:FlowPipeV2.RenderTransform>
  511. </control:FlowPipeV2>
  512. <control:FlowPipeV2 Width="38" Height="8" IsFlowing="{Binding SoftPumpVlv.Feedback}" Visibility="{Binding Path=SoftPumpVlv.Feedback, Converter={StaticResource bool2VisibilityConvert}}" Canvas.Left="227" Canvas.Top="64" RenderTransformOrigin="0.5,0.5" >
  513. <control:FlowPipeV2.RenderTransform>
  514. <TransformGroup>
  515. <ScaleTransform/>
  516. <SkewTransform/>
  517. <RotateTransform Angle="180"/>
  518. <TranslateTransform/>
  519. </TransformGroup>
  520. </control:FlowPipeV2.RenderTransform>
  521. </control:FlowPipeV2>
  522. <deviceControl:AITGasValve Canvas.Left="254" Canvas.Top="20" ValveOpenOrientation="Vertical" DeviceData="{Binding SoftPumpVlv}" EnableServiceControl="True" IsAutoMode="{Binding IsAutoMode}"/>
  523. </Canvas>
  524. <ctrl:Gasline Orientation="Horizontal" Canvas.Left="216" Canvas.Top="468" Width="46" />
  525. <ctrl:GaslineJoint JointType="RIGHT" Canvas.Left="208" Canvas.Top="468" />
  526. <TextBlock Text="前端压力" Canvas.Left="277" Canvas.Top="440" />
  527. <deviceControl:AITPressureMeter DeviceData="{Binding ForelineGauge}" Height="30" Width="100" Canvas.Left="227" Canvas.Top="456" />
  528. <deviceControl:AITPump Canvas.Top="500" DeviceData="{Binding MainPumpData}" EnableControl="True" IsShowSensor="False" Canvas.Left="4" IsAutoMode="{Binding IsAutoMode}"/>
  529. <deviceControl:AITThrottleValve Canvas.Top="288" DeviceData="{Binding Tv}" Canvas.Left="192" IsAutoMode="{Binding IsAutoMode}"></deviceControl:AITThrottleValve>
  530. <!--slit valve-->
  531. <Grid Width="170" HorizontalAlignment="Center" VerticalAlignment="Top" Canvas.Left="10" Canvas.Top="-80">
  532. <Grid.RowDefinitions>
  533. <RowDefinition Height="24"/>
  534. <RowDefinition Height="30"/>
  535. <RowDefinition />
  536. </Grid.RowDefinitions>
  537. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1" Background="{DynamicResource Table_BG_Title}" Grid.Row="0" Grid.Column="0" Padding="5,1">
  538. <TextBlock Text="传送门" TextWrapping="Wrap" TextAlignment="Center" Foreground="{DynamicResource FG_Black}" FontSize="12" FontFamily="黑体" VerticalAlignment="Center"/>
  539. </Border>
  540. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1,0,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="1" Grid.ColumnSpan="2" Padding="5,1">
  541. <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
  542. <deviceControl:AITSensor Margin="5,0,5,0" GreenColor="True" LightOnValue="{Binding IsSlitValveOpen}" />
  543. <Button Content="Open" IsEnabled="{Binding EnableOpenSlitValve}" Width="50" Height="25" Margin="0">
  544. <i:Interaction.Triggers>
  545. <i:EventTrigger EventName="Click">
  546. <cal:ActionMessage MethodName="OpenSlitValve"></cal:ActionMessage>
  547. </i:EventTrigger>
  548. </i:Interaction.Triggers>
  549. </Button>
  550. <deviceControl:AITSensor Margin="5,0,5,0" GreenColor="True" LightOnValue="{Binding IsSlitValveClose}" />
  551. <Button Content="Close" IsEnabled="{Binding EnableCloseSlitValve}" Width="50" Height="25" Margin="0">
  552. <i:Interaction.Triggers>
  553. <i:EventTrigger EventName="Click">
  554. <cal:ActionMessage MethodName="CloseSlitValve"></cal:ActionMessage>
  555. </i:EventTrigger>
  556. </i:Interaction.Triggers>
  557. </Button>
  558. </StackPanel>
  559. </Border>
  560. </Grid>
  561. <!--chamber-->
  562. <Grid Width="240" Height="190" Canvas.Top="80">
  563. <Grid.RowDefinitions>
  564. <RowDefinition Height="160"/>
  565. <RowDefinition />
  566. </Grid.RowDefinitions>
  567. <Path Data="M0.5,0.5 L33.5,0.5 33.5,17.5 206.5,17.5 206.5,0.5 239.5,0.5 239.5,149.5 0.5,149.5 z" Stroke="#FF747474" Margin="0,10,0,0">
  568. <Path.Fill>
  569. <LinearGradientBrush EndPoint="1,1" StartPoint="0,0">
  570. <GradientStop Color="#FF8F8F8F" Offset="0"/>
  571. <GradientStop Color="#FF9B9B9B" Offset="1"/>
  572. <GradientStop Color="#FEF1ECEC" Offset="0.15"/>
  573. <GradientStop Color="#FEC0C0C0" Offset="0.38"/>
  574. <GradientStop Color="#FEB4B4B4" Offset="0.5"/>
  575. <GradientStop Color="#FEE5E5E5" Offset="0.7"/>
  576. <GradientStop Color="#FFBABABA" Offset="0.85"/>
  577. <GradientStop Color="#FFE5E5E5" Offset="0.9"/>
  578. </LinearGradientBrush>
  579. </Path.Fill>
  580. </Path>
  581. <Rectangle Stroke="#FF747474" Margin="8,18">
  582. <Rectangle.Fill>
  583. <LinearGradientBrush EndPoint="0.243,1" StartPoint="0.757,0">
  584. <GradientStop Color="#FFE0DEDE" Offset="0"/>
  585. <GradientStop Color="#FFE2E2E2" Offset="1"/>
  586. <GradientStop Color="#FEFFFFFF" Offset="0.55"/>
  587. <GradientStop Color="#FFEFEFEF" Offset="0.75"/>
  588. </LinearGradientBrush>
  589. </Rectangle.Fill>
  590. </Rectangle>
  591. <Rectangle x:Name="BG_Status" Margin="9,19" Visibility="{Binding RfPowerOnChamberVisibility}">
  592. <Rectangle.Style>
  593. <Style>
  594. <Setter Property="Rectangle.Fill" Value="{DynamicResource Chamber_BD}"/>
  595. <!--<Style.Triggers>
  596. <DataTrigger Binding="{Binding ShowTitle,RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}" Value="False">
  597. <Setter Property="Rectangle.Fill" Value="#FFFF9292"/>
  598. </DataTrigger>
  599. </Style.Triggers>-->
  600. </Style>
  601. </Rectangle.Style>
  602. </Rectangle>
  603. <ctrl:Slot ViewType="Front" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0,4,0,0">
  604. </ctrl:Slot>
  605. <Rectangle Stroke="#FF747474" Height="11" VerticalAlignment="Bottom" Margin="12,0,12,8">
  606. <Rectangle.Fill>
  607. <LinearGradientBrush EndPoint="0.243,1" StartPoint="0.757,0">
  608. <GradientStop Color="#FFE0DEDE" Offset="0"/>
  609. <GradientStop Color="#FFE2E2E2" Offset="1"/>
  610. <GradientStop Color="#FEFFFFFF" Offset="0.55"/>
  611. <GradientStop Color="#FFEFEFEF" Offset="0.75"/>
  612. </LinearGradientBrush>
  613. </Rectangle.Fill>
  614. </Rectangle>
  615. <Grid x:Name="Cover" Width="180" Height="18" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="30,2,0,0" RenderTransformOrigin="1,0.4444">
  616. <Grid.RenderTransform>
  617. <TransformGroup>
  618. <ScaleTransform/>
  619. <SkewTransform/>
  620. <RotateTransform/>
  621. <TranslateTransform/>
  622. </TransformGroup>
  623. </Grid.RenderTransform>
  624. <Grid.Resources>
  625. <Storyboard x:Key="CoverOpen">
  626. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">
  627. <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
  628. <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="45"/>
  629. </DoubleAnimationUsingKeyFrames>
  630. </Storyboard>
  631. <Storyboard x:Key="CoverClose">
  632. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">
  633. <EasingDoubleKeyFrame KeyTime="0" Value="45"/>
  634. <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="0"/>
  635. </DoubleAnimationUsingKeyFrames>
  636. </Storyboard>
  637. </Grid.Resources>
  638. <Grid.Style>
  639. <Style>
  640. <Style.Triggers>
  641. <DataTrigger Binding="{Binding IsLidOpen}" Value="true">
  642. <DataTrigger.EnterActions>
  643. <BeginStoryboard Storyboard="{StaticResource CoverOpen}"/>
  644. </DataTrigger.EnterActions>
  645. <DataTrigger.ExitActions>
  646. <BeginStoryboard Storyboard="{StaticResource CoverClose}"/>
  647. </DataTrigger.ExitActions>
  648. </DataTrigger>
  649. </Style.Triggers>
  650. </Style>
  651. </Grid.Style>
  652. <Rectangle Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Bottom" Fill="{DynamicResource Lid_BG}" Stroke="{DynamicResource Lid_BD}" Width="172" Height="12"/>
  653. <Rectangle Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Top" Fill="{DynamicResource Lid_BG}" Stroke="{DynamicResource Lid_BD}" Width="180" Height="8"/>
  654. </Grid>
  655. <Grid Grid.RowSpan="2" Width="160" Height="167" VerticalAlignment="Bottom" Margin="0,0,0,2">
  656. <Rectangle Height="12" Stroke="Gray" VerticalAlignment="Top" Width="150" Margin="0,98,0,0">
  657. <Rectangle.Fill>
  658. <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
  659. <GradientStop Color="#FFABABAB" Offset="0"/>
  660. <GradientStop Color="#FFDADADA" Offset="1"/>
  661. </LinearGradientBrush>
  662. </Rectangle.Fill>
  663. </Rectangle>
  664. <Rectangle Height="12" Margin="0,109,0,0" Stroke="Gray" VerticalAlignment="Top" Width="160">
  665. <Rectangle.Fill>
  666. <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
  667. <GradientStop Color="#FFABABAB" Offset="0"/>
  668. <GradientStop Color="#FFDADADA" Offset="1"/>
  669. </LinearGradientBrush>
  670. </Rectangle.Fill>
  671. </Rectangle>
  672. <!--4寸 guide pin-->
  673. <Grid x:Name="Bottom_LiftPin" Height="75" VerticalAlignment="Bottom" Margin="0,0,0,0" Visibility="{Binding Path=IsMidPinVisible, Converter={StaticResource bool2VisibilityConvert}}">
  674. <Grid.Resources>
  675. <Storyboard x:Key="BottomPinUp">
  676. <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" >
  677. <EasingThicknessKeyFrame KeyTime="0" Value="0,0,0,0"/>
  678. <EasingThicknessKeyFrame KeyTime="0:0:0.5" Value="0,0,0,15"/>
  679. </ThicknessAnimationUsingKeyFrames>
  680. </Storyboard>
  681. <Storyboard x:Key="BottomPinDown">
  682. <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" >
  683. <EasingThicknessKeyFrame KeyTime="0" Value="0,0,0,15"/>
  684. <EasingThicknessKeyFrame KeyTime="0:0:0.5" Value="0,0,0,0"/>
  685. </ThicknessAnimationUsingKeyFrames>
  686. </Storyboard>
  687. </Grid.Resources>
  688. <Grid.Style>
  689. <Style>
  690. <Style.Triggers>
  691. <DataTrigger Binding="{Binding IsLowerPinUp}" Value="true">
  692. <DataTrigger.EnterActions>
  693. <BeginStoryboard Storyboard="{StaticResource BottomPinUp}"/>
  694. </DataTrigger.EnterActions>
  695. <DataTrigger.ExitActions>
  696. <BeginStoryboard Storyboard="{StaticResource BottomPinDown}"/>
  697. </DataTrigger.ExitActions>
  698. </DataTrigger>
  699. </Style.Triggers>
  700. </Style>
  701. </Grid.Style>
  702. <Rectangle HorizontalAlignment="Left" Fill="{DynamicResource Lid_BG1}" Stroke="{DynamicResource Lid_BD}" Width="8" Margin="10,6,0,4"/>
  703. <Rectangle HorizontalAlignment="Right" Fill="{DynamicResource Lid_BG1}" Stroke="{DynamicResource Lid_BD}" Width="8" Margin="0,6,10,4"/>
  704. <Rectangle Stroke="{DynamicResource Lid_BD}" Fill="{DynamicResource Lid_BG1}" StrokeThickness="1" VerticalAlignment="Bottom" Height="8" Margin="5,0"/>
  705. </Grid>
  706. <!--3寸 guide pin-->
  707. <Grid x:Name="Middle_LiftPin" Width="120" Height="63" VerticalAlignment="Bottom" Margin="0,0,0,12" Visibility="{Binding Path=IsSmallPinVisible, Converter={StaticResource bool2VisibilityConvert}}">
  708. <Grid.Resources>
  709. <Storyboard x:Key="MidPinUp">
  710. <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" >
  711. <EasingThicknessKeyFrame KeyTime="0" Value="0,0,0,12"/>
  712. <EasingThicknessKeyFrame KeyTime="0:0:0.5" Value="0,0,0,27"/>
  713. </ThicknessAnimationUsingKeyFrames>
  714. </Storyboard>
  715. <Storyboard x:Key="MidPinDown">
  716. <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" >
  717. <EasingThicknessKeyFrame KeyTime="0" Value="0,0,0,27"/>
  718. <EasingThicknessKeyFrame KeyTime="0:0:0.5" Value="0,0,0,12"/>
  719. </ThicknessAnimationUsingKeyFrames>
  720. </Storyboard>
  721. </Grid.Resources>
  722. <Grid.Style>
  723. <Style>
  724. <Style.Triggers>
  725. <DataTrigger Binding="{Binding IsUpperPinUp}" Value="true">
  726. <DataTrigger.EnterActions>
  727. <BeginStoryboard Storyboard="{StaticResource MidPinUp}"/>
  728. </DataTrigger.EnterActions>
  729. <DataTrigger.ExitActions>
  730. <BeginStoryboard Storyboard="{StaticResource MidPinDown}"/>
  731. </DataTrigger.ExitActions>
  732. </DataTrigger>
  733. </Style.Triggers>
  734. </Style>
  735. </Grid.Style>
  736. <Rectangle HorizontalAlignment="Left" Fill="{DynamicResource Lid_BG2}" Stroke="{DynamicResource Lid_BD}" Width="8" Margin="10,6,0,4"/>
  737. <Rectangle HorizontalAlignment="Right" Fill="{DynamicResource Lid_BG2}" Stroke="{DynamicResource Lid_BD}" Width="8" Margin="0,6,10,4"/>
  738. <Rectangle Stroke="{DynamicResource Lid_BD}" Fill="{DynamicResource Lid_BG2}" StrokeThickness="1" VerticalAlignment="Bottom" Height="8" Margin="5,0"/>
  739. <!--<parts:Wafer WaferStyle="Rect" WaferItem="{Binding PMWafer}" Station ="{Binding Station}" Slot="0" Width="130" VerticalAlignment="Top" >
  740. <parts:Wafer.Style>
  741. <Style>
  742. <Setter Property="parts:Wafer.Visibility" Value="Collapsed"/>
  743. <Style.Triggers>
  744. <DataTrigger Binding="{Binding PMWaferType}" Value="Wafer8">
  745. <Setter Property="parts:Wafer.Visibility" Value="Visible"/>
  746. </DataTrigger>
  747. </Style.Triggers>
  748. </Style>
  749. </parts:Wafer.Style>
  750. </parts:Wafer>-->
  751. </Grid>
  752. <!--lift pin-->
  753. <Grid x:Name="Top_LiftPin" Height="51" VerticalAlignment="Bottom" Margin="0,0,0,24" Visibility="{Binding Path=IsLiftPinVisible, Converter={StaticResource bool2VisibilityConvert}}">
  754. <Grid.Resources>
  755. <Storyboard x:Key="TopPinUp">
  756. <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" >
  757. <EasingThicknessKeyFrame KeyTime="0" Value="0,0,0,24"/>
  758. <EasingThicknessKeyFrame KeyTime="0:0:0.5" Value="0,0,0,54"/>
  759. </ThicknessAnimationUsingKeyFrames>
  760. </Storyboard>
  761. <Storyboard x:Key="TopPinDown">
  762. <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" >
  763. <EasingThicknessKeyFrame KeyTime="0" Value="0,0,0,54"/>
  764. <EasingThicknessKeyFrame KeyTime="0:0:0.5" Value="0,0,0,24"/>
  765. </ThicknessAnimationUsingKeyFrames>
  766. </Storyboard>
  767. </Grid.Resources>
  768. <Grid.Style>
  769. <Style>
  770. <Style.Triggers>
  771. <DataTrigger Binding="{Binding IsLiftPinUp}" Value="true">
  772. <DataTrigger.EnterActions>
  773. <BeginStoryboard Storyboard="{StaticResource TopPinUp}"/>
  774. </DataTrigger.EnterActions>
  775. <DataTrigger.ExitActions>
  776. <BeginStoryboard Storyboard="{StaticResource TopPinDown}"/>
  777. </DataTrigger.ExitActions>
  778. </DataTrigger>
  779. </Style.Triggers>
  780. </Style>
  781. </Grid.Style>
  782. <Rectangle HorizontalAlignment="Left" Fill="{DynamicResource Lid_BG3}" Stroke="{DynamicResource Lid_BD}" Width="8" Margin="48,10,0,4"/>
  783. <Rectangle HorizontalAlignment="Right" Fill="{DynamicResource Lid_BG3}" Stroke="{DynamicResource Lid_BD}" Width="8" Margin="0,10,48,4"/>
  784. <Rectangle Stroke="{DynamicResource Lid_BD}" Fill="{DynamicResource Lid_BG3}" StrokeThickness="1" VerticalAlignment="Bottom" Height="8" Margin="5,0" Width="64" />
  785. <Rectangle Fill="{DynamicResource idleWafer}" HorizontalAlignment="Center" Margin="-100,0" Width="{Binding WaferLength}" Height="10" VerticalAlignment="Top"/>
  786. <TextBlock Text="{Binding WaferSize}" HorizontalAlignment="Center" TextAlignment="Center" Margin="-100,0" Width="{Binding WaferLength}" Height="15" VerticalAlignment="Top"></TextBlock>
  787. </Grid>
  788. <!--左边slit door-->
  789. <Grid x:Name="Slit_valve" Margin="-41,-10,191,29" >
  790. <Rectangle x:Name="SlitValve_Top" Style="{StaticResource SlitValve_Animation}" Fill="DimGray" Width="8" VerticalAlignment="Top" Height="75" />
  791. <Rectangle x:Name="SlitValve_Bottom" Style="{StaticResource SlitValve_Animation}" Fill="DimGray" Width="8" VerticalAlignment="Bottom" Height="75" />
  792. </Grid>
  793. <!--slit door右边-->
  794. <Grid Margin="190,-10,-40,29" >
  795. <Rectangle Fill="DimGray" Width="8" VerticalAlignment="Top" Height="75" />
  796. <Rectangle Fill="DimGray" Width="8" VerticalAlignment="Bottom" Height="75" />
  797. </Grid>
  798. </Grid>
  799. </Grid>
  800. </Canvas>
  801. <!--lift pin / guide pin control grid-->
  802. <Grid Width="280" Grid.ColumnSpan="3" HorizontalAlignment="Center" VerticalAlignment="Top" Canvas.Left="200" Canvas.Top="549">
  803. <Grid.RowDefinitions>
  804. <RowDefinition Height="24"/>
  805. <RowDefinition Height="32"/>
  806. <RowDefinition Height="{Binding SmallPinHeight}"/>
  807. <RowDefinition Height="{Binding MediumPinHeight}"/>
  808. <RowDefinition />
  809. </Grid.RowDefinitions>
  810. <Grid.ColumnDefinitions>
  811. <ColumnDefinition Width="80"/>
  812. <ColumnDefinition />
  813. </Grid.ColumnDefinitions>
  814. <Border Grid.ColumnSpan="2" BorderBrush="{DynamicResource Table_BD}" BorderThickness="1" Background="{DynamicResource Table_BG_Title}" Grid.Row="0" Grid.Column="0" Padding="5,1">
  815. <TextBlock Text="Pin" TextWrapping="Wrap" TextAlignment="Center" Foreground="{DynamicResource FG_Black}" FontSize="12" FontFamily="Arial" VerticalAlignment="Center"/>
  816. </Border>
  817. <!--lift pin button-->
  818. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1,0,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="1" Grid.ColumnSpan="2" Padding="5,1">
  819. <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" >
  820. <!--lift pin up-->
  821. <deviceControl:AITSensor Margin="5,0,5,0" GreenColor="True" LightOnValue="{Binding IsLiftPinUp}" />
  822. <Button Content="Lift Pin 升" IsEnabled="{Binding EnableLiftPinUp}" Width="100" Height="25" Margin="0">
  823. <i:Interaction.Triggers>
  824. <i:EventTrigger EventName="Click">
  825. <cal:ActionMessage MethodName="MoveLiftPinUp"></cal:ActionMessage>
  826. </i:EventTrigger>
  827. </i:Interaction.Triggers>
  828. </Button>
  829. <!--lift pin down-->
  830. <deviceControl:AITSensor Margin="15,0,5,0" GreenColor="True" LightOnValue="{Binding IsLiftPinDown}" />
  831. <Button Content="Lift Pin 降" IsEnabled="{Binding EnableLiftPinDown}" Width="100" Height="25" Margin="0">
  832. <i:Interaction.Triggers>
  833. <i:EventTrigger EventName="Click">
  834. <cal:ActionMessage MethodName="MoveLiftPinDown"></cal:ActionMessage>
  835. </i:EventTrigger>
  836. </i:Interaction.Triggers>
  837. </Button>
  838. </StackPanel>
  839. </Border>
  840. <!--3' guide pin button-->
  841. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1,0,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="2" Grid.ColumnSpan="2" Padding="5,1">
  842. <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" >
  843. <deviceControl:AITSensor Margin="5,0,5,0" GreenColor="True" LightOnValue="{Binding IsUpperPinUp}"></deviceControl:AITSensor>
  844. <Button Content="{Binding SmallPinUpText}" IsEnabled="{Binding EnableUpperPinUp}" Width="100" Height="25" Margin="0">
  845. <i:Interaction.Triggers>
  846. <i:EventTrigger EventName="Click">
  847. <cal:ActionMessage MethodName="MovePin3Up"></cal:ActionMessage>
  848. </i:EventTrigger>
  849. </i:Interaction.Triggers>
  850. </Button>
  851. <deviceControl:AITSensor Margin="15,0,5,0" GreenColor="True" LightOnValue="{Binding IsUpperPinDown}"></deviceControl:AITSensor>
  852. <Button Content="{Binding SmallPinDownText}" IsEnabled="{Binding EnableUpperPinDown}" Width="100" Height="25" Margin="0">
  853. <i:Interaction.Triggers>
  854. <i:EventTrigger EventName="Click">
  855. <cal:ActionMessage MethodName="MovePin3Down"></cal:ActionMessage>
  856. </i:EventTrigger>
  857. </i:Interaction.Triggers>
  858. </Button>
  859. </StackPanel>
  860. </Border>
  861. <!--4' guide pin button-->
  862. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1,0,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="3" Grid.ColumnSpan="2" Padding="5,1">
  863. <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" >
  864. <deviceControl:AITSensor Margin="5,0,5,0" GreenColor="True" LightOnValue="{Binding IsLowerPinUp}"></deviceControl:AITSensor>
  865. <Button Content="{Binding MediumPinUpText}" IsEnabled="{Binding EnableLowerPinUp}" Width="100" Height="25" Margin="0">
  866. <i:Interaction.Triggers>
  867. <i:EventTrigger EventName="Click">
  868. <cal:ActionMessage MethodName="MovePin4Up"></cal:ActionMessage>
  869. </i:EventTrigger>
  870. </i:Interaction.Triggers>
  871. </Button>
  872. <deviceControl:AITSensor Margin="15,0,5,0" GreenColor="True" LightOnValue="{Binding IsLowerPinDown}"></deviceControl:AITSensor>
  873. <Button Content="{Binding MediumPinDownText}" IsEnabled="{Binding EnableLowerPinDown}" Width="100" Height="25" Margin="0">
  874. <i:Interaction.Triggers>
  875. <i:EventTrigger EventName="Click">
  876. <cal:ActionMessage MethodName="MovePin4Down"></cal:ActionMessage>
  877. </i:EventTrigger>
  878. </i:Interaction.Triggers>
  879. </Button>
  880. </StackPanel>
  881. </Border>
  882. </Grid>
  883. </Canvas>
  884. <!--参数 Grid 那一列-->
  885. <Grid Grid.Column="1">
  886. <Grid.RowDefinitions>
  887. <RowDefinition Height="110"></RowDefinition>
  888. <RowDefinition Height="600"></RowDefinition>
  889. </Grid.RowDefinitions>
  890. <!--选择recipe,开始recipe-->
  891. <Grid Grid.Row="0" VerticalAlignment="Top" Margin="0,10,0,0">
  892. <Grid.RowDefinitions>
  893. <RowDefinition Height="35"/>
  894. <RowDefinition Height="Auto"/>
  895. <RowDefinition Height="35"/>
  896. </Grid.RowDefinitions>
  897. <Grid Grid.Row="0">
  898. <Grid.ColumnDefinitions>
  899. <ColumnDefinition Width="140"/>
  900. <ColumnDefinition />
  901. </Grid.ColumnDefinitions>
  902. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1,1,1,1" Background="{DynamicResource Table_BG_Title}" Grid.Row="1" Padding="5,1">
  903. <Button Content="选择工艺" IsEnabled="{Binding IsEnableSelectRecipe}" Width="120" Height="25">
  904. <i:Interaction.Triggers>
  905. <i:EventTrigger EventName="Click">
  906. <cal:ActionMessage MethodName="SelectRecipe"/>
  907. </i:EventTrigger>
  908. </i:Interaction.Triggers>
  909. </Button>
  910. </Border>
  911. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,1,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="1" Grid.Column="1" Padding="5,1">
  912. <TextBlock Text="{Binding SelectedRecipeName}" VerticalAlignment="Center" />
  913. </Border>
  914. </Grid>
  915. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1,0,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="1" Grid.Column="1" Padding="5,1">
  916. <StackPanel Orientation="Horizontal" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,5">
  917. <Button Content="开始" IsEnabled="{Binding IsEnableStartRecipe}" Width="80" Height="25">
  918. <i:Interaction.Triggers>
  919. <i:EventTrigger EventName="Click">
  920. <cal:ActionMessage MethodName="Start"/>
  921. </i:EventTrigger>
  922. </i:Interaction.Triggers>
  923. </Button>
  924. <Button Content="下一步" IsEnabled="{Binding IsEnableNextStep}" Width="80" Height="25" Margin="30,0">
  925. <i:Interaction.Triggers>
  926. <i:EventTrigger EventName="Click">
  927. <cal:ActionMessage MethodName="NextStep"/>
  928. </i:EventTrigger>
  929. </i:Interaction.Triggers>
  930. </Button>
  931. <Button Content="停止" IsEnabled="{Binding IsEnableStopRecipe}" Width="80" Height="25">
  932. <i:Interaction.Triggers>
  933. <i:EventTrigger EventName="Click">
  934. <cal:ActionMessage MethodName="Stop"/>
  935. </i:EventTrigger>
  936. </i:Interaction.Triggers>
  937. </Button>
  938. </StackPanel>
  939. </Border>
  940. <Grid Grid.Row="2" Margin="0,0,0,10" Visibility="Hidden">
  941. <Grid.ColumnDefinitions>
  942. <ColumnDefinition Width="120"/>
  943. <ColumnDefinition />
  944. </Grid.ColumnDefinitions>
  945. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1" Background="{DynamicResource Table_BG_Title}" Grid.Row="0" Padding="5,1" Height="24">
  946. <TextBlock Text="Status" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="12" FontFamily="Arial" HorizontalAlignment="Left" VerticalAlignment="Center"/>
  947. </Border>
  948. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,1,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="0" Grid.Column="1" Padding="5,1" Height="24">
  949. <TextBlock Text="Status" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="12" FontFamily="Arial" HorizontalAlignment="Left" VerticalAlignment="Center"/>
  950. </Border>
  951. </Grid>
  952. </Grid>
  953. <!--recipe 参数列表-->
  954. <DataGrid Grid.Row="1" AlternationCount="2" HorizontalAlignment="Left" CanUserAddRows="False"
  955. AutoGenerateColumns="False" RowHeaderWidth="0" CanUserResizeColumns="False" FontSize="14"
  956. VirtualizingPanel.IsVirtualizing="True" VirtualizingPanel.VirtualizationMode="Recycling"
  957. ItemsSource="{Binding PMParameters}" Margin="0,5,0,0" Width="452">
  958. <DataGrid.Columns>
  959. <!--参数名字-->
  960. <DataGridTemplateColumn Header="参数" Width="200">
  961. <DataGridTemplateColumn.CellTemplate>
  962. <DataTemplate>
  963. <TextBlock Text="{Binding Display}" Margin="5,0" FontFamily="Arial" FontSize="14"
  964. Foreground="{DynamicResource FG_Black}" HorizontalAlignment="Left" VerticalAlignment="Center" >
  965. </TextBlock>
  966. </DataTemplate>
  967. </DataGridTemplateColumn.CellTemplate>
  968. </DataGridTemplateColumn>
  969. <!--参数 Setpoint & Feedback-->
  970. <DataGridTemplateColumn Header="Parameter" Width="250" CellTemplateSelector="{StaticResource SPSelector}">
  971. <DataGridTemplateColumn.HeaderTemplate>
  972. <DataTemplate>
  973. <Grid>
  974. <Grid.ColumnDefinitions>
  975. <ColumnDefinition Width="125"></ColumnDefinition>
  976. <ColumnDefinition Width="125"></ColumnDefinition>
  977. </Grid.ColumnDefinitions>
  978. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,0,1,0" Grid.Row="0" Padding="0">
  979. <TextBlock Text="反馈值" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="14" />
  980. </Border>
  981. <TextBlock Text="设定值" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="14" />
  982. </Grid>
  983. </DataTemplate>
  984. </DataGridTemplateColumn.HeaderTemplate>
  985. </DataGridTemplateColumn>
  986. </DataGrid.Columns>
  987. </DataGrid>
  988. </Grid>
  989. <Grid Grid.Column="2" Grid.RowSpan="2" Margin="10,0,0,0">
  990. <Grid.RowDefinitions>
  991. <RowDefinition Height="30"/>
  992. <RowDefinition Height="Auto"/>
  993. <RowDefinition Height="30"/>
  994. <RowDefinition Height="Auto"/>
  995. <RowDefinition Height="Auto"/>
  996. <RowDefinition />
  997. </Grid.RowDefinitions>
  998. <Border Grid.Row="0" BorderBrush="{DynamicResource Table_BD}" CornerRadius="5,5,0,0" BorderThickness="1" Background="{DynamicResource Table_BG_FirstTitle}" Padding="5,1">
  999. <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Center">
  1000. <Path Data="M0,0 L5,0 5,5 z" Fill="White" HorizontalAlignment="Left" Grid.Row="1" RenderTransformOrigin="0.5,0.5" Stretch="Fill" Width="5" Height="5">
  1001. <Path.RenderTransform>
  1002. <TransformGroup>
  1003. <ScaleTransform/>
  1004. <SkewTransform/>
  1005. <RotateTransform Angle="45"/>
  1006. <TranslateTransform/>
  1007. </TransformGroup>
  1008. </Path.RenderTransform>
  1009. </Path>
  1010. <TextBlock Margin="5,0,0,0" Text="Working Mode" FontFamily="Arial" FontSize="14" Foreground="{DynamicResource FG_White}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
  1011. </StackPanel>
  1012. </Border>
  1013. <Border Grid.Row="1" BorderBrush="{DynamicResource Table_BD}" Background="{DynamicResource Table_BG_Content}" BorderThickness="1,0,1,1" Padding="5,1">
  1014. <StackPanel Orientation="Vertical">
  1015. <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
  1016. <Button Width="80" Height="25" Margin="10,0" Content="初始化">
  1017. <i:Interaction.Triggers>
  1018. <i:EventTrigger EventName="Click">
  1019. <cal:ActionMessage MethodName="SetInit"/>
  1020. </i:EventTrigger>
  1021. </i:Interaction.Triggers>
  1022. </Button>
  1023. <Button Width="80" Height="25" Margin="10,0" Content="终止">
  1024. <i:Interaction.Triggers>
  1025. <i:EventTrigger EventName="Click">
  1026. <cal:ActionMessage MethodName="AbortPM"/>
  1027. </i:EventTrigger>
  1028. </i:Interaction.Triggers>
  1029. </Button>
  1030. </StackPanel>
  1031. <Grid Margin="5,5,5,0">
  1032. <Grid.ColumnDefinitions>
  1033. <ColumnDefinition Width="120"/>
  1034. <ColumnDefinition />
  1035. </Grid.ColumnDefinitions>
  1036. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1" Background="{DynamicResource Table_BG_Title}" Grid.Row="0" Padding="5,1" Height="24">
  1037. <TextBlock Text="Operation Mode" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="14" FontFamily="Arial" HorizontalAlignment="Center" VerticalAlignment="Center"/>
  1038. </Border>
  1039. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,1,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="0" Grid.Column="1" Padding="5,1">
  1040. <TextBlock Text="{Binding PmOperationMode}" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="12" FontFamily="Arial" HorizontalAlignment="Center" VerticalAlignment="Center"/>
  1041. </Border>
  1042. </Grid>
  1043. <StackPanel Margin="0,5,0,10" Orientation="Horizontal" HorizontalAlignment="Center">
  1044. <Button Width="80" Height="25" Margin="10,0" Content="手动" IsEnabled="{Binding IsManualButtonEnabled}" >
  1045. <i:Interaction.Triggers>
  1046. <i:EventTrigger EventName="Click">
  1047. <cal:ActionMessage MethodName="SetManual"/>
  1048. </i:EventTrigger>
  1049. </i:Interaction.Triggers>
  1050. </Button>
  1051. <Button Width="80" Height="25" Margin="10,0" Content="自动" IsEnabled="{Binding IsAutoButtonEnabled}">
  1052. <i:Interaction.Triggers>
  1053. <i:EventTrigger EventName="Click">
  1054. <cal:ActionMessage MethodName="SetAuto"/>
  1055. </i:EventTrigger>
  1056. </i:Interaction.Triggers>
  1057. </Button>
  1058. </StackPanel>
  1059. <Grid Margin="5,5,5,0">
  1060. <Grid.ColumnDefinitions>
  1061. <ColumnDefinition Width="120"/>
  1062. <ColumnDefinition />
  1063. </Grid.ColumnDefinitions>
  1064. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1" Background="{DynamicResource Table_BG_Title}" Grid.Row="0" Padding="5,1" Height="24">
  1065. <TextBlock Text="Offline" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="14" FontFamily="Arial" HorizontalAlignment="Center" VerticalAlignment="Center"/>
  1066. </Border>
  1067. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,1,1,1" Background="{Binding PMOnlineColor}" Grid.Row="0" Grid.Column="1" Padding="5,1">
  1068. <TextBlock Text="Online" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="15" FontFamily="Arial" HorizontalAlignment="Center" VerticalAlignment="Center"/>
  1069. </Border>
  1070. </Grid>
  1071. <StackPanel Margin="0,5,0,10" Orientation="Horizontal" HorizontalAlignment="Center">
  1072. <Button Width="80" Height="25" Margin="10,0" Content="离线" IsEnabled="{Binding IsOfflineButtonEnabled}">
  1073. <i:Interaction.Triggers>
  1074. <i:EventTrigger EventName="Click">
  1075. <cal:ActionMessage MethodName="SetOffline"/>
  1076. </i:EventTrigger>
  1077. </i:Interaction.Triggers>
  1078. </Button>
  1079. <Button Width="80" Height="25" Margin="10,0" Content="在线" IsEnabled="{Binding IsOnlineButtonEnabled}" >
  1080. <i:Interaction.Triggers>
  1081. <i:EventTrigger EventName="Click">
  1082. <cal:ActionMessage MethodName="SetOnline"/>
  1083. </i:EventTrigger>
  1084. </i:Interaction.Triggers>
  1085. </Button>
  1086. </StackPanel>
  1087. </StackPanel>
  1088. </Border>
  1089. <Border Grid.Row="2" BorderBrush="{DynamicResource Table_BD}" BorderThickness="1,0,1,1" Background="{DynamicResource Table_BG_FirstTitle}" Padding="5,1">
  1090. <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Center">
  1091. <Path Data="M0,0 L5,0 5,5 z" Fill="White" HorizontalAlignment="Left" Grid.Row="1" RenderTransformOrigin="0.5,0.5" Stretch="Fill" Width="5" Height="5">
  1092. <Path.RenderTransform>
  1093. <TransformGroup>
  1094. <ScaleTransform/>
  1095. <SkewTransform/>
  1096. <RotateTransform Angle="45"/>
  1097. <TranslateTransform/>
  1098. </TransformGroup>
  1099. </Path.RenderTransform>
  1100. </Path>
  1101. <TextBlock Margin="5,0,0,0" Text="Manual Operation" FontFamily="Arial" FontSize="14" Foreground="{DynamicResource FG_White}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
  1102. </StackPanel>
  1103. </Border>
  1104. <Border Grid.Row="3" BorderBrush="{DynamicResource Table_BD}" Background="{DynamicResource Table_BG_Content}" BorderThickness="1,0,1,1" Padding="5,1">
  1105. <StackPanel HorizontalAlignment="Center" VerticalAlignment="Top" Margin="5,10">
  1106. <Grid>
  1107. <Grid.ColumnDefinitions>
  1108. <ColumnDefinition Width="140"/>
  1109. <ColumnDefinition Width="100"/>
  1110. </Grid.ColumnDefinitions>
  1111. <Grid.RowDefinitions>
  1112. <RowDefinition Height="24"/>
  1113. <RowDefinition Height="24"/>
  1114. <RowDefinition Height="24"/>
  1115. </Grid.RowDefinitions>
  1116. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1" Background="{DynamicResource Table_BG_Title}" Grid.Row="0" Padding="5,1">
  1117. <TextBlock Text="腔体底压 (mTorr)" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="12" FontFamily="Arial" VerticalAlignment="Center"/>
  1118. </Border>
  1119. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,1,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="0" Grid.Column="1" Padding="5,1">
  1120. <ctrl:TextBoxEx Text="{Binding Path=BasePressureSetPoint}" TextSaved="{Binding BasePressureSetPointSaved, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" EditBoxMode="UnSignDecimal" VerticalAlignment="Center"/>
  1121. </Border>
  1122. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1" Background="{DynamicResource Table_BG_Title}" Grid.Row="1" Padding="5,1">
  1123. <TextBlock Text="最大抽气时间 (s)" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="12" FontFamily="Arial" VerticalAlignment="Center"/>
  1124. </Border>
  1125. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,1,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="1" Grid.Column="1" Padding="5,1">
  1126. <ctrl:TextBoxEx Text="{Binding Path=PumpLimitSetPoint}" TextSaved="{Binding PumpLimitSetPointSaved, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" EditBoxMode="UnSignInteger" VerticalAlignment="Center"/>
  1127. </Border>
  1128. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1" Background="{DynamicResource Table_BG_Title}" Grid.Row="2" Padding="5,1">
  1129. <TextBlock Text="抽气时间 (s)" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="12" FontFamily="Arial" VerticalAlignment="Center"/>
  1130. </Border>
  1131. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,1,1,1" Background="{DynamicResource Table_BG_Content}" Grid.Row="2" Grid.Column="1" Padding="5,1">
  1132. <TextBlock Text="{Binding Path=PumpTime}" VerticalAlignment="Center"/>
  1133. </Border>
  1134. </Grid>
  1135. <Grid>
  1136. <Grid.ColumnDefinitions>
  1137. <ColumnDefinition Width="*"/>
  1138. <ColumnDefinition Width="*"/>
  1139. </Grid.ColumnDefinitions>
  1140. <Grid.RowDefinitions>
  1141. <RowDefinition Height="50"/>
  1142. </Grid.RowDefinitions>
  1143. <Button Content="抽真空" Width="80" Height="25" Margin="0,10,0,0" IsEnabled="{Binding Path=IsManualMode}" Grid.Column="1"
  1144. Background="{Binding Path=PumpButtonBackground}">
  1145. <i:Interaction.Triggers>
  1146. <i:EventTrigger EventName="Click">
  1147. <cal:ActionMessage MethodName="DoPump"/>
  1148. </i:EventTrigger>
  1149. </i:Interaction.Triggers>
  1150. </Button>
  1151. <Button Content="启动泵" Width="85" Height="25" Margin="0,10,0,0" IsEnabled="{Binding Path=IsManualMode}" Grid.Column="0"
  1152. Background="{Binding Path=PumpButtonBackground}">
  1153. <i:Interaction.Triggers>
  1154. <i:EventTrigger EventName="Click">
  1155. <cal:ActionMessage MethodName="DoStartPump"/>
  1156. </i:EventTrigger>
  1157. </i:Interaction.Triggers>
  1158. </Button>
  1159. </Grid>
  1160. </StackPanel>
  1161. </Border>
  1162. <Border Grid.Row="4" BorderBrush="{DynamicResource Table_BD}" Background="{DynamicResource Table_BG_Content}" BorderThickness="1,0,1,1" Padding="5,1">
  1163. <StackPanel Margin="0,10">
  1164. <!--流气-->
  1165. <Button Content="流气" Width="80" Height="25" IsEnabled="{Binding Path=IsManualMode}">
  1166. <i:Interaction.Triggers>
  1167. <i:EventTrigger EventName="Click">
  1168. <cal:ActionMessage MethodName="Gas"/>
  1169. </i:EventTrigger>
  1170. </i:Interaction.Triggers>
  1171. </Button>
  1172. <!--射频-->
  1173. <Button Content="射频" Width="80" Height="25" Margin="0,10" IsEnabled="{Binding Path=IsRFEnabled}">
  1174. <i:Interaction.Triggers>
  1175. <i:EventTrigger EventName="Click">
  1176. <cal:ActionMessage MethodName="RF"/>
  1177. </i:EventTrigger>
  1178. </i:Interaction.Triggers>
  1179. </Button>
  1180. <!--加热基座-->
  1181. <Button Content="{Binding HeaterButtonContent}" Width="80" Height="0" Margin="0 0 0 0" IsEnabled="{Binding Path=IsHeaterButtonEnable}">
  1182. <i:Interaction.Triggers>
  1183. <i:EventTrigger EventName="Click">
  1184. <cal:ActionMessage MethodName="Heat"/>
  1185. </i:EventTrigger>
  1186. </i:Interaction.Triggers>
  1187. </Button>
  1188. <!--抽气-->
  1189. <Button Content="吹扫" Width="80" Height="25" Margin="0 0 0 10" IsEnabled="{Binding Path=IsManualMode}">
  1190. <i:Interaction.Triggers>
  1191. <i:EventTrigger EventName="Click">
  1192. <cal:ActionMessage MethodName="Purge"/>
  1193. </i:EventTrigger>
  1194. </i:Interaction.Triggers>
  1195. </Button>
  1196. <Button Content="检测漏率" Width="80" Height="0" Margin="0 0 0 0" IsEnabled="{Binding Path=IsManualMode}">
  1197. <i:Interaction.Triggers>
  1198. <i:EventTrigger EventName="Click">
  1199. <cal:ActionMessage MethodName="LeakCheck"/>
  1200. </i:EventTrigger>
  1201. </i:Interaction.Triggers>
  1202. </Button>
  1203. </StackPanel>
  1204. </Border>
  1205. <Border Grid.Row="5" BorderBrush="{DynamicResource Table_BD}" CornerRadius="0,0,5,5" Background="{DynamicResource Table_BG_Content}" BorderThickness="1,0,1,1" Padding="5,1">
  1206. <Button Content="充气" Width="80" Height="25" Margin="0,10" VerticalAlignment="Top" IsEnabled="{Binding Path=IsManualMode}">
  1207. <i:Interaction.Triggers>
  1208. <i:EventTrigger EventName="Click">
  1209. <cal:ActionMessage MethodName="Vent"/>
  1210. </i:EventTrigger>
  1211. </i:Interaction.Triggers>
  1212. </Button>
  1213. </Border>
  1214. </Grid>
  1215. </Grid>
  1216. </UserControl>