Browse Source

Venus DE chamber UI change && Venus SE simulator update

hecl 1 year ago
parent
commit
8d8b960858

+ 220 - 25
Venus/Venus_MainPages/Views/OverVenusDEView.xaml

@@ -38,6 +38,122 @@
         <converters:BoolToVisibility2 x:Key="BoolToVisibility2"/>
     </UserControl.Resources>
     <Canvas Margin="0,2,0,-2">
+        <Canvas Canvas.Left="854" Canvas.Top="400">
+            <Rectangle Width="30" Height="40" StrokeThickness="1,.8">
+                <Rectangle.Stroke>
+                    <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,.5">
+                        <GradientStop Color="#FF696969" Offset="0"></GradientStop>
+                        <GradientStop Color="LightGray" Offset="0.5"></GradientStop>
+                        <GradientStop Color="#FF696969" Offset="1"></GradientStop>
+                    </LinearGradientBrush>
+                </Rectangle.Stroke>
+            </Rectangle>
+            <Rectangle HorizontalAlignment="Left" VerticalAlignment="Center" Width="31" Height="1.2" Canvas.Top="-1.2" RadiusX="0" RadiusY="0" RenderTransformOrigin="0.5,0.5" Canvas.Left="0.6">
+                <Rectangle.RenderTransform>
+                    <TransformGroup>
+                        <ScaleTransform/>
+                        <SkewTransform AngleX="-45" AngleY="0"/>
+                        <RotateTransform/>
+                        <TranslateTransform/>
+                    </TransformGroup>
+                </Rectangle.RenderTransform>
+                <Rectangle.Stroke>
+                    <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,.5">
+                        <GradientStop Color="#FF696969" Offset="0"></GradientStop>
+                        <GradientStop Color="LightGray" Offset="0.5"></GradientStop>
+                        <GradientStop Color="#FF696969" Offset="1"></GradientStop>
+                    </LinearGradientBrush>
+                </Rectangle.Stroke>
+            </Rectangle>
+            <Rectangle Canvas.Left="1.2" Canvas.Top="-1.2" Width="30" Height="40" StrokeThickness="1,.8" Panel.ZIndex="-2">
+                <Rectangle.Stroke>
+                    <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,.5">
+                        <GradientStop Color="#FF696969" Offset="0"></GradientStop>
+                        <GradientStop Color="LightGray" Offset="0.5"></GradientStop>
+                        <GradientStop Color="#FF696969" Offset="1"></GradientStop>
+                    </LinearGradientBrush>
+                </Rectangle.Stroke>
+            </Rectangle>
+            <Rectangle Height="38" Width="15" Canvas.Left="7.5" Canvas.Top="1" Panel.ZIndex="-1">
+                <Rectangle.Fill>
+                    <LinearGradientBrush StartPoint="0,1">
+                        <GradientStop Color="LightGray" Offset="0"></GradientStop>
+                        <GradientStop Color="Black" Offset="0.5"></GradientStop>
+                        <GradientStop Color="LightGray" Offset="1"></GradientStop>
+                    </LinearGradientBrush>
+                </Rectangle.Fill>
+            </Rectangle>
+            <Path Canvas.Left="6" Canvas.Top="2"    Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="4.5"  Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="7.5"  Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="10.5" Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="13.5" Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="16.5" Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="19.5" Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="22.5" Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="25.5" Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="28.5" Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="31.5" Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="34.5" Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+        </Canvas>
+        <Canvas Canvas.Left="1123" Canvas.Top="400">
+            <Rectangle Width="30" Height="40" StrokeThickness="1,.8">
+                <Rectangle.Stroke>
+                    <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,.5">
+                        <GradientStop Color="#FF696969" Offset="0"></GradientStop>
+                        <GradientStop Color="LightGray" Offset="0.5"></GradientStop>
+                        <GradientStop Color="#FF696969" Offset="1"></GradientStop>
+                    </LinearGradientBrush>
+                </Rectangle.Stroke>
+            </Rectangle>
+            <Rectangle HorizontalAlignment="Left" VerticalAlignment="Center" Width="31" Height="1.2" Canvas.Top="-1.2" RadiusX="0" RadiusY="0" RenderTransformOrigin="0.5,0.5" Canvas.Left="0.6">
+                <Rectangle.RenderTransform>
+                    <TransformGroup>
+                        <ScaleTransform/>
+                        <SkewTransform AngleX="-45" AngleY="0"/>
+                        <RotateTransform/>
+                        <TranslateTransform/>
+                    </TransformGroup>
+                </Rectangle.RenderTransform>
+                <Rectangle.Stroke>
+                    <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,.5">
+                        <GradientStop Color="#FF696969" Offset="0"></GradientStop>
+                        <GradientStop Color="LightGray" Offset="0.5"></GradientStop>
+                        <GradientStop Color="#FF696969" Offset="1"></GradientStop>
+                    </LinearGradientBrush>
+                </Rectangle.Stroke>
+            </Rectangle>
+            <Rectangle Canvas.Left="1.2" Canvas.Top="-1.2" Width="30" Height="40" StrokeThickness="1,.8" Panel.ZIndex="-2">
+                <Rectangle.Stroke>
+                    <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,.5">
+                        <GradientStop Color="#FF696969" Offset="0"></GradientStop>
+                        <GradientStop Color="LightGray" Offset="0.5"></GradientStop>
+                        <GradientStop Color="#FF696969" Offset="1"></GradientStop>
+                    </LinearGradientBrush>
+                </Rectangle.Stroke>
+            </Rectangle>
+            <Rectangle Height="38" Width="15" Canvas.Left="7.5" Canvas.Top="1" Panel.ZIndex="-1">
+                <Rectangle.Fill>
+                    <LinearGradientBrush StartPoint="0,1">
+                        <GradientStop Color="LightGray" Offset="0"></GradientStop>
+                        <GradientStop Color="Black" Offset="0.5"></GradientStop>
+                        <GradientStop Color="LightGray" Offset="1"></GradientStop>
+                    </LinearGradientBrush>
+                </Rectangle.Fill>
+            </Rectangle>
+            <Path Canvas.Left="6" Canvas.Top="2"    Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="4.5"  Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="7.5"  Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="10.5" Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="13.5" Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="16.5" Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="19.5" Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="22.5" Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="25.5" Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="28.5" Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="31.5" Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+            <Path Canvas.Left="6" Canvas.Top="34.5" Stroke="Lime" StrokeThickness="1.5" Width="18" Height="4" StrokeDashArray="0" StrokeDashCap="Round" Data="M 100,100 A 100,50 0 1 0 300,100" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5"></Path>
+        </Canvas>
         <Grid   Canvas.Left="50" Canvas.Top="62">
             <Grid.RowDefinitions>
                 <RowDefinition/>
@@ -567,7 +683,7 @@
 
 
             <!--与chamber上方连接的管道-->
-            <ctrls:FlowPipe  Height="8"  Width="520" Canvas.Left="482" Canvas.Top="120">
+            <ctrls:FlowPipe  Height="8"  Width="599" Canvas.Left="482" Canvas.Top="120" HorizontalAlignment="Left" VerticalAlignment="Center">
                 <ctrls:FlowPipe.IsFlowing>
                     <MultiBinding Converter="{StaticResource toBoolMultiValueConverter4}">
                         <Binding Path="GasFinalValveIsOpen"/>
@@ -591,8 +707,19 @@
             <TextBlock Text="Gas Final" Canvas.Left="900" Canvas.Top="90" FontSize="15"/>
             <customControls:CommonValveControl Status="{Binding GasFinalValveIsOpen,Mode=TwoWay}"  ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="922" Canvas.Top="114" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="GasFinal" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
 
-            <ctrls:Pipe2    Canvas.Left="1000" Canvas.Top="120" HorizontalAlignment="Left" VerticalAlignment="Top"  />
-            <ctrls:FlowPipe  Height="8"  Width="120" Canvas.Left="1013" Canvas.Top="129" RotateTransformValue="90">
+            <ctrls:Pipe2    Canvas.Left="1080" Canvas.Top="120" HorizontalAlignment="Left" VerticalAlignment="Center" RenderTransformOrigin="0.077,0.231"  />
+            <ctrls:Pipe2    Canvas.Left="1099" Canvas.Top="80" HorizontalAlignment="Left" VerticalAlignment="Top" RenderTransformOrigin="0.077,0.231"  />
+            <ctrls:Pipe2    Canvas.Left="552" Canvas.Top="89" HorizontalAlignment="Left" VerticalAlignment="Top" RenderTransformOrigin="0.077,0.231"  >
+                <userControls:Pipe2.RenderTransform>
+                    <TransformGroup>
+                        <ScaleTransform/>
+                        <SkewTransform/>
+                        <RotateTransform Angle="-90.144"/>
+                        <TranslateTransform/>
+                    </TransformGroup>
+                </userControls:Pipe2.RenderTransform>
+            </ctrls:Pipe2>
+            <ctrls:FlowPipe  Height="8"  Width="208" Canvas.Left="1093" Canvas.Top="132" RotateTransformValue="90" HorizontalAlignment="Left" VerticalAlignment="Top">
                 <ctrls:FlowPipe.IsFlowing>
                     <MultiBinding Converter="{StaticResource toBoolMultiValueConverter4}">
                         <Binding Path="GasFinalValveIsOpen"/>
@@ -854,17 +981,17 @@
             <RadioButton Canvas.Left="890" Canvas.Top="684" Content="Pressure Mode" FontSize="15" IsChecked="{Binding HeIsPressureMode,UpdateSourceTrigger=PropertyChanged}"/>
 
             <!--与chamber右上角连接的管道-->
-            <ctrls:FlowPipe  Height="8"  Width="40" Canvas.Left="1262" Canvas.Top="275"  RotateTransformValue="90" />
-            <ctrls:FlowPipe  Height="8"  Width="126" Canvas.Left="1250" Canvas.Top="192"  RotateTransformValue="90" />
-            <ctrls:Pipe2     Canvas.Left="1254" Canvas.Top="285" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="-90" />
+            <ctrls:FlowPipe  Height="8"  Width="40" Canvas.Left="1343" Canvas.Top="355"  RotateTransformValue="90" />
+            <ctrls:FlowPipe  Height="8"  Width="126" Canvas.Left="1331" Canvas.Top="272"  RotateTransformValue="90" />
+            <ctrls:Pipe2     Canvas.Left="1335" Canvas.Top="365" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="-90" />
 
-            <ctrls:FlowPipe  Height="8"  Width="80" Canvas.Left="1252" Canvas.Top="182"   />
-            <ctrls:FlowPipe  Height="8"  Width="70" Canvas.Left="1264" Canvas.Top="272"   />
-            <TextBlock Text="Guage" Canvas.Left="1272" Canvas.Top="248"/>
+            <ctrls:FlowPipe  Height="8"  Width="80" Canvas.Left="1333" Canvas.Top="262"   />
+            <ctrls:FlowPipe  Height="8"  Width="70" Canvas.Left="1345" Canvas.Top="352"   />
+            <TextBlock Text="Guage" Canvas.Left="1353" Canvas.Top="328"/>
 
-            <customControls:CommonValveControl   ValveOrientation="Horizontal" Status="{Binding GuageValveIsOpen,Mode=TwoWay}" Height="20" Width="20" Canvas.Left="1280" Canvas.Top="265" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="Guage" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
+            <customControls:CommonValveControl   ValveOrientation="Horizontal" Status="{Binding GuageValveIsOpen,Mode=TwoWay}" Height="20" Width="20" Canvas.Left="1361" Canvas.Top="345" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="Guage" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
 
-            <Border    BorderBrush="Gray"  BorderThickness="0"  Width="18" Height="6" Canvas.Left="1315" Canvas.Top="164" >
+            <Border    BorderBrush="Gray"  BorderThickness="0"  Width="18" Height="6" Canvas.Left="1396" Canvas.Top="244" >
                 <Border.RenderTransform>
                     <RotateTransform Angle="90"/>
                 </Border.RenderTransform>
@@ -876,7 +1003,7 @@
                     </LinearGradientBrush>
                 </Border.Background>
             </Border>
-            <Border    BorderBrush="Gray"  BorderThickness="0"  Width="20" Height="6" Canvas.Left="1285" Canvas.Top="188" >
+            <Border    BorderBrush="Gray"  BorderThickness="0"  Width="20" Height="6" Canvas.Left="1366" Canvas.Top="268" >
                 <Border.RenderTransform>
                     <RotateTransform Angle="90"/>
                 </Border.RenderTransform>
@@ -888,11 +1015,11 @@
                     </LinearGradientBrush>
                 </Border.Background>
             </Border>
-            <Ellipse Width="20" Height="20"  Canvas.Left="1302" Canvas.Top="150" Fill="{Binding IsATM,Converter={StaticResource boolToColor}}"  Stroke="Silver" StrokeThickness="2"></Ellipse>
-            <Ellipse Width="20" Height="20"  Canvas.Left="1272" Canvas.Top="200" Fill="{Binding IsVAC,Converter={StaticResource boolToColor}}"  Stroke="Silver" StrokeThickness="2"></Ellipse>
-            <TextBlock Text="ATM" Canvas.Left="1300" Canvas.Top="134"/>
-            <TextBlock Text="VAC" Canvas.Left="1270" Canvas.Top="220"/>
-            <ctrls:Pipe2     Canvas.Left="1242" Canvas.Top="195" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="-90" />
+            <Ellipse Width="20" Height="20"  Canvas.Left="1383" Canvas.Top="230" Fill="{Binding IsATM,Converter={StaticResource boolToColor}}"  Stroke="Silver" StrokeThickness="2"></Ellipse>
+            <Ellipse Width="20" Height="20"  Canvas.Left="1353" Canvas.Top="280" Fill="{Binding IsVAC,Converter={StaticResource boolToColor}}"  Stroke="Silver" StrokeThickness="2"></Ellipse>
+            <TextBlock Text="ATM" Canvas.Left="1381" Canvas.Top="214"/>
+            <TextBlock Text="VAC" Canvas.Left="1351" Canvas.Top="300"/>
+            <ctrls:Pipe2     Canvas.Left="1323" Canvas.Top="275" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="-90" />
 
 
 
@@ -960,10 +1087,10 @@
                 </ctrls:FlowPipe.IsFlowing>
             </ctrls:FlowPipe>
 
-            <ctrls:Pipe2    Canvas.Left="1220.5"  Canvas.Top="638" HorizontalAlignment="Center" VerticalAlignment="Center" RotateTransformValue="-180" RenderTransformOrigin="1.282,-0.087" Height="21" Width="20" />
+            <ctrls:Pipe2    Canvas.Left="1223"  Canvas.Top="638" HorizontalAlignment="Left" VerticalAlignment="Center" RotateTransformValue="-180" RenderTransformOrigin="1.282,-0.087" Height="21" Width="20" />
             <ctrls:Pipe2    Canvas.Left="1060"  Canvas.Top="687.8" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="-180" />
 
-            <ctrls:FlowPipe   Height="8"  Width="39" Canvas.Left="1222"  Canvas.Top="634" HorizontalAlignment="Center" VerticalAlignment="Center"  >
+            <ctrls:FlowPipe   Height="8"  Width="36" Canvas.Left="1225"  Canvas.Top="634" HorizontalAlignment="Left" VerticalAlignment="Center"  >
                 <ctrls:FlowPipe.IsFlowing>
                     <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
                         <!--<Binding Path="SoftPumpValveIsOpen"/>-->
@@ -973,13 +1100,21 @@
             </ctrls:FlowPipe>
             <!--<ctrls:FlowPipe   Height="8"  Width="52" Canvas.Left="1165"  Canvas.Top="635" IsFlowing="{Binding SoftPumpValveIsOpen}" />-->
 
-            <ctrls:FlowPipe  Height="8"  Width="122" Canvas.Left="1219"  Canvas.Top="509" RotateTransformValue="90" IsFlowing="{Binding FastPumpValveIsOpen}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
+            <ctrls:FlowPipe  Height="8"  Width="122" Canvas.Left="1221.5"  Canvas.Top="509" RotateTransformValue="90" IsFlowing="{Binding FastPumpValveIsOpen}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
             <!--<ctrls:FlowPipe  Height="8"  Width="119" Canvas.Left="1168"  Canvas.Top="517" RotateTransformValue="90" IsFlowing="{Binding SoftPumpValveIsOpen}"/>-->
 
             <!--<ctrls:Pipe2    Canvas.Left="1173"  Canvas.Top="643" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="-180" />-->
 
             <!--<ctrls:FlowPipe   Height="8"  Width="48" Canvas.Left="1165"  Canvas.Top="512" HorizontalAlignment="Left" VerticalAlignment="Center" IsReverse="True" IsFlowing="{Binding SoftPumpValveIsOpen}"  />-->
-            <ctrls:FlowPipe   Height="8"  Width="50" Canvas.Left="1219"  Canvas.Top="463" RotateTransformValue="90">
+            <ctrls:FlowPipe   Height="8"  Width="50" Canvas.Left="1192.5"  Canvas.Top="482" RotateTransformValue="90" RenderTransformOrigin="0.96,3.875">
+                <userControls:FlowPipe.RenderTransform>
+                    <TransformGroup>
+                        <ScaleTransform/>
+                        <SkewTransform/>
+                        <RotateTransform Angle="90"/>
+                        <TranslateTransform X="-50" Y="-4"/>
+                    </TransformGroup>
+                </userControls:FlowPipe.RenderTransform>
                 <ctrls:FlowPipe.IsFlowing>
                     <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
                         <!--<Binding Path="SoftPumpValveIsOpen"/>-->
@@ -1009,7 +1144,7 @@
 
             <customControls:CommonValveControl   ValveOrientation="Horizontal" Height="20" Width="20"  Canvas.Top="674" Canvas.Left="1066" Status="{Binding PVHe2ValveIsOpen,Mode=TwoWay}" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="PVHe2" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
             <!--<customControls:CommonValveControl Status="{Binding SoftPumpValveIsOpen,Mode=TwoWay}"  ValveOrientation="Vertical"  Height="20" Width="20"  Canvas.Top="555" Canvas.Left="1154" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="SoftPump" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>-->
-            <customControls:CommonValveControl Status="{Binding FastPumpValveIsOpen,Mode=TwoWay}"  ValveOrientation="Vertical"  Height="20" Width="20" Canvas.Top="555" Canvas.Left="1205"  IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="FastPump" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
+            <customControls:CommonValveControl Status="{Binding FastPumpValveIsOpen,Mode=TwoWay}"  ValveOrientation="Vertical"  Height="20" Width="20" Canvas.Top="555" Canvas.Left="1207"  IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="FastPump" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
             <customControls:CommonValveControl  ValveOrientation="Vertical"  Height="20" Width="20"  Canvas.Top="596" Canvas.Left="1252" Status="{Binding TurboPumpPumpingValveIsOpen,Mode=TwoWay}" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="TurboPumpPumping" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
 
 
@@ -1056,8 +1191,8 @@
 
 
             <!--chamber管道标签-->
-            <ctrls:TextboxWithLabel  Canvas.Top="156" Canvas.Left="1326" LabelValue="CM2(mTorr)" TextBoxValue="{Binding ChamberPressure,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
-            <ctrls:TextboxWithLabel  Canvas.Top="248" Canvas.Left="1318" LabelValue="CM1(mTorr)" TextBoxValue="{Binding ProcessPressure,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
+            <ctrls:TextboxWithLabel  Canvas.Top="236" Canvas.Left="1407" LabelValue="CM2(mTorr)" TextBoxValue="{Binding ChamberPressure,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
+            <ctrls:TextboxWithLabel  Canvas.Top="328" Canvas.Left="1399" LabelValue="CM1(mTorr)" TextBoxValue="{Binding ProcessPressure,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
             <!--<ctrls:TextboxWithLabel  Canvas.Top="633" Canvas.Left="880"  LabelValue="Pressure(mTorr)" TextBoxValue="{Binding HePressureSetpoint,Mode=TwoWay}" TextBoxColor="White" IsReadOnly="False"/>-->
             <ctrls:TextboxWithLabel  Canvas.Top="633" Canvas.Left="860" TextBoxValue="{Binding HeGasSetpoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"    LabelValue="Flow(sccm)/Pressure(Torr)"  TextBoxColor="White" IsReadOnly="False"/>
             <!--<Ellipse Width="20" Height="20"  Canvas.Top="651.5" Canvas.Left="775" Fill="{Binding MFCHeData.IsWarning,Converter={StaticResource boolToColor4}}"  Stroke="Silver" StrokeThickness="2" ToolTip="Pressure Alarm"></Ellipse>-->
@@ -1108,7 +1243,7 @@
             </StackPanel>-->
 
             <!--Chamber-->
-            <ctrls:Chamber Canvas.Left="1034" Canvas.Top="224" 
+            <ctrls:ChamberDE Canvas.Left="1034" Canvas.Top="224" 
                        IsLiftPinUp="{Binding LiftPinIsUp}" 
                        IsOpenSlitDoor="{Binding IsSlitDoorClosed,Converter={StaticResource BoolToBool}}" 
                        IsLidOpen="{Binding IsLidClosed,Converter={StaticResource BoolToBool}}"  
@@ -1623,6 +1758,66 @@
                 <customControls:PathButton  Width="134" Height="30" Content="Pump Down"     Command="{Binding PumpCommand}"         Margin="50,0,0,0" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}"/>
             </StackPanel>
         </Border>
+        <userControls:FlowPipe  Height="8"  Width="538" Canvas.Left="562" Canvas.Top="120" HorizontalAlignment="Left" VerticalAlignment="Center">
+            <userControls:FlowPipe.IsFlowing>
+                <MultiBinding Converter="{StaticResource toBoolMultiValueConverter4}">
+                    <Binding Path="GasFinalValveIsOpen"/>
+                    <Binding Path="N2ValveIsOpen"/>
+                    <Binding Path="PV11ValveIsOpen"/>
+                    <Binding Path="PV21ValveIsOpen"/>
+                    <Binding Path="PV31ValveIsOpen"/>
+                    <Binding Path="PV41ValveIsOpen"/>
+                    <Binding Path="MFC5ValveIsOpen"/>
+                    <Binding Path="MFC6ValveIsOpen"/>
+                    <Binding Path="MFC7ValveIsOpen"/>
+                    <Binding Path="MFC8ValveIsOpen"/>
+                    <Binding Path="MFC9ValveIsOpen"/>
+                    <Binding Path="MFC10ValveIsOpen"/>
+                    <Binding Path="MFC11ValveIsOpen"/>
+                    <Binding Path="MFC12ValveIsOpen"/>
+                </MultiBinding>
+            </userControls:FlowPipe.IsFlowing>
+        </userControls:FlowPipe>
+        <TextBlock Text="Gas Final" Canvas.Left="900" Canvas.Top="90" FontSize="15" HorizontalAlignment="Center" VerticalAlignment="Center"/>
+        <customControls:CommonValveControl Status="{Binding GasFinalValveIsOpen, Mode=TwoWay}"  ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="922" Canvas.Top="114" IsCanEdit="{Binding IsAutoMode, Converter={StaticResource BoolToBool}}" Tag="GasFinal" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
+        <userControls:FlowPipe  Height="8"  Width="218" Canvas.Left="1112" Canvas.Top="132" RotateTransformValue="90" HorizontalAlignment="Left" VerticalAlignment="Top">
+            <userControls:FlowPipe.IsFlowing>
+                <MultiBinding Converter="{StaticResource toBoolMultiValueConverter4}">
+                    <Binding Path="GasFinalValveIsOpen"/>
+                    <Binding Path="N2ValveIsOpen"/>
+                    <Binding Path="PV11ValveIsOpen"/>
+                    <Binding Path="PV21ValveIsOpen"/>
+                    <Binding Path="PV31ValveIsOpen"/>
+                    <Binding Path="PV41ValveIsOpen"/>
+                    <Binding Path="MFC5ValveIsOpen"/>
+                    <Binding Path="MFC6ValveIsOpen"/>
+                    <Binding Path="MFC7ValveIsOpen"/>
+                    <Binding Path="MFC8ValveIsOpen"/>
+                    <Binding Path="MFC9ValveIsOpen"/>
+                    <Binding Path="MFC10ValveIsOpen"/>
+                    <Binding Path="MFC11ValveIsOpen"/>
+                    <Binding Path="MFC12ValveIsOpen"/>
+                </MultiBinding>
+            </userControls:FlowPipe.IsFlowing>
+        </userControls:FlowPipe>
+        <userControls:FlowPipe   Height="8"  Width="32" Canvas.Left="558"  Canvas.Top="129" RotateTransformValue="90" IsReverse="True" Panel.ZIndex="5" HorizontalAlignment="Left" VerticalAlignment="Top">
+            <userControls:FlowPipe.IsFlowing>
+                <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
+                    <Binding Path="MFC1ValveIsOpen"/>
+                    <Binding Path="MFC2ValveIsOpen"/>
+                    <Binding Path="MFC3ValveIsOpen"/>
+                    <Binding Path="MFC4ValveIsOpen"/>
+                    <Binding Path="MFC5ValveIsOpen"/>
+                    <Binding Path="MFC6ValveIsOpen"/>
+                    <Binding Path="MFC7ValveIsOpen"/>
+                    <Binding Path="MFC8ValveIsOpen"/>
+                    <Binding Path="MFC9ValveIsOpen"/>
+                    <Binding Path="MFC10ValveIsOpen"/>
+                    <Binding Path="MFC11ValveIsOpen"/>
+                    <Binding Path="MFC12ValveIsOpen"/>
+                </MultiBinding>
+            </userControls:FlowPipe.IsFlowing>
+        </userControls:FlowPipe>
 
     </Canvas>
 </UserControl>

+ 2 - 2
Venus/Venus_MainPages/Views/OverVenusSEView.xaml

@@ -1079,8 +1079,8 @@
 
 
             <!--chamber管道标签-->
-            <ctrls:TextboxWithLabel  Canvas.Top="156" Canvas.Left="1326" LabelValue="CM2(mTorr)" TextBoxValue="{Binding ProcessHighPressure,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
-            <ctrls:TextboxWithLabel  Canvas.Top="248" Canvas.Left="1318" LabelValue="CM1(mTorr)" TextBoxValue="{Binding ProcessLowPressure,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
+            <ctrls:TextboxWithLabel  Canvas.Top="156" Canvas.Left="1326" LabelValue="CM2(mTorr)" TextBoxValue="{Binding ChamberPressure,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
+            <ctrls:TextboxWithLabel  Canvas.Top="248" Canvas.Left="1318" LabelValue="CM1(mTorr)" TextBoxValue="{Binding ProcessPressure,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
             <!--<ctrls:TextboxWithLabel  Canvas.Top="633" Canvas.Left="880"  LabelValue="Pressure(mTorr)" TextBoxValue="{Binding HePressureSetpoint,Mode=TwoWay}" TextBoxColor="White" IsReadOnly="False"/>-->
             <ctrls:TextboxWithLabel  Canvas.Top="633" Canvas.Left="820" TextBoxValue="{Binding HeGasSetpoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"    LabelValue="Pressure(Torr)"  TextBoxColor="White" IsReadOnly="False"/>
             <Ellipse Width="20" Height="20"  Canvas.Top="651.5" Canvas.Left="775" Fill="{Binding MFCHeData.IsWarning,Converter={StaticResource boolToColor4}}"  Stroke="Silver" StrokeThickness="2" ToolTip="Pressure Alarm"></Ellipse>

+ 3 - 3
Venus/Venus_Simulator/Instances/SimulatorSystem.cs

@@ -651,9 +651,9 @@ namespace Venus_Simulator.Instances
             IO.DI[$"{mod}.DI_VCE_ATM_SW"].Value = true;
             IO.DI[$"{mod}.DI_TM_ATM_SW"].Value = true;
             IO.DI[$"{mod}.DI_VCE_Wafer_Senser"].Value = false;
-            IO.DI[$"{mod}.DI_PMA_Wafer_Senser"].Value = false;
-            IO.DI[$"{mod}.DI_PMB_Wafer_Senser"].Value = false;
-            IO.DI[$"{mod}.DI_PMC_Wafer_Senser"].Value = false;
+            IO.DI[$"{mod}.DI_PMA_Wafer_Senser"].Value = true;
+            IO.DI[$"{mod}.DI_PMB_Wafer_Senser"].Value = true;
+            IO.DI[$"{mod}.DI_PMC_Wafer_Senser"].Value = true;
             IO.DI[$"{mod}.DI_AC_RACK_FAN_OK"].Value = true;
             IO.DI[$"{mod}.DI_AC_RACK_Smoke_SW1"].Value = false;
             IO.DI[$"{mod}.DI_AC_RACK_Smoke_SW2"].Value = false;

+ 547 - 0
Venus/Venus_Themes/UserControls/ChamberDE.xaml

@@ -0,0 +1,547 @@
+<UserControl x:Class="Venus_Themes.UserControls.ChamberDE"
+             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
+             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
+             xmlns:local="clr-namespace:Venus_Themes.UserControls"
+             mc:Ignorable="d" 
+             d:DesignHeight="30" d:DesignWidth="320" x:Name="chamber">
+    <UserControl.Resources>
+        <Storyboard x:Key="SlitValve_Open">
+            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Height)" >
+                <EasingDoubleKeyFrame KeyTime="0" Value="75"/>
+                <EasingDoubleKeyFrame KeyTime="0:0:1" Value="42"/>
+            </DoubleAnimationUsingKeyFrames>
+        </Storyboard>
+        <Storyboard x:Key="SlitValve_Close">
+            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Height)" >
+                <EasingDoubleKeyFrame KeyTime="0" Value="42"/>
+                <EasingDoubleKeyFrame KeyTime="0:0:1" Value="75"/>
+            </DoubleAnimationUsingKeyFrames>
+        </Storyboard>
+        <Style TargetType="{x:Type Rectangle}" x:Key="SlitValve_Animation" >
+            <Style.Triggers>
+                <DataTrigger Binding="{Binding ElementName=chamber,Path=IsOpenSlitDoor}" Value="true">
+                    <DataTrigger.EnterActions>
+                        <BeginStoryboard Storyboard="{StaticResource SlitValve_Open}"/>
+                    </DataTrigger.EnterActions>
+                    <DataTrigger.ExitActions>
+                        <BeginStoryboard Storyboard="{StaticResource SlitValve_Close}"/>
+                    </DataTrigger.ExitActions>
+                </DataTrigger>
+            </Style.Triggers>
+        </Style>
+        <LinearGradientBrush StartPoint="0,0.501" EndPoint="1,0.501" x:Key="rfcolor">
+            <LinearGradientBrush.GradientStops>
+                <GradientStop Color="#FFFFDD76" Offset="0" />
+                <GradientStop Color="sc#1, 0.8019137, 0.520800948, 0.106530145" Offset="0.25" />
+                <GradientStop Color="#FFCC9932" Offset="1" />
+            </LinearGradientBrush.GradientStops>
+        </LinearGradientBrush>
+    </UserControl.Resources>
+    <Canvas >
+        <Grid Width="240" Height="190" Canvas.Top="80">
+            <Grid.ColumnDefinitions>
+                <ColumnDefinition Width="21*"/>
+                <ColumnDefinition Width="2*"/>
+                <ColumnDefinition Width="217*"/>
+            </Grid.ColumnDefinitions>
+            <Grid.RowDefinitions>
+                <RowDefinition Height="160"/>
+                <RowDefinition />
+            </Grid.RowDefinitions>
+            <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,8,8" Stretch="Fill" Grid.ColumnSpan="3">
+                <Path.Fill>
+                    <LinearGradientBrush EndPoint="1,1" StartPoint="0,0">
+                        <GradientStop Color="#FF8F8F8F" Offset="0"/>
+                        <GradientStop Color="#FF9B9B9B" Offset="1"/>
+                        <GradientStop Color="#FEF1ECEC" Offset="0.15"/>
+                        <GradientStop Color="#FEC0C0C0" Offset="0.38"/>
+                        <GradientStop Color="#FEB4B4B4" Offset="0.5"/>
+                        <GradientStop Color="#FEE5E5E5" Offset="0.7"/>
+                        <GradientStop Color="#FFBABABA" Offset="0.85"/>
+                        <GradientStop Color="#FFE5E5E5" Offset="0.9"/>
+                    </LinearGradientBrush>
+                </Path.Fill>
+            </Path>
+            <Rectangle Stroke="#FF747474" Margin="8,18,8,18" Grid.ColumnSpan="3">
+                <Rectangle.Fill>
+                    <LinearGradientBrush EndPoint="0.243,1" StartPoint="0.757,0">
+                        <GradientStop Color="#FFE0DEDE" Offset="0"/>
+                        <GradientStop Color="#FFE2E2E2" Offset="1"/>
+                        <GradientStop Color="#FEFFFFFF" Offset="0.55"/>
+                        <GradientStop Color="#FFEFEFEF" Offset="0.75"/>
+                    </LinearGradientBrush>
+                </Rectangle.Fill>
+            </Rectangle>
+            <Rectangle x:Name="BG_Status" Margin="9,19,9,19" Visibility="{Binding BiasRfPowerOnChamberVisibility}" Cursor="Hand" Grid.ColumnSpan="3">
+                <Rectangle.ContextMenu >
+                    <ContextMenu>
+                        <MenuItem Header="Create Wafer"  Click="CreateWafer_Click"     IsChecked="{Binding IsHasWafer}" IsEnabled="{Binding IsHasWafer,Converter={StaticResource BoolToBool}}"/>
+                        <MenuItem Header="Delete Wafer"  Click="DeleteWafer_Click"     IsChecked="{Binding IsHasWafer,Converter={StaticResource BoolToBool}}" IsEnabled="{Binding IsHasWafer}"/>
+                    </ContextMenu>
+                </Rectangle.ContextMenu>
+                <Rectangle.Style>
+                    <Style>
+                        <Setter Property="Rectangle.Fill" Value="WhiteSmoke"/>
+                        <Style.Triggers>
+                            <DataTrigger Binding="{Binding ElementName=chamber,Path=IsBRFOn}"  Value="True">
+                                <Setter Property="Rectangle.Fill" Value="#FFFF9292"/>
+                            </DataTrigger>
+                        </Style.Triggers>
+                    </Style>
+                </Rectangle.Style>
+            </Rectangle>
+            <Rectangle Stroke="#FF747474" Height="11" VerticalAlignment="Bottom" Margin="0,0,12,8" Grid.ColumnSpan="3">
+                <Rectangle.Fill>
+                    <LinearGradientBrush EndPoint="0.243,1" StartPoint="0.757,0">
+                        <GradientStop Color="#FFE0DEDE" Offset="0"/>
+                        <GradientStop Color="#FFE2E2E2" Offset="1"/>
+                        <GradientStop Color="#FEFFFFFF" Offset="0.55"/>
+                        <GradientStop Color="#FFEFEFEF" Offset="0.75"/>
+                    </LinearGradientBrush>
+                </Rectangle.Fill>
+            </Rectangle>
+            <Grid x:Name="Cover" Width="180" Height="18" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="7,2,0,0" RenderTransformOrigin="1,0.4444" Grid.Column="2">
+                <Grid.RenderTransform>
+                    <TransformGroup>
+                        <ScaleTransform/>
+                        <SkewTransform/>
+                        <RotateTransform/>
+                        <TranslateTransform/>
+                    </TransformGroup>
+                </Grid.RenderTransform>
+                <Grid.Resources>
+                    <Storyboard x:Key="CoverOpen">
+                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">
+                            <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
+                            <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="20"/>
+                        </DoubleAnimationUsingKeyFrames>
+                    </Storyboard>
+                    <Storyboard x:Key="CoverClose">
+                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">
+                            <EasingDoubleKeyFrame KeyTime="0" Value="20"/>
+                            <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="0"/>
+                        </DoubleAnimationUsingKeyFrames>
+                    </Storyboard>
+                </Grid.Resources>
+                <Grid.Style>
+                    <Style>
+                        <Style.Triggers>
+                            <DataTrigger Binding="{Binding ElementName=chamber,Path=IsLidOpen}" Value="true">
+                                <DataTrigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource CoverOpen}"/>
+                                </DataTrigger.EnterActions>
+                                <DataTrigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource CoverClose}"/>
+                                </DataTrigger.ExitActions>
+                            </DataTrigger>
+                        </Style.Triggers>
+                    </Style>
+                </Grid.Style>
+            </Grid>
+            <Grid Grid.RowSpan="2" Height="167" VerticalAlignment="Bottom" Margin="17,0,40,2" Grid.Column="2">
+                <Rectangle Height="12" Stroke="Gray" VerticalAlignment="Top" Width="150" Margin="0,98,0,0">
+                    <Rectangle.Fill>
+                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
+                            <GradientStop Color="#FFABABAB" Offset="0"/>
+                            <GradientStop Color="#FFDADADA" Offset="1"/>
+                        </LinearGradientBrush>
+                    </Rectangle.Fill>
+                </Rectangle>
+                <Rectangle Height="12" Margin="0,109,0,0" Stroke="Gray" VerticalAlignment="Top" Width="160">
+                    <Rectangle.Fill>
+                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
+                            <GradientStop Color="#FFABABAB" Offset="0"/>
+                            <GradientStop Color="#FFDADADA" Offset="1"/>
+                        </LinearGradientBrush>
+                    </Rectangle.Fill>
+                </Rectangle>
+
+                <!--4寸 guide pin-->
+                <Grid x:Name="Bottom_LiftPin" Height="75" VerticalAlignment="Bottom" Margin="0,0,0,0" >
+                    <Grid.Resources>
+                        <Storyboard x:Key="BottomPinUp">
+                            <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" >
+                                <EasingThicknessKeyFrame KeyTime="0" Value="0,0,0,0"/>
+                                <EasingThicknessKeyFrame KeyTime="0:0:0.5" Value="0,0,0,15"/>
+                            </ThicknessAnimationUsingKeyFrames>
+                        </Storyboard>
+                        <Storyboard x:Key="BottomPinDown">
+                            <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" >
+                                <EasingThicknessKeyFrame KeyTime="0" Value="0,0,0,15"/>
+                                <EasingThicknessKeyFrame KeyTime="0:0:0.5" Value="0,0,0,0"/>
+                            </ThicknessAnimationUsingKeyFrames>
+                        </Storyboard>
+                    </Grid.Resources>
+                    <Grid.Style>
+                        <Style>
+                            <Style.Triggers>
+                                <DataTrigger  Binding="{Binding IsLowerPinUp}" Value="true">
+                                    <DataTrigger.EnterActions>
+                                        <BeginStoryboard Storyboard="{StaticResource BottomPinUp}"/>
+                                    </DataTrigger.EnterActions>
+                                    <DataTrigger.ExitActions>
+                                        <BeginStoryboard Storyboard="{StaticResource BottomPinDown}"/>
+                                    </DataTrigger.ExitActions>
+                                </DataTrigger>
+                            </Style.Triggers>
+                        </Style>
+                    </Grid.Style>
+                    <!--<Rectangle HorizontalAlignment="Left" Fill="{DynamicResource Lid_BG1}" Stroke="{DynamicResource Lid_BD}" Width="8" Margin="10,6,0,4"/>-->
+                    <!--<Rectangle HorizontalAlignment="Right" Fill="{DynamicResource Lid_BG1}" Stroke="{DynamicResource Lid_BD}" Width="8" Margin="0,6,10,4"/>-->
+                    <!--<Rectangle Stroke="{DynamicResource Lid_BD}" Fill="{DynamicResource Lid_BG1}" StrokeThickness="1" VerticalAlignment="Bottom" Height="8" Margin="5,0"/>-->
+                </Grid>
+
+                <!--3寸 guide pin-->
+                <Grid x:Name="Middle_LiftPin" Width="120" Height="63" VerticalAlignment="Bottom" Margin="0,0,0,12" >
+                    <Grid.Resources>
+                        <Storyboard x:Key="MidPinUp">
+                            <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" >
+                                <EasingThicknessKeyFrame KeyTime="0" Value="0,0,0,12"/>
+                                <EasingThicknessKeyFrame KeyTime="0:0:0.5" Value="0,0,0,27"/>
+                            </ThicknessAnimationUsingKeyFrames>
+                        </Storyboard>
+                        <Storyboard x:Key="MidPinDown">
+                            <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" >
+                                <EasingThicknessKeyFrame KeyTime="0" Value="0,0,0,27"/>
+                                <EasingThicknessKeyFrame KeyTime="0:0:0.5" Value="0,0,0,12"/>
+                            </ThicknessAnimationUsingKeyFrames>
+                        </Storyboard>
+                    </Grid.Resources>
+                    <Grid.Style>
+                        <Style>
+                            <Style.Triggers>
+                                <DataTrigger Binding="{Binding IsUpperPinUp}" Value="true">
+                                    <DataTrigger.EnterActions>
+                                        <BeginStoryboard Storyboard="{StaticResource MidPinUp}"/>
+                                    </DataTrigger.EnterActions>
+                                    <DataTrigger.ExitActions>
+                                        <BeginStoryboard Storyboard="{StaticResource MidPinDown}"/>
+                                    </DataTrigger.ExitActions>
+                                </DataTrigger>
+                            </Style.Triggers>
+                        </Style>
+                    </Grid.Style>
+                    <!--<Rectangle HorizontalAlignment="Left" Fill="{DynamicResource Lid_BG2}" Stroke="{DynamicResource Lid_BD}" Width="8" Margin="10,6,0,4"/>
+                    <Rectangle HorizontalAlignment="Right" Fill="{DynamicResource Lid_BG2}" Stroke="{DynamicResource Lid_BD}" Width="8" Margin="0,6,10,4"/>-->
+                    <!--<Rectangle Stroke="{DynamicResource Lid_BD}" Fill="{DynamicResource Lid_BG2}" StrokeThickness="1" VerticalAlignment="Bottom" Height="8" Margin="5,0"/>-->
+
+
+                </Grid>
+
+                <!--lift pin-->
+                <Grid x:Name="Top_LiftPin" Height="51" VerticalAlignment="Bottom" Margin="0,0,0,28" >
+                    <Grid.Resources>
+                        <Storyboard x:Key="TopPinUp">
+                            <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" >
+                                <EasingThicknessKeyFrame KeyTime="0" Value="0,0,0,28"/>
+                                <EasingThicknessKeyFrame KeyTime="0:0:0.5" Value="0,0,0,54"/>
+                            </ThicknessAnimationUsingKeyFrames>
+                        </Storyboard>
+                        <Storyboard x:Key="TopPinDown">
+                            <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" >
+                                <EasingThicknessKeyFrame KeyTime="0" Value="0,0,0,54"/>
+                                <EasingThicknessKeyFrame KeyTime="0:0:0.5" Value="0,0,0,28"/>
+                            </ThicknessAnimationUsingKeyFrames>
+                        </Storyboard>
+                    </Grid.Resources>
+                    <Grid.Style>
+                        <Style>
+                            <Style.Triggers>
+                                <DataTrigger Binding="{Binding ElementName=chamber,Path=IsLiftPinUp}"  Value="true">
+                                    <DataTrigger.EnterActions>
+                                        <BeginStoryboard Storyboard="{StaticResource TopPinUp}"/>
+                                    </DataTrigger.EnterActions>
+                                    <DataTrigger.ExitActions>
+                                        <BeginStoryboard Storyboard="{StaticResource TopPinDown}"/>
+                                    </DataTrigger.ExitActions>
+                                </DataTrigger>
+                            </Style.Triggers>
+                        </Style>
+                    </Grid.Style>
+
+
+
+                    <Rectangle HorizontalAlignment="Left" Fill="{DynamicResource Lid_BG3}" Stroke="{DynamicResource Lid_BD}" Width="8" Margin="48,10,0,4"/>
+                    <Rectangle HorizontalAlignment="Right" Fill="{DynamicResource Lid_BG3}" Stroke="{DynamicResource Lid_BD}" Width="8" Margin="0,10,48,4"/>
+                    <Rectangle Stroke="{DynamicResource Lid_BD}" Fill="{DynamicResource Lid_BG3}" StrokeThickness="1" VerticalAlignment="Bottom" Height="8" Margin="5,0" Width="64" />
+                    <Rectangle  HorizontalAlignment="Center" Margin="-100,0"  Width="{Binding WaferLength}" Height="10" VerticalAlignment="Top"/>
+                    <TextBlock Text="{Binding  ElementName=chamber,Path=WaferID}" Margin="0,-20,0,0" TextAlignment="Center"></TextBlock>
+
+                    <Border BorderThickness="1" BorderBrush="DarkGray" CornerRadius="4" VerticalAlignment="Top"  Height="10" Margin="0,0,0,0" Width="140" Visibility="{Binding ElementName=chamber,Path=IsHasWafer,Converter={StaticResource bool2VisibilityConverter}}">
+                        <Border.Background>
+                            <RadialGradientBrush >
+                                <GradientStop Color="AliceBlue" Offset="0" />
+                                <!--<GradientStop Color="Silver" Offset="0.5" />-->
+                                <GradientStop Color="LightGreen" Offset="1" />
+
+                            </RadialGradientBrush>
+                        </Border.Background>
+                    </Border>
+
+                </Grid>
+
+                <!--<Canvas Visibility="{Binding ElementName=chamber,Path=IsHasHeater,Converter={StaticResource bool2VisibilityConverter}}" Margin="29.5,100,0,0">
+                    <Rectangle HorizontalAlignment="Left" Fill="{DynamicResource Lid_BG3}" Stroke="Black" Width="100" Height="10"/>
+                    <Rectangle HorizontalAlignment="Left" Fill="{DynamicResource Lid_BG3}" Stroke="Black" Width="100" Height="10"  Canvas.Top="10"/>
+                    <Rectangle HorizontalAlignment="Left" Fill="{DynamicResource Lid_BG3}" Stroke="Black" Width="30"  Height="30"  Canvas.Top="20" Canvas.Left="36"/>
+                </Canvas>-->
+
+                <!--左边slit door-->
+                <Grid x:Name="Slit_valve" Margin="-41,-10,191,29" >
+                    <Rectangle x:Name="SlitValve_Top"  Fill="DimGray" VerticalAlignment="Top" Height="75" Margin="0,0,1,0"   />
+                    <Rectangle x:Name="SlitValve_Bottom"  Fill="DimGray" Margin="0,73,1,-1" />
+                </Grid>
+
+                <!--slit door右边-->
+                <Grid Margin="190,-10,-40,29" Cursor="Hand">
+                    <Grid.RowDefinitions>
+                        <RowDefinition Height="28*"/>
+                        <RowDefinition Height="9*"/>
+                    </Grid.RowDefinitions>
+                    <Grid.ContextMenu>
+                        <ContextMenu >
+                            <MenuItem Header="Open Door"   Click="OpenDoor_Click"  IsChecked="{Binding IsSlitDoorClosed,Converter={StaticResource BoolToBool}}"                                        IsEnabled="{Binding IsSlitDoorClosed}"/>
+                            <MenuItem Header="Close Door"  Click="CloseDoor_Click"  IsChecked="{Binding IsSlitDoorClosed}"  IsEnabled="{Binding IsSlitDoorClosed,Converter={StaticResource BoolToBool}}"/>
+                        </ContextMenu>
+                    </Grid.ContextMenu>
+                    <Rectangle  Fill="DimGray" Style="{StaticResource SlitValve_Animation}" Width="8" VerticalAlignment="Top" Height="75" Margin="1,0,1,0" />
+                    <Rectangle  Fill="DimGray" Style="{StaticResource SlitValve_Animation}" Width="8" VerticalAlignment="Bottom" Height="74" Margin="73,0,-71,0" Grid.RowSpan="2" />
+                </Grid>
+            </Grid>
+            <Rectangle x:Name="BG_Status_Copy4"  Cursor="Hand" Margin="66,0,147,140" Grid.Column="2">
+                <Rectangle.Style>
+                    <Style>
+                        <Setter Property="Shape.Fill" Value="WhiteSmoke"/>
+                    </Style>
+                </Rectangle.Style>
+            </Rectangle>
+            <Path Data="M0,0 L 100,0 100,100 90,100 90,10 0,10z" Stroke="Black" Stretch="Fill" Fill="black" Margin="4,86,194,35" RenderTransformOrigin="0.5,0.5" Grid.Column="2">
+                <Path.RenderTransform>
+                    <TransformGroup>
+                        <ScaleTransform ScaleX="-1" ScaleY="-1"/>
+                        <SkewTransform/>
+                        <RotateTransform/>
+                        <TranslateTransform/>
+                    </TransformGroup>
+                </Path.RenderTransform>
+            </Path>
+        </Grid>
+        <Rectangle  Fill="DimGray" Style="{StaticResource SlitValve_Animation}" Width="8" VerticalAlignment="Top" Height="74" RenderTransformOrigin="0.5,0.5" Canvas.Left="264" Canvas.Top="132" HorizontalAlignment="Center" >
+            <Rectangle.RenderTransform>
+                <TransformGroup>
+                    <ScaleTransform/>
+                    <SkewTransform/>
+                    <RotateTransform Angle="89.935"/>
+                    <TranslateTransform/>
+                </TransformGroup>
+            </Rectangle.RenderTransform>
+        </Rectangle>
+        <Rectangle x:Name="BG_Status_Copy" Visibility="{Binding BiasRfPowerOnChamberVisibility}" Cursor="Hand" Height="59" Canvas.Left="228" Canvas.Top="173" Width="75" HorizontalAlignment="Center" VerticalAlignment="Center">
+            <Rectangle.ContextMenu >
+                <ContextMenu>
+                    <MenuItem Header="Create Wafer"  Click="CreateWafer_Click"     IsChecked="{Binding IsHasWafer}" IsEnabled="{Binding IsHasWafer, Converter={StaticResource BoolToBool}}"/>
+                    <MenuItem Header="Delete Wafer"  Click="DeleteWafer_Click"     IsChecked="{Binding IsHasWafer, Converter={StaticResource BoolToBool}}" IsEnabled="{Binding IsHasWafer}"/>
+                </ContextMenu>
+            </Rectangle.ContextMenu>
+            <Rectangle.Style>
+                <Style>
+                    <Setter Property="Shape.Fill" Value="WhiteSmoke"/>
+                    <Style.Triggers>
+                        <DataTrigger Binding="{Binding IsBRFOn, ElementName=chamber}"  Value="True">
+                            <Setter Property="Shape.Fill" Value="#FFFF9292"/>
+                        </DataTrigger>
+                    </Style.Triggers>
+                </Style>
+            </Rectangle.Style>
+        </Rectangle>
+        <Rectangle x:Name="SlitValve_Top_Copy"  Fill="DimGray" Width="44" Height="240"   HorizontalAlignment="Center" Canvas.Left="97" VerticalAlignment="Center" RenderTransformOrigin="0.5,0.5" Canvas.Top="-43"   >
+            <Rectangle.RenderTransform>
+                <TransformGroup>
+                    <ScaleTransform/>
+                    <SkewTransform/>
+                    <RotateTransform Angle="89.857"/>
+                    <TranslateTransform/>
+                </TransformGroup>
+            </Rectangle.RenderTransform>
+        </Rectangle>
+        <Path Data="M0,0 L 50,100 100,0z" Stroke="#FF747474" Stretch="Fill" Height="22" Canvas.Top="62.062" Width="16" Canvas.Left="100.292" HorizontalAlignment="Center" VerticalAlignment="Center" Fill="WhiteSmoke"/>
+        <Path Data="M0,0 L 100,0 100,100 90,100 90,10 0,10z" Stroke="Black" Stretch="Fill" Height="36" Canvas.Top="114" Width="31" HorizontalAlignment="Left" VerticalAlignment="Center" Fill="black"/>
+        <Path Data="M0,0 L 80,0 80,10 10,10 10,210 -30,210 -30,200 0,200z" Stroke="Black" Fill="black" Canvas.Left="199.75" Canvas.Top="118.375" Height="100" Stretch="Fill" Width="39" HorizontalAlignment="Center" VerticalAlignment="Center"/>
+        <Rectangle x:Name="BG_Status_Copy1" Visibility="{Binding BiasRfPowerOnChamberVisibility}" Cursor="Hand" Height="21" Canvas.Left="202" Canvas.Top="48" Width="6" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.583,0.361">
+            <Rectangle.ContextMenu >
+                <ContextMenu>
+                    <MenuItem Header="Create Wafer"  Click="CreateWafer_Click"     IsChecked="{Binding IsHasWafer}" IsEnabled="{Binding IsHasWafer, Converter={StaticResource BoolToBool}}"/>
+                    <MenuItem Header="Delete Wafer"  Click="DeleteWafer_Click"     IsChecked="{Binding IsHasWafer, Converter={StaticResource BoolToBool}}" IsEnabled="{Binding IsHasWafer}"/>
+                </ContextMenu>
+            </Rectangle.ContextMenu>
+            <Rectangle.Style>
+                <Style>
+                    <Setter Property="Shape.Fill" Value="WhiteSmoke"/>
+                    <Style.Triggers>
+                        <DataTrigger Binding="{Binding IsBRFOn, ElementName=chamber}"  Value="True">
+                            <Setter Property="Shape.Fill" Value="#FFFF9292"/>
+                        </DataTrigger>
+                    </Style.Triggers>
+                </Style>
+            </Rectangle.Style>
+        </Rectangle>
+        <Rectangle x:Name="BG_Status_Copy2" Visibility="{Binding BiasRfPowerOnChamberVisibility}" Cursor="Hand" Height="100" Canvas.Left="155" Canvas.Top="16" Width="6" HorizontalAlignment="Center" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5">
+            <Rectangle.RenderTransform>
+                <TransformGroup>
+                    <ScaleTransform/>
+                    <SkewTransform/>
+                    <RotateTransform Angle="89.868"/>
+                    <TranslateTransform/>
+                </TransformGroup>
+            </Rectangle.RenderTransform>
+            <Rectangle.ContextMenu >
+                <ContextMenu>
+                    <MenuItem Header="Create Wafer"  Click="CreateWafer_Click"     IsChecked="{Binding IsHasWafer}" IsEnabled="{Binding IsHasWafer, Converter={StaticResource BoolToBool}}"/>
+                    <MenuItem Header="Delete Wafer"  Click="DeleteWafer_Click"     IsChecked="{Binding IsHasWafer, Converter={StaticResource BoolToBool}}" IsEnabled="{Binding IsHasWafer}"/>
+                </ContextMenu>
+            </Rectangle.ContextMenu>
+            <Rectangle.Style>
+                <Style>
+                    <Setter Property="Shape.Fill" Value="WhiteSmoke"/>
+                    <Style.Triggers>
+                        <DataTrigger Binding="{Binding IsBRFOn, ElementName=chamber}"  Value="True">
+                            <Setter Property="Shape.Fill" Value="#FFFF9292"/>
+                        </DataTrigger>
+                    </Style.Triggers>
+                </Style>
+            </Rectangle.Style>
+        </Rectangle>
+        <Rectangle x:Name="BG_Status_Copy3"  Cursor="Hand" Height="20" Canvas.Left="66" Canvas.Top="83" Width="4" HorizontalAlignment="Left" VerticalAlignment="Center">
+            <Rectangle.Style>
+                <Style>
+                    <Setter Property="Shape.Fill" Value="WhiteSmoke"/>
+                </Style>
+            </Rectangle.Style>
+        </Rectangle>
+        <Rectangle x:Name="BG_Status_Copy5"  Cursor="Hand" Height="20" Canvas.Left="84" Canvas.Top="83" Width="4" HorizontalAlignment="Left" VerticalAlignment="Center">
+            <Rectangle.Style>
+                <Style>
+                    <Setter Property="Shape.Fill" Value="WhiteSmoke"/>
+                </Style>
+            </Rectangle.Style>
+        </Rectangle>
+        <Rectangle x:Name="BG_Status_Copy6"  Cursor="Hand" Height="20" Canvas.Left="75" Canvas.Top="83" Width="4" HorizontalAlignment="Left" VerticalAlignment="Center">
+            <Rectangle.Style>
+                <Style>
+                    <Setter Property="Shape.Fill" Value="WhiteSmoke"/>
+                </Style>
+            </Rectangle.Style>
+        </Rectangle>
+        <Rectangle x:Name="BG_Status_Copy7"  Cursor="Hand" Height="20" Canvas.Left="93" Canvas.Top="83" Width="4" HorizontalAlignment="Left" VerticalAlignment="Center">
+            <Rectangle.Style>
+                <Style>
+                    <Setter Property="Shape.Fill" Value="WhiteSmoke"/>
+                </Style>
+            </Rectangle.Style>
+        </Rectangle>
+        <Rectangle x:Name="BG_Status_Copy8"  Cursor="Hand" Height="20" Canvas.Left="102" Canvas.Top="83" Width="4" HorizontalAlignment="Left" VerticalAlignment="Center">
+            <Rectangle.Style>
+                <Style>
+                    <Setter Property="Shape.Fill" Value="WhiteSmoke"/>
+                </Style>
+            </Rectangle.Style>
+        </Rectangle>
+        <Rectangle x:Name="BG_Status_Copy9"  Cursor="Hand" Height="20" Canvas.Left="111" Canvas.Top="83" Width="4" HorizontalAlignment="Left" VerticalAlignment="Center">
+            <Rectangle.Style>
+                <Style>
+                    <Setter Property="Shape.Fill" Value="WhiteSmoke"/>
+                </Style>
+            </Rectangle.Style>
+        </Rectangle>
+        <Rectangle x:Name="BG_Status_Copy10"  Cursor="Hand" Height="20" Canvas.Left="120" Canvas.Top="83" Width="4" HorizontalAlignment="Left" VerticalAlignment="Center">
+            <Rectangle.Style>
+                <Style>
+                    <Setter Property="Shape.Fill" Value="WhiteSmoke"/>
+                </Style>
+            </Rectangle.Style>
+        </Rectangle>
+        <Rectangle x:Name="BG_Status_Copy11"  Cursor="Hand" Height="20" Canvas.Left="129" Canvas.Top="83" Width="4" HorizontalAlignment="Left" VerticalAlignment="Center">
+            <Rectangle.Style>
+                <Style>
+                    <Setter Property="Shape.Fill" Value="WhiteSmoke"/>
+                </Style>
+            </Rectangle.Style>
+        </Rectangle>
+        <Rectangle x:Name="BG_Status_Copy12"  Cursor="Hand" Height="20" Canvas.Left="138" Canvas.Top="83" Width="4" HorizontalAlignment="Left" VerticalAlignment="Center">
+            <Rectangle.Style>
+                <Style>
+                    <Setter Property="Shape.Fill" Value="WhiteSmoke"/>
+                </Style>
+            </Rectangle.Style>
+        </Rectangle>
+        <Rectangle x:Name="BG_Status_Copy13"  Cursor="Hand" Height="20" Canvas.Left="148" Canvas.Top="83" Width="4" HorizontalAlignment="Left" VerticalAlignment="Center" RenderTransformOrigin="-0.375,0.425">
+            <Rectangle.Style>
+                <Style>
+                    <Setter Property="Shape.Fill" Value="WhiteSmoke"/>
+                </Style>
+            </Rectangle.Style>
+        </Rectangle>
+        <Rectangle x:Name="BG_Status_Copy14" Visibility="{Binding BiasRfPowerOnChamberVisibility}" Cursor="Hand" Height="53" Canvas.Left="10" Canvas.Top="46" Width="21" HorizontalAlignment="Center" VerticalAlignment="Center">
+            <Rectangle.Style>
+                <Style>
+                    <Setter Property="Shape.Fill" Value="#D2B48C "/>
+                    <Style.Triggers>
+                        <DataTrigger Binding="{Binding IsBRFOn, ElementName=chamber}"  Value="True">
+                            <Setter Property="Shape.Fill" Value="#FFFF9292"/>
+                        </DataTrigger>
+                    </Style.Triggers>
+                </Style>
+            </Rectangle.Style>
+        </Rectangle>
+        <Rectangle x:Name="SlitValve_Bottom_Copy"  Fill="DimGray" Width="9" Height="63" Canvas.Left="34" Canvas.Top="204" VerticalAlignment="Center" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Left" >
+            <Rectangle.RenderTransform>
+                <TransformGroup>
+                    <ScaleTransform/>
+                    <SkewTransform/>
+                    <RotateTransform Angle="90"/>
+                    <TranslateTransform/>
+                </TransformGroup>
+            </Rectangle.RenderTransform>
+        </Rectangle>
+
+        <Rectangle x:Name="SlitValve_Bottom_Copy2"  Fill="DimGray" Width="8" HorizontalAlignment="Center" Height="69" Canvas.Left="62" Canvas.Top="231" VerticalAlignment="Top" />
+        <Rectangle x:Name="SlitValve_Bottom_Copy3"  Fill="DimGray" Width="8" Height="104" Canvas.Left="118" Canvas.Top="244" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Left" VerticalAlignment="Center" >
+            <Rectangle.RenderTransform>
+                <TransformGroup>
+                    <ScaleTransform/>
+                    <SkewTransform/>
+                    <RotateTransform Angle="90"/>
+                    <TranslateTransform/>
+                </TransformGroup>
+            </Rectangle.RenderTransform>
+        </Rectangle>
+        <Rectangle x:Name="SlitValve_Bottom_Copy4"  Fill="DimGray" Width="9" Height="63" Canvas.Left="34" Canvas.Top="204" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Center" >
+            <Rectangle.RenderTransform>
+                <TransformGroup>
+                    <ScaleTransform/>
+                    <SkewTransform/>
+                    <RotateTransform Angle="90"/>
+                    <TranslateTransform/>
+                </TransformGroup>
+            </Rectangle.RenderTransform>
+        </Rectangle>
+        <Rectangle x:Name="SlitValve_Bottom_Copy11"  Fill="DimGray" Width="8" HorizontalAlignment="Center" Height="69" Canvas.Left="171" Canvas.Top="231" VerticalAlignment="Top" />
+        <Rectangle  Fill="DimGray" Style="{StaticResource SlitValve_Animation}" Width="8" Height="124" RenderTransformOrigin="0.5,0.5" Canvas.Left="237" Canvas.Top="173" HorizontalAlignment="Left" VerticalAlignment="Center" >
+            <Rectangle.RenderTransform>
+                <TransformGroup>
+                    <ScaleTransform/>
+                    <SkewTransform/>
+                    <RotateTransform Angle="89.935"/>
+                    <TranslateTransform/>
+                </TransformGroup>
+            </Rectangle.RenderTransform>
+        </Rectangle>
+
+
+
+    </Canvas>
+
+
+</UserControl>

+ 134 - 0
Venus/Venus_Themes/UserControls/ChamberDE.xaml.cs

@@ -0,0 +1,134 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using Venus_Themes.Unity;
+
+namespace Venus_Themes.UserControls
+{
+    /// <summary>
+    /// Chamber.xaml 的交互逻辑
+    /// </summary>
+    public partial class ChamberDE : UserControl
+    {
+        public ChamberDE()
+        {
+            InitializeComponent();
+        }
+        public static readonly DependencyProperty IsOpenSlitDoorProperty = DependencyProperty.Register(
+           "IsOpenSlitDoor", typeof(bool), typeof(ChamberDE),
+           new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
+
+
+        public bool IsOpenSlitDoor
+        {
+            get { return (bool)this.GetValue(IsOpenSlitDoorProperty); }
+            set { this.SetValue(IsOpenSlitDoorProperty, value); }
+        }
+
+        public static readonly DependencyProperty IsLiftPinUpProperty = DependencyProperty.Register(
+           "IsLiftPinUp", typeof(bool), typeof(ChamberDE),
+           new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
+        public bool IsLiftPinUp
+        {
+            get { return (bool)this.GetValue(IsLiftPinUpProperty); }
+            set { this.SetValue(IsLiftPinUpProperty, value); }
+        }
+
+
+        public static readonly DependencyProperty IsHasWaferProperty = DependencyProperty.Register(
+          "IsHasWafer", typeof(bool), typeof(ChamberDE),
+          new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
+        public bool IsHasWafer
+        {
+            get { return (bool)this.GetValue(IsHasWaferProperty); }
+            set { this.SetValue(IsHasWaferProperty, value); }
+        }
+
+
+        public static readonly DependencyProperty IsLidOpenProperty = DependencyProperty.Register(
+         "IsLidOpen", typeof(bool), typeof(ChamberDE),
+         new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
+        public bool IsLidOpen
+        {
+            get { return (bool)this.GetValue(IsLidOpenProperty); }
+            set { this.SetValue(IsLidOpenProperty, value); }
+        }
+
+        public static readonly DependencyProperty IsSRFOnProperty = DependencyProperty.Register(
+        "IsSRFOn", typeof(bool), typeof(ChamberDE),
+        new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
+        public bool IsSRFOn
+        {
+            get { return (bool)this.GetValue(IsSRFOnProperty); }
+            set { this.SetValue(IsSRFOnProperty, value); }
+        }
+
+        public static readonly DependencyProperty IsBRFOnProperty = DependencyProperty.Register(
+       "IsBRFOn", typeof(bool), typeof(ChamberDE),
+       new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
+        public bool IsBRFOn
+        {
+            get { return (bool)this.GetValue(IsBRFOnProperty); }
+            set { this.SetValue(IsBRFOnProperty, value); }
+        }
+
+        public static readonly DependencyProperty WaferIDProperty = DependencyProperty.Register(
+          "WaferID", typeof(string), typeof(ChamberDE));
+
+        public string WaferID
+        {
+            get { return (string)this.GetValue(WaferIDProperty); }
+            set { this.SetValue(WaferIDProperty, value); }
+        }
+        public static readonly DependencyProperty ModuleNameProperty = DependencyProperty.Register(
+      "ModuleName", typeof(string), typeof(ChamberDE));
+
+        public string ModuleName
+        {
+            get { return (string)this.GetValue(ModuleNameProperty); }
+            set
+            {
+                this.SetValue(ModuleNameProperty, value);
+            }
+        }
+        public static readonly DependencyProperty IsHasHeaterProperty = DependencyProperty.Register(
+         "IsHasHeater", typeof(bool), typeof(ChamberDE),
+         new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
+        public bool IsHasHeater
+        {
+            get { return (bool)this.GetValue(IsHasHeaterProperty); }
+            set { this.SetValue(IsHasHeaterProperty, value); }
+        }
+        private void CreateWafer_Click(object sender, RoutedEventArgs e)
+        {
+            UIEvents.OnChamberCreateDeleteWafer(new WaferOperation() { ModuleName = ModuleName, IsCreate = true });
+        }
+
+        private void DeleteWafer_Click(object sender, RoutedEventArgs e)
+        {
+            UIEvents.OnChamberCreateDeleteWafer(new WaferOperation() { ModuleName = ModuleName, IsCreate = false });
+
+        }
+        private void OpenDoor_Click(object sender, RoutedEventArgs e)
+        {
+            //var t = ((((this.Parent as Canvas).Parent as Canvas).Parent as UserControl).DataContext).;
+            UIEvents.OnPMDoorRaiseChanged(new DoorPara() { ModuleName = ModuleName, IsOpen = "Open" });
+        }
+
+        private void CloseDoor_Click(object sender, RoutedEventArgs e)
+        {
+            UIEvents.OnPMDoorRaiseChanged(new DoorPara() { ModuleName = ModuleName, IsOpen = "Close" });
+        }
+    }
+}

+ 7 - 0
Venus/Venus_Themes/Venus_Themes.csproj

@@ -128,6 +128,9 @@
     <Compile Include="UserControls\ButterflyValveMessageBox.xaml.cs">
       <DependentUpon>ButterflyValveMessageBox.xaml</DependentUpon>
     </Compile>
+    <Compile Include="UserControls\ChamberDE.xaml.cs">
+      <DependentUpon>ChamberDE.xaml</DependentUpon>
+    </Compile>
     <Compile Include="UserControls\Chamber.xaml.cs">
       <DependentUpon>Chamber.xaml</DependentUpon>
     </Compile>
@@ -330,6 +333,10 @@
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
     </Page>
+    <Page Include="UserControls\ChamberDE.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </Page>
     <Page Include="UserControls\Chamber.xaml">
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>