Compare commits

...

2 Commits

Author SHA1 Message Date
孙小云 8a418c063d 添加充放电状态 2026-01-28 15:57:01 +08:00
孙小云 a636c9a858 添加充放电状态 2026-01-28 15:52:20 +08:00
4 changed files with 86 additions and 1 deletions

View File

@ -240,6 +240,20 @@ public class DeviceTelemetry {
}
);
/**
* 电量百分比
*/
public static final TelemetryKey<Integer> Drone_Charge_State_Capacity_Percent = TelemetryKey.of(
"drone_charge_state.capacity_percent",
Integer.class,
value -> {
if (value == null) return null;
if (value instanceof Number) {
return ((Number) value).intValue();
}
return Integer.parseInt(value.toString());
}
);
/**
*
@ -273,6 +287,22 @@ public class DeviceTelemetry {
}
);
/**
* 无人机 position_state.gps_number GPS 搜星数量
*/
public static final TelemetryKey<Integer> Position_State_GPS_Number = TelemetryKey.of(
"position_state.gps_number",
Integer.class,
value -> {
if (value == null) return null;
if (value instanceof Number) {
return ((Number) value).intValue();
}
return Integer.parseInt(value.toString());
}
);
/**
* 风速
*/
@ -499,7 +529,9 @@ public class DeviceTelemetry {
Alternate_land_point_Longitude,
Environment_Temperature,
Network_State_Rate,
Cover_State
Cover_State,
Drone_Charge_State_Capacity_Percent,
Position_State_GPS_Number
);
}

View File

@ -70,6 +70,9 @@ public class AircraftDetailDTO implements Serializable
/** RTK信号 */
private Integer rtkSignal;
/** GPS信号 */
private Integer gpsSignal;
/** 限高 */
private Integer maxAltitude;

View File

@ -125,6 +125,11 @@ public class DockDetailDTO implements Serializable
/** 充放电状态 */
private String chargingStatus;
/**
* 电量百分比
*/
private Integer capacity_percent;
/** 舱内温度 */
private Double cabinTemperature;

View File

@ -340,6 +340,23 @@ public class BufferDeviceImpl implements IBufferDeviceService
() -> log.warn("未获取到经度数据dockerDeviceIotId: {}", dockerDeviceIotId)
);
// 无人机充电状态枚举值0-空闲1-充电中
telemetryMap.get(DeviceTelemetry.Drone_Charge_State_State)
.ifPresent(telemetryValue -> {
Integer chargeState = telemetryValue.getValue();
if (chargeState != null) {
String chargingStatus = mapChargeStateToStatus(chargeState);
dto.setChargingStatus(chargingStatus);
}
});
// 电量百分比
telemetryMap.get(DeviceTelemetry.Drone_Charge_State_Capacity_Percent)
.ifPresent(telemetryValue -> {
Integer capacityPercent = telemetryValue.getValue();
dto.setCapacity_percent(capacityPercent);
});
return dto;
}
@ -385,6 +402,26 @@ public class BufferDeviceImpl implements IBufferDeviceService
}
}
/**
* 将充电状态代码映射到充电状态字符串
* @param chargeState 充电状态代码0-空闲1-充电中
* @return 充电状态字符串
*/
private String mapChargeStateToStatus(Integer chargeState) {
if (chargeState == null) {
return "未知";
}
switch (chargeState) {
case 0:
return "FREE";
case 1:
return "CHARGING";
default:
return "UNKNOWN";
}
}
/**
* 将空调状态代码映射到 AirConditionerStatusEnum
* @param stateCode 空调状态代码
@ -465,6 +502,14 @@ public class BufferDeviceImpl implements IBufferDeviceService
}
});
telemetryMap.get(DeviceTelemetry.Position_State_GPS_Number)
.ifPresent(telemetryValue -> {
Integer gpsNumber = telemetryValue.getValue();
if (gpsNumber != null) {
dto.setGpsSignal(gpsNumber);
}
});
// 限高
telemetryMap.get(DeviceTelemetry.Height_Limit)
.ifPresent(telemetryValue -> dto.setMaxAltitude(telemetryValue.getValue()));