Efem.xaml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. <UserControl x:Class="VirgoUI.Client.Controls.Parts.Efem"
  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:parts="clr-namespace:VirgoUI.Controls.Parts"
  7. xmlns:parts1="clr-namespace:VirgoUI.Client.Controls.Parts"
  8. xmlns:converters="clr-namespace:Aitex.Core.UI.Converters;assembly=MECF.Framework.UI.Core"
  9. xmlns:deviceControl="clr-namespace:Aitex.Core.UI.DeviceControl;assembly=MECF.Framework.UI.Core"
  10. mc:Ignorable="d"
  11. d:DesignHeight="636" Width="905">
  12. <UserControl.Resources>
  13. <ResourceDictionary>
  14. <ResourceDictionary.MergedDictionaries>
  15. <ResourceDictionary Source="/VirgoUI;component/Themes/Generic.xaml" />
  16. </ResourceDictionary.MergedDictionaries>
  17. <converters:bool2VisibilityConverter x:Key="bool2VisibilityConvert"/>
  18. </ResourceDictionary>
  19. </UserControl.Resources>
  20. <Canvas Margin="0">
  21. <Canvas.Resources>
  22. <Storyboard x:Key="ATMDoor_Open">
  23. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Height)" >
  24. <EasingDoubleKeyFrame KeyTime="0" Value="88"/>
  25. <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="38"/>
  26. </DoubleAnimationUsingKeyFrames>
  27. </Storyboard>
  28. <Storyboard x:Key="ATMDoor_Close">
  29. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Height)" >
  30. <EasingDoubleKeyFrame KeyTime="0" Value="38"/>
  31. <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="88"/>
  32. </DoubleAnimationUsingKeyFrames>
  33. </Storyboard>
  34. <Style TargetType="{x:Type Rectangle}" x:Key="SlitValveA_Animation" >
  35. <Style.Triggers>
  36. <DataTrigger Binding="{Binding PMASlitValveIsOpen}" Value="true">
  37. <DataTrigger.EnterActions>
  38. <BeginStoryboard Storyboard="{StaticResource ATMDoor_Open}"/>
  39. </DataTrigger.EnterActions>
  40. <DataTrigger.ExitActions>
  41. <BeginStoryboard Storyboard="{StaticResource ATMDoor_Close}"/>
  42. </DataTrigger.ExitActions>
  43. </DataTrigger>
  44. </Style.Triggers>
  45. </Style>
  46. <Style TargetType="{x:Type Rectangle}" x:Key="SlitValveB_Animation" >
  47. <Style.Triggers>
  48. <DataTrigger Binding="{Binding PMBSlitValveIsOpen}" Value="true">
  49. <DataTrigger.EnterActions>
  50. <BeginStoryboard Storyboard="{StaticResource ATMDoor_Open}"/>
  51. </DataTrigger.EnterActions>
  52. <DataTrigger.ExitActions>
  53. <BeginStoryboard Storyboard="{StaticResource ATMDoor_Close}"/>
  54. </DataTrigger.ExitActions>
  55. </DataTrigger>
  56. </Style.Triggers>
  57. </Style>
  58. </Canvas.Resources>
  59. <Image Source="/VirgoUI;component/Controls/Assets/Image1/efembg.png" Canvas.Left="95" Canvas.Top="177" Height="280" Width="644" />
  60. <Image Source="/VirgoUI;component/Controls/Assets/Image1/walk.png" Canvas.Left="241" Canvas.Top="310" Width="350" />
  61. <Image x:Name="imgBuffer" Source="/VirgoUI;component/Controls/Assets/Image1/station.png" Canvas.Left="596" Canvas.Top="225" Height="95" Width="105" Visibility="{Binding IsBufferIntalled, Converter={StaticResource bool2VisibilityConvert}}" />
  62. <Image x:Name="imgFlipper" Source="/VirgoUI;component/Controls/Assets/Image1/station.png" Canvas.Left="130" Canvas.Top="275" Height="95" Width="105" Visibility="{Binding IsFlipperInstalled, Converter={StaticResource bool2VisibilityConvert}}" />
  63. <Image x:Name="imgAligner1" Source="/VirgoUI;component/Controls/Assets/Image1/station.png" Canvas.Left="595" Canvas.Top="315" Height="95" Width="105" Visibility="{Binding IsAligner1Installed, Converter={StaticResource bool2VisibilityConvert}}" />
  64. <Image x:Name="imgAligner2" Source="/VirgoUI;component/Controls/Assets/Image1/station.png" Canvas.Left="596" Canvas.Top="225" Height="95" Width="105" Visibility="{Binding IsAligner2Installed, Converter={StaticResource bool2VisibilityConvert}}"/>
  65. <Image x:Name="imgCooling1" Source="/VirgoUI;component/Controls/Assets/Image1/station.png" Canvas.Left="130" Canvas.Top="315" Height="95" Width="105" Visibility="{Binding IsCooling1Installed, Converter={StaticResource bool2VisibilityConvert}}" />
  66. <Image x:Name="imgCooling2" Source="/VirgoUI;component/Controls/Assets/Image1/station.png" Canvas.Left="130" Canvas.Top="225" Height="95" Width="105" Visibility="{Binding IsCooling2Installed, Converter={StaticResource bool2VisibilityConvert}}"/>
  67. <Image Source="/VirgoUI;component/Controls/Assets/Image1/pm2.png" Canvas.Left="199" Canvas.Top="60" Height="133" Width="174" Visibility="{Binding IsPMAInstalled, Converter={StaticResource bool2VisibilityConvert}}" />
  68. <Image Source="/VirgoUI;component/Controls/Assets/Image1/pm2.png" Canvas.Left="445" Canvas.Top="60" Height="133" Width="174" Visibility="{Binding IsPMBInstalled, Converter={StaticResource bool2VisibilityConvert}}" />
  69. <Image Source="/VirgoUI;component/Controls/Assets/Image1/ef03.png" Canvas.Left="429" Canvas.Top="445" Height="123" Width="146" Visibility="{Binding Foup2Visibility}" />
  70. <Image Source="/VirgoUI;component/Controls/Assets/Image1/ef03.png" Canvas.Left="243" Canvas.Top="445" Height="123" Width="146" Visibility="{Binding Foup1Visibility}" />
  71. <Image Source="/VirgoUI;component/Controls/Assets/Image1/ef00.png" Canvas.Left="252" Canvas.Top="440" Height="12" Width="128" Visibility="{Binding Foup1Visibility}" />
  72. <Image Source="/VirgoUI;component/Controls/Assets/Image1/ef00.png" Canvas.Left="438" Canvas.Top="440" Height="12" Width="128" Visibility="{Binding Foup2Visibility}" />
  73. <Path Data="M361.75,148 L347.25,142.75 381.5,50.25 496.5,91.75 463.5,183.5 446.25,176.75 441.25,190.25 471.75,201.5 514.5,83 372.5,31.25 330,150 357,160 z" Fill="{Binding PMBBackground}" Visibility="{Binding IsPMBInstalled, Converter={StaticResource bool2VisibilityConvert}}" Opacity="0.7" Height="183.08" Canvas.Left="433.277" Stretch="Fill" Canvas.Top="35.131" Width="196" RenderTransformOrigin="0.5,0.5">
  74. <Path.RenderTransform>
  75. <TransformGroup>
  76. <ScaleTransform/>
  77. <SkewTransform/>
  78. <RotateTransform Angle="-20.212"/>
  79. <TranslateTransform/>
  80. </TransformGroup>
  81. </Path.RenderTransform>
  82. </Path>
  83. <Path Data="M361.75,148 L347.25,142.75 381.5,50.25 496.5,91.75 463.5,183.5 446.25,176.75 441.25,190.25 471.75,201.5 514.5,83 372.5,31.25 330,150 357,160 z" Fill="{Binding PMABackground}" Visibility="{Binding IsPMAInstalled, Converter={StaticResource bool2VisibilityConvert}}" Opacity="0.7" Height="183.08" Canvas.Left="187.277" Stretch="Fill" Canvas.Top="35.131" Width="196" RenderTransformOrigin="0.5,0.5">
  84. <Path.RenderTransform>
  85. <TransformGroup>
  86. <ScaleTransform/>
  87. <SkewTransform/>
  88. <RotateTransform Angle="-20.212"/>
  89. <TranslateTransform/>
  90. </TransformGroup>
  91. </Path.RenderTransform>
  92. </Path>
  93. <parts:ATMDualArmRobot Canvas.Left="415" Canvas.Top="285" Wafer1="{Binding EfemRobotWafer1}" Wafer2="{Binding EfemRobotWafer2}" RobotMoveInfo="{Binding EfemRobotMoveAction}"/>
  94. <parts:WaferCtrl x:Name="bufferCtrl" Width="66" Height="66" Canvas.Left="615" Canvas.Top="240" WaferData="{Binding BufferWafer}" Visibility="{Binding IsBufferIntalled, Converter={StaticResource bool2VisibilityConvert}}" />
  95. <parts:WaferCtrl x:Name="flipperCtrl" Width="66" Height="66" Canvas.Left="149" Canvas.Top="290" WaferData="{Binding FlipperWafer}" Visibility="{Binding IsFlipperInstalled, Converter={StaticResource bool2VisibilityConvert}}"/>
  96. <parts:WaferCtrl x:Name="aligner1Ctrl" Width="66" Height="66" Canvas.Left="615" Canvas.Top="330" WaferData="{Binding Aligner1Wafer}" Visibility="{Binding IsAligner1Installed, Converter={StaticResource bool2VisibilityConvert}}" />
  97. <parts:WaferCtrl x:Name="aligner2Ctrl" Width="66" Height="66" Canvas.Left="615" Canvas.Top="240" WaferData="{Binding Aligner2Wafer}" Visibility="{Binding IsAligner2Installed, Converter={StaticResource bool2VisibilityConvert}}"/>
  98. <parts:WaferCtrl x:Name="cooler1Ctrl" Width="66" Height="66" Canvas.Left="149" Canvas.Top="330" WaferData="{Binding Cooling1Wafer}" Visibility="{Binding IsCooling1Installed, Converter={StaticResource bool2VisibilityConvert}}" />
  99. <parts:WaferCtrl x:Name="cooler2Ctrl" Width="66" Height="66" Canvas.Left="149" Canvas.Top="240" WaferData="{Binding Cooling2Wafer}" Visibility="{Binding IsCooling2Installed, Converter={StaticResource bool2VisibilityConvert}}" />
  100. <parts:WaferCtrl Width="66" Height="66" Canvas.Left="254" Canvas.Top="103" WaferData="{Binding PMAWafer}" Visibility="{Binding IsPMAInstalled, Converter={StaticResource bool2VisibilityConvert}}"/>
  101. <parts:WaferCtrl Width="66" Height="66" Canvas.Left="500" Canvas.Top="103" WaferData="{Binding PMBWafer}" Visibility="{Binding IsPMBInstalled, Converter={StaticResource bool2VisibilityConvert}}"/>
  102. <TextBlock x:Name="lblFlipper" Text="Flipper" Canvas.Left="105" Canvas.Top="268" Visibility="{Binding IsFlipperInstalled, Converter={StaticResource bool2VisibilityConvert}}" />
  103. <TextBlock x:Name="lblBuffer" Text="Cooling" Canvas.Left="690" Canvas.Top="225" Visibility="{Binding IsBufferIntalled, Converter={StaticResource bool2VisibilityConvert}}"/>
  104. <TextBlock x:Name="lblAligner1" Text="Aligner" Canvas.Left="690" Canvas.Top="325" Visibility="{Binding IsAligner1Installed, Converter={StaticResource bool2VisibilityConvert}}" />
  105. <TextBlock x:Name="lblAligner2" Text="Aligner2" Canvas.Left="690" Canvas.Top="225" Visibility="{Binding IsAligner2Installed, Converter={StaticResource bool2VisibilityConvert}}" />
  106. <TextBlock x:Name="lblCooler1" Text="Cooling1" Canvas.Left="105" Canvas.Top="325" Visibility="{Binding IsCooling1Installed, Converter={StaticResource bool2VisibilityConvert}}" />
  107. <TextBlock x:Name="lblCooler2" Text="Cooling2" Canvas.Left="105" Canvas.Top="225" Visibility="{Binding IsCooling2Installed, Converter={StaticResource bool2VisibilityConvert}}" />
  108. <Grid x:Name="Slit_valve" Width="11" Height="159" Canvas.Left="280" Canvas.Top="111" RenderTransformOrigin="0.5,0.5" >
  109. <Grid.RenderTransform>
  110. <TransformGroup>
  111. <ScaleTransform/>
  112. <SkewTransform/>
  113. <RotateTransform Angle="90"/>
  114. <TranslateTransform/>
  115. </TransformGroup>
  116. </Grid.RenderTransform>
  117. <Rectangle x:Name="SlitValve_Top" Style="{StaticResource SlitValveA_Animation}" Fill="DimGray" Width="8" VerticalAlignment="Top" Height="88" />
  118. <Rectangle x:Name="SlitValve_Bottom" Style="{StaticResource SlitValveA_Animation}" Fill="DimGray" Width="8" VerticalAlignment="Bottom" Height="88" />
  119. </Grid>
  120. <Grid x:Name="Slit_valve1" Width="11" Height="159" Canvas.Left="526" Canvas.Top="111" RenderTransformOrigin="0.5,0.5" >
  121. <Grid.RenderTransform>
  122. <TransformGroup>
  123. <ScaleTransform/>
  124. <SkewTransform/>
  125. <RotateTransform Angle="90"/>
  126. <TranslateTransform/>
  127. </TransformGroup>
  128. </Grid.RenderTransform>
  129. <Rectangle x:Name="SlitValve_Top1" Style="{StaticResource SlitValveB_Animation}" Fill="DimGray" Width="8" VerticalAlignment="Top" Height="88" />
  130. <Rectangle x:Name="SlitValve_Bottom1" Style="{StaticResource SlitValveB_Animation}" Fill="DimGray" Width="8" VerticalAlignment="Bottom" Height="88" />
  131. </Grid>
  132. <parts1:FoupTopView IsFoupLoaded="{Binding IsLoadedLP1}" Visibility="{Binding Foup1Visibility}" Canvas.Left="252" Canvas.Top="427" Height="178" Width="128"/>
  133. <parts1:FoupTopView IsFoupLoaded="{Binding IsLoadedLP2}" Visibility="{Binding Foup2Visibility}" Canvas.Left="435" Canvas.Top="427" Height="178" Width="128"/>
  134. <Grid Grid.Row="0" Canvas.Left="22" Canvas.Top="482" Visibility="{Binding ScannerVisibility}" >
  135. <Grid.RowDefinitions>
  136. <RowDefinition Height="35" />
  137. </Grid.RowDefinitions>
  138. <Grid.ColumnDefinitions>
  139. <ColumnDefinition Width="75" />
  140. <ColumnDefinition Width="150" />
  141. </Grid.ColumnDefinitions>
  142. <Rectangle Grid.Row="0" Grid.Column="0" Fill="#376092" Margin="0" Stroke="White" StrokeThickness="1"></Rectangle>
  143. <TextBlock Grid.Row="0" Grid.Column="0" FontSize="13" Margin="3,0,0,0" VerticalAlignment="Center" Text="Carrier ID:" Foreground="White" />
  144. <Rectangle Grid.Row="0" Grid.Column="1" Fill="#95B3D7" Margin="0" Stroke="White" StrokeThickness="1"></Rectangle>
  145. <deviceControl:AITBarcodeTextBox Grid.Row="0" Grid.Column="1" FontSize="12" Foreground="White" BarcodeText="{Binding LP1CarrierIDText, Mode=TwoWay}" BarcodeInputChangedCommand="{Binding LP1CarrierIDChangedCommand}" MaxScanCount="1" />
  146. </Grid>
  147. <Grid Grid.Row="0" Canvas.Left="575" Canvas.Top="482" Visibility="{Binding ScannerVisibility}" >
  148. <Grid.RowDefinitions>
  149. <RowDefinition Height="35" />
  150. </Grid.RowDefinitions>
  151. <Grid.ColumnDefinitions>
  152. <ColumnDefinition Width="75" />
  153. <ColumnDefinition Width="150" />
  154. </Grid.ColumnDefinitions>
  155. <Rectangle Grid.Row="0" Grid.Column="0" Fill="#376092" Margin="0" Stroke="White" StrokeThickness="1"></Rectangle>
  156. <TextBlock Grid.Row="0" Grid.Column="0" FontSize="13" Margin="3,0,0,0" VerticalAlignment="Center" Text="Carrier ID:" Foreground="White" />
  157. <Rectangle Grid.Row="0" Grid.Column="1" Fill="#95B3D7" Margin="0" Stroke="White" StrokeThickness="1"></Rectangle>
  158. <deviceControl:AITBarcodeTextBox Grid.Row="0" Grid.Column="1" FontSize="12" Foreground="White" BarcodeText="{Binding LP2CarrierIDText, Mode=TwoWay}" BarcodeInputChangedCommand="{Binding LP2CarrierIDChangedCommand}" MaxScanCount="1" />
  159. </Grid>
  160. <!--<parts1:Foup IdleVisibility="{Binding Foup1Idle, Converter={StaticResource BoolVisibilityConverter}}"
  161. ErrorVisibility="{Binding Foup1Error, Converter={StaticResource BoolVisibilityConverter}}"
  162. BusyVisibility="{Binding Foup1Busy, Converter={StaticResource BoolVisibilityConverter}}"
  163. CompleteVisibility="{Binding Foup1Complete, Converter={StaticResource BoolVisibilityConverter}}"
  164. Visibility="{Binding Foup1Present, Converter={StaticResource BoolVisibilityConverter}}" Width="70" Height="70" Canvas.Left="219" Canvas.Top="507"/>
  165. <parts1:Foup
  166. IdleVisibility="{Binding Foup2Idle, Converter={StaticResource BoolVisibilityConverter}}"
  167. ErrorVisibility="{Binding Foup2Error, Converter={StaticResource BoolVisibilityConverter}}"
  168. BusyVisibility="{Binding Foup2Busy, Converter={StaticResource BoolVisibilityConverter}}"
  169. CompleteVisibility="{Binding Foup2Complete, Converter={StaticResource BoolVisibilityConverter}}"
  170. Visibility="{Binding Foup2Present, Converter={StaticResource BoolVisibilityConverter}}" Width="70" Height="70" Canvas.Left="368" Canvas.Top="506"/>-->
  171. </Canvas>
  172. </UserControl>