From 96f2b56c103c53b17cf946d2c733d4cb03d2f39d Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期一, 29 一月 2024 15:16:28 +0800
Subject: [PATCH] 2024年01月29日15:16:23
---
HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/gateway/HDLLinkLocalGateway.java | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 51 insertions(+), 4 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 2f19257..1d2fd4b 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
@@ -760,6 +762,51 @@
}
/**
+ * 鍙戦�佹暟鎹埌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) {
+ 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, 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;
+ 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();
+ }
+
+ /**
* 缁勮闇�瑕佸彂閫佺殑鏁版嵁
*
* @param jObject 璐熻浇鏁版嵁<娌℃湁濉玭ull>
--
Gitblit v1.8.0