Compare commits

..

No commits in common. "5d4403f55c4337c56f650ff8a9e77ee35f3d17b7" and "9df90b97c46a70fb927992e5ea8ca961972cd77b" have entirely different histories.

3 changed files with 19 additions and 19 deletions

View File

@ -27,7 +27,7 @@ import java.util.regex.Pattern;
public class TuohengMqttMessageHandler { public class TuohengMqttMessageHandler {
private final ObjectMapper objectMapper = new ObjectMapper(); private final ObjectMapper objectMapper = new ObjectMapper();
private MqttCallbackRegistry machineCallBackRegistry; private MqttCallbackRegistry mqttCallbackRegistry;
private final List<ITuohengRealTimeDataCallback> realTimeDataCallbacks = new ArrayList<>(); private final List<ITuohengRealTimeDataCallback> realTimeDataCallbacks = new ArrayList<>();
private final List<ITuohengOsdCallback> osdCallbacks = new ArrayList<>(); private final List<ITuohengOsdCallback> osdCallbacks = new ArrayList<>();
@ -35,16 +35,16 @@ public class TuohengMqttMessageHandler {
private final List<IRealTimeBasicCallback> realTimeBasicCallbacks = new ArrayList<>(); private final List<IRealTimeBasicCallback> realTimeBasicCallbacks = new ArrayList<>();
private final List<IDroneRealTimeCallback> droneRealTimeCallbacks = new ArrayList<>(); private final List<IDroneRealTimeCallback> droneRealTimeCallbacks = new ArrayList<>();
private final List<IHeartbeatMessageCallback> heartbeatMessageCallbacks = new ArrayList<>(); private final List<IHeartbeatMessageCallback> heartbeatMessageCallbacks = new ArrayList<>();
private final List<IAirportFlyControlDataCallback> airportFlyControlDataCallbacks = new ArrayList<>(); private final List<com.ruoyi.device.domain.impl.tuohengmqtt.callback.IAirportFlyControlDataCallback> airportFlyControlDataCallbacks = new ArrayList<>();
private static final Pattern TUOHENG_SN_PATTERN = Pattern.compile("^TH[0-9A-Z]+"); private static final Pattern TUOHENG_SN_PATTERN = Pattern.compile("^TH[0-9A-Z]+");
/** /**
* 设置 MQTT 回调注册中心 * 设置 MQTT 回调注册中心
*/ */
public void setMachineCallBackRegistry(MqttCallbackRegistry machineCallBackRegistry) { public void setMqttCallbackRegistry(MqttCallbackRegistry mqttCallbackRegistry) {
this.machineCallBackRegistry = machineCallBackRegistry; this.mqttCallbackRegistry = mqttCallbackRegistry;
log.info("设置 machineCallBackRegistry 成功"); log.info("设置 MqttCallbackRegistry 成功");
} }
public void registerRealTimeDataCallback(ITuohengRealTimeDataCallback callback) { public void registerRealTimeDataCallback(ITuohengRealTimeDataCallback callback) {
@ -101,21 +101,21 @@ public class TuohengMqttMessageHandler {
log.debug("收到MQTT消息 - Topic: {}", topic); log.debug("收到MQTT消息 - Topic: {}", topic);
// 如果是 confirm 消息打印详细日志 // 如果是 confirm 消息打印详细日志
// if (topic.contains("/control/confirm")) { if (topic.contains("/control/confirm")) {
// log.info("【收到confirm消息】Topic: {}, Payload: {}", topic, payload); log.info("【收到confirm消息】Topic: {}, Payload: {}", topic, payload);
// } }
// 通知 MqttCallbackRegistry 处理回调用于指令回调 // 通知 MqttCallbackRegistry 处理回调用于指令回调
if (machineCallBackRegistry != null) { if (mqttCallbackRegistry != null) {
try { try {
// payload 解析为 JSON 对象传递给回调注册中心 // payload 解析为 JSON 对象传递给回调注册中心
Object messageBody = objectMapper.readValue(payload, Object.class); Object messageBody = objectMapper.readValue(payload, Object.class);
machineCallBackRegistry.handleMessage(topic, messageBody); mqttCallbackRegistry.handleMessage(topic, messageBody);
// // 如果是 confirm 消息打印回调处理结果 // 如果是 confirm 消息打印回调处理结果
// if (topic.contains("/control/confirm")) { if (topic.contains("/control/confirm")) {
// log.info("【confirm消息已传递给回调注册中心】Topic: {}", topic); log.info("【confirm消息已传递给回调注册中心】Topic: {}", topic);
// } }
} catch (Exception e) { } catch (Exception e) {
log.debug("通知回调注册中心失败: {}", e.getMessage()); log.debug("通知回调注册中心失败: {}", e.getMessage());
} }
@ -270,7 +270,7 @@ public class TuohengMqttMessageHandler {
try { try {
log.debug("处理机场飞行控制数据 - 设备SN: {}, Topic: {}", deviceSn, topic); log.debug("处理机场飞行控制数据 - 设备SN: {}, Topic: {}", deviceSn, topic);
for (IAirportFlyControlDataCallback callback : airportFlyControlDataCallbacks) { for (com.ruoyi.device.domain.impl.tuohengmqtt.callback.IAirportFlyControlDataCallback callback : airportFlyControlDataCallbacks) {
try { try {
callback.onAirportFlyControlData(deviceSn, payload, topic); callback.onAirportFlyControlData(deviceSn, payload, topic);
} catch (Exception e) { } catch (Exception e) {

View File

@ -32,17 +32,16 @@ public class FlightLogCallback implements IDroneRealTimeCallback {
@Override @Override
public void onDroneRealTimeData(String deviceSn, DroneRealTimeData data) { public void onDroneRealTimeData(String deviceSn, DroneRealTimeData data) {
log.info("处理实时消息: deviceSn={}, DroneRealTimeData={}", deviceSn, JSON.toJSONString(data));
if (data == null || data.getData() == null) { if (data == null || data.getData() == null) {
return; return;
} }
log.info("处理实时消息: deviceSn={}, messageId={} data={}", deviceSn, data.getMessageID(),JSON.toJSONString(data.getData()));
DroneRealTimeData.DroneInfo droneInfo = data.getData(); DroneRealTimeData.DroneInfo droneInfo = data.getData();
try { try {
if (droneInfo.getJiancha() != null && !droneInfo.getJiancha().isEmpty()) { if (droneInfo.getJiancha() != null && !droneInfo.getJiancha().isEmpty()) {
log.info("处理实时自检消息: deviceSn={}, messageId={}, checkBody={}", deviceSn, data.getMessageID(),data.getData().getJiancha());
handlePreCheckLog(deviceSn, data.getMessageID(), droneInfo.getJiancha()); handlePreCheckLog(deviceSn, data.getMessageID(), droneInfo.getJiancha());
} }
} catch (Exception e) { } catch (Exception e) {

View File

@ -12,6 +12,7 @@ import com.ruoyi.device.domain.impl.machine.state.AirportState;
import com.ruoyi.device.domain.impl.machine.state.MachineStates; import com.ruoyi.device.domain.impl.machine.state.MachineStates;
import com.ruoyi.device.domain.impl.machine.statemachine.MachineStateManager; import com.ruoyi.device.domain.impl.machine.statemachine.MachineStateManager;
import com.ruoyi.device.domain.impl.tuohengmqtt.callback.IRealTimeBasicCallback; import com.ruoyi.device.domain.impl.tuohengmqtt.callback.IRealTimeBasicCallback;
import com.ruoyi.device.domain.impl.tuohengmqtt.callback.IAirportFlyControlDataCallback;
import com.ruoyi.device.domain.impl.tuohengmqtt.callback.ITuohengEventsCallback; import com.ruoyi.device.domain.impl.tuohengmqtt.callback.ITuohengEventsCallback;
import com.ruoyi.device.domain.impl.tuohengmqtt.callback.ITuohengOsdCallback; import com.ruoyi.device.domain.impl.tuohengmqtt.callback.ITuohengOsdCallback;
import com.ruoyi.device.domain.impl.tuohengmqtt.callback.ITuohengRealTimeDataCallback; import com.ruoyi.device.domain.impl.tuohengmqtt.callback.ITuohengRealTimeDataCallback;
@ -99,7 +100,7 @@ public class TuohengService {
TuohengMqttMessageHandler handler = clientManager.getHandler(); TuohengMqttMessageHandler handler = clientManager.getHandler();
// 设置 MqttCallbackRegistry handler用于指令回调 // 设置 MqttCallbackRegistry handler用于指令回调
handler.setMachineCallBackRegistry(mqttCallbackRegistry); handler.setMqttCallbackRegistry(mqttCallbackRegistry);
Map<String, String> mapping = loadAirportDroneMapping(); Map<String, String> mapping = loadAirportDroneMapping();