From 7c8ce9b9a7d3fc1aaa4a621e86415b25ad10a34f Mon Sep 17 00:00:00 2001
From: panlili2024 <14743743+panlili2024@user.noreply.gitee.com>
Date: 星期三, 19 三月 2025 09:36:28 +0800
Subject: [PATCH] 添加source屏扫码流程
---
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java | 211 +++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 197 insertions(+), 14 deletions(-)
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
index 57afa7b..2147f3e 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
@@ -28,6 +28,7 @@
import com.hdl.sdk.connect.bean.request.ListOidRequest2;
import com.hdl.sdk.connect.bean.request.ListSidRequest;
import com.hdl.sdk.connect.bean.request.ListUploadRequest;
+import com.hdl.sdk.connect.bean.request.LogicEnableRequest;
import com.hdl.sdk.connect.bean.request.PropertyReadRequest;
import com.hdl.sdk.connect.bean.response.BaseLocalCodeResponse;
import com.hdl.sdk.connect.bean.response.BaseLocalResponse;
@@ -45,6 +46,7 @@
import com.hdl.sdk.socket.listener.ConnectStatusListener;
import com.hdl.sdk.socket.listener.SendListener;
+import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ScheduledExecutorService;
@@ -479,25 +481,30 @@
@Override
public void heartbeat() {
- if (HDLLinkConfig.getInstance().getDeviceInfoBean() == null || HDLLinkConfig.getInstance().getDeviceInfoBean().getOID() == null) {
- LogUtils.i("DeviceInfoBean涓虹┖锛岄渶瑕佽缃墠鑳芥甯稿績璺�");
- return;
- }
-
String time = String.valueOf(System.currentTimeMillis());
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("id", IdUtils.getUUId());
jsonObject.addProperty("time_stamp", time);
+ if (HDLLinkConfig.getInstance().getDeviceInfoBean().getOID() == null) {
+ //涓嶈蛋浠庢満鍏ョ綉锛岄�氳繃gatewayId鍙戦��
+ if (HDLLinkConfig.getInstance().getGatewayId() == null) {
+ return;
+ }
+ String topic = String.format(TopicConstant.HEARTBEAT, HDLLinkConfig.getInstance().getGatewayId());
+ LinkRequest message = new LinkRequest(topic,
+ jsonObject.toString());
+ sendMsg(message.getSendBytes(), null, null, null);
- if (HDLLinkConfig.getInstance().getRequestBean() != null) {
- jsonObject.addProperty("mac", HDLLinkConfig.getInstance().getRequestBean().getMAC());
+ } else {
+ if (HDLLinkConfig.getInstance().getRequestBean() != null) {
+ jsonObject.addProperty("mac", HDLLinkConfig.getInstance().getRequestBean().getMAC());
+ }
+ //璧颁粠鏈哄叆缃戯紝閫氳繃oid鍙戦��
+ String topic = String.format(TopicConstant.HEARTBEAT, HDLLinkConfig.getInstance().getDeviceInfoBean().getOID());
+ LinkRequest message = new LinkRequest(topic,
+ jsonObject.toString());
+ sendMsg(message.getSendBytes(), null, null, null);
}
-
- String topic = String.format(TopicConstant.HEARTBEAT, HDLLinkConfig.getInstance().getDeviceInfoBean().getOID());
-
- LinkRequest message = new LinkRequest(topic,
- jsonObject.toString());
- sendMsg(message.getSendBytes(), null, null, null);
}
});
}
@@ -547,7 +554,7 @@
}
/**
- * 鑾峰彇鍦烘櫙鍒楄〃
+ * 鑾峰彇鍦烘櫙璇︽儏
*/
public void getScene(List<String> sids, HDLLinkCallBack callBack) {
if (!TextUtils.isEmpty(getGatewayId()) && !TextUtils.isEmpty(getTcpIp())) {
@@ -1168,4 +1175,180 @@
}
}
+ /**
+ * 鑾峰彇鎴块棿鍒楄〃
+ */
+ public void getRoomList(HDLLinkCallBack callBack) {
+ if (!TextUtils.isEmpty(getGatewayId()) && !TextUtils.isEmpty(getTcpIp())) {
+ String time = String.valueOf(System.currentTimeMillis());
+ JsonObject jsonObject = new JsonObject();
+ jsonObject.addProperty("id", IdUtils.getUUId());
+ jsonObject.addProperty("time_stamp", time);
+
+ String topic = String.format(TopicConstant.ROOM_LIST_GET, getGatewayId());
+
+ LinkRequest message = new LinkRequest(topic,
+ jsonObject.toString());
+ String replyTopic = topic + "_reply";
+ try {
+ sendMsg(message.getSendBytes(), replyTopic, callBack, new SendListener() {
+ @Override
+ public void onSucceed() {
+
+ }
+
+ @Override
+ public void onError() {
+ if (callBack != null) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GET_FUNCTION_LIST_ERROR));
+ }
+ }
+ });
+ } catch (Exception e) {
+ if (callBack != null) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GET_FUNCTION_LIST_ERROR));
+ }
+ }
+ } else {
+ if (callBack != null) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_UNAUTHORIZED_ERROR));
+ }
+ }
+ }
+
+ /**
+ * 鎴块棿缁戝畾鍏崇郴鍒楄〃鑾峰彇
+ */
+ public void getRoomBindList(List<String> uid, HDLLinkCallBack callBack) {
+ if (!TextUtils.isEmpty(getGatewayId()) && !TextUtils.isEmpty(getTcpIp())) {
+ String time = String.valueOf(System.currentTimeMillis());
+ final BaseLocalResponse<List<String>> data = new BaseLocalResponse<>();
+ data.setId(IdUtils.getUUId());
+ data.setTime_stamp(time);
+
+ data.setObjects(uid);
+
+ String topic = String.format(TopicConstant.ROOM_BIND_LIST_GET, getGatewayId());
+ LinkRequest message = new LinkRequest(topic,
+ GsonConvert.getGson().toJson(data));
+
+ String replyTopic = topic + "_reply";
+ try {
+ sendMsg(message.getSendBytes(), replyTopic, callBack, new SendListener() {
+ @Override
+ public void onSucceed() {
+
+ }
+
+ @Override
+ public void onError() {
+ if (callBack != null) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GET_FUNCTION_LIST_ERROR));
+ }
+ }
+ });
+ } catch (Exception e) {
+ if (callBack != null) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GET_FUNCTION_LIST_ERROR));
+ }
+ }
+ } else {
+ if (callBack != null) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_UNAUTHORIZED_ERROR));
+ }
+ }
+ }
+
+ /**
+ * 鑾峰彇鑷姩鍖栧垪琛�
+ */
+ public void getLogicList(HDLLinkCallBack callBack) {
+ if (!TextUtils.isEmpty(getGatewayId()) && !TextUtils.isEmpty(getTcpIp())) {
+ String time = String.valueOf(System.currentTimeMillis());
+ JsonObject jsonObject = new JsonObject();
+ jsonObject.addProperty("id", IdUtils.getUUId());
+ jsonObject.addProperty("time_stamp", time);
+
+ String topic = String.format(TopicConstant.LOGIC_LIST_GET, getGatewayId());
+
+ LinkRequest message = new LinkRequest(topic,
+ jsonObject.toString());
+ String replyTopic = topic + "_reply";
+ try {
+ sendMsg(message.getSendBytes(), replyTopic, callBack, new SendListener() {
+ @Override
+ public void onSucceed() {
+
+ }
+
+ @Override
+ public void onError() {
+ if (callBack != null) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GET_FUNCTION_LIST_ERROR));
+ }
+ }
+ });
+ } catch (Exception e) {
+ if (callBack != null) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GET_FUNCTION_LIST_ERROR));
+ }
+ }
+ } else {
+ if (callBack != null) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_UNAUTHORIZED_ERROR));
+ }
+ }
+ }
+
+ /**
+ * 饩冨姩鍖栧惎饨ょ饨�
+ *
+ * @param sid 鑷姩鍖杝id
+ * @param enable true=鍚饯 false=绂佲饯
+ * @param callBack 鍥炶皟
+ */
+ public void editEnableLogic(String sid, boolean enable, HDLLinkCallBack callBack) {
+ if (!TextUtils.isEmpty(getGatewayId()) && !TextUtils.isEmpty(getTcpIp())) {
+ String time = String.valueOf(System.currentTimeMillis());
+ final BaseLocalResponse<List<LogicEnableRequest>> data = new BaseLocalResponse<>();
+ data.setId(IdUtils.getUUId());
+ data.setTime_stamp(time);
+
+ List<LogicEnableRequest> list = new ArrayList<>();
+ LogicEnableRequest request = new LogicEnableRequest(sid, enable);
+ list.add(request);
+
+ data.setObjects(list);
+
+ String topic = String.format(TopicConstant.EDIT_LOGIC_ENABLE, getGatewayId());
+ LinkRequest message = new LinkRequest(topic,
+ GsonConvert.getGson().toJson(data));
+
+ String replyTopic = topic + "_reply";
+ try {
+ sendMsg(message.getSendBytes(), replyTopic, callBack, new SendListener() {
+ @Override
+ public void onSucceed() {
+
+ }
+
+ @Override
+ public void onError() {
+ if (callBack != null) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_SEND_ERROR));
+ }
+ }
+ });
+ } catch (Exception e) {
+ if (callBack != null) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_SEND_ERROR));
+ }
+ }
+ } else {
+ if (callBack != null) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_SEND_ERROR));
+ }
+ }
+ }
+
}
--
Gitblit v1.8.0