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