From ce062b3c62d283fa364f92853d1b53221b94a3bc Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期三, 24 六月 2020 09:30:32 +0800 Subject: [PATCH] 2020-06-24 1.增加手动添加生成设备接口方法。 2.增加通用开关和安防模块支持。 --- hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommand.java | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 161 insertions(+), 1 deletions(-) diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommand.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommand.java index d64cb57..c0593f8 100644 --- a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommand.java +++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommand.java @@ -8,6 +8,7 @@ import com.hdl.sdk.hdl_core.HDLAppliances.HDLAirCondition.AirCtrlBackInfo; import com.hdl.sdk.hdl_core.HDLAppliances.HDLAirCondition.Parser.AirCtrlParser; import com.hdl.sdk.hdl_core.HDLAppliances.HDLAudio.HDLAudio; +import com.hdl.sdk.hdl_core.HDLAppliances.HDLCommonSwitch.CommonSwitchBackInfo; import com.hdl.sdk.hdl_core.HDLAppliances.HDLCurtain.CurtainCtrlBackInfo; import com.hdl.sdk.hdl_core.HDLAppliances.HDLCurtain.Parser.CurtainCtrlParser; import com.hdl.sdk.hdl_core.HDLAppliances.HDLFreshAir.FreshAirBackInfo; @@ -16,9 +17,11 @@ import com.hdl.sdk.hdl_core.HDLAppliances.HDLGeothermal.Parser.GeothermalParser; import com.hdl.sdk.hdl_core.HDLAppliances.HDLLight.LightCtrlBackInfo; import com.hdl.sdk.hdl_core.HDLAppliances.HDLLogic.LogicCtrlBackInfo; +import com.hdl.sdk.hdl_core.HDLAppliances.HDLSecurity.Parser.SecurityParser; import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.AppliancesInfo; import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.DeviceStateBean; import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.AirFeedBackEvent; +import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.CommonSwitchCtrlBackEvent; import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.CurtainFeedBackEvent; import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.DeviceStateEvent; import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.EventCode; @@ -26,6 +29,7 @@ import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.GeothermalFeedBackEvent; import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.LightFeedBackEvent; import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.LogicFeedBackEvent; +import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.SecurityArmingFeedBackEvent; import com.hdl.sdk.hdl_core.Util.LogUtil.HDLLog; import com.hdl.sdk.hdl_core.Util.NetUtil.NetWorkUtil; import com.hdl.sdk.hdl_core.Util.SPUtil.SPUtils; @@ -44,7 +48,7 @@ */ public class HDLCommand { - + public static int mRequestTimeout = 5000;//榛樿璇锋眰瓒呮椂鏃堕棿 private static Timer getStateFailTimer = null;//鑾峰彇璁惧鐘舵�佸け璐imer private static Timer lightCtrlFailTimer = null;//鎺у埗鐏厜澶辫触Timer @@ -54,6 +58,8 @@ private static Timer freshAirCtrlFailTimer = null;//鎺у埗鏂伴澶辫触Timer 2019-07-09 private static Timer geothermalCtrlFailTimer = null;//鎺у埗鍦扮儹澶辫触Timer 2019-07-10 + private static Timer securityCtrlFailTimer = null;//瀹夐槻妯″潡鎿嶄綔澶辫触Timer + private static Timer commonSwitchCtrlFailTimer = null;//閫氱敤寮�鍏冲け璐imer /** * 鍒濆鍖� @@ -64,7 +70,32 @@ HDLDeviceManager.init(context); } + /** + * 寮�鍚痓us妯″紡 + * 鍚敤6000绔彛 + * @param context + */ + public static void startHomeMode(Context context) { + SPUtils.setParam(context, SPUtils.KEY_RCU_IP_, ""); + HandleSearch.curSearchMode = HandleSearch.GET_BUS_DEVICES; + HandleSearch.rcuIp = ""; + HDLUdpCore.closeSocket6008(); + HDLUdpCore.init6000(); + } + /** + * 寮�鍚疪CU妯″紡 + * 鍚敤6008绔彛 + * @param context + * @param newRcuIp RCU鐨処P鍦板潃 + */ + public static void startRcuMode(Context context, String newRcuIp) { + HandleSearch.curSearchMode = HandleSearch.GET_RCU_DEVICES; + HandleSearch.rcuIp = newRcuIp; + SPUtils.setParam(context, SPUtils.KEY_RCU_IP_, newRcuIp); + HDLUdpCore.closeSocket6000(); + HDLUdpCore.init6008(); + } // /** // * 鑾峰彇鏈湴骞挎挱IP @@ -1066,6 +1097,135 @@ } + /**************************************2020-06-23鏂板***************************************/ + /** + * 鎺у埗閫氱敤寮�鍏� + * + * @param info + */ + public static void commonSwitchCtrl(final AppliancesInfo info, int state) { + HDLDeviceManager.setDeviceCtrlSuccessStateWithInfo(info, false); + if (info.getBigType() == Configuration.COMMON_SWITCH_BIG_TYPE) { + + if (commonSwitchCtrlFailTimer != null) { + commonSwitchCtrlFailTimer.cancel(); + commonSwitchCtrlFailTimer = null; + } + + byte[] bytes = new byte[]{(byte) info.getChannelNum(), (byte) state}; + + addSendData(info, bytes, Configuration.CONTROL); + + commonSwitchCtrlFailTimer = new Timer(); + commonSwitchCtrlFailTimer.schedule(new TimerTask() { + @Override + public void run() { + if (!HDLDeviceManager.getDeviceCtrlSuccessStateWithInfo(info)) { + HDLLog.info("閫氱敤寮�鍏虫帶鍒跺け璐�"); + CommonSwitchBackInfo mCommonSwitchBackInfo = new CommonSwitchBackInfo(); + mCommonSwitchBackInfo.setAppliancesInfo(info); + EventBus.getDefault().post(new CommonSwitchCtrlBackEvent(mCommonSwitchBackInfo, false)); + } + } + }, mRequestTimeout); + } else { + HDLLog.info("djlCtrl: 閫氱敤寮�鍏宠澶囨帶鍒朵笉鍦ㄨ寖鍥村唴" + + " LittleType = " + info.getLittleType() + + " BigType = " + info.getBigType() + ); + } + } + + /** + * 鑾峰彇閫氱敤寮�鍏崇姸鎬� + * @param info + */ + public static void getCommonSwitchStateFromNetwork(final AppliancesInfo info) { + if (info == null) { + return; + } + HDLDeviceManager.isGetDeviceStateSuccess = false; + switch (info.getDeviceType()) { + case HDLApConfig.TYPE_COMMON_SWITCH: + addSendData(info, new byte[0], Configuration.STATE); + break; + default: + HDLLog.info("涓嶆槸閫氱敤寮�鍏宠澶�"); + break; + } + } + + + /** + * 鑾峰彇瀹夐槻妯″潡鐘舵�� + * @param info + */ + public static void getSecurityStateFromNetwork(final AppliancesInfo info) { + if (info == null) { + return; + } + HDLDeviceManager.isGetDeviceStateSuccess = false; + switch (info.getDeviceType()) { + case HDLApConfig.TYPE_SECURITY_MODULE: + //鍙戦�佽幏瀹夐槻妯″潡鐘舵�佹暟鎹� + addSendData(info, new byte[]{(byte) info.getChannelNum()}, Configuration.STATE); + break; + default: + HDLLog.info("涓嶆槸瀹夐槻妯″潡"); + break; + } + } + + /** + * 瀹夐槻妯″潡 甯冮槻璁剧疆 + * 2020-06-23 + * @param info + */ + public static void securityArmingCtrl(final AppliancesInfo info, int state) { +// HDLDeviceManager.isSecurityCtrlSuccess = false; + HDLDeviceManager.setDeviceCtrlSuccessStateWithInfo(info, false); + if (securityCtrlFailTimer != null) { + securityCtrlFailTimer.cancel(); + securityCtrlFailTimer = null; + } + if (info.getBigType() == Configuration.SECURITY_BIG_TYPE) { + byte[] sendbytes = SecurityParser.getArmingByte(info, state); + addSendData(info, sendbytes, Configuration.CONTROL); + securityCtrlFailTimer = new Timer(); + securityCtrlFailTimer.schedule(new TimerTask() { + @Override + public void run() { + if (!HDLDeviceManager.getDeviceCtrlSuccessStateWithInfo(info)) { + EventBus.getDefault().post(new SecurityArmingFeedBackEvent(info,0, false)); + } + } + }, 5000); + + } else { + HDLLog.info("瀹夐槻妯″潡涓嶅湪鑼冨洿鍐�" + + " LittleType = " + info.getLittleType() + + " BigType = " + info.getBigType() + ); + } + } + +// /** +// * 瀹夐槻妯″潡 鎶ヨ璁剧疆 +// * 2019-7-29 +// * @param info +// * @param state 鍙戦�佺殑鎶ヨ鍐呭锛屽彧鎶ヨ涓�绉� +// */ +// public static void securitySendAlarm(final AppliancesInfo info, int state) { +// if (info.getBigType() == Configuration.SECURITY_BIG_TYPE) { +// byte[] sendbytes = SecurityParser.getAlarmByte(info, state); +// cusSendCommand(Configuration.SECURITY_ALARM_CTRL_COMMAND, info.getDeviceSubnetID(), info.getDeviceDeviceID(), sendbytes); +// } else { +// HDLLog.info("涓嶆槸瀹夐槻妯″潡" +// + " LittleType = " + info.getLittleType() +// + " BigType = " + info.getBigType() +// ); +// } +// } } -- Gitblit v1.8.0