From e7b78e0a428fa54d94c1b274a4305640b2859e80 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期一, 15 十一月 2021 15:15:57 +0800 Subject: [PATCH] 2021-11-15 1.更新 --- HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java | 178 +++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 100 insertions(+), 78 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 f4566ee..601806f 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 @@ -6,6 +6,9 @@ import com.google.gson.Gson; import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; +import com.hdl.sdk.common.event.EventDispatcher; +import com.hdl.sdk.common.event.EventListener; +import com.hdl.sdk.connect.bean.AuthenticateResponseBean; import com.hdl.sdk.connect.config.HDLLinkConfig; import com.hdl.sdk.common.config.TopicConstant; import com.hdl.sdk.common.utils.IdUtils; @@ -52,7 +55,7 @@ void onError(String error); - void onSuccess(String data); + void onSuccess(String msg); } @@ -90,12 +93,25 @@ return updBoot; } - private String getOid() { - return "000101EA9B8C1C22"; - } + /** + * 寮�濮嬪叆缃戝強璁よ瘉璇锋眰 + * + * @param request 璁よ瘉璇锋眰淇℃伅 + * @param callBack 缁撴灉鍥炶皟 + */ + public void startAuthenticateRequest(AuthenticateRequest request, CallBack callBack) { + //1.鍚姩Socket 寮�鍚洃鍚� + getUdpBoot(IpUtils.getBroadcastAddress()); + //鐩戝惉缃戝叧骞挎挱鐨勫叆缃戞寚浠� + EventDispatcher.getInstance().register(TopicConstant.GATEWAY_AUTH_BROADCAST, new EventListener() { + @Override + public void onMessage(Object msg) { - private String getSid() { - return "000101EA9B8C1C2202010001021A"; + //绉婚櫎鐩戝惉 +// EventDispatcher.getInstance().remove(this); + } + }); + } /** @@ -117,59 +133,71 @@ HdlSocketHelper.send(getUdpBoot(ip), message, new HdlSocketHelper.HdlSocketListener() { @Override public void onSucceed(Object msg) { - callBack.onSuccess(msg.toString()); + if(callBack == null) return; + AuthenticateResponseBean bean = getAuthenticateResponseBean(msg); + if(bean != null){ + String localSecret = bean.getAuth().getLocalSecret(); + String gatewayId = bean.getObjects().getGatewayID(); + String ipAddress = bean.getObjects().getIPAddress(); + HDLLinkConfig.getInstance().saveConfig(localSecret,gatewayId,ipAddress); + callBack.onSuccess("Success"); + }else{ + callBack.onSuccess("鍙傛暟寮傚父"); + } + } @Override public void onFailure() { Log.i("TAG", "onFailure: "); + if(callBack == null) return; callBack.onError("瓒呮椂"); } }); } - /** - * 鍙戦�佸叆缃戝強璁よ瘉璇锋眰 - * - * @param callBack 缁撴灉鍥炶皟 - */ - public void sendAuthenticateRequest(CallBack callBack) { - String macStr = "AA000000000000BB"; - String secret = "87ae414b7a853f65"; - String mac_key = stringToMD5(stringToMD5(macStr + secret)); - - String versionString = "HDL_V1.0.1"; - String time = String.valueOf(System.currentTimeMillis()); - - //1.璁剧疆璁よ瘉淇℃伅 - AuthenticateRequest.RequestBean requestBean = new AuthenticateRequest.RequestBean(); - requestBean.setMAC(macStr); - requestBean.setSupplier("HDL"); - requestBean.setFirmwareVersion(versionString); - requestBean.setHardwareModel("1956F"); - AuthenticateRequest.AuthBean authbean = new AuthenticateRequest.AuthBean(); - authbean.setSpk("ir.module"); - authbean.setMACKey(mac_key); - authbean.setRequest(requestBean); - - - //2.璁剧疆璁惧淇℃伅 - AuthenticateDeviceInfoBean infoBean = new AuthenticateDeviceInfoBean(); - infoBean.setDeviceMAC(macStr); - infoBean.setIPMAC(macStr); - infoBean.setDeviceName("HDL闈㈡澘"); - infoBean.setAccessMode("HDL"); - infoBean.setOID(getOid()); - infoBean.setSid(getSid()); -// infoBean.set - AuthenticateRequest.VersionBean[] versionBeans = new AuthenticateRequest.VersionBean[]{new AuthenticateRequest.VersionBean("FW", versionString), new AuthenticateRequest.VersionBean("HW", "1956F")}; - infoBean.setVersions(versionBeans); - AuthenticateRequest request = new AuthenticateRequest(IdUtils.getUUId(), time, infoBean, authbean); - - String ip = IpUtils.getBroadcastAddress(); - ip = "192.168.10.102"; - sendAuthenticateRequest(ip, request, callBack); - } +// /** +// * 鍙戦�佸叆缃戝強璁よ瘉璇锋眰 +// * +// * @param callBack 缁撴灉鍥炶皟 +// */ +// public void sendAuthenticateRequest(CallBack callBack) { +// String macStr = "AA000000000000BB"; +// String secret = "87ae414b7a853f65"; +// String mac_key = stringToMD5(stringToMD5(macStr + secret)); +// +// String versionString = "HDL_V1.0.1"; +// String time = String.valueOf(System.currentTimeMillis()); +// +// //1.璁剧疆璁よ瘉淇℃伅 +// AuthenticateRequest.RequestBean requestBean = new AuthenticateRequest.RequestBean(); +// requestBean.setMAC(macStr); +// requestBean.setSupplier("HDL"); +// requestBean.setFirmwareVersion(versionString); +// requestBean.setHardwareModel("1956F"); +// AuthenticateRequest.AuthBean authbean = new AuthenticateRequest.AuthBean(); +// authbean.setSpk("ir.module"); +// authbean.setMACKey(mac_key); +// authbean.setRequest(requestBean); +// +// +// //2.璁剧疆璁惧淇℃伅 +// AuthenticateDeviceInfoBean infoBean = new AuthenticateDeviceInfoBean(); +// infoBean.setDeviceMAC(macStr); +// infoBean.setIPMAC(macStr); +// infoBean.setDeviceName("HDL闈㈡澘"); +// infoBean.setAccessMode("HDL"); +// infoBean.setOID(getOid()); +// infoBean.setSid(getSid()); +//// infoBean.set +// AuthenticateRequest.VersionBean[] versionBeans = new AuthenticateRequest.VersionBean[]{new AuthenticateRequest.VersionBean("FW", versionString), new AuthenticateRequest.VersionBean("HW", "1956F")}; +// infoBean.setVersions(versionBeans); +// AuthenticateRequest request = new AuthenticateRequest(IdUtils.getUUId(), time, infoBean, authbean); +// +// String ip = IpUtils.getBroadcastAddress(); +// ip = "192.168.10.102"; +// sendAuthenticateRequest(ip, request, callBack); +// } public interface SearchGatewayCallBack { /** @@ -222,9 +250,13 @@ @Override public void onSucceed(Object msg) { GatewaySearchBean searchBean = getGatewaySearchBean(msg); - if (searchBean != null && searchBean.getGatewayId() == gatewayId) { + if (searchBean != null && searchBean.getGatewayId().contains(gatewayId)) { Log.i("TAG", "onSuccess: "); + HDLLinkConfig.getInstance().setCurrentGateway(searchBean); + HDLLinkConfig.getInstance().setLocalEncrypt(searchBean.isLocalEncrypt()); callBack.onSuccess(searchBean); + }else { + } } @@ -251,53 +283,43 @@ return searchBean; } + private AuthenticateResponseBean getAuthenticateResponseBean(Object msg) { + AuthenticateResponseBean mBean = null; + if (msg instanceof LinkResponse) { + LinkResponse linkResponse = (LinkResponse) msg; + String data = linkResponse.getData(); + if (!TextUtils.isEmpty(data)) { + AuthenticateResponseBean response = GsonConvert.getGson().fromJson(data, new TypeToken<AuthenticateResponseBean>() { + }.getType()); + + mBean = response; + } + + } + return mBean; + } + /** * 璁惧鎺у埗 */ public void propertyDown(List<DeviceControlRequest> request, HDLSocket.CallBack callBack) { -// if (!TextUtils.isEmpty(getGatewayId()) && !TextUtils.isEmpty(getTcpIp())) { String time = String.valueOf(System.currentTimeMillis()); - final BaseLocalResponse<List<DeviceControlRequest>> data = new BaseLocalResponse<>(); data.setId(IdUtils.getUUId()); data.setTime_stamp(time); data.setObjects(request); - - - String topic = String.format(TopicConstant.PROPERTY_DOWN, "1406844230123372545"); + String topic = HDLLinkConfig.getInstance().getFullTopic(TopicConstant.PROPERTY_DOWN); LinkRequest message = new LinkRequest(topic, GsonConvert.getGson().toJson(data)); - -// Log.i("TAG", "propertyDown: " + message.toString()); String ip = IpUtils.getBroadcastAddress(); HdlSocketHelper.send(getUdpBoot(ip), message, null); -// } + } - String stringToMD5(String text) { - byte[] hash; - try { - hash = MessageDigest.getInstance("MD5").digest(text.getBytes("UTF-8")); - } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - return null; - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - return null; - } - StringBuilder hex = new StringBuilder(hash.length * 2); - for (byte b : hash) { - if ((b & 0xFF) < 0x10) - hex.append("0"); - hex.append(Integer.toHexString(b & 0xFF)); - } - - return hex.toString(); - } -- Gitblit v1.8.0