From bdec7373b358239521703995c5220e995dee289c Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期四, 05 三月 2020 14:20:42 +0800 Subject: [PATCH] 2020-03-05 1.增加简易编程搜索回复 --- hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java | 119 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 98 insertions(+), 21 deletions(-) diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java index f8ede67..0b21663 100644 --- a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java +++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java @@ -66,30 +66,19 @@ public static List<String> rcuIpList = new ArrayList<>();//缁熻Rcu ip鍦板潃鍒楄〃 public static List<DevicesData> devicesDataList = new ArrayList<>();//缁熻鎼滅储鍒楄〃 public static List<DevicesData> realDevicesDataList = new ArrayList<>();//缁熻鎼滅储鍒楄〃 - - private static Context viewContext; public static List<ListRemarks> listRemarks = new ArrayList<>(); public static List<RcuLight> rcuLightList = new ArrayList<>(); public static List<RcuCurtain> rcuCurtainList = new ArrayList<>(); public static boolean isLogicCtrl = false; public static ConcurrentHashMap<String, Boolean> ctrlSuccessStateHashMap = new ConcurrentHashMap<>();//2019-8-2 - -// public static byte[] air1Info = null; -// public static byte[] air2Info = null; -// public static byte[] air3Info = null; -// public static byte[] air4Info = null; - // air4Info[寮�鍏崇姸鎬侊紝妯″紡锛岃缃俯搴︼紝椋庨�燂紝褰撳墠娓╁害锛屾槸鍚︽憜椋� ]; - public static boolean isGetRcuIpSuccess = false; public static boolean isGetDeviceStateSuccess = false; //鍒ゆ柇鑾峰彇璁惧鐘舵�佹槸鍚︽帶鍒舵垚鍔� - -// public static boolean isLightCtrlSuccess = false; //鍒ゆ柇鐏厜鏄惁鎺у埗鎴愬姛 -// public static boolean isCurtainCtrlSuccess = false; //鍒ゆ柇绐楀笜鏄惁鎺у埗鎴愬姛 -// public static boolean isACCtrlSuccess = false; //鍒ゆ柇绌鸿皟鏄惁鎺у埗鎴愬姛 -// public static boolean isSceneCtrlSuccess = false; //鍒ゆ柇鍦烘櫙鏄惁鎺у埗鎴愬姛 -// public static boolean isFreshAirCtrlSuccess = false; //鍒ゆ柇鏂伴绯荤粺鏄惁鎺у埗鎴愬姛 -// public static boolean isGeothermalCtrlSuccess = false; //鍒ゆ柇鍦扮儹妯″潡鏄惁鎺у埗鎴愬姛 + //鏄惁鍏佽琚畝鏄撶紪绋嬫悳绱㈤儴鍒� + private static boolean isAllowEasyProgrammingSearch = false;//鏄惁鍏佽琚畝鏄撶紪绋嬫悳绱� + private static int SDKLocalBigClass = 9; //SDK 褰撳墠閰嶇疆妯℃嫙璁惧鐨勫ぇ绫伙紝榛樿涓洪煶涔愩�佽儗鏅煶涔愬姛鑳� + private static int SDKLocalSmallClass = 1; //SDK 褰撳墠閰嶇疆妯℃嫙璁惧鐨勫皬绫伙紝绗笁鏂硅儗鏅煶涔愭ā鍧� + private static String SDKLocalRemark = "鐗规畩璁惧"; //SDK 褰撳墠閰嶇疆妯℃嫙璁惧澶囨敞 /** @@ -100,12 +89,10 @@ public static void init(Context context) { viewContext = context; // HDLUdpCore.initMulticastSocket(); - - HandleSearch.rcuIp = (String) SPUtils.getParam(context, SPUtils.KEY_RCU_IP_, ""); Crc.localSubnetID = (int) SPUtils.getParam(context, SPUtils.KEY_SUB_ID_, 254); Crc.localDeviceID = (int) SPUtils.getParam(context, SPUtils.KEY_DEVICE_ID, 80); - + SDKLocalRemark = (String) SPUtils.getParam(viewContext, SPUtils.KEY_LOCAL_REMARK, SPUtils.DEFAULT_REMARK); // HandleSearch.curSearchMode = HandleSearch.GET_BUS_DEVICES; // HDLUdpCore.initMulticastSocket6000(); } @@ -122,6 +109,32 @@ HDLUdpCore.closeSocket6000(); } + /** + * 閰嶇疆绠�鏄撶紪绋嬫悳绱㈣繑鍥炵殑榛樿鍙傛暟 + * @param mSDKLocalBigClass + * @param mSDKLocalSmallClass + * @param mSDKLocalRemark + */ + public static void setEasyProgrammingSearchLocalData(int mSDKLocalBigClass, int mSDKLocalSmallClass, String mSDKLocalRemark){ + SDKLocalBigClass = mSDKLocalBigClass; + SDKLocalSmallClass = mSDKLocalSmallClass; + if(mSDKLocalRemark != null){ + SDKLocalRemark = mSDKLocalRemark; + } + isAllowEasyProgrammingSearch = true; + } + + public static void setEasyProgrammingSearchLocalData(int mSDKLocalBigClass, int mSDKLocalSmallClass){ + setEasyProgrammingSearchLocalData(mSDKLocalBigClass, mSDKLocalSmallClass,null); + } + + /** + * 璁剧疆鏄惁鍏佽琚畝鏄撶紪绋嬫悳绱� + * @param isAllow + */ + public static void setIsAllowEasyProgrammingSearch(boolean isAllow){ + isAllowEasyProgrammingSearch = isAllow; + } /** * 澶勭悊CommandData骞惰繑鍥炴悳绱㈡垨鎺у埗鐨勬湁鐢ㄤ俊鎭� @@ -147,6 +160,10 @@ handleSearchData(getDatas); } } + break; + //绠�鏄撶紪绋嬭澶囨悳绱㈡搷浣滅爜銆佽澶囪鍙栨搷浣滅爜 鍥炲 + case Configuration.DEVICES_SEARCH_COMMAND: + handleDeviceSearchBackData(getDatas); break; // 鎺у埗璁惧 case Configuration.LIGHT_CTRL_BACK_COMMAND: @@ -279,6 +296,64 @@ /** + * 鍥炲绠�鏄撶紪绋嬫悳绱㈤潪缃戠粶璁惧锛岃繑鍥炲綋鍓峉DK淇℃伅 + * + * @param getDatas + */ + private static void sendDeviceSearchBackInfo(UdpDataBean getDatas) { + byte[] remarkByte = StringUtil.stringtoBytes(SDKLocalRemark); + byte[] addBytes = new byte[25]; + addBytes[0] = getDatas.addBytes[0]; + addBytes[1] = getDatas.addBytes[1]; + System.arraycopy(remarkByte, 0, addBytes, 2, remarkByte.length > 20 ? 20 : remarkByte.length); + addBytes[22] = (byte) SDKLocalBigClass; + addBytes[23] = (byte) SDKLocalSmallClass; + addBytes[24] = (byte) 1; + + HDLCommand.cusSendCommand(Configuration.DEVICES_SEARCH_BACK_COMMAND, + getDatas.sourceSubnetID, + getDatas.sourceDeviceID, + addBytes, + getDatas.port, getDatas.ipAddress); + + +// HDLCommand.cusSendCommand(Configuration.DEVICES_SEARCH_BACK_COMMAND, +// getDatas.sourceSubnetID, +// getDatas.sourceDeviceID, +// addBytes, +// getDatas.port, NetWorkUtil.getLocalBroadCast()); + + } + + /** + * 鏀跺埌绠�鏄撶紪绋嬫悳绱㈤潪缃戠粶璁惧 + * @param getDatas + */ + public static void handleDeviceSearchBackData(UdpDataBean getDatas){ + //鍒ゆ柇鏄惁鍏佽琚畝鏄撶紪绋嬫悳绱㈠拰鍥炲 + if(!isAllowEasyProgrammingSearch) return; + + if (getDatas.addBytes.length == 2) { + sendDeviceSearchBackInfo(getDatas); + } else { + + for (int i = 2, len = getDatas.addBytes.length; i < len; i++) { + if (i % 2 == 0) { + if ((getDatas.addBytes[i] & 0xFF) == Crc.localSubnetID + && (getDatas.addBytes[i + 1] & 0xFF) == Crc.localDeviceID + ) { + sendDeviceSearchBackInfo(getDatas); + break; + } + } + } + } + + } + + + + /** * 澶勭悊RCU鎼滅储鏁版嵁 * * @param getDatas @@ -342,9 +417,9 @@ } byte[] remarkByte; - String remarkString = (String) SPUtils.getParam(viewContext, SPUtils.KEY_LOCAL_REMARK, SPUtils.DEFAULT_REMARK); +// String remarkString = (String) SPUtils.getParam(viewContext, SPUtils.KEY_LOCAL_REMARK, SPUtils.DEFAULT_REMARK); - remarkByte = StringUtil.stringtoBytes(remarkString); + remarkByte = StringUtil.stringtoBytes(SDKLocalRemark); byte[] addBytes = new byte[53]; addBytes[0] = getDatas.addBytes[0]; @@ -2540,4 +2615,6 @@ } + + } -- Gitblit v1.8.0