时序下发增加小数校验

This commit is contained in:
MoYue 2024-06-28 17:51:00 +08:00
parent 5663aeff05
commit e44b29cf11
11 changed files with 882 additions and 435 deletions

View File

@ -33,6 +33,11 @@ namespace InSituLaboratory.Entities
/// </summary> /// </summary>
public string? WorkTime { get; set; } public string? WorkTime { get; set; }
/// <summary>
/// 最小工作时长
/// </summary>
public string? MinWorkTime { get; set; }
} }
} }

View File

@ -40,13 +40,13 @@ namespace InSituLaboratory.Entities
/// 工作时长 /// 工作时长
/// </summary> /// </summary>
public string? WorkTime { get; set; } public float? WorkTime { get; set; }
/// <summary> /// <summary>
/// 循环时长 /// 循环时长
/// </summary> /// </summary>
public string? DurationTime { get; set; } public float? DurationTime { get; set; }
///// <summary> ///// <summary>
/// 创建时间 /// 创建时间

View File

@ -46,13 +46,13 @@ namespace InSituLaboratory.Entities
/// 工作时长 /// 工作时长
/// </summary> /// </summary>
public string? WorkTime { get; set; } public float? WorkTime { get; set; }
/// <summary> /// <summary>
/// 循环时长 /// 循环时长
/// </summary> /// </summary>
public string? DurationTime { get; set; } public float? DurationTime { get; set; }
/// <summary> /// <summary>
/// 创建时间 /// 创建时间

View File

@ -672,7 +672,29 @@ namespace InSituLaboratory.Entities
} }
#endregion #endregion
#region byte数组按长度在前面补0
/// <summary>
/// byte数组按长度在前面补0
/// </summary>
/// <param name="array"></param>
/// <param name="targetLength"></param>
/// <returns></returns>
/// <exception cref="ArgumentNullException"></exception>
/// <exception cref="ArgumentOutOfRangeException"></exception>
public static byte[] PadArrayWithZeros(byte[] array, int targetLength)
{
if (array == null)
throw new ArgumentNullException(nameof(array));
if (targetLength <= 0)
throw new ArgumentOutOfRangeException(nameof(targetLength), "Target length must be a positive integer.");
if (targetLength <= array.Length)
return array; // No need to pad
byte[] paddedArray = new byte[targetLength];
Array.Copy(array, 0, paddedArray, targetLength - array.Length, array.Length);
return paddedArray;
}
#endregion
#region CRC-8 x8+x5+x4+1 0x31(0x131) #region CRC-8 x8+x5+x4+1 0x31(0x131)
/// <summary> /// <summary>

View File

@ -23,5 +23,13 @@ namespace InSituLaboratory.IService
string GetDeviceByDeviceName(string DeviceName); string GetDeviceByDeviceName(string DeviceName);
/// <summary>
/// 根据设备名称获取设备预设工作时长
/// </summary>
/// <param name="DeviceName"></param>
/// <returns></returns>
string GetDeviceByDeviceNameMinTime(string DeviceName);
} }
} }

View File

@ -38,5 +38,24 @@ namespace InSituLaboratory.Service
return workTime; return workTime;
} }
/// <summary>
/// 根据设备名称查询预设最小工作时长
/// </summary>
/// <param name="DeviceName"></param>
/// <returns></returns>
public string GetDeviceByDeviceNameMinTime(string DeviceName)
{
var workTime = "";
var sysDevice = this.Query<SysDevice>(m => m.DeviceName == DeviceName).ToList();
foreach (var item in sysDevice)
{
workTime = item.MinWorkTime;
}
return workTime;
}
} }
} }

View File

@ -20,7 +20,7 @@ namespace InSituLaboratory.Service
/// <returns></returns> /// <returns></returns>
public IEnumerable<SysSequential> GetSequentials(string key) public IEnumerable<SysSequential> GetSequentials(string key)
{ {
return this.Set<SysSequential>().Where(m => m.Sequential == key && m.IsDelete == 0).OrderByDescending(n => n.CreateTime); return this.Set<SysSequential>().Where(m => m.Sequential == key && m.IsDelete == 0).OrderByDescending(n => n.CreateTime).AsNoTracking();
} }
/// <summary> /// <summary>
/// 获取时序子表数据 /// 获取时序子表数据
@ -30,7 +30,7 @@ namespace InSituLaboratory.Service
public IEnumerable<SysSequentialDetails> GetSequentialDetails(int key) public IEnumerable<SysSequentialDetails> GetSequentialDetails(int key)
{ {
return this.Set<SysSequentialDetails>().Where(m => m.SysSquentialID == key && m.IsDelete == 0).OrderBy(n => n.SequenceGroup).ThenBy(m => m.CreateTime); return this.Set<SysSequentialDetails>().Where(m => m.SysSquentialID == key && m.IsDelete == 0).OrderBy(n => n.SequenceGroup).ThenBy(m => m.CreateTime).AsNoTracking();
} }
/// <summary> /// <summary>
@ -41,7 +41,7 @@ namespace InSituLaboratory.Service
public IEnumerable<SysSequentialDetails> GetSequentialDetailList(int key) public IEnumerable<SysSequentialDetails> GetSequentialDetailList(int key)
{ {
return this.Set<SysSequentialDetails>().Where(m => m.Number == key && m.IsDelete == 0); return this.Set<SysSequentialDetails>().Where(m => m.Number == key && m.IsDelete == 0).AsNoTracking();
} }

View File

@ -30,8 +30,10 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
public SysSequentialDetails SysSequentialdata { get; set; } public SysSequentialDetails SysSequentialdata { get; set; }
public string? workTime { get; set; } public string? workTime { get; set; }
public string? minworkTime { get; set; }
public long? workInt { get; set; } public long? workInt { get; set; }
public long? minworkInt { get; set; }
/// <summary> /// <summary>
/// 记录编辑时第一次带入的设备名称 /// 记录编辑时第一次带入的设备名称
@ -88,12 +90,12 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
} }
private string _workTime; private float? _workTime;
/// <summary> /// <summary>
/// 工作时长 /// 工作时长
/// </summary> /// </summary>
public string WorkTime public float? WorkTime
{ {
get { return _workTime; } get { return _workTime; }
set set
@ -103,12 +105,12 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
} }
private string _durationTime; private float? _durationTime;
/// <summary> /// <summary>
/// 循环时长 /// 循环时长
/// </summary> /// </summary>
public string DurationTime public float? DurationTime
{ {
get { return _durationTime; } get { return _durationTime; }
set set
@ -176,12 +178,12 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
System.Windows.Forms.MessageBox.Show("传感器设备不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); System.Windows.Forms.MessageBox.Show("传感器设备不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return; return;
} }
else if (string.IsNullOrEmpty(WorkTime)) else if (WorkTime == null || WorkTime == 0)
{ {
System.Windows.Forms.MessageBox.Show("工作时长不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); System.Windows.Forms.MessageBox.Show("工作时长不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return; return;
} }
else if (string.IsNullOrEmpty(DurationTime)) else if (DurationTime == null || DurationTime == 0)
{ {
System.Windows.Forms.MessageBox.Show("循环时长不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); System.Windows.Forms.MessageBox.Show("循环时长不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return; return;
@ -232,7 +234,7 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
{ {
if (DurationTime != SysSequentialdata1.DurationTime) if (DurationTime != SysSequentialdata1.DurationTime)
{ {
System.Windows.Forms.MessageBox.Show(kind + "- 配置" + SequenceGroup + " 已存在循环时长:" + SysSequentialdata1.DurationTime + "s" + ",无法修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); System.Windows.Forms.MessageBox.Show(kind + "- 配置" + SequenceGroup + " 已存在循环时长:" + SysSequentialdata1.DurationTime + "分钟" + ",无法修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return; return;
} }
} }
@ -241,38 +243,78 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
///工作时长是否已超过传感器预设时间 ///工作时长是否已超过传感器预设时间
workTime = _deviceSvice.GetDeviceByDeviceName(SensorID); workTime = _deviceSvice.GetDeviceByDeviceName(SensorID);
minworkTime = _deviceSvice.GetDeviceByDeviceNameMinTime(SensorID);
if (workTime == "无") if (workTime == "无")
{ {
workTime = "0"; workTime = "0";
} }
workInt = Convert.ToInt64(workTime); if (minworkTime == "无")
{
minworkTime = "0";
}
workInt = Convert.ToInt64(workTime); //设备预设最大工作时长
minworkInt = Convert.ToInt64(minworkTime);//设备预设最小工作时长
switch (SensorID) switch (SensorID)
{ {
case "气相色谱仪": case "气相色谱仪":
if (Convert.ToInt64(WorkTime) > workInt) if (Convert.ToInt64(WorkTime) > workInt)
{ {
System.Windows.Forms.MessageBox.Show(SensorID + "设置的工作时长:" + WorkTime + "h"+ ",已超过设备最大工作时长:" + workTime + "h" +"\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",已超过设备最大工作时长:" + workTime + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
else if (Convert.ToInt64(WorkTime) < minworkInt)
{
System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return; return;
} }
break; break;
case "质谱仪": case "质谱仪":
if (Convert.ToInt64(WorkTime) > workInt) if (Convert.ToInt64(WorkTime) > workInt)
{ {
System.Windows.Forms.MessageBox.Show(SensorID + "设置的工作时长:" + WorkTime + "h"+ ",已超过设备最大工作时长:" + workTime + "h" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",已超过设备最大工作时长:" + workTime + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
else if (Convert.ToInt64(WorkTime) < minworkInt)
{
System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return; return;
} }
break; break;
case "二氧化碳同位素分析仪": case "二氧化碳同位素分析仪":
if (Convert.ToInt64(WorkTime) > workInt) if (Convert.ToInt64(WorkTime) > workInt)
{ {
System.Windows.Forms.MessageBox.Show(SensorID + "设置的工作时长:" + WorkTime + "h"+ ",已超过设备最大工作时长:" + workTime + "h" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",已超过设备最大工作时长:" + workTime + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
else if (Convert.ToInt64(WorkTime) < minworkInt)
{
System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return; return;
} }
break; break;
case "甲烷同位素分析仪": case "甲烷传感器":
if (Convert.ToInt64(WorkTime) > workInt) if (Convert.ToInt64(WorkTime) > workInt)
{ {
System.Windows.Forms.MessageBox.Show(SensorID + "设置的工作时长:" + WorkTime + "h" + ",已超过设备最大工作时长:" + workTime + "h" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + "超过设备最大工作时长:" + workTime + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
else if (Convert.ToInt64(WorkTime) < minworkInt)
{
System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
break;
case "显微拉曼分析仪":
if (Convert.ToInt64(WorkTime) < minworkInt)
{
System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
break;
case "色质联用":
if (Convert.ToInt64(WorkTime) < minworkInt)
{
System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return; return;
} }
break; break;

View File

@ -25,13 +25,13 @@
<RowDefinition /> <RowDefinition />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="90"/> <ColumnDefinition Width="100"/>
<ColumnDefinition/> <ColumnDefinition/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Text="子时序号" Grid.Row="0" VerticalAlignment="Center" Foreground="#888" /> <TextBlock Text="子时序号" Grid.Row="0" VerticalAlignment="Center" Foreground="#888" />
<TextBlock Text="设备编号" Grid.Row="1" VerticalAlignment="Center" Foreground="#888"/> <TextBlock Text="设备编号" Grid.Row="1" VerticalAlignment="Center" Foreground="#888"/>
<TextBlock Text="设备工作时长(h)" Grid.Row="2" VerticalAlignment="Center" Foreground="#888"/> <TextBlock Text="设备工作时长(min)" Grid.Row="2" VerticalAlignment="Center" Foreground="#888"/>
<TextBlock Text="循环间隔时长(h)" Grid.Row="3" VerticalAlignment="Center" Foreground="#888"/> <TextBlock Text="循环间隔时长(min)" Grid.Row="3" VerticalAlignment="Center" Foreground="#888"/>
<hc:ComboBox Grid.Row="0" Name="pb" Margin="0,9,0,8" Grid.Column="1" IsEditable="False" ItemsSource="{Binding DeviceNodes}" DisplayMemberPath="Id" SelectedValuePath="Id" SelectedValue="{Binding SequenceGroup}" RenderTransformOrigin="0.498,0.193"/> <hc:ComboBox Grid.Row="0" Name="pb" Margin="0,9,0,8" Grid.Column="1" IsEditable="False" ItemsSource="{Binding DeviceNodes}" DisplayMemberPath="Id" SelectedValuePath="Id" SelectedValue="{Binding SequenceGroup}" RenderTransformOrigin="0.498,0.193"/>
<hc:ComboBox Grid.Row="1" Margin="0,9,0,8" Grid.Column="1" IsEditable="False" ItemsSource="{Binding DeviceNodes}" DisplayMemberPath="DeviceName" SelectedValuePath="DeviceName" SelectedValue="{Binding SensorID}" RenderTransformOrigin="0.498,0.193"/> <hc:ComboBox Grid.Row="1" Margin="0,9,0,8" Grid.Column="1" IsEditable="False" ItemsSource="{Binding DeviceNodes}" DisplayMemberPath="DeviceName" SelectedValuePath="DeviceName" SelectedValue="{Binding SensorID}" RenderTransformOrigin="0.498,0.193"/>

View File

@ -185,8 +185,8 @@
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Text="子时序号" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="子时序号" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="设备编号(以下设备同一配置依次运行)" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="设备编号(以下设备同一配置依次运行)" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="设备工作时长(h)" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="设备工作时长(min)" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="子序列循环间隔时长(h)" Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="子序列循环间隔时长(min)" Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="操作" Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="操作" Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Grid> </Grid>
@ -306,8 +306,8 @@
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Text="子时序号" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="子时序号" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="设备编号(以下设备同一配置依次运行)" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="设备编号(以下设备同一配置依次运行)" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="设备工作时长(h)" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="设备工作时长(min)" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="子序列循环间隔时长(h)" Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="子序列循环间隔时长(min)" Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="操作" Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="操作" Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Grid> </Grid>
@ -426,8 +426,8 @@
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Text="子时序号" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="子时序号" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="设备编号(以下设备同一配置依次运行)" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="设备编号(以下设备同一配置依次运行)" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="设备工作时长(h)" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="设备工作时长(min)" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="子序列循环间隔时长(h)" Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="子序列循环间隔时长(min)" Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="操作" Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="操作" Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Grid> </Grid>
@ -546,8 +546,8 @@
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Text="子时序号" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="子时序号" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="设备编号(以下设备同一配置依次运行)" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="设备编号(以下设备同一配置依次运行)" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="设备工作时长(h)" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="设备工作时长(min)" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="子序列循环间隔时长(h)" Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="子序列循环间隔时长(min)" Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="操作" Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="操作" Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Grid> </Grid>
@ -666,8 +666,8 @@
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Text="子时序号" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="子时序号" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="设备编号(以下设备同一配置依次运行)" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="设备编号(以下设备同一配置依次运行)" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="设备工作时长(h)" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="设备工作时长(min)" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="子序列循环间隔时长(h)" Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="子序列循环间隔时长(min)" Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="操作" Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Text="操作" Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Grid> </Grid>