环境温度和湿度也从IOT读取

This commit is contained in:
孙小云 2026-02-06 14:38:49 +08:00
parent e5a642b4d5
commit 5eafcff343
3 changed files with 46 additions and 6 deletions

View File

@ -236,6 +236,36 @@ public class TuohengDeviceAttributes {
value -> value != null ? value.toString() : null value -> value != null ? value.toString() : null
); );
/**
* 环境数据属性手动维护
*/
// 环境温度 - Double
public static final AttributeKey<Double> ENVIRONMENT_TEMPERATURE = AttributeKey.of(
"environmentTemperature",
Double.class,
value -> {
if (value == null) return null;
if (value instanceof Number) {
return ((Number) value).doubleValue();
}
return Double.parseDouble(value.toString());
}
);
// 环境湿度 - Double
public static final AttributeKey<Double> ENVIRONMENT_HUMIDITY = AttributeKey.of(
"environmentHumidity",
Double.class,
value -> {
if (value == null) return null;
if (value instanceof Number) {
return ((Number) value).doubleValue();
}
return Double.parseDouble(value.toString());
}
);
private TuohengDeviceAttributes() { private TuohengDeviceAttributes() {
// 工具类禁止实例化 // 工具类禁止实例化
} }
@ -265,7 +295,9 @@ public class TuohengDeviceAttributes {
BACKUP_LATITUDE, BACKUP_LATITUDE,
RUNNING_DURATION, RUNNING_DURATION,
MISSION_COUNT, MISSION_COUNT,
AIR_CONDITIONER_STATUS AIR_CONDITIONER_STATUS,
ENVIRONMENT_TEMPERATURE,
ENVIRONMENT_HUMIDITY
); );
} }

View File

@ -114,8 +114,8 @@ public class DockDetailDTO implements Serializable
/** 舱门状态 */ /** 舱门状态 */
private String cabinDoorStatus; private String cabinDoorStatus;
/** 机场运行状态 */ // /** 机场运行状态 */
private String dockRunStatus; // private String dockRunStatus;
/** 舱内摄像头 */ /** 舱内摄像头 */
private String internalCamera; private String internalCamera;

View File

@ -373,11 +373,19 @@ public class TuohengBufferDeviceImpl implements IBufferDeviceService {
// 设置环境数据 // 设置环境数据
log.info("---------- 解析气象数据 ----------"); log.info("---------- 解析气象数据 ----------");
telemetry.get(TuohengDeviceTelemetry.NEST_INNER_TEMP) // 环境温度和湿度从属性中获取手动维护取不到则为 null
attributes.get(TuohengDeviceAttributes.ENVIRONMENT_TEMPERATURE)
.ifPresent(value -> { .ifPresent(value -> {
log.info("环境温度(使用舱内温度): {}", value.getValue()); log.info("ENVIRONMENT_TEMPERATURE 环境温度: {}", value);
dto.setEnvironmentTemperature(value.getValue()); dto.setEnvironmentTemperature(value);
}); });
attributes.get(TuohengDeviceAttributes.ENVIRONMENT_HUMIDITY)
.ifPresent(value -> {
log.info("ENVIRONMENT_HUMIDITY 环境湿度: {}", value);
dto.setEnvironmentHumidity(value);
});
// 风速和降雨量从遥测数据中获取
telemetry.get(TuohengDeviceTelemetry.WEATHER_WIND_SPEED) telemetry.get(TuohengDeviceTelemetry.WEATHER_WIND_SPEED)
.ifPresent(value -> { .ifPresent(value -> {
log.info("WEATHER_WIND_SPEED 风速: {}", value.getValue()); log.info("WEATHER_WIND_SPEED 风速: {}", value.getValue());