From 134209ad70f82051da3ce63471df0cc8f778e57d Mon Sep 17 00:00:00 2001
From: panlili2024 <14743743+panlili2024@user.noreply.gitee.com>
Date: 星期三, 05 三月 2025 14:30:19 +0800
Subject: [PATCH] 增加source屏扫码绑定住宅接口
---
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java | 109 +++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 82 insertions(+), 27 deletions(-)
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java
index 595c20b..3f277dc 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java
@@ -148,19 +148,32 @@
EventDispatcher.getInstance().register(TopicConstant.GATEWAY_AUTH_BROADCAST, new EventListener() {
@Override
public void onMessage(Object msg) {
- LogUtils.i("鏀跺埌缃戝叧璁よ瘉淇℃伅: ");
- NetworkAccessBroadcastResponse bean = getNetworkAccessBroadcastResponse(msg);
- if (bean != null) {
- //绉婚櫎鐩戝惉
- EventDispatcher.getInstance().remove(TopicConstant.GATEWAY_AUTH_BROADCAST);
- LogUtils.i("缃戝叧鍏ョ綉骞挎挱IP: " + bean.getIPAddress());
- HDLLinkConfig.getInstance().setIpAddress(bean.getIPAddress());
- String ipStr = bean.getIPAddress();
- if (!TextUtils.isEmpty(ipStr)) {
- sendAuthenticateRequest(ipStr, request, callBack);
+ try {
+ LogUtils.i("鏀跺埌缃戝叧璁よ瘉淇℃伅: ");
+ NetworkAccessBroadcastResponse bean = getNetworkAccessBroadcastResponse(msg);
+ if (bean != null) {
+ LogUtils.i("缃戝叧鍏ョ綉骞挎挱IP: " + bean.getIPAddress());
+ if (!TextUtils.isEmpty(bean.getSlave_mac())) {
+ if (!bean.getSlave_mac().equals(request.getObjects().getDeviceMAC())) {
+ LogUtils.i("鍏ョ綉楠岃瘉鐨刴ac鍜屾湰鏈轰笉涓�鏍凤紝璇锋眰鐨凪AC鏄�" + bean.getSlave_mac() + " 鏈満鐨勬槸" + request.getObjects().getDeviceMAC());
+ return;
+ }
+ }
+ //绉婚櫎鐩戝惉
+ EventDispatcher.getInstance().remove(TopicConstant.GATEWAY_AUTH_BROADCAST);
+ HDLLinkConfig.getInstance().setIpAddress(bean.getIPAddress());
+ if (!TextUtils.isEmpty(bean.getOID())) {
+ HDLLinkConfig.getInstance().setParentOid(bean.getOID());
+ }
+ String ipStr = bean.getIPAddress();
+ if (!TextUtils.isEmpty(ipStr)) {
+ sendAuthenticateRequest(ipStr, request, callBack);
+ }
}
- }
+ } catch (Exception e) {
+ LogUtils.e("鍏ョ綉楠岃瘉寮傚父", e.getMessage());
+ }
}
});
}
@@ -186,6 +199,7 @@
final GatewayInfoRequest request = new GatewayInfoRequest();
AuthenticateRequest.AuthenticateDeviceInfoBean authenticateDeviceInfoBean = HDLLinkConfig.getInstance().getDeviceInfoBean();
+ if (authenticateDeviceInfoBean == null) return;
request.setDevice_model(authenticateDeviceInfoBean.getDeviceModel());
request.setDevice_mac(authenticateDeviceInfoBean.getDeviceMAC());
request.setDevice_name(authenticateDeviceInfoBean.getDeviceName());
@@ -197,7 +211,9 @@
if (authenticateDeviceInfoBean.getSupplier() == null) {
AuthenticateRequest.RequestBean requestBean = HDLLinkConfig.getInstance().getRequestBean();
- request.setSupplier(requestBean.getSupplier());
+ if (requestBean != null) {
+ request.setSupplier(requestBean.getSupplier());
+ }
}
request.setHw_version(authenticateDeviceInfoBean.getHw_version());
@@ -205,6 +221,7 @@
request.setIp_address(authenticateDeviceInfoBean.getIPAddress());
request.setMaster("false");
request.setLocalEncrypt(false);
+ request.setHomeId(HDLLinkConfig.getInstance().getHomeId());
data.setObjects(request);
@@ -213,21 +230,7 @@
GsonConvert.getGson().toJson(data));
String ip = IpUtils.getBroadcastAddress();
- HdlSocketHelper.sendUdp(getUdpBoot(), ip, UDP_PORT, message, new HdlSocketHelper.HdlSocketListener() {
- @Override
- public void onSucceed(Object msg) {
- if (callBack == null) return;
- callBack.onSuccess("涓婃姤鎴愬姛");
- LogUtils.i("UploadGatewayInfo onSucceed = " + msg);
- }
-
- @Override
- public void onFailure() {
- if (callBack == null) return;
- callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_UPLOAD_GATEWAYINFO_FAILURE_ERROR));
- LogUtils.i("UploadGatewayInfo onFailure");
- }
- });
+ HdlSocketHelper.sendUdp(getUdpBoot(), ip, UDP_PORT, message, null);
}
@@ -258,15 +261,20 @@
String localSecret = "";
String gatewayId = "";
String ipAddress = "";
+ String homeId = "";
if (bean.getAuth() != null) {
localSecret = bean.getAuth().getLocalSecret();
}
if (bean.getObjects() != null) {
gatewayId = bean.getObjects().getGatewayID();
ipAddress = bean.getObjects().getIPAddress();
+ homeId = bean.getObjects().getHomeId();
}
if (ipAddress == null) {
ipAddress = bean.getIp_address();
+ }
+ if (!TextUtils.isEmpty(homeId)) {
+ HDLLinkConfig.getInstance().setHomeId(homeId);
}
HDLLinkConfig.getInstance().setAuthBean(request.getAuth());
@@ -549,6 +557,51 @@
}
/**
+ * 閫氱敤鍙戦�佹寚浠�
+ * 鍙戦�佷竴娆�
+ *
+ * @param topic 鍙戦�佹暟鎹�
+ * @param bodyStr 鍥炲鐨勪富棰�
+ * @param broadcast 鏄惁瑕佸箍鎾�
+ * @param callBack 鍥炶皟
+ */
+ public void udpSendMsgOneTime(String topic, String bodyStr, boolean broadcast, HDLLinkResponseCallBack callBack) {
+ if (TextUtils.isEmpty(topic) || TextUtils.isEmpty(bodyStr)) {
+ if (callBack != null) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_NULL_ERROR));
+ }
+ return;
+ }
+
+ if (!HDLLinkConfig.getInstance().checkIfCertified()) {
+ if (callBack != null) {
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_UNAUTHORIZED_ERROR));
+ }
+ return;
+ }
+
+ LinkRequest message = new LinkRequest(topic, bodyStr);
+ String ip = HDLLinkConfig.getInstance().getIpAddress();
+ if (broadcast) {
+ ip = IpUtils.getBroadcastAddress();
+ }
+ HdlSocketHelper.sendUdp(getUdpBoot(), ip, UDP_PORT, message, "", 1, new HdlSocketHelper.HdlSocketListener() {
+ @Override
+ public void onSucceed(Object msg) {
+ if (callBack == null) return;
+ callBack.onSuccess((LinkResponse) msg);
+ }
+
+ @Override
+ public void onFailure() {
+ if (callBack == null) return;
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_TIMEOUT_ERROR));
+ }
+ }
+ );
+ }
+
+ /**
* 閫氱敤鍙戦�佹寚浠� 鍙彂涓�娆★紝涓嶇洃鍚洖澶嶏紝涓嶉噸鍙�
*
* @param topic 鍙戦�佹暟鎹�
@@ -650,6 +703,8 @@
HDLLinkConfig.getInstance().setCurrentGateway(searchBean);//璁剧疆褰撳墠缃戝叧
if (mSearchGatewayCallBack != null) {
mSearchGatewayCallBack.onSuccess(searchBean);
+ HDLSocket.getInstance().isBroadcast = true;
+ HDLSocket.getInstance().getTcp();
}
}
}
--
Gitblit v1.8.0