From 0a8fd4aa92555875f58f67144c2c0c0a20a200af Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期二, 20 八月 2024 09:57:13 +0800 Subject: [PATCH] 增加版本通过配置读取 --- HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java | 107 ++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 80 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..950e4aa 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 鍙戦�佹暟鎹� -- Gitblit v1.8.0