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