添加空调状态
This commit is contained in:
parent
833c8e5cec
commit
372a289cf7
|
|
@ -89,6 +89,20 @@ public class DeviceTelemetry {
|
|||
}
|
||||
);
|
||||
|
||||
|
||||
|
||||
public static final TelemetryKey<Integer> Cover_State = TelemetryKey.of(
|
||||
"cover_state",
|
||||
Integer.class,
|
||||
value -> {
|
||||
if (value == null) return null;
|
||||
if (value instanceof Number) {
|
||||
return ((Number) value).intValue();
|
||||
}
|
||||
return Integer.parseInt(value.toString());
|
||||
}
|
||||
);
|
||||
|
||||
/**
|
||||
* 网络速率 {"unit_name":"千字节每秒 / KB/s"}
|
||||
*/
|
||||
|
|
@ -466,7 +480,8 @@ public class DeviceTelemetry {
|
|||
Alternate_land_point_Latitude,
|
||||
Alternate_land_point_Longitude,
|
||||
Environment_Temperature,
|
||||
Network_State_Rate
|
||||
Network_State_Rate,
|
||||
Cover_State
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import com.ruoyi.device.service.dto.DockDetailDTO;
|
|||
import com.ruoyi.device.api.enums.AircraftStatusEnum;
|
||||
import com.ruoyi.device.api.enums.DockStatusEnum;
|
||||
import com.ruoyi.device.api.enums.NetworkTypeEnum;
|
||||
import com.ruoyi.device.api.enums.AirConditionerStatusEnum;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -213,6 +214,16 @@ public class BufferDeviceImpl implements IBufferDeviceService
|
|||
}
|
||||
});
|
||||
|
||||
// 设置硬件状态数据
|
||||
// 空调状态(枚举值:0-空闲模式,1-制冷模式,2-制热模式,3-除湿模式等)
|
||||
telemetryMap.get(DeviceTelemetry.AIR_CONDITIONER_STATE)
|
||||
.ifPresent(telemetryValue -> {
|
||||
Integer stateCode = telemetryValue.getValue();
|
||||
if (stateCode != null) {
|
||||
dto.setAirConditionerStatus(mapAirConditionerState(stateCode));
|
||||
}
|
||||
});
|
||||
|
||||
return dto;
|
||||
}
|
||||
|
||||
|
|
@ -258,6 +269,32 @@ public class BufferDeviceImpl implements IBufferDeviceService
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 将空调状态代码映射到 AirConditionerStatusEnum
|
||||
* @param stateCode 空调状态代码
|
||||
* @return 空调状态枚举的 code
|
||||
*/
|
||||
private String mapAirConditionerState(Integer stateCode) {
|
||||
if (stateCode == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// 只映射主要的四种模式,其他状态返回 null
|
||||
switch (stateCode) {
|
||||
case 0:
|
||||
return AirConditionerStatusEnum.IDLE.getCode();
|
||||
case 1:
|
||||
return AirConditionerStatusEnum.COOLING.getCode();
|
||||
case 2:
|
||||
return AirConditionerStatusEnum.HEATING.getCode();
|
||||
case 3:
|
||||
return AirConditionerStatusEnum.DEHUMIDIFYING.getCode();
|
||||
default:
|
||||
// 其他状态(准备模式、退出模式等)不映射
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private AircraftDetailDTO getChangeAbleAirDetailDTO(String deviceIotId)
|
||||
{
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue