处理机场飞行控制数据
This commit is contained in:
parent
69bb49c869
commit
a4950f3d0e
|
|
@ -45,7 +45,7 @@ public class AircraftFlyController extends BaseController
|
||||||
* @param request 飞控命令请求
|
* @param request 飞控命令请求
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Operation(summary = "无人机飞控命令", description = "发送飞控命令控制无人机的飞行动作,包括前进、后退、左移、右移、左旋、右旋、上升、下降、返航、急停等")
|
@Operation(summary = "无人机飞控命令", description = "发送飞控指令")
|
||||||
@PostMapping("/flight-control")
|
@PostMapping("/flight-control")
|
||||||
public R<Void> flightControl(@RequestBody DroneFlightControlRequest request)
|
public R<Void> flightControl(@RequestBody DroneFlightControlRequest request)
|
||||||
{
|
{
|
||||||
|
|
@ -81,9 +81,6 @@ public class AircraftFlyController extends BaseController
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (request.getCommand()) {
|
switch (request.getCommand()) {
|
||||||
case RETURN_HOME:
|
|
||||||
commandType = CommandType.RETURN_HOME;
|
|
||||||
break;
|
|
||||||
case FORWARD:
|
case FORWARD:
|
||||||
commandType = CommandType.FORWARD;
|
commandType = CommandType.FORWARD;
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -32,91 +32,85 @@ public class FlightLogCallback implements IDroneRealTimeCallback {
|
||||||
@Override
|
@Override
|
||||||
public void onDroneRealTimeData(String deviceSn, DroneRealTimeData data) {
|
public void onDroneRealTimeData(String deviceSn, DroneRealTimeData data) {
|
||||||
|
|
||||||
return;
|
if (data == null) {
|
||||||
|
log.warn("【FlightLogCallback】收到空数据: deviceSn={}", deviceSn);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// if (data == null) {
|
if (data.getData() == null) {
|
||||||
// log.warn("【FlightLogCallback】收到空数据: deviceSn={}", deviceSn);
|
log.warn("【FlightLogCallback】收到空数据体: deviceSn={}, messageId={}", deviceSn, data.getMessageID());
|
||||||
// return;
|
return;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// if (data.getData() == null) {
|
log.info("【FlightLogCallback】处理实时消息: deviceSn={}, messageId={}, data={}",
|
||||||
// log.warn("【FlightLogCallback】收到空数据体: deviceSn={}, messageId={}", deviceSn, data.getMessageID());
|
deviceSn, data.getMessageID(), JSON.toJSONString(data.getData()));
|
||||||
// return;
|
|
||||||
// }
|
DroneRealTimeData.DroneInfo droneInfo = data.getData();
|
||||||
//
|
|
||||||
// log.info("【FlightLogCallback】处理实时消息: deviceSn={}, messageId={}, data={}", deviceSn, data.getMessageID(), JSON.toJSONString(data.getData()));
|
try {
|
||||||
//
|
if (droneInfo.getJiancha() != null && !droneInfo.getJiancha().isEmpty()) {
|
||||||
// DroneRealTimeData.DroneInfo droneInfo = data.getData();
|
log.info("【FlightLogCallback】检测到自检数据: deviceSn={}, messageId={}, checkBody={}", deviceSn, data.getMessageID(), data.getData().getJiancha());
|
||||||
//
|
handlePreCheckLog(deviceSn, data.getMessageID(), droneInfo.getJiancha());
|
||||||
// try {
|
} else {
|
||||||
// if (droneInfo.getJiancha() != null && !droneInfo.getJiancha().isEmpty()) {
|
log.debug("【FlightLogCallback】实时消息中无自检数据: deviceSn={}, messageId={}", deviceSn, data.getMessageID());
|
||||||
// log.info("【FlightLogCallback】检测到自检数据: deviceSn={}, messageId={}, checkBody={}", deviceSn, data.getMessageID(), data.getData().getJiancha());
|
}
|
||||||
// handlePreCheckLog(deviceSn, data.getMessageID(), droneInfo.getJiancha());
|
} catch (Exception e) {
|
||||||
// } else {
|
log.error("【FlightLogCallback】处理自检日志失败: deviceSn={}, messageId={}, error={}", deviceSn, data.getMessageID(), e.getMessage(), e);
|
||||||
// log.debug("【FlightLogCallback】实时消息中无自检数据: deviceSn={}, messageId={}", deviceSn, data.getMessageID());
|
}
|
||||||
// }
|
|
||||||
// } catch (Exception e) {
|
|
||||||
// log.error("【FlightLogCallback】处理自检日志失败: deviceSn={}, messageId={}, error={}", deviceSn, data.getMessageID(), e.getMessage(), e);
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handlePreCheckLog(String deviceSn, String messageID, String jianchaJson) {
|
private void handlePreCheckLog(String deviceSn, String messageID, String jianchaJson) {
|
||||||
// log.info("【FlightLogCallback】开始处理自检日志: deviceSn={}, messageId={}, jianchaJson={}", deviceSn, messageID, jianchaJson);
|
log.info("【FlightLogCallback】开始处理自检日志: deviceSn={}, messageId={}, jianchaJson={}", deviceSn, messageID, jianchaJson);
|
||||||
//
|
|
||||||
// try {
|
try {
|
||||||
// FlightEntity flight;
|
FlightEntity flight;
|
||||||
//
|
|
||||||
// if (messageID != null && !messageID.isEmpty()) {
|
if (messageID != null && !messageID.isEmpty()) {
|
||||||
// log.info("【FlightLogCallback】通过messageId获取飞行记录: deviceSn={}, messageId={}", deviceSn, messageID);
|
log.info("【FlightLogCallback】通过messageId获取飞行记录: deviceSn={}, messageId={}", deviceSn, messageID);
|
||||||
// flight = flightService.getOrCreateFlightByMessageId(deviceSn, messageID);
|
flight = flightService.getOrCreateFlightByMessageId(deviceSn, messageID);
|
||||||
// } else {
|
} else {
|
||||||
// log.info("【FlightLogCallback】获取当前飞行记录: deviceSn={}", deviceSn);
|
log.warn("【FlightLogCallback】获取当前飞行记录: deviceSn={} messageID为空", deviceSn);
|
||||||
// flight = flightService.getOrCreateCurrentFlight(deviceSn);
|
return;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// if (flight == null) {
|
log.info("【FlightLogCallback】获取到飞行记录: deviceSn={}, flightId={}, status={}", deviceSn, flight.getFlightId(), flight.getStatus());
|
||||||
// log.error("【FlightLogCallback】获取飞行记录失败,无法保存自检日志: deviceSn={}, messageId={}", deviceSn, messageID);
|
|
||||||
// return;
|
JSONArray checkItems = JSON.parseArray(jianchaJson);
|
||||||
// }
|
if (checkItems == null || checkItems.isEmpty()) {
|
||||||
//
|
log.warn("【FlightLogCallback】自检数据为空或解析失败: deviceSn={}, jianchaJson={}", deviceSn, jianchaJson);
|
||||||
// log.info("【FlightLogCallback】获取到飞行记录: deviceSn={}, flightId={}, status={}", deviceSn, flight.getFlightId(), flight.getStatus());
|
return;
|
||||||
//
|
}
|
||||||
// JSONArray checkItems = JSON.parseArray(jianchaJson);
|
|
||||||
// if (checkItems == null || checkItems.isEmpty()) {
|
log.info("【FlightLogCallback】解析到{}个自检项: deviceSn={}, flightId={}", checkItems.size(), deviceSn, flight.getFlightId());
|
||||||
// log.warn("【FlightLogCallback】自检数据为空或解析失败: deviceSn={}, jianchaJson={}", deviceSn, jianchaJson);
|
|
||||||
// return;
|
for (int i = 0; i < checkItems.size(); i++) {
|
||||||
// }
|
JSONObject item = checkItems.getJSONObject(i);
|
||||||
//
|
PreCheckLogEntity logEntity = new PreCheckLogEntity();
|
||||||
// log.info("【FlightLogCallback】解析到{}个自检项: deviceSn={}, flightId={}", checkItems.size(), deviceSn, flight.getFlightId());
|
logEntity.setFlightId(flight.getFlightId());
|
||||||
//
|
|
||||||
// for (int i = 0; i < checkItems.size(); i++) {
|
String check = item.getString("check");
|
||||||
// JSONObject item = checkItems.getJSONObject(i);
|
String value = item.getString("value");
|
||||||
// PreCheckLogEntity logEntity = new PreCheckLogEntity();
|
Boolean result = item.getBoolean("result");
|
||||||
// logEntity.setFlightId(flight.getFlightId());
|
|
||||||
//
|
String statusText = result != null && result ? "自检成功" : "自检失败";
|
||||||
// String check = item.getString("check");
|
String logContent = check + " " + value + " " + statusText;
|
||||||
// String value = item.getString("value");
|
|
||||||
// Boolean result = item.getBoolean("result");
|
logEntity.setLogContent(logContent);
|
||||||
//
|
logEntity.setSuccess(result != null ? result : false);
|
||||||
// String statusText = result != null && result ? "自检成功" : "自检失败";
|
|
||||||
// String logContent = check + " " + value + " " + statusText;
|
log.info("【FlightLogCallback】准备插入自检日志[{}/{}]: deviceSn={}, flightId={}, check={}, value={}, result={}",
|
||||||
//
|
i + 1, checkItems.size(), deviceSn, flight.getFlightId(), check, value, result);
|
||||||
// logEntity.setLogContent(logContent);
|
|
||||||
// logEntity.setSuccess(result != null ? result : false);
|
flightService.insertPreCheckLog(logEntity);
|
||||||
//
|
|
||||||
// log.info("【FlightLogCallback】准备插入自检日志[{}/{}]: deviceSn={}, flightId={}, check={}, value={}, result={}",
|
log.info("【FlightLogCallback】成功插入自检日志[{}/{}]: deviceSn={}, flightId={}, logId={}",
|
||||||
// i + 1, checkItems.size(), deviceSn, flight.getFlightId(), check, value, result);
|
i + 1, checkItems.size(), deviceSn, flight.getFlightId(), logEntity.getLogId());
|
||||||
//
|
}
|
||||||
// flightService.insertPreCheckLog(logEntity);
|
log.info("【FlightLogCallback】完成保存自检日志: deviceSn={}, flightId={}, 检查项数量={}",
|
||||||
//
|
deviceSn, flight.getFlightId(), checkItems.size());
|
||||||
// log.info("【FlightLogCallback】成功插入自检日志[{}/{}]: deviceSn={}, flightId={}, logId={}",
|
} catch (Exception e) {
|
||||||
// i + 1, checkItems.size(), deviceSn, flight.getFlightId(), logEntity.getLogId());
|
log.error("【FlightLogCallback】保存自检日志失败: deviceSn={}, messageId={}, jiancha={}, error={}",
|
||||||
// }
|
deviceSn, messageID, jianchaJson, e.getMessage(), e);
|
||||||
// log.info("【FlightLogCallback】完成保存自检日志: deviceSn={}, flightId={}, 检查项数量={}",
|
}
|
||||||
// deviceSn, flight.getFlightId(), checkItems.size());
|
|
||||||
// } catch (Exception e) {
|
|
||||||
// log.error("【FlightLogCallback】保存自检日志失败: deviceSn={}, messageId={}, jiancha={}, error={}",
|
|
||||||
// deviceSn, messageID, jianchaJson, e.getMessage(), e);
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue