|
@@ -1,362 +1,362 @@
|
|
|
-package com.hfln.device.infrastructure.mqtt;
|
|
|
-
|
|
|
-import cn.hfln.framework.mqtt.gateway.DefaultMqttGateway;
|
|
|
-import cn.hfln.framework.mqtt.template.MqttTemplate;
|
|
|
-import com.alibaba.fastjson2.JSON;
|
|
|
-import com.hfln.device.common.constant.mqtt.topic.MqttTopics;
|
|
|
-import com.hfln.device.common.constant.mqtt.topic.TopicConstants;
|
|
|
-import com.hfln.device.common.util.DateTimeUtil;
|
|
|
-import com.hfln.device.domain.entity.Device;
|
|
|
-import com.hfln.device.domain.gateway.MqttGateway;
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.eclipse.paho.client.mqttv3.MqttClient;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.beans.factory.annotation.Value;
|
|
|
-import org.springframework.stereotype.Component;
|
|
|
-
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-
|
|
|
-/**
|
|
|
- * MQTT网关EMQX实现类
|
|
|
- */
|
|
|
-@Slf4j
|
|
|
-@Component("mqttGatewayEmqx")
|
|
|
-public class MqttGatewayEmqxImpl extends DefaultMqttGateway implements MqttGateway {
|
|
|
-
|
|
|
- private static final int QOS = 1; // MQTT服务质量等级
|
|
|
- private static final boolean RETAIN = true; // MQTT保留消息标志
|
|
|
-
|
|
|
- @Autowired
|
|
|
- public MqttGatewayEmqxImpl(MqttTemplate mqttTemplate, MqttClient mqttClient) {
|
|
|
- super(mqttTemplate, mqttClient);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void initialize() {
|
|
|
- super.initialize();
|
|
|
- log.info("MqttGatewayEmqx initialized");
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendDeviceLoginResponse(String deviceId, int code) {
|
|
|
- Map<String, Object> payload = new HashMap<>();
|
|
|
- payload.put("deviceId", deviceId);
|
|
|
- payload.put("code", code);
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = String.format(TopicConstants.TOPIC_LOGIN_RESPONSE, deviceId);
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendDeviceKeepAliveResponse(String deviceId, int code) {
|
|
|
- Map<String, Object> payload = new HashMap<>();
|
|
|
- payload.put("deviceId", deviceId);
|
|
|
- payload.put("code", code);
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = String.format(TopicConstants.TOPIC_KEEPALIVE_RESPONSE, deviceId);
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendDeviceStatusMessage(Device device) {
|
|
|
- Map<String, Object> payload = new HashMap<>();
|
|
|
- payload.put("deviceId", device.getDevId());
|
|
|
- payload.put("status", device.getOnline());
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = MqttTopics.DAS_STATUS;
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendRealtimePoseMessage(String deviceId, int pose, Object targetPoint) {
|
|
|
- Map<String, Object> payload = new HashMap<>();
|
|
|
- payload.put("deviceId", deviceId);
|
|
|
- payload.put("pose", pose);
|
|
|
- payload.put("targetPoint", targetPoint);
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = MqttTopics.DAS_REALTIME_POS;
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendAlarmMessage(String deviceId, String alarmType, Map<String, Object> data) {
|
|
|
- Map<String, Object> payload = new HashMap<>(data);
|
|
|
- payload.put("deviceId", deviceId);
|
|
|
- payload.put("alarmType", alarmType);
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = MqttTopics.DAS_EVENT;
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendEventMessage(String deviceId, int pose, Object targetPoint, String event) {
|
|
|
- Map<String, Object> payload = new HashMap<>();
|
|
|
- payload.put("deviceId", deviceId);
|
|
|
- payload.put("pose", pose);
|
|
|
- payload.put("targetPoint", targetPoint);
|
|
|
- payload.put("event", event);
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = MqttTopics.DAS_EVENT;
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendAlarmEventMessage(String deviceId, String description, String table, int tableId) {
|
|
|
- Map<String, Object> payload = new HashMap<>();
|
|
|
- payload.put("deviceId", deviceId);
|
|
|
- payload.put("description", description);
|
|
|
- payload.put("table", table);
|
|
|
- payload.put("tableId", tableId);
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = MqttTopics.DAS_ALARM_EVENT;
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendExistenceMessage(String deviceId, String event) {
|
|
|
- Map<String, Object> payload = new HashMap<>();
|
|
|
- payload.put("deviceId", deviceId);
|
|
|
- payload.put("event", event);
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = MqttTopics.DAS_EXIST_EVENT;
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendDeviceRebootCommand(String deviceId) {
|
|
|
- sendDeviceCommand(deviceId, "reboot", null);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendDeviceParamSetCommand(String deviceId, String mountPlain, String area, float height) {
|
|
|
- Map<String, Object> params = new HashMap<>();
|
|
|
- params.put("mountPlain", mountPlain);
|
|
|
- params.put("area", area);
|
|
|
- params.put("height", height);
|
|
|
-
|
|
|
- sendDeviceCommand(deviceId, "setParam", params);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendNetworkConfigUpdate(String deviceId, Device.NetworkInfo networkInfo) {
|
|
|
- Map<String, Object> payload = new HashMap<>();
|
|
|
- payload.put("deviceId", deviceId);
|
|
|
- payload.put("networkInfo", networkInfo);
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = TopicConstants.getDeviceSpecificTopic(deviceId, "network_config_update");
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendInstallParamUpdate(String deviceId, Device.InstallParam installParam) {
|
|
|
- Map<String, Object> payload = new HashMap<>();
|
|
|
- payload.put("deviceId", deviceId);
|
|
|
- payload.put("installParam", installParam);
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = TopicConstants.getDeviceSpecificTopic(deviceId, "install_param_update");
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendTrackingRegionUpdate(String deviceId, Device.TrackingRegion trackingRegion) {
|
|
|
- Map<String, Object> payload = new HashMap<>();
|
|
|
- payload.put("deviceId", deviceId);
|
|
|
- payload.put("trackingRegion", trackingRegion);
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = TopicConstants.getDeviceSpecificTopic(deviceId, "tracking_region_update");
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendAlarmScheduleUpdate(String deviceId, Map<String, Object> alarmSchedule) {
|
|
|
- Map<String, Object> payload = new HashMap<>();
|
|
|
- payload.put("deviceId", deviceId);
|
|
|
- payload.put("alarmSchedule", alarmSchedule);
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = TopicConstants.getDeviceSpecificTopic(deviceId, "alarm_schedule_update");
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendDeviceCommand(String deviceId, String command, Map<String, Object> params) {
|
|
|
- Map<String, Object> payload = new HashMap<>();
|
|
|
- payload.put("deviceId", deviceId);
|
|
|
- payload.put("command", command);
|
|
|
- if (params != null) {
|
|
|
- payload.put("params", params);
|
|
|
- }
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = TopicConstants.getDeviceSpecificTopic(deviceId, "command");
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendSetDeviceParamCommand(String deviceId, String mountPlain, String area, Float height) {
|
|
|
- Map<String, Object> params = new HashMap<>();
|
|
|
- if (mountPlain != null) {
|
|
|
- params.put("mountPlain", mountPlain);
|
|
|
- }
|
|
|
- if (area != null) {
|
|
|
- params.put("area", area);
|
|
|
- }
|
|
|
- if (height != null) {
|
|
|
- params.put("height", height);
|
|
|
- }
|
|
|
-
|
|
|
- sendDeviceCommand(deviceId, "setParam", params);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendDeviceInfoResponse(String deviceId, Device device) {
|
|
|
- Map<String, Object> payload = new HashMap<>();
|
|
|
- payload.put("deviceId", deviceId);
|
|
|
- payload.put("device", device);
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = MqttTopics.APP_DEVICE_INFO_RESPONSE;
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendDeviceNotFoundResponse(String deviceId) {
|
|
|
- Map<String, Object> payload = new HashMap<>();
|
|
|
- payload.put("deviceId", deviceId);
|
|
|
- payload.put("code", 404);
|
|
|
- payload.put("message", "Device not found");
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = MqttTopics.APP_DEVICE_INFO_RESPONSE;
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendDeviceResetCommand(String deviceId) {
|
|
|
- sendDeviceCommand(deviceId, "reset", null);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendUpdateNetworkCommand(String deviceId, String ssid, String password) {
|
|
|
- Map<String, Object> params = new HashMap<>();
|
|
|
- params.put("ssid", ssid);
|
|
|
- params.put("password", password);
|
|
|
-
|
|
|
- sendDeviceCommand(deviceId, "updateNetwork", params);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendAlarmAckMessage(String deviceId, Long eventId) {
|
|
|
- Map<String, Object> payload = new HashMap<>();
|
|
|
- payload.put("deviceId", deviceId);
|
|
|
- payload.put("eventId", eventId);
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = MqttTopics.APP_ALARM_ACK;
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendFallAlarmMessage(String deviceId, int pose, List<Float> targetPoint) {
|
|
|
- Map<String, Object> payload = new HashMap<>();
|
|
|
- payload.put("deviceId", deviceId);
|
|
|
- payload.put("pose", pose);
|
|
|
- payload.put("targetPoint", targetPoint);
|
|
|
- payload.put("event", "fall");
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = MqttTopics.DAS_EVENT;
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public boolean sendCommandToDevice(String deviceId, String command, Object payload) {
|
|
|
- try {
|
|
|
- Map<String, Object> message = new HashMap<>();
|
|
|
- message.put("deviceId", deviceId);
|
|
|
- message.put("command", command);
|
|
|
- message.put("payload", payload);
|
|
|
- message.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = TopicConstants.getDeviceSpecificTopic(deviceId, "command");
|
|
|
- publishJson(topic, message, QOS, RETAIN);
|
|
|
- return true;
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("Error sending command to device: {}", deviceId, e);
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendStatusMessage(String deviceId, String status, Map<String, Object> data) {
|
|
|
- Map<String, Object> payload = new HashMap<>(data);
|
|
|
- payload.put("deviceId", deviceId);
|
|
|
- payload.put("status", status);
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = MqttTopics.DAS_STATUS;
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendBehaviorMessage(String deviceId, String behaviorType, Map<String, Object> data) {
|
|
|
- Map<String, Object> payload = new HashMap<>(data);
|
|
|
- payload.put("deviceId", deviceId);
|
|
|
- payload.put("behaviorType", behaviorType);
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = MqttTopics.DAS_BEHAVIOR_ANALYSIS;
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendBehaviorAnalysisResult(String deviceId, Object behaviorPattern) {
|
|
|
- Map<String, Object> payload = new HashMap<>();
|
|
|
- payload.put("deviceId", deviceId);
|
|
|
- payload.put("behaviorPattern", behaviorPattern);
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = MqttTopics.DAS_BEHAVIOR_ANALYSIS;
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendToMqtt(String topic, String payload) {
|
|
|
- sendMessage(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendAlarmParamResponse(int code, Map<String, Object> globalConfig) {
|
|
|
- Map<String, Object> payload = new HashMap<>();
|
|
|
- payload.put("code", code);
|
|
|
- payload.put("globalConfig", globalConfig);
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = MqttTopics.DAS_ALARM_PARAM_RESPONSE;
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void sendSetAlarmParamAck(int code, Map<String, Object> globalConfig) {
|
|
|
- Map<String, Object> payload = new HashMap<>();
|
|
|
- payload.put("code", code);
|
|
|
- payload.put("globalConfig", globalConfig);
|
|
|
- payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
-
|
|
|
- String topic = MqttTopics.DAS_SET_ALARM_PARAM_ACK;
|
|
|
- publishJson(topic, payload, QOS, RETAIN);
|
|
|
- }
|
|
|
-}
|
|
|
+//package com.hfln.device.infrastructure.mqtt;
|
|
|
+//
|
|
|
+//import cn.hfln.framework.mqtt.gateway.DefaultMqttGateway;
|
|
|
+//import cn.hfln.framework.mqtt.template.MqttTemplate;
|
|
|
+//import com.alibaba.fastjson2.JSON;
|
|
|
+//import com.hfln.device.common.constant.mqtt.topic.MqttTopics;
|
|
|
+//import com.hfln.device.common.constant.mqtt.topic.TopicConstants;
|
|
|
+//import com.hfln.device.common.util.DateTimeUtil;
|
|
|
+//import com.hfln.device.domain.entity.Device;
|
|
|
+//import com.hfln.device.domain.gateway.MqttGateway;
|
|
|
+//import lombok.extern.slf4j.Slf4j;
|
|
|
+//import org.eclipse.paho.client.mqttv3.MqttClient;
|
|
|
+//import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+//import org.springframework.beans.factory.annotation.Value;
|
|
|
+//import org.springframework.stereotype.Component;
|
|
|
+//
|
|
|
+//import java.util.HashMap;
|
|
|
+//import java.util.List;
|
|
|
+//import java.util.Map;
|
|
|
+//
|
|
|
+///**
|
|
|
+// * MQTT网关EMQX实现类
|
|
|
+// */
|
|
|
+//@Slf4j
|
|
|
+//@Component("mqttGatewayEmqx")
|
|
|
+//public class MqttGatewayEmqxImpl extends DefaultMqttGateway implements MqttGateway {
|
|
|
+//
|
|
|
+// private static final int QOS = 1; // MQTT服务质量等级
|
|
|
+// private static final boolean RETAIN = true; // MQTT保留消息标志
|
|
|
+//
|
|
|
+// @Autowired
|
|
|
+// public MqttGatewayEmqxImpl(MqttTemplate mqttTemplate, MqttClient mqttClient) {
|
|
|
+// super(mqttTemplate, mqttClient);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void initialize() {
|
|
|
+// super.initialize();
|
|
|
+// log.info("MqttGatewayEmqx initialized");
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendDeviceLoginResponse(String deviceId, int code) {
|
|
|
+// Map<String, Object> payload = new HashMap<>();
|
|
|
+// payload.put("deviceId", deviceId);
|
|
|
+// payload.put("code", code);
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = String.format(TopicConstants.TOPIC_LOGIN_RESPONSE, deviceId);
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendDeviceKeepAliveResponse(String deviceId, int code) {
|
|
|
+// Map<String, Object> payload = new HashMap<>();
|
|
|
+// payload.put("deviceId", deviceId);
|
|
|
+// payload.put("code", code);
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = String.format(TopicConstants.TOPIC_KEEPALIVE_RESPONSE, deviceId);
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendDeviceStatusMessage(Device device) {
|
|
|
+// Map<String, Object> payload = new HashMap<>();
|
|
|
+// payload.put("deviceId", device.getDevId());
|
|
|
+// payload.put("status", device.getOnline());
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = MqttTopics.DAS_STATUS;
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendRealtimePoseMessage(String deviceId, int pose, Object targetPoint) {
|
|
|
+// Map<String, Object> payload = new HashMap<>();
|
|
|
+// payload.put("deviceId", deviceId);
|
|
|
+// payload.put("pose", pose);
|
|
|
+// payload.put("targetPoint", targetPoint);
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = MqttTopics.DAS_REALTIME_POS;
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendAlarmMessage(String deviceId, String alarmType, Map<String, Object> data) {
|
|
|
+// Map<String, Object> payload = new HashMap<>(data);
|
|
|
+// payload.put("deviceId", deviceId);
|
|
|
+// payload.put("alarmType", alarmType);
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = MqttTopics.DAS_EVENT;
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendEventMessage(String deviceId, int pose, Object targetPoint, String event) {
|
|
|
+// Map<String, Object> payload = new HashMap<>();
|
|
|
+// payload.put("deviceId", deviceId);
|
|
|
+// payload.put("pose", pose);
|
|
|
+// payload.put("targetPoint", targetPoint);
|
|
|
+// payload.put("event", event);
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = MqttTopics.DAS_EVENT;
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendAlarmEventMessage(String deviceId, String description, String table, int tableId) {
|
|
|
+// Map<String, Object> payload = new HashMap<>();
|
|
|
+// payload.put("deviceId", deviceId);
|
|
|
+// payload.put("description", description);
|
|
|
+// payload.put("table", table);
|
|
|
+// payload.put("tableId", tableId);
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = MqttTopics.DAS_ALARM_EVENT;
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendExistenceMessage(String deviceId, String event) {
|
|
|
+// Map<String, Object> payload = new HashMap<>();
|
|
|
+// payload.put("deviceId", deviceId);
|
|
|
+// payload.put("event", event);
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = MqttTopics.DAS_EXIST_EVENT;
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendDeviceRebootCommand(String deviceId) {
|
|
|
+// sendDeviceCommand(deviceId, "reboot", null);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendDeviceParamSetCommand(String deviceId, String mountPlain, String area, float height) {
|
|
|
+// Map<String, Object> params = new HashMap<>();
|
|
|
+// params.put("mountPlain", mountPlain);
|
|
|
+// params.put("area", area);
|
|
|
+// params.put("height", height);
|
|
|
+//
|
|
|
+// sendDeviceCommand(deviceId, "setParam", params);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendNetworkConfigUpdate(String deviceId, Device.NetworkInfo networkInfo) {
|
|
|
+// Map<String, Object> payload = new HashMap<>();
|
|
|
+// payload.put("deviceId", deviceId);
|
|
|
+// payload.put("networkInfo", networkInfo);
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = TopicConstants.getDeviceSpecificTopic(deviceId, "network_config_update");
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendInstallParamUpdate(String deviceId, Device.InstallParam installParam) {
|
|
|
+// Map<String, Object> payload = new HashMap<>();
|
|
|
+// payload.put("deviceId", deviceId);
|
|
|
+// payload.put("installParam", installParam);
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = TopicConstants.getDeviceSpecificTopic(deviceId, "install_param_update");
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendTrackingRegionUpdate(String deviceId, Device.TrackingRegion trackingRegion) {
|
|
|
+// Map<String, Object> payload = new HashMap<>();
|
|
|
+// payload.put("deviceId", deviceId);
|
|
|
+// payload.put("trackingRegion", trackingRegion);
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = TopicConstants.getDeviceSpecificTopic(deviceId, "tracking_region_update");
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendAlarmScheduleUpdate(String deviceId, Map<String, Object> alarmSchedule) {
|
|
|
+// Map<String, Object> payload = new HashMap<>();
|
|
|
+// payload.put("deviceId", deviceId);
|
|
|
+// payload.put("alarmSchedule", alarmSchedule);
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = TopicConstants.getDeviceSpecificTopic(deviceId, "alarm_schedule_update");
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendDeviceCommand(String deviceId, String command, Map<String, Object> params) {
|
|
|
+// Map<String, Object> payload = new HashMap<>();
|
|
|
+// payload.put("deviceId", deviceId);
|
|
|
+// payload.put("command", command);
|
|
|
+// if (params != null) {
|
|
|
+// payload.put("params", params);
|
|
|
+// }
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = TopicConstants.getDeviceSpecificTopic(deviceId, "command");
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendSetDeviceParamCommand(String deviceId, String mountPlain, String area, Float height) {
|
|
|
+// Map<String, Object> params = new HashMap<>();
|
|
|
+// if (mountPlain != null) {
|
|
|
+// params.put("mountPlain", mountPlain);
|
|
|
+// }
|
|
|
+// if (area != null) {
|
|
|
+// params.put("area", area);
|
|
|
+// }
|
|
|
+// if (height != null) {
|
|
|
+// params.put("height", height);
|
|
|
+// }
|
|
|
+//
|
|
|
+// sendDeviceCommand(deviceId, "setParam", params);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendDeviceInfoResponse(String deviceId, Device device) {
|
|
|
+// Map<String, Object> payload = new HashMap<>();
|
|
|
+// payload.put("deviceId", deviceId);
|
|
|
+// payload.put("device", device);
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = MqttTopics.APP_DEVICE_INFO_RESPONSE;
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendDeviceNotFoundResponse(String deviceId) {
|
|
|
+// Map<String, Object> payload = new HashMap<>();
|
|
|
+// payload.put("deviceId", deviceId);
|
|
|
+// payload.put("code", 404);
|
|
|
+// payload.put("message", "Device not found");
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = MqttTopics.APP_DEVICE_INFO_RESPONSE;
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendDeviceResetCommand(String deviceId) {
|
|
|
+// sendDeviceCommand(deviceId, "reset", null);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendUpdateNetworkCommand(String deviceId, String ssid, String password) {
|
|
|
+// Map<String, Object> params = new HashMap<>();
|
|
|
+// params.put("ssid", ssid);
|
|
|
+// params.put("password", password);
|
|
|
+//
|
|
|
+// sendDeviceCommand(deviceId, "updateNetwork", params);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendAlarmAckMessage(String deviceId, Long eventId) {
|
|
|
+// Map<String, Object> payload = new HashMap<>();
|
|
|
+// payload.put("deviceId", deviceId);
|
|
|
+// payload.put("eventId", eventId);
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = MqttTopics.APP_ALARM_ACK;
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendFallAlarmMessage(String deviceId, int pose, List<Float> targetPoint) {
|
|
|
+// Map<String, Object> payload = new HashMap<>();
|
|
|
+// payload.put("deviceId", deviceId);
|
|
|
+// payload.put("pose", pose);
|
|
|
+// payload.put("targetPoint", targetPoint);
|
|
|
+// payload.put("event", "fall");
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = MqttTopics.DAS_EVENT;
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public boolean sendCommandToDevice(String deviceId, String command, Object payload) {
|
|
|
+// try {
|
|
|
+// Map<String, Object> message = new HashMap<>();
|
|
|
+// message.put("deviceId", deviceId);
|
|
|
+// message.put("command", command);
|
|
|
+// message.put("payload", payload);
|
|
|
+// message.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = TopicConstants.getDeviceSpecificTopic(deviceId, "command");
|
|
|
+// publishJson(topic, message, QOS, RETAIN);
|
|
|
+// return true;
|
|
|
+// } catch (Exception e) {
|
|
|
+// log.error("Error sending command to device: {}", deviceId, e);
|
|
|
+// return false;
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendStatusMessage(String deviceId, String status, Map<String, Object> data) {
|
|
|
+// Map<String, Object> payload = new HashMap<>(data);
|
|
|
+// payload.put("deviceId", deviceId);
|
|
|
+// payload.put("status", status);
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = MqttTopics.DAS_STATUS;
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendBehaviorMessage(String deviceId, String behaviorType, Map<String, Object> data) {
|
|
|
+// Map<String, Object> payload = new HashMap<>(data);
|
|
|
+// payload.put("deviceId", deviceId);
|
|
|
+// payload.put("behaviorType", behaviorType);
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = MqttTopics.DAS_BEHAVIOR_ANALYSIS;
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendBehaviorAnalysisResult(String deviceId, Object behaviorPattern) {
|
|
|
+// Map<String, Object> payload = new HashMap<>();
|
|
|
+// payload.put("deviceId", deviceId);
|
|
|
+// payload.put("behaviorPattern", behaviorPattern);
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = MqttTopics.DAS_BEHAVIOR_ANALYSIS;
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendToMqtt(String topic, String payload) {
|
|
|
+// sendMessage(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendAlarmParamResponse(int code, Map<String, Object> globalConfig) {
|
|
|
+// Map<String, Object> payload = new HashMap<>();
|
|
|
+// payload.put("code", code);
|
|
|
+// payload.put("globalConfig", globalConfig);
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = MqttTopics.DAS_ALARM_PARAM_RESPONSE;
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void sendSetAlarmParamAck(int code, Map<String, Object> globalConfig) {
|
|
|
+// Map<String, Object> payload = new HashMap<>();
|
|
|
+// payload.put("code", code);
|
|
|
+// payload.put("globalConfig", globalConfig);
|
|
|
+// payload.put("timestamp", DateTimeUtil.getCurrentTimestamp());
|
|
|
+//
|
|
|
+// String topic = MqttTopics.DAS_SET_ALARM_PARAM_ACK;
|
|
|
+// publishJson(topic, payload, QOS, RETAIN);
|
|
|
+// }
|
|
|
+//}
|