From 51af3e4e7c5fb612576b98fd6407f6b65859f374 Mon Sep 17 00:00:00 2001
From: Van333 <van666666@foxmail.com>
Date: 星期三, 16 十一月 2022 15:58:06 +0800
Subject: [PATCH] 区分消息订阅类型,新增上下线监听,修复定时帧缺少CRC32,替换设备在线状态查询方法
---
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/BaseInvokeSyncService.java | 48 ++++++++++++++++++++++++++++++++----------------
1 files changed, 32 insertions(+), 16 deletions(-)
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/BaseInvokeSyncService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/BaseInvokeSyncService.java
index fa06c8b..c78d4a0 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/BaseInvokeSyncService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/BaseInvokeSyncService.java
@@ -6,21 +6,26 @@
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.iot.model.v20180120.*;
import com.sandu.common.execption.BusinessException;
+import com.sandu.ximon.admin.dto.DeviceStatus;
import com.sandu.ximon.admin.localMQTT.util.MqttClientUtil;
import com.sandu.ximon.admin.manager.iot.frame.IRequestFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.BaseResponseInnerFrame;
import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame;
import com.sandu.ximon.admin.manager.iot.rrpc.dto.InvokeParam;
import com.sandu.ximon.admin.manager.iot.rrpc.dto.WrapResponseCommonFrame;
+import com.sandu.ximon.admin.manager.iot.rrpc.enums.DeviceStateEnum;
import com.sandu.ximon.admin.manager.iot.rrpc.topic.IBaseTopic;
import com.sandu.ximon.admin.manager.iot.rrpc.topic.ICustomizeTopic;
import com.sandu.ximon.admin.manager.iot.rrpc.util.FrameUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
+import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
import java.util.Map;
+
+import static com.sandu.ximon.admin.localMQTT.callback.StatusMqttCallBack.localMqttConnectStatusMap;
/**
* @author chenjiantian
@@ -54,14 +59,15 @@
@Override
public CommonFrame sendRRPC(String deviceName, InvokeParam invokeParam) {
- InvokeThingServiceResponse.Data data = invokeThing(deviceName, invokeParam, false);
- if (data == null) {
- return null;
- }
- String result = data.getResult();
- result = result.replace("\\", "");
- Map map = JSON.parseObject(result, Map.class);
- result = (String) map.get("msg");
+// InvokeThingServiceResponse.Data data = invokeThing(deviceName, invokeParam, false);
+// if (data == null) {
+// return null;
+// }
+// String result = data.getResult();
+// result = result.replace("\\", "");
+// Map map = JSON.parseObject(result, Map.class);
+// result = (String) map.get("msg");
+ String result = MqttClientUtil.sendMqttMsg(deviceName,invokeParam.getFrame());
return FrameUtils.transformMessageToFrame(result);
}
@@ -80,6 +86,7 @@
// result = (String) map.get("msg");
String frame = FrameUtils.transformMessageToFrame(iRequestFrame.getEncodeFrame()).toString();
String result = MqttClientUtil.sendMqttMsg(deviceName,frame);
+ log.info("鑷畾涔塻endRRPC:璇锋眰甯э細{},\n,鍝嶅簲甯�:{}",iRequestFrame.toString(),result);
return FrameUtils.transformMessageToFrame(result);
}
@@ -181,14 +188,23 @@
@Override
public List<BatchGetDeviceStateResponse.DeviceStatus> batchGetDeviceState(List<String> deviceNames) {
- BatchGetDeviceStateRequest request = new BatchGetDeviceStateRequest();
- request.setDeviceNames(deviceNames);
- request.setProductKey(getProductKey());
- BatchGetDeviceStateResponse response = invokeSync(request);
- if (response != null && response.getSuccess()) {
- return response.getDeviceStatusList();
- }
- return null;
+ List<BatchGetDeviceStateResponse.DeviceStatus> statusList = new ArrayList<>();
+
+ deviceNames.forEach(l -> {
+ BatchGetDeviceStateResponse.DeviceStatus deviceStatus = new BatchGetDeviceStateResponse.DeviceStatus();
+ deviceStatus.setDeviceName(l);
+
+ if (localMqttConnectStatusMap.get(l)!=null &&
+ localMqttConnectStatusMap.get(l)== 1){
+ deviceStatus.setStatus("ONLINE");
+ }else {
+ deviceStatus.setStatus("OFFLINE");
+ }
+ statusList.add(deviceStatus);
+ });
+
+
+ return statusList;
}
/**
--
Gitblit v1.9.3