diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs index 9ea705e..e7f46c6 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs @@ -174,6 +174,25 @@ namespace JoyD.Windows.CS.Toprie } } + /// + /// 温度类型枚举 + /// + public enum TemperatureType + { + /// + /// 最高温度 + /// + Max = 0, + /// + /// 最低温度 + /// + Min = 1, + /// + /// 平均温度 + /// + Average = 2 + } + /// /// 获取或设置检测区配置 /// @@ -194,6 +213,63 @@ namespace JoyD.Windows.CS.Toprie } } + /// + /// 获取指定测温区的温度值 + /// + /// 温度类型:0表示最高温,1表示最低温,2表示平均温 + /// 测温区编号,0表示全局温度 + /// 温度值 + 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; + } + } + /// /// 加载测温区配置文件 ///