修改备降点经纬度的获取
This commit is contained in:
parent
97c671f2ed
commit
18832acf17
|
|
@ -165,6 +165,36 @@ public class TuohengDeviceAttributes {
|
|||
}
|
||||
);
|
||||
|
||||
/**
|
||||
* 备降点位置属性(手动维护)
|
||||
*/
|
||||
|
||||
// 备降点经度 - Double
|
||||
public static final AttributeKey<Double> BACKUP_LONGITUDE = AttributeKey.of(
|
||||
"backup.longitude",
|
||||
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> BACKUP_LATITUDE = AttributeKey.of(
|
||||
"backup.latitude",
|
||||
Double.class,
|
||||
value -> {
|
||||
if (value == null) return null;
|
||||
if (value instanceof Number) {
|
||||
return ((Number) value).doubleValue();
|
||||
}
|
||||
return Double.parseDouble(value.toString());
|
||||
}
|
||||
);
|
||||
|
||||
private TuohengDeviceAttributes() {
|
||||
// 工具类,禁止实例化
|
||||
}
|
||||
|
|
@ -189,7 +219,9 @@ public class TuohengDeviceAttributes {
|
|||
SENDER,
|
||||
DEVICE_ID,
|
||||
HOME_LONGITUDE,
|
||||
HOME_LATITUDE
|
||||
HOME_LATITUDE,
|
||||
BACKUP_LONGITUDE,
|
||||
BACKUP_LATITUDE
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,6 +30,12 @@ import java.util.Map;
|
|||
@Slf4j
|
||||
public class TuohengBufferDeviceImpl implements IBufferDeviceService {
|
||||
|
||||
/**
|
||||
* 默认经纬度 - 南京市
|
||||
*/
|
||||
private static final Double DEFAULT_LONGITUDE = 118.796877;
|
||||
private static final Double DEFAULT_LATITUDE = 32.060255;
|
||||
|
||||
@Autowired
|
||||
private IDockDomain dockDomain;
|
||||
|
||||
|
|
@ -216,18 +222,49 @@ public class TuohengBufferDeviceImpl implements IBufferDeviceService {
|
|||
dto.setFirmwareVersion(value);
|
||||
});
|
||||
|
||||
// 设置机场位置(从属性中获取 home.longitude 和 home.latitude)
|
||||
// 设置机场位置(从属性中获取 home.longitude 和 home.latitude,取不到则使用南京市默认值)
|
||||
log.info("---------- 解析机场位置数据 ----------");
|
||||
attributes.get(TuohengDeviceAttributes.HOME_LONGITUDE)
|
||||
.ifPresent(value -> {
|
||||
log.info("HOME_LONGITUDE 机场经度: {}", value);
|
||||
dto.setLongitude(value);
|
||||
});
|
||||
attributes.get(TuohengDeviceAttributes.HOME_LATITUDE)
|
||||
.ifPresent(value -> {
|
||||
log.info("HOME_LATITUDE 机场纬度: {}", value);
|
||||
dto.setLatitude(value);
|
||||
});
|
||||
Double homeLongitude = attributes.get(TuohengDeviceAttributes.HOME_LONGITUDE)
|
||||
.orElse(null);
|
||||
if (homeLongitude != null) {
|
||||
log.info("HOME_LONGITUDE 机场经度: {}", homeLongitude);
|
||||
dto.setLongitude(homeLongitude);
|
||||
} else {
|
||||
log.info("HOME_LONGITUDE 未设置,使用默认值(南京市): {}", DEFAULT_LONGITUDE);
|
||||
dto.setLongitude(DEFAULT_LONGITUDE);
|
||||
}
|
||||
|
||||
Double homeLatitude = attributes.get(TuohengDeviceAttributes.HOME_LATITUDE)
|
||||
.orElse(null);
|
||||
if (homeLatitude != null) {
|
||||
log.info("HOME_LATITUDE 机场纬度: {}", homeLatitude);
|
||||
dto.setLatitude(homeLatitude);
|
||||
} else {
|
||||
log.info("HOME_LATITUDE 未设置,使用默认值(南京市): {}", DEFAULT_LATITUDE);
|
||||
dto.setLatitude(DEFAULT_LATITUDE);
|
||||
}
|
||||
|
||||
// 设置备降点位置(从属性中获取 backup.longitude 和 backup.latitude,取不到则使用南京市默认值)
|
||||
log.info("---------- 解析备降点位置数据 ----------");
|
||||
Double backupLongitude = attributes.get(TuohengDeviceAttributes.BACKUP_LONGITUDE)
|
||||
.orElse(null);
|
||||
if (backupLongitude != null) {
|
||||
log.info("BACKUP_LONGITUDE 备降点经度: {}", backupLongitude);
|
||||
dto.setBackupLongitude(backupLongitude);
|
||||
} else {
|
||||
log.info("BACKUP_LONGITUDE 未设置,使用默认值(南京市): {}", DEFAULT_LONGITUDE);
|
||||
dto.setBackupLongitude(DEFAULT_LONGITUDE);
|
||||
}
|
||||
|
||||
Double backupLatitude = attributes.get(TuohengDeviceAttributes.BACKUP_LATITUDE)
|
||||
.orElse(null);
|
||||
if (backupLatitude != null) {
|
||||
log.info("BACKUP_LATITUDE 备降点纬度: {}", backupLatitude);
|
||||
dto.setBackupLatitude(backupLatitude);
|
||||
} else {
|
||||
log.info("BACKUP_LATITUDE 未设置,使用默认值(南京市): {}", DEFAULT_LATITUDE);
|
||||
dto.setBackupLatitude(DEFAULT_LATITUDE);
|
||||
}
|
||||
|
||||
// 设置在线状态 - 基于心跳时间戳判断离线,基于无人机mode判断工作状态
|
||||
telemetry.get(TuohengDeviceTelemetry.STATUS).ifPresentOrElse(statusValue -> {
|
||||
|
|
|
|||
Loading…
Reference in New Issue