1添加真值表XML配置
2添加实时气体流量显示界面,封装单独用户控件 3添加后台数据绑定,添加后台数据 4修改S02数据不显示问题
This commit is contained in:
parent
b412ddd3ba
commit
cab224c9f9
File diff suppressed because it is too large
Load Diff
@ -491,7 +491,7 @@ namespace SicModules.PMs
|
|||||||
_pmProcessAbort = new PMProcessAbortRoutine(ModuleHelper.Converter(Module), this);
|
_pmProcessAbort = new PMProcessAbortRoutine(ModuleHelper.Converter(Module), this);
|
||||||
|
|
||||||
//初始化加载真值表
|
//初始化加载真值表
|
||||||
//PMGasTrueTable = new PMGasTrueTableInitialize(Module, $"Config\\PM\\{Module}\\RealtimeGasFlow{Module}.xml");
|
PMGasTrueTable = new PMGasTrueTableInitialize(Module, $"Config\\PM\\{Module}\\RealtimeGasFlow{Module}.xml");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -51,7 +51,7 @@ using System.Windows;
|
|||||||
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
||||||
// 方法是按如下所示使用“*”: :
|
// 方法是按如下所示使用“*”: :
|
||||||
|
|
||||||
[assembly: AssemblyVersion("1.1.0.60824")]
|
[assembly: AssemblyVersion("1.1.0.60825")]
|
||||||
[assembly: AssemblyInformationalVersion("MoS2(无EFEM)")]
|
[assembly: AssemblyInformationalVersion("MoS2(无EFEM)")]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -2750,7 +2750,7 @@
|
|||||||
<Label
|
<Label
|
||||||
Canvas.Left="143"
|
Canvas.Left="143"
|
||||||
Canvas.Top="627"
|
Canvas.Top="627"
|
||||||
Content="Mo(CO)6" />
|
Content="MO(CO)6" />
|
||||||
<controlRT:ValveBig
|
<controlRT:ValveBig
|
||||||
Canvas.Left="143"
|
Canvas.Left="143"
|
||||||
Canvas.Top="426"
|
Canvas.Top="426"
|
||||||
|
|||||||
@ -55,6 +55,6 @@ using System.Windows;
|
|||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
|
|
||||||
|
|
||||||
[assembly: AssemblyVersion("1.1.0.60824")]
|
[assembly: AssemblyVersion("1.1.0.60825")]
|
||||||
[assembly: AssemblyInformationalVersion("MoS2(无EFEM)")]
|
[assembly: AssemblyInformationalVersion("MoS2(无EFEM)")]
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,28 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows;
|
||||||
|
|
||||||
|
namespace MECF.Framework.Common.Aitex.Core.Common.DeviceData
|
||||||
|
{
|
||||||
|
public class GasFlowData
|
||||||
|
{
|
||||||
|
private const double RUN_LOWER_LIMIT = 2.0;
|
||||||
|
|
||||||
|
public string GasName { get; set; }
|
||||||
|
|
||||||
|
public double Flow { get; set; }
|
||||||
|
|
||||||
|
public double RunFlow { get; set; }
|
||||||
|
|
||||||
|
public double VentFlow { get; set; }
|
||||||
|
|
||||||
|
public double Mol { get; set; }
|
||||||
|
|
||||||
|
public bool IsRun => Flow > RUN_LOWER_LIMIT;
|
||||||
|
|
||||||
|
public Visibility RunVisibility => RunFlow > RUN_LOWER_LIMIT ? Visibility.Visible : Visibility.Hidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -234,6 +234,7 @@
|
|||||||
<Compile Include="Aitex\Core\Common\DeviceData\EnumRfPowerRegulationMode.cs" />
|
<Compile Include="Aitex\Core\Common\DeviceData\EnumRfPowerRegulationMode.cs" />
|
||||||
<Compile Include="Aitex\Core\Common\DeviceData\EnumRfPowerWorkMode.cs" />
|
<Compile Include="Aitex\Core\Common\DeviceData\EnumRfPowerWorkMode.cs" />
|
||||||
<Compile Include="Aitex\Core\Common\DeviceData\FlowMeterAlarmItem.cs" />
|
<Compile Include="Aitex\Core\Common\DeviceData\FlowMeterAlarmItem.cs" />
|
||||||
|
<Compile Include="Aitex\Core\Common\DeviceData\GasFlowData.cs" />
|
||||||
<Compile Include="Aitex\Core\Common\DeviceData\GasFlowSum.cs" />
|
<Compile Include="Aitex\Core\Common\DeviceData\GasFlowSum.cs" />
|
||||||
<Compile Include="Aitex\Core\Common\DeviceData\IDeviceData.cs" />
|
<Compile Include="Aitex\Core\Common\DeviceData\IDeviceData.cs" />
|
||||||
<Compile Include="Aitex\Core\Common\DeviceData\IoDevice\AITProcessRunData.cs" />
|
<Compile Include="Aitex\Core\Common\DeviceData\IoDevice\AITProcessRunData.cs" />
|
||||||
|
|||||||
@ -64,7 +64,7 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.GasFlow
|
|||||||
SC.RegisterValueChangedCallback($"PM.{ModuleName}.Efficiency.{GasFlowRatioName}", OnGasFlowRatioSCChanged);
|
SC.RegisterValueChangedCallback($"PM.{ModuleName}.Efficiency.{GasFlowRatioName}", OnGasFlowRatioSCChanged);
|
||||||
GasFlowRatioValue = SC.SafeGetValue<double>($"PM.{ModuleName}.Efficiency.{GasFlowRatioName}", 1d);
|
GasFlowRatioValue = SC.SafeGetValue<double>($"PM.{ModuleName}.Efficiency.{GasFlowRatioName}", 1d);
|
||||||
|
|
||||||
if (GasName == "PN2_Vent")
|
if (GasName == "O2_Vent")
|
||||||
DATA.Subscribe($"{ModuleName}.GasRealTimeFlow.{GasName}.FeedBackSpecial", () => PN2_VentSpecial, SubscriptionAttribute.FLAG.IgnoreSaveDB);//仅作为显示用,不存储数据库
|
DATA.Subscribe($"{ModuleName}.GasRealTimeFlow.{GasName}.FeedBackSpecial", () => PN2_VentSpecial, SubscriptionAttribute.FLAG.IgnoreSaveDB);//仅作为显示用,不存储数据库
|
||||||
|
|
||||||
DATA.Subscribe($"{ModuleName}.GasRealTimeFlow.{GasName}.FeedBack", () => GasFlowFeedBack);
|
DATA.Subscribe($"{ModuleName}.GasRealTimeFlow.{GasName}.FeedBack", () => GasFlowFeedBack);
|
||||||
@ -93,9 +93,9 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.GasFlow
|
|||||||
{
|
{
|
||||||
|
|
||||||
//PN2是特殊计算
|
//PN2是特殊计算
|
||||||
if (GasName == "PN2_Run")
|
if (GasName == "O2_Run")
|
||||||
_feedBack += GasTrueTableRowList[i].AccumulationPN2Run();
|
_feedBack += GasTrueTableRowList[i].AccumulationPN2Run();
|
||||||
else if (GasName == "PN2_Vent")
|
else if (GasName == "O2_Vent")
|
||||||
{
|
{
|
||||||
double cache = GasTrueTableRowList[i].AccumulationPN2Run();
|
double cache = GasTrueTableRowList[i].AccumulationPN2Run();
|
||||||
if (i == 2)
|
if (i == 2)
|
||||||
|
|||||||
@ -46,7 +46,7 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.GasFlow
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (GasName.Contains("PN2"))//PN2是特殊计算不能在此初始化
|
if (GasName=="O2_Run" || GasName == "O2_Vent")//PN2是特殊计算不能在此初始化
|
||||||
return;
|
return;
|
||||||
|
|
||||||
foreach (var rowOutputs in XMLOutputList)
|
foreach (var rowOutputs in XMLOutputList)
|
||||||
@ -111,13 +111,7 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.GasFlow
|
|||||||
|
|
||||||
foreach (var rowOutputs in XMLOutputList)
|
foreach (var rowOutputs in XMLOutputList)
|
||||||
{
|
{
|
||||||
if (rowOutputs.ControlName.Contains("Mfc5"))
|
if (rowOutputs.ControlName.Contains("Mfc6"))
|
||||||
{
|
|
||||||
//Output配置的单元格
|
|
||||||
var _mfc = DEVICE.GetDevice<IoMFC>($"{ModuleName}.{rowOutputs.ControlName}");
|
|
||||||
volue += _mfc.FeedBack * rowOutputs.Value;
|
|
||||||
}
|
|
||||||
else if (rowOutputs.ControlName.Contains("Mfc6"))
|
|
||||||
{
|
{
|
||||||
//特殊气体流量
|
//特殊气体流量
|
||||||
var _mfc3 = DEVICE.GetDevice<IoMFC>($"{ModuleName}.Mfc3");
|
var _mfc3 = DEVICE.GetDevice<IoMFC>($"{ModuleName}.Mfc3");
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1585,102 +1585,6 @@ namespace MECF.Framework.UI.Client.CenterViews.Modules.PM
|
|||||||
public bool IsTCSRunMode => V53.IsOpen;
|
public bool IsTCSRunMode => V53.IsOpen;
|
||||||
public bool IsTMARunMode => V41.IsOpen && !V42.IsOpen;
|
public bool IsTMARunMode => V41.IsOpen && !V42.IsOpen;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[Subscription("GasRealTimeFlow.Ar_Run.FeedBack")]
|
|
||||||
public double ArFlow_Run { get; set; }
|
|
||||||
|
|
||||||
[Subscription("GasRealTimeFlow.Ar_Vent.FeedBack")]
|
|
||||||
public double ArFlow_Vent { get; set; }
|
|
||||||
|
|
||||||
public double ArFlow => ArFlow_Run > 0 ? ArFlow_Run : ArFlow_Vent;
|
|
||||||
|
|
||||||
public double ArMol => GetMol(ArFlow_Run);
|
|
||||||
|
|
||||||
[Subscription("GasRealTimeFlow.H2_Run.FeedBack")]
|
|
||||||
public double H2_Run { get; set; }
|
|
||||||
|
|
||||||
[Subscription("GasRealTimeFlow.H2_Vent.FeedBack")]
|
|
||||||
public double H2_Vent { get; set; }
|
|
||||||
|
|
||||||
public double H2Flow => H2_Run > 0 ? H2_Run : H2_Vent;
|
|
||||||
|
|
||||||
public double H2Mol => GetMol(H2_Run);
|
|
||||||
|
|
||||||
[Subscription("GasRealTimeFlow.PN2_Run.FeedBack")]
|
|
||||||
public double PN2_Run { get; set; }
|
|
||||||
|
|
||||||
[Subscription("GasRealTimeFlow.PN2_Vent.FeedBackSpecial")]
|
|
||||||
public double PN2_Vent { get; set; }
|
|
||||||
|
|
||||||
public double PN2Flow => PN2_Run + PN2_Vent;//=> GetPN2MFCFlow(IsPN2RunMode) * _pn2FlowRatio;
|
|
||||||
|
|
||||||
public double PN2Mol => GetMol(PN2Flow);
|
|
||||||
|
|
||||||
[Subscription("GasRealTimeFlow.HCL_Run.FeedBack")]
|
|
||||||
public double HCL_Run { get; set; }
|
|
||||||
|
|
||||||
[Subscription("GasRealTimeFlow.HCL_Vent.FeedBack")]
|
|
||||||
public double HCL_Vent { get; set; }
|
|
||||||
|
|
||||||
public double HCLFlow => HCL_Run + HCL_Vent;
|
|
||||||
|
|
||||||
public double HCLMol => GetMol(HCLFlow);
|
|
||||||
|
|
||||||
[Subscription("GasRealTimeFlow.SiH4_Run.FeedBack")]
|
|
||||||
public double SiH4_Run { get; set; }
|
|
||||||
|
|
||||||
[Subscription("GasRealTimeFlow.SiH4_Vent.FeedBack")]
|
|
||||||
public double SiH4_Vent { get; set; }
|
|
||||||
|
|
||||||
public double SiH4Flow => SiH4_Run + SiH4_Vent;
|
|
||||||
|
|
||||||
public double SIH4Mol => GetMol(SiH4Flow);
|
|
||||||
|
|
||||||
[Subscription("GasRealTimeFlow.C2H4_Run.FeedBack")]
|
|
||||||
public double C2H4_Run { get; set; }
|
|
||||||
|
|
||||||
[Subscription("GasRealTimeFlow.C2H4_Vent.FeedBack")]
|
|
||||||
public double C2H4_Vent { get; set; }
|
|
||||||
|
|
||||||
public double C2H4Flow => C2H4_Run + C2H4_Vent;
|
|
||||||
|
|
||||||
public double C2H4Mol => GetMol(C2H4Flow);
|
|
||||||
|
|
||||||
[Subscription("GasRealTimeFlow.TCS_Run.FeedBack")]
|
|
||||||
public double TCS_Run { get; set; }
|
|
||||||
|
|
||||||
[Subscription("GasRealTimeFlow.TCS_Vent.FeedBack")]
|
|
||||||
public double TCS_Vent { get; set; }
|
|
||||||
|
|
||||||
public double TCSFlow => TCS_Run + TCS_Vent;
|
|
||||||
|
|
||||||
public double TCSMol => GetMol(TCSFlow);
|
|
||||||
|
|
||||||
[Subscription("GasRealTimeFlow.TMA_Run.FeedBack")]
|
|
||||||
public double TMA_Run { get; set; }
|
|
||||||
|
|
||||||
[Subscription("GasRealTimeFlow.TMA_Vent.FeedBack")]
|
|
||||||
public double TMA_Vent { get; set; }
|
|
||||||
|
|
||||||
public double TMAFlow => TMA_Run + TMA_Vent;
|
|
||||||
|
|
||||||
public double TMAMol => GetMol(TMAFlow);
|
|
||||||
|
|
||||||
public bool ISPN2Flow => PN2Flow > 0 && IsPN2RunMode;
|
|
||||||
public bool ISHCLFlow => HCLFlow > 0 && IsHCLRunMode;
|
|
||||||
public bool ISSiH4Flow => SiH4Flow > 0 && IsSiH4RunMode;
|
|
||||||
public bool ISC2H4Flow => C2H4Flow > 0 && IsC2H4RunMode;
|
|
||||||
public bool ISArFlow => ArFlow_Run > 0;
|
|
||||||
public bool ISH2Flow => H2_Run > 0;
|
|
||||||
public bool ISTCSFlow => TCSFlow > 0 && IsTCSRunMode;
|
|
||||||
public bool ISTMAFlow => TMAFlow > 0 && IsTMARunMode;
|
|
||||||
|
|
||||||
private double GetMol(double fedback)
|
|
||||||
{
|
|
||||||
return fedback / 1000 / 22.4141;
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Process Data Statistic
|
#region Process Data Statistic
|
||||||
|
|
||||||
[Subscription("ProcessDataStat.RealtimeList")]
|
[Subscription("ProcessDataStat.RealtimeList")]
|
||||||
@ -1689,6 +1593,38 @@ namespace MECF.Framework.UI.Client.CenterViews.Modules.PM
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 真值表方式统计流量
|
#region 真值表方式统计流量
|
||||||
|
public GasFlowData H2FlowData => GetFlow("H2");
|
||||||
|
public GasFlowData N2FlowData => GetFlow("N2");
|
||||||
|
public GasFlowData WCO6FlowData => GetFlow("WCO6");
|
||||||
|
public GasFlowData MOFlowData => GetFlow("MO");
|
||||||
|
public GasFlowData MOCO6FlowData => GetFlow("MOCO6");
|
||||||
|
public GasFlowData CS2FlowData => GetFlow("CS2");
|
||||||
|
public GasFlowData O2FlowData => GetFlow("O2");
|
||||||
|
public GasFlowData H2SeFlowData => GetFlow("H2Se");
|
||||||
|
public GasFlowData SO2FlowData => GetFlow("SO2");
|
||||||
|
public GasFlowData H2SFlowData => GetFlow("H2S");
|
||||||
|
|
||||||
|
private GasFlowData GetFlow(string gasName)
|
||||||
|
{
|
||||||
|
var run = (double)QueryDataClient.Instance.Service.GetData($"{SystemName}.GasRealTimeFlow.{gasName}_Run.FeedBack");
|
||||||
|
var vent = (double)QueryDataClient.Instance.Service.GetData($"{SystemName}.GasRealTimeFlow.{gasName}_Vent.FeedBack");
|
||||||
|
|
||||||
|
GasFlowData flow = new GasFlowData
|
||||||
|
{
|
||||||
|
GasName = gasName,
|
||||||
|
RunFlow = run,
|
||||||
|
VentFlow = vent,
|
||||||
|
Flow = run + vent,
|
||||||
|
Mol = GetMol(run)
|
||||||
|
};
|
||||||
|
return flow;
|
||||||
|
}
|
||||||
|
|
||||||
|
private double GetMol(double fedback)
|
||||||
|
{
|
||||||
|
return fedback / 1000 / 22.4141;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 返回ViewModel绑定的视图对象。
|
/// 返回ViewModel绑定的视图对象。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
64
Framework/MECF.Framework.UI.Core/Control/GasFlow.xaml
Normal file
64
Framework/MECF.Framework.UI.Core/Control/GasFlow.xaml
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
<UserControl
|
||||||
|
x:Class="Aitex.Core.UI.Control.GasFlow"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:control="clr-namespace:Aitex.Core.UI.Control;assembly=MECF.Framework.UI.Core"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:local="clr-namespace:Aitex.Core.UI.Control"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
d:Background="#91b0cd"
|
||||||
|
d:DesignHeight="26"
|
||||||
|
d:DesignWidth="287"
|
||||||
|
mc:Ignorable="d">
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<Grid Visibility="{Binding FlowData.RunVisibility, RelativeSource={RelativeSource AncestorType=UserControl}}">
|
||||||
|
<local:FlowPipeV2
|
||||||
|
Width="62"
|
||||||
|
Height="9"
|
||||||
|
FlowOrientation="Horizontal"
|
||||||
|
GasType="Slow"
|
||||||
|
IsFlowing="True"
|
||||||
|
RenderTransformOrigin="0.5,0.5">
|
||||||
|
<local:FlowPipeV2.RenderTransform>
|
||||||
|
<TransformGroup>
|
||||||
|
<RotateTransform Angle="180" />
|
||||||
|
</TransformGroup>
|
||||||
|
</local:FlowPipeV2.RenderTransform>
|
||||||
|
</local:FlowPipeV2>
|
||||||
|
<Border
|
||||||
|
Width="62"
|
||||||
|
Height="9"
|
||||||
|
Background="Gold"
|
||||||
|
Opacity="0.8" />
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
<Border
|
||||||
|
Width="75"
|
||||||
|
Height="26"
|
||||||
|
Background="LightGray"
|
||||||
|
BorderBrush="Gray"
|
||||||
|
BorderThickness="1">
|
||||||
|
<TextBlock Text="{Binding FlowData.RunFlow, StringFormat={}{0:f1}, RelativeSource={RelativeSource AncestorType=UserControl}}" />
|
||||||
|
</Border>
|
||||||
|
<Border
|
||||||
|
Width="75"
|
||||||
|
Height="26"
|
||||||
|
Background="Gold"
|
||||||
|
BorderBrush="Gray"
|
||||||
|
BorderThickness="1"
|
||||||
|
Opacity="0.8">
|
||||||
|
<TextBlock
|
||||||
|
HorizontalAlignment="Center"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Text="{Binding FlowData.GasName, RelativeSource={RelativeSource AncestorType=UserControl}}" />
|
||||||
|
</Border>
|
||||||
|
<Border
|
||||||
|
Width="75"
|
||||||
|
Height="26"
|
||||||
|
Background="LightGray"
|
||||||
|
BorderBrush="Gray"
|
||||||
|
BorderThickness="1">
|
||||||
|
<TextBlock Text="{Binding FlowData.VentFlow, StringFormat={}{0:f1}, RelativeSource={RelativeSource AncestorType=UserControl}}" />
|
||||||
|
</Border>
|
||||||
|
</StackPanel>
|
||||||
|
</UserControl>
|
||||||
28
Framework/MECF.Framework.UI.Core/Control/GasFlow.xaml.cs
Normal file
28
Framework/MECF.Framework.UI.Core/Control/GasFlow.xaml.cs
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
using MECF.Framework.Common.Aitex.Core.Common.DeviceData;
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
|
||||||
|
namespace Aitex.Core.UI.Control
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// GasFlow.xaml 的交互逻辑
|
||||||
|
/// </summary>
|
||||||
|
public partial class GasFlow : UserControl
|
||||||
|
{
|
||||||
|
public GasFlow()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
public GasFlowData FlowData
|
||||||
|
{
|
||||||
|
get => (GasFlowData)GetValue(FlowDataProperty);
|
||||||
|
set => SetValue(FlowDataProperty, value);
|
||||||
|
}
|
||||||
|
public static readonly DependencyProperty FlowDataProperty =
|
||||||
|
DependencyProperty.Register(nameof(FlowData), typeof(GasFlowData), typeof(GasFlow), new PropertyMetadata(null));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
57
Framework/MECF.Framework.UI.Core/Control/GasFlow2.xaml
Normal file
57
Framework/MECF.Framework.UI.Core/Control/GasFlow2.xaml
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
<UserControl
|
||||||
|
x:Class="Aitex.Core.UI.Control.GasFlow2"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:local="clr-namespace:Aitex.Core.UI.Control"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
d:Background="#91b0cd"
|
||||||
|
d:DesignHeight="26"
|
||||||
|
d:DesignWidth="287"
|
||||||
|
mc:Ignorable="d">
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<Border
|
||||||
|
Width="75"
|
||||||
|
Height="26"
|
||||||
|
Background="LightGray"
|
||||||
|
BorderBrush="Gray"
|
||||||
|
BorderThickness="1">
|
||||||
|
<TextBlock Text="{Binding FlowData.VentFlow, StringFormat={}{0:f1}, RelativeSource={RelativeSource AncestorType=UserControl}}" />
|
||||||
|
</Border>
|
||||||
|
<Border
|
||||||
|
Width="75"
|
||||||
|
Height="26"
|
||||||
|
Background="Cyan"
|
||||||
|
BorderBrush="Gray"
|
||||||
|
BorderThickness="1"
|
||||||
|
Opacity="0.8">
|
||||||
|
<TextBlock
|
||||||
|
HorizontalAlignment="Center"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Text="{Binding FlowData.GasName, RelativeSource={RelativeSource AncestorType=UserControl}}" />
|
||||||
|
</Border>
|
||||||
|
<Border
|
||||||
|
Width="75"
|
||||||
|
Height="26"
|
||||||
|
Background="LightGray"
|
||||||
|
BorderBrush="Gray"
|
||||||
|
BorderThickness="1">
|
||||||
|
<TextBlock Text="{Binding FlowData.RunFlow, StringFormat={}{0:f1}, RelativeSource={RelativeSource AncestorType=UserControl}}" />
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
<Grid Visibility="{Binding FlowData.RunVisibility, RelativeSource={RelativeSource AncestorType=UserControl}}">
|
||||||
|
<local:FlowPipeV2
|
||||||
|
Width="62"
|
||||||
|
Height="9"
|
||||||
|
FlowOrientation="Horizontal"
|
||||||
|
GasType="Slow"
|
||||||
|
IsFlowing="True"
|
||||||
|
RenderTransformOrigin="0.5,0.5" />
|
||||||
|
<Border
|
||||||
|
Width="62"
|
||||||
|
Height="9"
|
||||||
|
Background="Cyan"
|
||||||
|
Opacity="0.8" />
|
||||||
|
</Grid>
|
||||||
|
</StackPanel>
|
||||||
|
</UserControl>
|
||||||
28
Framework/MECF.Framework.UI.Core/Control/GasFlow2.xaml.cs
Normal file
28
Framework/MECF.Framework.UI.Core/Control/GasFlow2.xaml.cs
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
using MECF.Framework.Common.Aitex.Core.Common.DeviceData;
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
|
||||||
|
namespace Aitex.Core.UI.Control
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// GasFlow2.xaml 的交互逻辑
|
||||||
|
/// </summary>
|
||||||
|
public partial class GasFlow2 : UserControl
|
||||||
|
{
|
||||||
|
public GasFlow2()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
public GasFlowData FlowData
|
||||||
|
{
|
||||||
|
get => (GasFlowData)GetValue(FlowDataProperty);
|
||||||
|
set => SetValue(FlowDataProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static readonly DependencyProperty FlowDataProperty =
|
||||||
|
DependencyProperty.Register(nameof(FlowData), typeof(GasFlowData), typeof(GasFlow2), new PropertyMetadata(null));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -108,6 +108,12 @@
|
|||||||
<DependentUpon>CheckValue2.xaml</DependentUpon>
|
<DependentUpon>CheckValue2.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Control\ColorPicker.xaml.cs" />
|
<Compile Include="Control\ColorPicker.xaml.cs" />
|
||||||
|
<Compile Include="Control\GasFlow.xaml.cs">
|
||||||
|
<DependentUpon>GasFlow.xaml</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Control\GasFlow2.xaml.cs">
|
||||||
|
<DependentUpon>GasFlow2.xaml</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Control\GasSplitterControl.xaml.cs">
|
<Compile Include="Control\GasSplitterControl.xaml.cs">
|
||||||
<DependentUpon>GasSplitterControl.xaml</DependentUpon>
|
<DependentUpon>GasSplitterControl.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
@ -449,6 +455,14 @@
|
|||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
</Page>
|
</Page>
|
||||||
<Page Include="Control\ColorPicker.xaml" />
|
<Page Include="Control\ColorPicker.xaml" />
|
||||||
|
<Page Include="Control\GasFlow.xaml">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
<Generator>MSBuild:Compile</Generator>
|
||||||
|
</Page>
|
||||||
|
<Page Include="Control\GasFlow2.xaml">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
<Generator>MSBuild:Compile</Generator>
|
||||||
|
</Page>
|
||||||
<Page Include="Control\GasSplitterControl.xaml">
|
<Page Include="Control\GasSplitterControl.xaml">
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user