From e7b8a808c2274e9c4329092bb752c7ea5cb035fc Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期一, 13 十二月 2021 14:20:20 +0800
Subject: [PATCH] 2021-12-13 1.优化发送,和认证失败错误码处理
---
HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/exception/HDLLinkCode.java | 1
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HdlSocketHelper.java | 4 +
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java | 45 +++++++++++++---------
HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java | 50 +++++++++++++++++++------
4 files changed, 69 insertions(+), 31 deletions(-)
diff --git a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
index 663df17..a175c06 100644
--- a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
+++ b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
@@ -37,6 +37,7 @@
import com.hdl.sdk.connect.bean.response.GatewaySearchBean;
import com.hdl.sdk.connect.callback.HDLLinkCallBack;
import com.hdl.sdk.connect.callback.HDLLinkResponseCallBack;
+import com.hdl.sdk.connect.config.HDLLinkConfig;
import com.hdl.sdk.connect.socket.HDLAuthSocket;
import com.hdl.sdk.connect.socket.HDLSocket;
import com.hdl.sdk.connect.bean.request.DeviceControlRequest;
@@ -246,9 +247,16 @@
tv.setText("寮�濮嬪叆缃戣璇�...");
//璁よ瘉鎻愪氦鍙傛暟鍑嗗
- String spkStr = "screen.mirror";//浜у搧spk
- String macStr = "AA000000000000AC";//璁惧鍞竴MAC鍦板潃
- String secret = "ee62124c151b737c";//閫氳繃spk鍜宮ac鎻愪氦浜戠璁よ瘉鍚庡垎閰嶇殑secret
+ //娴嬭瘯鏈嶅姟
+ String spkStr = "ir.module";//浜у搧spk
+ String macStr = "AA000000000000BB";//璁惧鍞竴MAC鍦板潃
+ String secret = "87ae414b7a853f65";//閫氳繃spk鍜宮ac鎻愪氦浜戠璁よ瘉鍚庡垎閰嶇殑secret
+
+ //姝e紡鏈嶅姟鍣�
+// String spkStr = "screen.mirror";//浜у搧spk
+// String macStr = "AA000000000000AC";//璁惧鍞竴MAC鍦板潃
+// String secret = "ee62124c151b737c";//閫氳繃spk鍜宮ac鎻愪氦浜戠璁よ瘉鍚庡垎閰嶇殑secret
+
String mac_key = stringToMD5(stringToMD5(macStr + secret));
String versionString = "HDL_V1.0.1";//
String time = String.valueOf(System.currentTimeMillis());
@@ -489,21 +497,39 @@
* TCP鍙戦�� 鍙彂涓�娆★紝涓嶇洃鍚洖澶嶏紝涓嶉噸鍙�
*/
private void tcpSend() {
- String time = String.valueOf(System.currentTimeMillis());
- JsonObject jsonObject = new JsonObject();
- jsonObject.addProperty("id", IdUtils.getUUId());
- jsonObject.addProperty("time_stamp", time);
- HDLLink.getInstance().tcpSendMsg(TopicConstant.GATEWAY_SEARCH, jsonObject.toString());
+ String propertyDownTopic = String.format(TopicConstant.PROPERTY_DOWN, HDLLinkConfig.getInstance().getGatewayId());
+ String bodyStr = getPropertyDownBodyStr();
+ HDLLink.getInstance().tcpSendMsg(propertyDownTopic, bodyStr);
}
/**
* 鍙彂涓�娆★紝涓嶇洃鍚洖澶嶏紝涓嶉噸鍙�
*/
private void udpSend() {
+ String propertyDownTopic = String.format(TopicConstant.PROPERTY_DOWN, HDLLinkConfig.getInstance().getGatewayId());
+ String bodyStr = getPropertyDownBodyStr();
+ HDLLink.getInstance().udpSendMsg(propertyDownTopic, bodyStr);
+ }
+
+ private String getPropertyDownBodyStr(){
+ isOn = !isOn;
+ List<DeviceControlRequest> requestList = new ArrayList<>();
+ DeviceControlRequest request = new DeviceControlRequest();
+ request.setSid(testLightSid);
+ List<DeviceControlRequest.StatusBean> statusBeanList= new ArrayList<>();
+ DeviceControlRequest.StatusBean bean = new DeviceControlRequest.StatusBean();
+ bean.setKey("on_off");
+ bean.setValue(isOn ? "on" : "off");
+ statusBeanList.add(bean);
+ request.setStatus(statusBeanList);
+ requestList.add(request);
String time = String.valueOf(System.currentTimeMillis());
- JsonObject jsonObject = new JsonObject();
- jsonObject.addProperty("id", IdUtils.getUUId());
- jsonObject.addProperty("time_stamp", time);
- HDLLink.getInstance().udpSendMsg(TopicConstant.GATEWAY_SEARCH, jsonObject.toString());
+
+ final BaseLocalResponse<List<DeviceControlRequest>> data = new BaseLocalResponse<>();
+ data.setId(IdUtils.getUUId());
+ data.setTime_stamp(time);
+ data.setObjects(requestList);
+
+ return GsonConvert.getGson().toJson(data);
}
}
\ No newline at end of file
diff --git a/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/exception/HDLLinkCode.java b/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/exception/HDLLinkCode.java
index c6d5d2e..a5c9a5f 100644
--- a/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/exception/HDLLinkCode.java
+++ b/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/exception/HDLLinkCode.java
@@ -15,6 +15,7 @@
HDL_UNAUTHORIZED_ERROR(-2005,"鏈璇侊紝璇峰厛璁よ瘉"),
HDL_AUTH_ERROR_GATEWAY_NOT_REGISTERED(-2006,"璁よ瘉澶辫触锛岀綉鍏虫湭娉ㄥ唽鍒颁簯绔�"),
HDL_SEARCH_GATEWAY_TIMEOUT_ERROR(-2007,"鎼滅储缃戝叧澶辫触锛岃秴鏃�"),
+ HDL_AUTH_MAC_KEY_ERROR_(-2008,"璁よ瘉澶辫触锛岃MAC瀵瑰簲鐨勮澶囧瘑閽ヤ笉瀛樺湪"),
HDL_GET_DEVICE_LIST_ERROR(-2100,"鑾峰彇璁惧鍒楄〃澶辫触"),
HDL_GET_FUNCTION_LIST_ERROR(-2101,"鑾峰彇鍔熻兘鍒楄〃澶辫触"),
HDL_GET_FUNCTION_PROPERTIES_ERROR(-2102,"鑾峰彇鍔熻兘灞炴�уけ璐�"),
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 ac97593..8442f03 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
@@ -178,30 +178,39 @@
String requestStr = gs.toJson(request);
LinkRequest message = new LinkRequest(topic, requestStr);
- HdlSocketHelper.sendUdp(getUdpBoot(), ip, UDP_PORT, message,new HdlSocketHelper.HdlSocketListener() {
+ HdlSocketHelper.sendUdp(getUdpBoot(), ip, UDP_PORT, message, new HdlSocketHelper.HdlSocketListener() {
@Override
public void onSucceed(Object msg) {
if (callBack == null) return;
try {
AuthenticateResponse bean = getAuthenticateResponseBean(msg);
if (bean != null) {
- String localSecret = "";
- String gatewayId = "";
- String ipAddress = "";
- if (bean.getAuth() != null) {
- localSecret = bean.getAuth().getLocalSecret();
- }
- if (bean.getObjects() != null) {
- gatewayId = bean.getObjects().getGatewayID();
- ipAddress = bean.getObjects().getIPAddress();
- }
- //鍒ゆ柇缃戝叧鏄惁宸茬粡娉ㄥ唽鍒颁簯绔�
- if (TextUtils.isEmpty(localSecret) || TextUtils.isEmpty(gatewayId)) {
- //璁よ瘉澶辫触锛岀綉鍏虫湭娉ㄥ唽鍒颁簯绔�
- callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_AUTH_ERROR_GATEWAY_NOT_REGISTERED));
- } else {
- HDLLinkConfig.getInstance().saveConfig(localSecret, gatewayId, ipAddress);
- callBack.onSuccess("璁よ瘉鎴愬姛");
+ if (bean.getCode().equals("200")) {
+ String localSecret = "";
+ String gatewayId = "";
+ String ipAddress = "";
+ if (bean.getAuth() != null) {
+ localSecret = bean.getAuth().getLocalSecret();
+ }
+ if (bean.getObjects() != null) {
+ gatewayId = bean.getObjects().getGatewayID();
+ ipAddress = bean.getObjects().getIPAddress();
+ }
+ //鍒ゆ柇缃戝叧鏄惁宸茬粡娉ㄥ唽鍒颁簯绔�
+ if (TextUtils.isEmpty(localSecret) || TextUtils.isEmpty(gatewayId)) {
+ //璁よ瘉澶辫触锛岀綉鍏虫湭娉ㄥ唽鍒颁簯绔�
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_AUTH_ERROR_GATEWAY_NOT_REGISTERED));
+ } else {
+ HDLLinkConfig.getInstance().saveConfig(localSecret, gatewayId, ipAddress);
+ callBack.onSuccess("璁よ瘉鎴愬姛");
+ }
+ } else if (bean.getCode().equals("14013")){
+ //璁よ瘉澶辫触锛岃MAC瀵瑰簲鐨勮澶囧瘑閽ヤ笉瀛樺湪
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_AUTH_MAC_KEY_ERROR_));
+ } else{
+ //璁よ瘉澶辫触锛岄敊璇爜锛�
+ LogUtils.e("璁よ瘉澶辫触锛岄敊璇爜锛�" + bean.getCode());
+ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_AUTH_ERROR));
}
} else {
callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_ERROR));
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HdlSocketHelper.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HdlSocketHelper.java
index b8ef37d..e5679af 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HdlSocketHelper.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HdlSocketHelper.java
@@ -197,7 +197,9 @@
}
}
}
- }, sendAwaitTime, sendAwaitTime, TimeUnit.MILLISECONDS);
+ }, 0, sendAwaitTime, TimeUnit.MILLISECONDS);
+ //initialdelay - 棣栨鎵ц鐨勫欢杩熸椂闂� 0
+ //delay - 涓�娆℃墽琛岀粓姝㈠拰涓嬩竴娆℃墽琛屽紑濮嬩箣闂寸殑寤惰繜
}
/**
--
Gitblit v1.8.0