抽取方法

This commit is contained in:
zqm
2026-01-12 09:07:10 +08:00
parent ac8edf474b
commit 39600b0bbe

View File

@@ -174,6 +174,25 @@ namespace JoyD.Windows.CS.Toprie
} }
} }
/// <summary>
/// 温度类型枚举
/// </summary>
public enum TemperatureType
{
/// <summary>
/// 最高温度
/// </summary>
Max = 0,
/// <summary>
/// 最低温度
/// </summary>
Min = 1,
/// <summary>
/// 平均温度
/// </summary>
Average = 2
}
/// <summary> /// <summary>
/// 获取或设置检测区配置 /// 获取或设置检测区配置
/// </summary> /// </summary>
@@ -194,6 +213,63 @@ namespace JoyD.Windows.CS.Toprie
} }
} }
/// <summary>
/// 获取指定测温区的温度值
/// </summary>
/// <param name="tempType">温度类型0表示最高温1表示最低温2表示平均温</param>
/// <param name="zoneIndex">测温区编号0表示全局温度</param>
/// <returns>温度值</returns>
public float GetAreaTemp(int tempType, int zoneIndex)
{
// 检查DeviceManager是否为空或未连接
if (_deviceManager == null || _deviceManager.ConnectionStatus != ConnectionStatus.Connected)
{
return float.NaN;
}
// 获取当前温度数据
TemperatureData temperatureData = _deviceManager.LastTemperature;
if (temperatureData == null)
{
return float.NaN;
}
// 全局温度
if (zoneIndex == 0)
{
switch (tempType)
{
case 0: // 最高温
return temperatureData.MaxTemperature;
case 1: // 最低温
return temperatureData.MinTemperature;
case 2: // 平均温
return temperatureData.AverageTemperature;
default:
return float.NaN;
}
}
// 特定测温区温度
else
{
if (temperatureData.ZoneTemperatures.TryGetValue(zoneIndex, out var zoneTempData))
{
switch (tempType)
{
case 0: // 最高温
return zoneTempData.MaxTemperature;
case 1: // 最低温
return zoneTempData.MinTemperature;
case 2: // 平均温
return zoneTempData.AverageTemperature;
default:
return float.NaN;
}
}
return float.NaN;
}
}
/// <summary> /// <summary>
/// 加载测温区配置文件 /// 加载测温区配置文件
/// </summary> /// </summary>