From 516f68195c0b50438088803e60240c7b90019cb4 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期六, 03 二月 2024 18:28:07 +0800 Subject: [PATCH] 备份代码 --- HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/gateway/HDLLinkLocalGateway.java | 70 +++++++++++++++++++++++++++++----- 1 files changed, 59 insertions(+), 11 deletions(-) diff --git a/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/gateway/HDLLinkLocalGateway.java b/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/gateway/HDLLinkLocalGateway.java index d7b6668..a35f93a 100644 --- a/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/gateway/HDLLinkLocalGateway.java +++ b/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/gateway/HDLLinkLocalGateway.java @@ -158,7 +158,8 @@ } for (GatewayBean gatewayBean : this.getGatewayList()) { if (macAndSid.equals(gatewayBean.getDevice_mac()) - || macAndSid.equals(gatewayBean.getSid())) { + || macAndSid.equals(gatewayBean.getSid()) + || macAndSid.equals(gatewayBean.getOid())) { return gatewayBean; } } @@ -235,7 +236,7 @@ ThreadToolUtils.getInstance().newFixedThreadPool(1).execute(new Runnable() { @Override public void run() { - int count = 5; + int count = 10; while (0 < count--) { try { //鎼滅储缃戝叧 @@ -263,10 +264,11 @@ * * @param callBack 鍥炶皟 */ - public void refreshGateway(GatewayCallBack callBack) { + public void refreshGateway(GatewayCallBack callBack, List<String> spks) { String topicReply = TopicConstant.GATEWAY_SEARCH_REPLY; final List<GatewayBean> tempGatewayBeanList = new ArrayList<>(); - EventListener eventListener = getSearchGatewayEvent(this.getGatewayTypeList(), tempGatewayBeanList); + EventListener eventListener = getSearchGatewayEvent(spks, tempGatewayBeanList); +// EventListener eventListener = getSearchGatewayEvent(this.getGatewayTypeList(), tempGatewayBeanList); EventDispatcher.getInstance().register(topicReply, eventListener); ThreadToolUtils.getInstance().newFixedThreadPool(1).execute(new Runnable() { @Override @@ -364,7 +366,7 @@ if (homeId.equals(gateway.getHomeId()) || (needEmptyHomeIdGateway == true && TextUtils.isEmpty(gateway.getHomeId()))) { //鏇存柊缂撳瓨缃戝叧锛屼細璁板綍鎵�鏈夋敹鍒扮殑缃戝叧锛屼互涓轰簡淇濆瓨缃戝叧鐨処P淇℃伅 updateGatewayList(gatewayBeanList, gateway); - //闈炴悳绱㈢殑缃戝叧绫讳技杩斿洖 + //闈炴悳绱㈢殑缃戝叧绫诲瀷杩斿洖 if (spk.contains(gateway.getGatewayType())) { //鏇存柊褰撳墠璇诲彇缃戝叧鐨勫垪琛紝杩欎釜鍒楄〃姣忔閮芥槸娓呯┖鍐嶈鍙� updateGatewayList(tempGatewayBeanList, gateway); @@ -716,25 +718,71 @@ /** * 鍙戦�佹暟鎹埌Link缃戝叧 * - * @param ip 缃戝叧IP * @param mac 缃戝叧mac * @param isEncrypt 鏄惁鍔犲瘑 * @param topic 璇锋眰涓婚 * @param jObject 璐熻浇鏁版嵁<娌℃湁濉玭ull></> * @param sendPath 鍙戦�佽矾寰�<绫诲悕+鏂规硶鍚�>class->methodName</> */ - public void sendDataToLinkGateway(String ip, String mac, boolean isEncrypt, + public void sendDataToLinkGateway(String mac, boolean isEncrypt, String topic, Object jObject, String sendPath, HDLLinkCallBack callBack) { - String topicSend = topic.replace("%s", mac); + GatewayBean gatewayBean = this.getLocalGateway(mac); + if (gatewayBean == null) { + callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_FOUND_LOCALLY)); + return; + } + String topicSend = topic.replace("%s", gatewayBean.getOid()); //缁勮闇�瑕佸彂閫佺殑鏁版嵁 String sendStr = createSendData(jObject); // LogUtils.i("sendDataToLinkGateway->" + sendPath + "->鏈湴鍙戦�乗r\n" + topicSend + "\r\n" + sendStr); LinkRequest message = new LinkRequest(topicSend, sendStr, isEncrypt); + message.setCloudTopic(topic.replace("%s", gatewayBean.getGatewayId())); + new HDLConnectHelper(gatewayBean.getIp_address(), message, new HDLConnectHelper.HdlSocketListener() { + @Override + public void onSucceed(Object msg) { + if (callBack == null) return; + try { + JSONObject jsonObject = new JSONObject(new Gson().toJson(msg)); + if (jsonObject.has("data")) { + callBack.onSuccess(jsonObject.getString("data")); + } + } catch (Exception e) { + callBack.onSuccess(e.getMessage()); + } +// LogUtils.i("sendDataToLinkGateway->"+sendPath+"->鏈湴鎺ユ敹鏁版嵁\r\n"+msg.toString()); + } + + @Override + public void onFailure(HDLLinkCode hdlLinkCode) { + if (callBack == null) return; + callBack.onError(HDLLinkException.getErrorWithCode(hdlLinkCode)); +// LogUtils.i("sendDataToLinkGateway->" + sendPath + "->鏈湴鎺ユ敹鏁版嵁->澶辫触(-200)"); + } + }, true, mac).send(); + } + + /** + * 鍙戦�佹暟鎹埌Link缃戝叧 + * + * @param mac 缃戝叧mac + * @param topic 璇锋眰涓婚 + * @param jObject 璐熻浇鏁版嵁<娌℃湁濉玭ull></> + * @param sendPath 鍙戦�佽矾寰�<绫诲悕+鏂规硶鍚�>class->methodName</> + */ + public void sendDataToLinkGateway(String mac, + String topic, Object jObject, String sendPath, HDLLinkCallBack callBack) { GatewayBean gatewayBean = this.getLocalGateway(mac); - if (gatewayBean != null) { - message.setCloudTopic(topic.replace("%s", gatewayBean.getGatewayId())); + if (gatewayBean == null) { + callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GATEWAY_FOUND_LOCALLY)); + return; } - new HDLConnectHelper(ip, message, new HDLConnectHelper.HdlSocketListener() { + String topicSend = topic.replace("%s", gatewayBean.getOid()); + //缁勮闇�瑕佸彂閫佺殑鏁版嵁 + String sendStr = createSendData(jObject); +// LogUtils.i("sendDataToLinkGateway->" + sendPath + "->鏈湴鍙戦�乗r\n" + topicSend + "\r\n" + sendStr); + LinkRequest message = new LinkRequest(topicSend, sendStr, gatewayBean.getIsLocalEncrypt()); + message.setCloudTopic(topic.replace("%s", gatewayBean.getGatewayId())); + new HDLConnectHelper(gatewayBean.getIp_address(), message, new HDLConnectHelper.HdlSocketListener() { @Override public void onSucceed(Object msg) { if (callBack == null) return; -- Gitblit v1.8.0