|
@@ -443,7 +443,8 @@ public class MqttGatewayImpl implements MqttGateway {
|
|
payload.put("pose", pose);
|
|
payload.put("pose", pose);
|
|
payload.put("RawPoints", rawPoints != null ? rawPoints : new ArrayList<>()); // 对应Python版本的RawPoints参数
|
|
payload.put("RawPoints", rawPoints != null ? rawPoints : new ArrayList<>()); // 对应Python版本的RawPoints参数
|
|
payload.put("targets", targets != null ? targets : new ArrayList<>()); // 对应Python版本的targets参数
|
|
payload.put("targets", targets != null ? targets : new ArrayList<>()); // 对应Python版本的targets参数
|
|
-
|
|
|
|
|
|
+ payload.put("target_point", targets != null ? targets : new ArrayList<>()); // 对应Python版本的targets参数
|
|
|
|
+
|
|
// 对于确认的跌倒事件,使用QoS 2
|
|
// 对于确认的跌倒事件,使用QoS 2
|
|
int qos = "fall_confirmed".equals(event) ? 2 : 0;
|
|
int qos = "fall_confirmed".equals(event) ? 2 : 0;
|
|
sendMessage(MqttTopics.DAS_EVENT, payload, qos);
|
|
sendMessage(MqttTopics.DAS_EVENT, payload, qos);
|
|
@@ -791,6 +792,40 @@ public class MqttGatewayImpl implements MqttGateway {
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
+ public void sendRealtimePosMessage(String deviceId, List<List<Float>> rawPoints, List<Integer> pose, List<List<Float>> targets) {
|
|
|
|
+ try {
|
|
|
|
+ Map<String, Object> message = new HashMap<>();
|
|
|
|
+
|
|
|
|
+ message.put("dev_id", deviceId);
|
|
|
|
+ message.put("timestamp", System.currentTimeMillis());
|
|
|
|
+ message.put("message", "notify");
|
|
|
|
+ message.put("message_type", DeviceConstants.MessageType.MSG_REALTIME_TARGET.getCode());
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // 姿态信息 (对应Python版本的pose)
|
|
|
|
+ if (pose != null && !pose.isEmpty()) {
|
|
|
|
+ message.put("pose", pose.get(0)); // 取第一个姿态值
|
|
|
|
+ } else {
|
|
|
|
+ message.put("pose", 0); // 默认姿态
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 目标位置 (对应Python版本的targets)
|
|
|
|
+ if (targets != null) {
|
|
|
|
+ message.put("target_point", targets);
|
|
|
|
+ } else {
|
|
|
|
+ message.put("target_point", new ArrayList<>());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ publishJson(MqttTopics.DAS_REALTIME_POS, message);
|
|
|
|
+ log.trace("Realtime position message sent: deviceId={}, targetCount={}",
|
|
|
|
+ deviceId, targets != null ? targets.size() : 0);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error("Failed to send realtime position message: deviceId={}, error={}",
|
|
|
|
+ deviceId, e.getMessage(), e);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
public void sendExistEventMessage(String deviceId, String event) {
|
|
public void sendExistEventMessage(String deviceId, String event) {
|
|
try {
|
|
try {
|
|
Map<String, Object> payload = new HashMap<>();
|
|
Map<String, Object> payload = new HashMap<>();
|