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/EventBusEvent/SecurityArmingFeedBackEvent.java | 35 app/src/main/res/layout/activity_sensor.xml | 35 hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Parser/DeviceParser.java | 249 +++++ app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AddDevicesActivity.java | 413 ++++++++ hdl_core/src/main/java/com/hdl/sdk/hdl_core/Config/Configuration.java | 23 hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Bean/SecurityStateBean.java | 90 + hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/EventBusEvent/CommonSwitchCtrlBackEvent.java | 26 app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlCommonSwitchActivity.java | 189 ++++ app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlSecurityActivity.java | 318 ++++++ hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLCommonSwitch/CommonSwitchBackInfo.java | 39 app/src/main/res/layout/activity_add_devices.xml | 274 +++++ app/src/main/res/layout/activity_ctrl_common_switch.xml | 48 + hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/EventBusEvent/CommonSwitchStateBackEvent.java | 26 app/src/main/res/layout/activity_ctrl_security.xml | 254 +++++ app/src/main/res/values/dimens.xml | 23 hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/Config/HDLApConfig.java | 9 hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLSecurity/Parser/SecurityParser.java | 117 ++ hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLSecurity/SecurityBackInfo.java | 132 ++ app/src/main/AndroidManifest.xml | 5 hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLSecurity/SecurityArmingStateBackInfo.java | 24 hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/EventBusEvent/SecurityAlarmFeedBackEvent.java | 24 app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AppliancesActivity.java | 11 hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLUdpCore.java | 5 hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java | 213 ++++ app/src/main/java/com/hdl/sdk/hdl_sdk/activity/MainActivity.java | 7 hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommand.java | 162 +++ hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLSDK.java | 64 + 27 files changed, 2,807 insertions(+), 8 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9de0ad7..4719abd 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,8 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> - <activity android:name=".activity.SettingActivity"></activity> + <activity android:name=".activity.AddDevicesActivity"></activity> + <activity android:name=".activity.SettingActivity" /> <activity android:name=".activity.AddDevicesManuallyActivity" /> <activity android:name=".activity.MainActivity"> <intent-filter> @@ -32,6 +33,8 @@ <activity android:name=".activity.AudioActivity" /> <activity android:name=".activity.FreshAirActivity" /> <activity android:name=".activity.GeothermalActivity" /> + <activity android:name=".activity.CtrlCommonSwitchActivity" /> + <activity android:name=".activity.CtrlSecurityActivity" /> <receiver android:name=".activity.BootComplete"> <intent-filter> diff --git a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AddDevicesActivity.java b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AddDevicesActivity.java new file mode 100644 index 0000000..f4ed1de --- /dev/null +++ b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AddDevicesActivity.java @@ -0,0 +1,413 @@ +package com.hdl.sdk.hdl_sdk.activity; + +import android.app.Activity; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; + + +import com.hdl.sdk.hdl_core.Config.Configuration; +import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.DevicesData; +import com.hdl.sdk.hdl_core.HDLDeviceManger.Parser.DeviceParser; +import com.hdl.sdk.hdl_sdk.R; + +import java.util.ArrayList; + + +/** SDK鐩墠鏀寔鐨勫ぇ绫伙細灏忕被 + * 鐏厜绫伙細璋冨厜鍥炶矾銆佸紑鍏冲洖璺�佹贩鍚堣皟鍏夌被銆佹贩鍚堝紑鍏崇被 + * 绐楀笜绫伙細寮�鍚堝笜鐢垫満銆佸嵎甯樼數鏈恒�佺獥甯樻ā鍧� + * 绌鸿皟鍔熻兘锛欻VAC 妯″潡銆侀�氱敤绌鸿皟闈㈡澘 + * 鑳屾櫙闊充箰鍔熻兘锛氳儗鏅煶涔愭ā鍧� 2018鏂拌儗鏅煶涔愭ā鍧楀皬绫�3 + * 浼犳劅鍣細骞茬粨鐐�0 鍒� 鍔熺巼24 + * 閫昏緫鍔熻兘锛氶�昏緫妯″潡 + * 鍏ㄥ眬鍦烘櫙锛� + * 鍦扮儹鍔熻兘锛氬湴鐑ā鍧� + * 鏂伴锛氭柊椋庣郴缁� + + * 鐏厜绫�1锛�0 锛�1锛�9锛�10 + * 绐楀笜绫�2锛�0锛�1锛�2 + * 浼犳劅鍣�5锛�0~24 + * 绌鸿皟绫�7锛�0锛�3 + * 鍦扮儹妯″潡8锛�0 + * 鑳屾櫙闊充箰鍔熻兘9锛�0 + * 閫昏緫鍔熻兘12锛�0 + * 鍏ㄥ眬鍦烘櫙17锛�0 + * 鏂伴妯″潡19锛�0 + * 閫氱敤寮�鍏�100锛�0 + * + * 璇ユ柟娉曞簲鐢ㄤ簬鎻愪緵椤圭洰浜や粯鍓嶇殑鎻愬彇鎵归噺鏁版嵁鐢熸垚濂芥暟鎹�� + * 妯℃嫙鐢熸垚璁惧鍥炶矾鏁版嵁锛屽湪椤圭洰涓嶆敮鎸佺畝鏄撶紪绋嬫悳绱㈡儏鍐典笅锛屽彲浠ラ�氳繃璇ユ柟娉曪紝鍏堝揩鎹风敓鎴愮洰鏍囨暟鎹� 寰楀埌 List<DevicesData> 鏍煎紡鐨勮澶囧垪琛ㄦ暟鎹� + * + * 涓婂眰鍋氭湰鍦颁繚瀛樻垨鑰呬簯绔浠斤紝App鍚姩鏃惰鍙栨仮澶� + * 姣忔鍚姩鏃跺厛鍔犺浇鐢熸垚濂界殑璁惧鍒楄〃鏁版嵁锛岀劧鍚庡湪 SDK 鍒濆鍖栧悗锛岃祴鍊肩粰 HDLDeviceManager.devicesDataList + */ +public class AddDevicesActivity extends Activity { + + private int bigType; + private int littleType; + private int mSubnetID; + private int mDeviceID; + private int mChannelNum; + private int port = 6000; + private String parentRemarks; + private ArrayList<String> parentRemarksList = new ArrayList(); + + private EditText et_subnetID, et_deviceID, et_bitType, et_littleType, et_remarks, et_remarks_mk, et_mChannelNum,et_scene,et_mPort; + private Button btn_add,btn_scene,btn_addAll; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_add_devices); + + et_subnetID = findViewById(R.id.et_subnetID); + et_deviceID = findViewById(R.id.et_deviceID); + et_bitType = findViewById(R.id.et_bitType); + et_littleType = findViewById(R.id.et_littleType); + et_remarks = findViewById(R.id.et_remarks); +// et_port = findViewById(R.id.et_port); + et_remarks_mk = findViewById(R.id.et_remarks_mk); + et_mChannelNum = findViewById(R.id.et_mChannelNum); + et_mPort = findViewById(R.id.et_mPort); + + et_scene = findViewById(R.id.et_scene); + + btn_add = findViewById(R.id.btn_add); + btn_scene = findViewById(R.id.btn_scene); + btn_addAll= findViewById(R.id.btn_addAll); + + + btn_add.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + addDevicesManuallyWithoutSearchingAll(); + + } + }); + + btn_scene.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + addScene(); + + } + }); + + btn_addAll.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + addMultipleDevices(); + + } + }); + } + + + private void addDevicesManuallyWithoutSearchingAll() { +// parentRemarksList.clear(); + + + String subnetIDStr = et_subnetID.getText().toString(); + if (TextUtils.isEmpty(subnetIDStr)) { + showToast("瀛愮綉鍙蜂笉鑳戒负绌�"); + return; + } + + String deviceIDStr = et_deviceID.getText().toString(); + if (TextUtils.isEmpty(deviceIDStr)) { + showToast("璁惧鍙蜂笉鑳戒负绌�"); + return; + } + + String bitTypeStr = et_bitType.getText().toString(); + if (TextUtils.isEmpty(bitTypeStr)) { + showToast("澶х被涓嶈兘涓虹┖"); + return; + } + + String littleTypeStr = et_littleType.getText().toString(); + if (TextUtils.isEmpty(littleTypeStr)) { + showToast("灏忕被涓嶈兘涓虹┖"); + return; + } + String mChannelNumStr = et_mChannelNum.getText().toString(); + if (TextUtils.isEmpty(littleTypeStr)) { + showToast("鍥炶矾鍙蜂笉鑳戒负绌�"); + return; + } + + String mPortStr = et_mPort.getText().toString(); + if (TextUtils.isEmpty(mPortStr)) { + showToast("绔彛鍙蜂笉鑳戒负绌�"); + return; + } + + + + + String remarksMkString = et_remarks_mk.getText().toString(); + if (TextUtils.isEmpty(remarksMkString)) { + showToast("妯″潡澶囨敞涓嶈兘涓虹┖"); + return; + } + + + String remarksString = et_remarks.getText().toString(); + if (TextUtils.isEmpty(remarksString)) { + showToast("澶囨敞涓嶈兘涓虹┖"); + return; + } + +// String et_portString = et_port.getText().toString(); +// if (TextUtils.isEmpty(et_portString)) { +// showToast("绔彛涓嶈兘涓虹┖"); +// return; +// } + + + mSubnetID = Integer.parseInt(subnetIDStr); + mDeviceID = Integer.parseInt(deviceIDStr); + + bigType = Integer.parseInt(bitTypeStr); + littleType = Integer.parseInt(littleTypeStr); + mChannelNum = Integer.parseInt(mChannelNumStr); + parentRemarks = remarksMkString; + port = Integer.parseInt(mPortStr); + + + /** + * 娣诲姞璁惧鍥炶矾 + * 濡傛灉瀛樺湪鐩稿悓瀛愮綉鍙� 璁惧鍙凤紝鍒欏綋鎴愭贩鍚堟ā鍧楁坊鍔犲埌璇ュ洖璺笅锛屼笉瀛樺湪鍒欐柊娣诲姞妯″潡 + * @param bigType 鍥炶矾澶х被 + * @param littleType 鍥炶矾灏忕被 + * @param mSubnetID 鍥炶矾瀛愮綉ID + * @param mDeviceID 鍥炶矾璁惧ID + * @param mChannelNum 鍥炶矾鍙� + * @param mChannelRemark 鍥炶矾澶囨敞 渚嬪锛氱獥甯樸�佸悐鐏�佸帟鎵�鐏�佺數瑙� + * @param parentRemarks 褰撳墠鍥炶矾妯″潡鐨勫娉� 渚嬪: 閰掑簵RCU妯″潡 + * @return + */ + //濡傛灉瀛樺湪鐩稿悓瀛愮綉鍙� 璁惧鍙凤紝鍒欏綋鎴愭贩鍚堟ā鍧楁坊鍔犲埌璇ュ洖璺笅锛屼笉瀛樺湪鍒欐柊娣诲姞妯″潡 + DevicesData mDevicesData = DeviceParser.addDevicesListWithoutSearching(port, bigType, littleType, mSubnetID, mDeviceID, mChannelNum, remarksString, parentRemarks,true); + if (mDevicesData != null) { + showToast("娣诲姞鎴愬姛"); + } else { + showToast("娣诲姞澶辫触"); + } + + + } + + /** + * 娣诲姞鍦烘櫙璁惧鍥炶矾 闇�鎸囧畾 鍦烘櫙鍖哄彿 鍜� 鍦烘櫙鍙� + * 濡傛灉瀛樺湪鐩稿悓瀛愮綉鍙� 璁惧鍙凤紝鍒欏綋鎴愭贩鍚堟ā鍧楁坊鍔犲埌璇ュ洖璺笅锛屼笉瀛樺湪鍒欐柊娣诲姞妯″潡 + * + * @param mSubnetID + * @param mDeviceID + * @param mAreaNum //鍦烘櫙 鍖哄煙鍙� + * @param mAreaSceneNum //鍦烘櫙 褰撳墠鍖哄煙鍦烘櫙鍙� + * @param mChannelRemark 璇诲彇鍦烘櫙鐨勫娉ㄥ悕绉� 渚嬪: 鍏ヤ綇銆佽捣搴婃ā寮忋�侀槄璇绘ā寮� + * @param parentRemarks 褰撳墠鍥炶矾妯″潡鐨勫娉� 渚嬪: 閰掑簵RCU妯″潡 + * @param bSaveAndCallBack 鏄惁椹笂淇濆瓨鏈湴骞朵笖鎺ㄩ�丏evicesInfoEvent 浜嬩欢 + * @return + */ + private void AddScenesDevices(int mSubnetID, int mDeviceID, int mAreaNum, int mAreaSceneNum, String mChannelRemark, String parentRemarks, boolean bSaveAndCallBack) { + //娣诲姞鍦烘櫙 + DevicesData mScenesData = DeviceParser.addScenesDevicesListWithoutSearching(port, mSubnetID, mDeviceID, mAreaNum, mAreaSceneNum, mChannelRemark, parentRemarks,true); + } + + + /** + * 娣诲姞鍦烘櫙鍥炶矾 + */ + private void addScene(){ + + String subnetIDStr = et_subnetID.getText().toString(); + if (TextUtils.isEmpty(subnetIDStr)) { + showToast("瀛愮綉鍙蜂笉鑳戒负绌�"); + return; + } + + String deviceIDStr = et_deviceID.getText().toString(); + if (TextUtils.isEmpty(deviceIDStr)) { + showToast("璁惧鍙蜂笉鑳戒负绌�"); + return; + } + + + String mPortStr = et_mPort.getText().toString(); + if (TextUtils.isEmpty(mPortStr)) { + showToast("绔彛鍙蜂笉鑳戒负绌�"); + return; + } + +// String bitTypeStr = et_bitType.getText().toString(); +// if (TextUtils.isEmpty(bitTypeStr)) { +// showToast("澶х被涓嶈兘涓虹┖"); +// return; +// } +// +// String littleTypeStr = et_littleType.getText().toString(); +// if (TextUtils.isEmpty(littleTypeStr)) { +// showToast("灏忕被涓嶈兘涓虹┖"); +// return; +// } +// String mChannelNumStr = et_mChannelNum.getText().toString(); +// if (TextUtils.isEmpty(littleTypeStr)) { +// showToast("鍥炶矾鍙蜂笉鑳戒负绌�"); +// return; +// } + + + String remarksMkString = et_remarks_mk.getText().toString(); + if (TextUtils.isEmpty(remarksMkString)) { + showToast("妯″潡澶囨敞涓嶈兘涓虹┖"); + return; + } + + + String remarksString = et_remarks.getText().toString(); + if (TextUtils.isEmpty(remarksString)) { + showToast("澶囨敞涓嶈兘涓虹┖"); + return; + } + + String et_sceneString = et_scene.getText().toString(); + if (TextUtils.isEmpty(et_sceneString)) { + showToast("鍦烘櫙ID涓嶈兘涓虹┖"); + return; + } + + + mSubnetID = Integer.parseInt(subnetIDStr); + mDeviceID = Integer.parseInt(deviceIDStr); + port = Integer.parseInt(mPortStr); +// bigType = Integer.parseInt(bitTypeStr); +// littleType = Integer.parseInt(littleTypeStr); +// mChannelNum = Integer.parseInt(mChannelNumStr); + parentRemarks = remarksMkString; + int sceneID = Integer.parseInt(et_sceneString); + + DevicesData mScenesData = DeviceParser.addScenesDevicesListWithoutSearching(port, mSubnetID, mDeviceID, sceneID, sceneID, remarksString, parentRemarks,true); + if (mScenesData != null) { + showToast("娣诲姞鎴愬姛"); + } else { + showToast("娣诲姞澶辫触"); + } + + } + + /** + * 鎵归噺娣诲姞 + * 浠呭仛婕旂ず鐢� + */ + private void addMultipleDevices(){ + + String subnetIDStr = et_subnetID.getText().toString(); + if (TextUtils.isEmpty(subnetIDStr)) { + showToast("瀛愮綉鍙蜂笉鑳戒负绌�"); + return; + } + + String deviceIDStr = et_deviceID.getText().toString(); + if (TextUtils.isEmpty(deviceIDStr)) { + showToast("璁惧鍙蜂笉鑳戒负绌�"); + return; + } + + + + String remarksMkString = et_remarks_mk.getText().toString(); + if (TextUtils.isEmpty(remarksMkString)) { + showToast("妯″潡澶囨敞涓嶈兘涓虹┖"); + return; + } + + + + + mSubnetID = Integer.parseInt(subnetIDStr); + mDeviceID = Integer.parseInt(deviceIDStr); + parentRemarks = remarksMkString; + +// //娣诲姞涓�涓伅 +// DeviceParser.addDevicesListWithoutSearching(port, Configuration.LIGTH_BIG_TYPE, 0, mSubnetID, mDeviceID, 1, "鍚у彴鐏�", parentRemarks,false); +// //娣诲姞涓�涓伅 +// DeviceParser.addDevicesListWithoutSearching(port, Configuration.LIGTH_BIG_TYPE, 0, mSubnetID, mDeviceID, 2, "浼戦棽鐏�", parentRemarks,false); +// //娣诲姞涓�涓伅 +// DeviceParser.addDevicesListWithoutSearching(port, Configuration.LIGTH_BIG_TYPE, 0, mSubnetID, mDeviceID, 3, "鐢佃鐏�", parentRemarks,false); +// //娣诲姞涓�涓伅 +// DeviceParser.addDevicesListWithoutSearching(port, Configuration.LIGTH_BIG_TYPE, 0, mSubnetID, mDeviceID, 6, "寤婄伅", parentRemarks,false); +// +// //娣诲姞涓�涓獥甯� +// DeviceParser.addDevicesListWithoutSearching(port, Configuration.CURTAIN_BIG_TYPE, 2, mSubnetID, mDeviceID, 1, "绐楀笜", parentRemarks,false); +// //娣诲姞涓�涓獥甯� +// DeviceParser.addDevicesListWithoutSearching(port, Configuration.CURTAIN_BIG_TYPE, 2, mSubnetID, mDeviceID, 2, "绾辩獥", parentRemarks,false); +// +// //娣诲姞涓�涓┖璋� +// DeviceParser.addDevicesListWithoutSearching(port, Configuration.AIR_BIG_TYPE, 0, mSubnetID, mDeviceID, 1, "鎴块棿绌鸿皟", parentRemarks,false); +// +//// //娣诲姞閫氱敤寮�鍏� 娓呯悊 +//// DeviceParser.addDevicesListWithoutSearching(port, Configuration.COMMON_SWITCH_BIG_TYPE, 0, mSubnetID, mDeviceID, 15, "娓呯悊", parentRemarks,false); +//// //娣诲姞閫氱敤寮�鍏� 鍏ヤ綇 +//// DeviceParser.addDevicesListWithoutSearching(port, Configuration.COMMON_SWITCH_BIG_TYPE, 0, mSubnetID, mDeviceID, 16, "鍏ヤ綇", parentRemarks,false); +//// //娣诲姞閫氱敤寮�鍏� 绋嶅悗 +//// DeviceParser.addDevicesListWithoutSearching(port, Configuration.COMMON_SWITCH_BIG_TYPE, 0, mSubnetID, mDeviceID, 13, "绋嶅悗", parentRemarks,false); +//// //娣诲姞閫氱敤寮�鍏� 鍕挎壈 +//// DeviceParser.addDevicesListWithoutSearching(port, Configuration.COMMON_SWITCH_BIG_TYPE, 0, mSubnetID, mDeviceID, 14, "鍕挎壈", parentRemarks,false); +//// //娣诲姞涓�涓畨闃叉ā鍧� +//// DeviceParser.addDevicesListWithoutSearching(port, Configuration.SECURITY_BIG_TYPE, 0, 12, 1, 1, "瀹夐槻妯″潡", "瀹夐槻妯″潡",false); +// +// //娣诲姞涓�涓満鏅� 杩欓噷鍦烘櫙鍙峰拰鍖哄彿 榛樿涓�鏍� +// DeviceParser.addScenesDevicesListWithoutSearching(port, mSubnetID, mDeviceID, 2, 2, "绌虹疆鏃犲崱", parentRemarks,false); +// //娣诲姞涓�涓満鏅� +// DeviceParser.addScenesDevicesListWithoutSearching(port, mSubnetID, mDeviceID, 3, 3, "鎻掑崱鍦烘櫙", parentRemarks,false); +// //娣诲姞涓�涓満鏅� +// DeviceParser.addScenesDevicesListWithoutSearching(port, mSubnetID, mDeviceID, 4, 4, "鎴跨伅", parentRemarks,false); +// //娣诲姞涓�涓満鏅� 鏈�鍚庝竴涓猙SaveAndCallBack 璁剧疆涓簍rue +// DeviceParser.addScenesDevicesListWithoutSearching(port, mSubnetID, mDeviceID, 5, 5, "浼氬妯″紡", parentRemarks,true); + + + //娣诲姞涓�涓�4璺户鐢靛櫒 + DeviceParser.addDevicesListWithoutSearching(port, Configuration.LIGTH_BIG_TYPE, 0, 111, 3, 1, "鍚у彴鐏�", "4璺户鐢靛櫒",false); + DeviceParser.addDevicesListWithoutSearching(port, Configuration.LIGTH_BIG_TYPE, 0, 111, 3, 2, "浼戦棽鐏�", "4璺户鐢靛櫒",false); + DeviceParser.addDevicesListWithoutSearching(port, Configuration.LIGTH_BIG_TYPE, 0, 111, 3, 3, "鐢佃鐏�", "4璺户鐢靛櫒",false); + DeviceParser.addDevicesListWithoutSearching(port, Configuration.LIGTH_BIG_TYPE, 0, 111, 3, 4, "寤婄伅", "4璺户鐢靛櫒",false); + + + + //娣诲姞涓�涓�4璺户鐢靛櫒 + DeviceParser.addDevicesListWithoutSearching(port, Configuration.LIGTH_BIG_TYPE, 0, 111, 3, 1, "鍚у彴鐏�", "4璺户鐢靛櫒",false); + DeviceParser.addDevicesListWithoutSearching(port, Configuration.LIGTH_BIG_TYPE, 0, 111, 3, 2, "浼戦棽鐏�", "4璺户鐢靛櫒",false); + DeviceParser.addDevicesListWithoutSearching(port, Configuration.LIGTH_BIG_TYPE, 0, 111, 3, 3, "鐢佃鐏�", "4璺户鐢靛櫒",false); + DeviceParser.addDevicesListWithoutSearching(port, Configuration.LIGTH_BIG_TYPE, 0, 111, 3, 4, "寤婄伅", "4璺户鐢靛櫒",false); + + + //娣诲姞涓�涓�2璺獥甯� + DeviceParser.addDevicesListWithoutSearching(port, Configuration.CURTAIN_BIG_TYPE, 2, 111, 8, 1, "绐楀笜", "2璺獥甯�",false); + DeviceParser.addDevicesListWithoutSearching(port, Configuration.CURTAIN_BIG_TYPE, 2, 111, 8, 2, "绾辩獥", "2璺獥甯�",false); + //娣诲姞涓�涓紑鍚堝笜 + DeviceParser.addDevicesListWithoutSearching(port, Configuration.CURTAIN_BIG_TYPE, 1, 111, 92, 1, "寮�鍚堝笜", "寮�鍚堝笜",false); + + //娣诲姞涓�涓┖璋� + DeviceParser.addDevicesListWithoutSearching(port, Configuration.AIR_BIG_TYPE, 0, 111, 9, 1, "鎴块棿绌鸿皟", "HVAC绌鸿皟妯″潡",false); + //娣诲姞涓�涓満鏅� 鏈�鍚庝竴涓猙SaveAndCallBack 璁剧疆涓簍rue + DeviceParser.addScenesDevicesListWithoutSearching(port, mSubnetID, mDeviceID, 5, 5, "浼氬妯″紡", parentRemarks,true); + + + + } + + + + + private void showToast(String text) { + Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); + } + + +} diff --git a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AppliancesActivity.java b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AppliancesActivity.java index e745bbf..2ee969b 100644 --- a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AppliancesActivity.java +++ b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AppliancesActivity.java @@ -57,7 +57,16 @@ }else if (appliancesInfos.get(position).getBigType() == Configuration.GEOTHERMAL_BIG_TYPE) { //澶х被鏄湴鐑ā鍧楀垯璺宠浆鍒癎eothermalActivity intent.setClass(AppliancesActivity.this, GeothermalActivity.class); - }else { + }else if (appliancesInfos.get(position).getBigType() == Configuration.COMMON_SWITCH_BIG_TYPE) { + //澶х被鏄�氱敤寮�鍏冲垯璺宠浆鍒癈trlCommonSwitchActivity + intent.setClass(AppliancesActivity.this, CtrlCommonSwitchActivity.class); + }else if (appliancesInfos.get(position).getBigType() == Configuration.SECURITY_BIG_TYPE) { + //澶х被鏄畨闃叉ā鍧楀垯璺宠浆鍒癈trlSecurityActivity + intent.setClass(AppliancesActivity.this, CtrlSecurityActivity.class); + } + + + else { intent.setClass(AppliancesActivity.this, CtrlActivity.class); } Bundle bundle = new Bundle(); diff --git a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlCommonSwitchActivity.java b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlCommonSwitchActivity.java new file mode 100644 index 0000000..51f6f66 --- /dev/null +++ b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlCommonSwitchActivity.java @@ -0,0 +1,189 @@ +package com.hdl.sdk.hdl_sdk.activity; + +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.RelativeLayout; +import android.widget.TextView; + + +import com.hdl.sdk.hdl_core.HDLAppliances.Config.HDLApConfig; +import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.AppliancesInfo; +import com.hdl.sdk.hdl_core.HDLDeviceManger.Core.HDLCommand; +import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.CommonSwitchCtrlBackEvent; +import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.CommonSwitchStateBackEvent; +import com.hdl.sdk.hdl_sdk.R; +import com.hdl.sdk.hdl_sdk.base.BaseActivity; + +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; + +/** + * 閫氱敤寮�鍏宠澶囨紨绀� + */ +public class CtrlCommonSwitchActivity extends BaseActivity { + + /**Topbar*/ + private RelativeLayout topBarBack; + private TextView topBarTitle; + private Button btnOpen,btnClose; + private TextView switchText; + private AppliancesInfo appliancesInfo; + private int switchState = 0; + + + /** + * 澶嶅啓isRegisterEventBus() 瑕佹敞鍐屼娇鐢‥ventBus锛岃繖閲岃璁剧疆杩斿洖true + * + * @return true + */ + @Override + protected boolean isRegisterEventBus() { + return true; + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_ctrl_common_switch); + initToolbar(); + initcurState(); + initView(); + initOnClick(); + displayStateView(); + + //浠庣綉缁滀笂鏌ヨ鍒锋柊涓�娆¤澶囩姸鎬侊紝寰呰皟璇� +// HDLCommand.getCommonSwitchStateFromNetwork(appliancesInfo); + + + + } + + /** + * 鍒濆鍖朤oolbar + */ + private void initToolbar() { +// topBarBack = findViewById(R.id.ll_top_b_left); +// setViewVisible(topBarBack); +// topBarTitle = findViewById(R.id.tv_top_b_header_title); +// topBarBack.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View view) { +// finish(); +// } +// }); + } + + private void initcurState() { + appliancesInfo = (AppliancesInfo) getIntent().getSerializableExtra("hdl"); +// String titleStr = appliancesInfo.getRemarks(); +// topBarTitle.setText(titleStr); + + } + + private void initView() { + btnOpen = findViewById(R.id.btnOpen); + + btnClose = findViewById(R.id.btnClose); + switchText = findViewById(R.id.switchText); + + + + + + } + + private void initOnClick() { + + btnOpen.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + //0=鍏� 255=寮� + HDLCommand.commonSwitchCtrl(appliancesInfo, 255); + } + }); + + btnClose.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + HDLCommand.commonSwitchCtrl(appliancesInfo,0); + } + }); + } + + private void displayStateView(){ + + switch (appliancesInfo.getDeviceType()) { + case HDLApConfig.TYPE_COMMON_SWITCH: + break; + default: + finish();//璁惧绫诲瀷涓嶅缁撴潫椤甸潰 + break; + } + /**鏍规嵁闇�姹傛槸鍚﹀彂閫佷竴娆¤幏鍙栧埛鏂扮姸鎬佽姹�*/ + + } + + + /** + * 閫氱敤寮�鍏虫帶鍒跺洖璋僂vent + * + * @param event + */ + @Subscribe(threadMode = ThreadMode.MAIN) + public void onCommonSwitchCtrlEventMain(CommonSwitchCtrlBackEvent event) { + if (event.getCommonSwitchBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID() + && event.getCommonSwitchBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID() + && event.getCommonSwitchBackInfo().getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum() + ) { + if (!event.isSuccess()) { + showToast("閫氱敤寮�鍏虫帶鍒惰秴鏃讹紝璇烽噸鏂板啀璇�"); + return; + } + + showToast("閫氱敤寮�鍏虫帶鍒舵垚鍔�"); + + switchState = event.getCommonSwitchBackInfo().getSwitchState(); + if(switchState>0){ + switchText.setText("褰撳墠鐘舵�侊細寮�"); + }else{ + switchText.setText("褰撳墠鐘舵�侊細鍏�"); + } + } + + } + + /** + * 閫氱敤寮�鍏� 鍥炶皟Event + * + * @param event + */ + @Subscribe(threadMode = ThreadMode.MAIN) + public void onCommonSwitchStateEventMain(CommonSwitchStateBackEvent event) { + if (event.getCommonSwitchBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID() + && event.getCommonSwitchBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID() + && event.getCommonSwitchBackInfo().getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum() + ) { + if (!event.isSuccess()) { + showToast("閫氱敤寮�鍏宠鍙栫姸鎬佽秴鏃讹紝璇烽噸鏂板啀璇�"); + return; + } + +// showToast("閫氱敤寮�鍏虫帶鍒舵垚鍔�"); + + switchState = event.getCommonSwitchBackInfo().getSwitchState(); + if(switchState>0){ + switchText.setText("褰撳墠鐘舵�侊細寮�"); + }else{ + switchText.setText("褰撳墠鐘舵�侊細鍏�"); + } + } + + } + + // 璇诲彇鎸囧畾RCU鎴块棿闂ㄩ搩鐘舵�� + // HDLCommand.getHotelRoomDoorbellStatus(100,100); + + + +} diff --git a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlSecurityActivity.java b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlSecurityActivity.java new file mode 100644 index 0000000..8f8e5b7 --- /dev/null +++ b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlSecurityActivity.java @@ -0,0 +1,318 @@ +package com.hdl.sdk.hdl_sdk.activity; + + +import android.os.Bundle; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.RelativeLayout; +import android.widget.Spinner; +import android.widget.TextView; + + +import com.hdl.sdk.hdl_core.HDLAppliances.Config.HDLApConfig; +import com.hdl.sdk.hdl_core.HDLAppliances.HDLSecurity.Parser.SecurityParser; +import com.hdl.sdk.hdl_core.HDLAppliances.HDLSecurity.SecurityArmingStateBackInfo; +import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.AppliancesInfo; +import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.SecurityStateBean; +import com.hdl.sdk.hdl_core.HDLDeviceManger.Core.HDLCommand; +import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.DeviceStateEvent; +import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.SecurityAlarmFeedBackEvent; +import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.SecurityArmingFeedBackEvent; +import com.hdl.sdk.hdl_sdk.R; +import com.hdl.sdk.hdl_sdk.base.BaseActivity; +import com.hdl.sdk.hdl_sdk.utlis.HDLLog; + +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; + +/** + * 瀹夐槻妯″潡鎺у埗椤甸潰 + */ +public class CtrlSecurityActivity extends BaseActivity { + /** + * Topbar + */ +// private RelativeLayout topBarBack; +// private TextView topBarTitle; + private AppliancesInfo appliancesInfo; + private Button btn_read_config, btn_set_arming, btn_send_alarm; + private Spinner spinner_arming; + // private TextView tv_alarmFire, tv_alarmGas, tv_alarmSudden, tv_alarmEmergency, tv_alarmCurrent, tv_alarmSilent, tv_alarmPower, tv_alarmTemperature; + private TextView tv_mes; + private static final String[] armingTypeItems = {"鍋囨湡甯冮槻", "绂诲紑甯冮槻", "澶滈棿甯冮槻", "鏅氫笂鏈夊甯冮槻", "鐧藉ぉ甯冮槻", "鎾ら槻"}; + private int armingState;//甯冮槻鐘舵�� 6 = 鎾ら槻 5 = 鐧藉ぉ甯冮槻 4 = 鏅氫笂鏈夊甯冮槻 3 = 澶滈棿甯冮槻 2 = 绂诲紑甯冮槻 1 = 鍋囨湡甯冮槻 + private SecurityStateBean mSecurityStateBean; + + private int alarmSendState;//鍙戦�佹祴璇曟姤璀� + + /** + * 澶嶅啓isRegisterEventBus() 瑕佹敞鍐屼娇鐢‥ventBus锛岃繖閲岃璁剧疆杩斿洖true + * + * @return true + */ + @Override + protected boolean isRegisterEventBus() { + return true; + } + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_ctrl_security); + + initToolbar(); + initView(); + initOnClick(); + initcurState(); + //璇诲竷闃茬姸鎬� + HDLCommand.getSecurityStateFromNetwork(appliancesInfo); + } + + /** + * 鍒濆鍖朤oolbar + */ + private void initToolbar() { +// topBarBack = findViewById(R.id.ll_top_b_left); +// setViewVisible(topBarBack); +// topBarTitle = findViewById(R.id.tv_top_b_header_title); +// topBarBack.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View view) { +// finish(); +// } +// }); +// topBarTitle.setText("瀹夐槻妯″潡婕旂ず"); + } + + /** + * initView + */ + private void initView() { + btn_read_config = findViewById(R.id.btn_read_config); + btn_set_arming = findViewById(R.id.btn_set_arming); + btn_send_alarm = findViewById(R.id.btn_send_alarm); + spinner_arming = findViewById(R.id.spinner_arming); + +// tv_alarmFire = findViewById(R.id.tv_alarmFire); +// tv_alarmGas = findViewById(R.id.tv_alarmGas); +// tv_alarmSudden = findViewById(R.id.tv_alarmSudden); +// +// tv_alarmEmergency = findViewById(R.id.tv_alarmEmergency); +// tv_alarmCurrent = findViewById(R.id.tv_alarmCurrent); +// tv_alarmSilent = findViewById(R.id.tv_alarmSilent); +// tv_alarmPower = findViewById(R.id.tv_alarmPower); +// tv_alarmTemperature = findViewById(R.id.tv_alarmTemperature); + tv_mes = findViewById(R.id.tv_mes); + + } + + /** + * initOnClick + */ + private void initOnClick() { + /** + * 璇诲竷闃茬姸鎬� + */ + btn_read_config.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + HDLCommand.getSecurityStateFromNetwork(appliancesInfo); + } + }); + + /** + * 甯冮槻 + */ + btn_set_arming.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + /** + * 瑕佸厛鎾ら槻鍚庡竷闃� + */ + HDLCommand.securityArmingCtrl(appliancesInfo, armingState); + } + }); + +// btn_send_alarm.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View view) { +// alarmSendState++; +// if (alarmSendState > 7) { +// alarmSendState = 0; +// } +// HDLCommand.securitySendAlarm(appliancesInfo, alarmSendState); +// } +// }); + + ArrayAdapter<String> sp_CheckBitAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, armingTypeItems); + sp_CheckBitAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + spinner_arming.setAdapter(sp_CheckBitAdapter); + spinner_arming.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() { + public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { + armingState = arg2 + 1; + } + + public void onNothingSelected(AdapterView<?> arg0) { + + } + }); + } + + /** + * initcurState + */ + private void initcurState() { + appliancesInfo = (AppliancesInfo) getIntent().getSerializableExtra("hdl"); + +// String titleStr = ""; +// try { +// titleStr = appliancesInfo.getRemarks(); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// if (titleStr != null) { +// topBarTitle.setText(titleStr); +// } + + mSecurityStateBean = new SecurityStateBean(); + } + + + /** + * 甯冮槻璁剧疆鍥炶皟Event + * + * @param event + */ + @Subscribe(threadMode = ThreadMode.MAIN) + public void onSecurityArmingFeedBackEventMain(SecurityArmingFeedBackEvent event) { + if (event.getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID() + && event.getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID() + && event.getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum() + ) { + //鍏堝垽鏂槸鍚﹁秴鏃� + if (!event.isSuccess()) { + tv_mesSetText("甯冮槻璁剧疆瓒呮椂锛岃閲嶆柊鍐嶈瘯"); + return; + } + + int armingStateGet = event.getArmingState(); + if (armingStateGet >= 1 && armingStateGet <= 6) { + armingState = armingStateGet; + spinner_arming.setSelection(armingState - 1, true); + tv_mesSetText("甯冮槻鎴愬姛锛屽綋鍓嶇姸鎬侊細" + armingTypeItems[armingState - 1]); + } else if (armingState == SecurityParser.ARMING_FAIL) { + tv_mesSetText("甯冮槻澶辫触"); + } else { + tv_mesSetText("鏈煡甯冮槻鐘舵��"); + } + } + } + + /** + * 鏌ヨ甯冮槻鐘舵�� 鍥炶皟Event + * + * @param event + */ + @Subscribe(threadMode = ThreadMode.MAIN) + public void onDeviceStateEventMain(DeviceStateEvent event) { + + if (event.getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID() + && event.getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID() + ) { + //杩欎釜杩斿洖鐨勪俊鎭槸褰撳墠鐘舵�佺殑 + switch (event.getAppliancesInfo().getDeviceType()) { + case HDLApConfig.TYPE_SECURITY_MODULE: + if (appliancesInfo.getChannelNum() == event.getAppliancesInfo().getChannelNum()) { + if (!event.isSuccess()) { + tv_mesSetText("鑾峰彇甯冮槻鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�"); + return; + } + + SecurityArmingStateBackInfo mSecurityArmingStateBackInfo = new SecurityArmingStateBackInfo(event.getAppliancesInfo().getArrCurState()); + if (mSecurityArmingStateBackInfo == null) { + tv_mesSetText("鑾峰彇甯冮槻鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�"); + return; + } + + int armingStateBack = mSecurityArmingStateBackInfo.getArmingState(); + if (armingStateBack == 0) { //璇诲彇杩斿洖0涓烘挙闃� + armingState = SecurityParser.ARMING_DISARMING; + spinner_arming.setSelection(armingState - 1, true); + tv_mesSetText("鑾峰彇鎴愬姛锛屽綋鍓嶇姸鎬侊細" + armingTypeItems[armingState - 1]); + } else if (armingStateBack >= 1 && armingStateBack <= 6) { + armingState = armingStateBack;//鏇存柊鐘舵�佸�� + spinner_arming.setSelection(armingState - 1, true); + tv_mesSetText("鑾峰彇鎴愬姛锛屽綋鍓嶇姸鎬侊細" + armingTypeItems[armingState - 1]); + } else { + tv_mesSetText("鑾峰彇鎴愬姛锛屾湭鐭ュ竷闃茬姸鎬�"); + } + + } + break; + } + } + } + + + /** + * 鎶ヨ鍥炶皟Event + * + * @param event + */ + @Subscribe(threadMode = ThreadMode.MAIN) + public void onSecurityAlarmFeedBackEventMain(SecurityAlarmFeedBackEvent event) { + if (event.getSecurityBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID() + && event.getSecurityBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID() + && event.getSecurityBackInfo().getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum() + ) { +// //鍏堝垽鏂槸鍚﹁秴鏃� +// if (!event.isSuccess()) { +// tv_mesSetText("鎶ヨ璁剧疆瓒呮椂锛岃閲嶆柊鍐嶈瘯"); +// return; +// } + + mSecurityStateBean = event.getSecurityBackInfo().getSecurityStateBean(); + if (mSecurityStateBean != null) { + setAllAlarmStateTextView(); + } + + } + } + + + /** + * TextView 鏄剧ず淇℃伅骞朵笖showToast鎻愮ず + * + * @param mes + */ + private void tv_mesSetText(String mes) { + tv_mes.setText(mes); + showToast(mes); + } + + private String getAlarmStateString(int state, String alarmName) { + if (state == 0) { + return "姝e父"; + } else { + HDLLog.I(alarmName + ", 鎶ヨ鐘舵�侊紒"); + return "璀﹀憡锛屾姤璀︾姸鎬侊紒"; + } + } + + + private void setAllAlarmStateTextView() { +// tv_alarmFire.setText(getAlarmStateString(mSecurityStateBean.getAlarmFire(), "鐏")); +// tv_alarmGas.setText(getAlarmStateString(mSecurityStateBean.getAlarmGas(), "鐓ゆ皵鎶ヨ")); +// tv_alarmSudden.setText(getAlarmStateString(mSecurityStateBean.getAlarmSudden(), "绐佸彂鎶ヨ")); +// tv_alarmEmergency.setText(getAlarmStateString(mSecurityStateBean.getAlarmEmergency(), "绱ф�ユ姤璀�")); +// tv_alarmCurrent.setText(getAlarmStateString(mSecurityStateBean.getAlarmCurrent(), "鐢垫祦鎶ヨ")); +// tv_alarmSilent.setText(getAlarmStateString(mSecurityStateBean.getAlarmSilent(), "鏃犲0鎶ヨ")); +// tv_alarmPower.setText(getAlarmStateString(mSecurityStateBean.getAlarmPower(), "鍔熺巼鎶ヨ")); +// tv_alarmTemperature.setText(getAlarmStateString(mSecurityStateBean.getAlarmTemperature(), "娓╁害鎶ヨ")); + + + } +} diff --git a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/MainActivity.java b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/MainActivity.java index 0118cef..360738d 100644 --- a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/MainActivity.java +++ b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/MainActivity.java @@ -57,7 +57,12 @@ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); NetWorkUtil.setIsGetWifiBroadCast(true); +// HDLSDK.init(this); +// HDLSDK.startHomeMode(this); + HDLCommand.init(this); + HDLCommand.startHomeMode(this); + // /**閰嶇疆鏄惁寮�鍚疭DK鎵撳嵃鏃ュ織锛岄粯璁や负鎵撳紑*/ // HDLCommand.setHDLLogOpen(false);// @@ -169,7 +174,7 @@ btn_getlocal_add.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - startActivity(AddDevicesManuallyActivity.class); + startActivity(AddDevicesActivity.class); } }); diff --git a/app/src/main/res/layout/activity_add_devices.xml b/app/src/main/res/layout/activity_add_devices.xml new file mode 100644 index 0000000..f853785 --- /dev/null +++ b/app/src/main/res/layout/activity_add_devices.xml @@ -0,0 +1,274 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/activity_main" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <ScrollView + android:layout_width="match_parent" + android:layout_height="match_parent"> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" + android:layout_marginTop="20dp" + android:layout_marginRight="10dp" + android:orientation="vertical"> + + + <TextView + android:layout_width="match_parent" + android:layout_height="50dp" + android:gravity="center|left" + android:text="鎵嬪姩娣诲姞" + android:textColor="@android:color/black" + android:textSize="24sp" /> + + + <TextView + android:layout_width="100dp" + android:layout_height="match_parent" + android:gravity="center|left" + android:text="璁惧鍙傛暟" + android:textColor="@android:color/black" + android:textSize="18sp" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginTop="10dp"> + + <TextView + android:layout_width="70dp" + android:layout_height="50dp" + android:gravity="center|left" + android:textSize="16sp" + android:text="瀛愮綉鍙凤細"></TextView> + + <EditText + android:id="@+id/et_subnetID" + android:layout_width="match_parent" + android:layout_height="50dp" + android:hint="瀛愮綉鍙凤紙鑼冨洿0 - 254锛�" + android:inputType="number" + android:maxLength="3" + android:gravity="center|left" + android:text="100" /> + </LinearLayout> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginTop="10dp"> + + <TextView + android:layout_width="70dp" + android:layout_height="50dp" + android:gravity="center|left" + android:textSize="16sp" + android:text="璁惧鍙凤細"></TextView> + + + <EditText + android:id="@+id/et_deviceID" + android:layout_width="match_parent" + android:layout_height="50dp" + android:hint="璁惧鍙凤紙鑼冨洿0 - 254锛�" + android:gravity="center|left" + android:inputType="number" + android:maxLength="3" + android:text="100" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginTop="10dp"> + + <TextView + android:layout_width="70dp" + android:layout_height="50dp" + android:gravity="center|left" + android:textSize="16sp" + android:text="澶х被锛�"></TextView> + + + <EditText + android:id="@+id/et_bitType" + android:layout_width="match_parent" + android:layout_height="50dp" + android:hint="澶х被" + android:inputType="number" + android:maxLength="3" + android:gravity="center|left" + android:text="1" /> + + </LinearLayout> + + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginTop="10dp"> + + <TextView + android:layout_width="70dp" + android:layout_height="50dp" + android:gravity="center|left" + android:textSize="16sp" + android:text="灏忕被锛�"></TextView> + + + <EditText + android:id="@+id/et_littleType" + android:layout_width="match_parent" + android:layout_height="50dp" + android:gravity="center|left" + android:hint="灏忕被" + android:inputType="number" + android:maxLength="3" + android:text="0" + + /> + </LinearLayout> + + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginTop="10dp"> + + <TextView + android:layout_width="70dp" + android:layout_height="50dp" + android:gravity="center|left" + android:textSize="16sp" + android:text="鍥炶矾鍙凤細"></TextView> + + <EditText + android:id="@+id/et_mChannelNum" + android:layout_width="match_parent" + android:layout_height="50dp" + android:hint="鍥炶矾鍙�" + android:inputType="number" + android:maxLength="3" + android:gravity="center|left" + android:text="1" + + /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginTop="10dp"> + + <TextView + android:layout_width="70dp" + android:layout_height="50dp" + android:gravity="center|left" + android:textSize="16sp" + android:text="绔彛鍙凤細"></TextView> + + <EditText + android:id="@+id/et_mPort" + android:layout_width="match_parent" + android:layout_height="50dp" + android:hint="璇疯緭鍏ョ鍙e彿" + android:inputType="number" + android:maxLength="4" + android:gravity="center|left" + android:text="6000" + + /> + </LinearLayout> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginTop="10dp"> + + <TextView + android:layout_width="70dp" + android:layout_height="50dp" + android:gravity="center|left" + android:textSize="12sp" + android:text="妯″潡澶囨敞锛�"></TextView> + + <EditText + android:id="@+id/et_remarks_mk" + android:layout_width="match_parent" + android:layout_height="50dp" + android:gravity="center|left" + android:hint="璇疯緭鍏ユā鍧楀娉�" + android:text="閰掑簵RCU" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginTop="10dp"> + + <TextView + android:layout_width="70dp" + android:layout_height="50dp" + android:gravity="center|left" + android:textSize="12sp" + android:text="鍥炶矾澶囨敞锛�"></TextView> + + <EditText + android:id="@+id/et_remarks" + android:layout_width="match_parent" + android:layout_height="50dp" + android:gravity="center|left" + android:hint="璇疯緭鍏ュ洖璺娉�" /> + </LinearLayout> + + + + <Button + android:id="@+id/btn_add" + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginTop="10dp" + android:text="娣诲姞" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginTop="10dp"> + + <TextView + android:layout_width="80dp" + android:layout_height="50dp" + android:gravity="center|left" + android:textSize="16sp" + android:text="鍦烘櫙鍙凤細"></TextView> + + <EditText + android:id="@+id/et_scene" + android:layout_width="match_parent" + android:layout_height="50dp" + android:gravity="center|left" + android:hint="鍖哄彿鍜屽満鏅彿" /> + </LinearLayout> + + <Button + android:id="@+id/btn_scene" + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginTop="10dp" + android:text="娣诲姞鍦烘櫙" /> + + <Button + android:id="@+id/btn_addAll" + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginTop="10dp" + android:text="娣诲姞娴嬭瘯" /> + + + </LinearLayout> + + </ScrollView> +</RelativeLayout> diff --git a/app/src/main/res/layout/activity_ctrl_common_switch.xml b/app/src/main/res/layout/activity_ctrl_common_switch.xml new file mode 100644 index 0000000..03bdbd9 --- /dev/null +++ b/app/src/main/res/layout/activity_ctrl_common_switch.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/activity_ctrl" + android:layout_width="match_parent" + android:layout_height="match_parent"> +<!-- <include--> +<!-- android:id="@+id/hdl_top_bar_layout"--> +<!-- layout="@layout/hdl_toolbar_top_view_b"/>--> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_marginRight="20dp" + android:layout_marginLeft="20dp" + android:orientation="vertical"> + <TextView + android:layout_width="match_parent" + android:layout_height="40dp" + android:text="閫氱敤寮�鍏宠澶�" + android:gravity="center|left" + android:textSize="@dimen/ts_24" + + /> + + <TextView + android:id="@+id/switchText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="10dp" + android:textSize="@dimen/ts_20" + android:text="杩欎釜鎸夐挳鍋氶�氱敤寮�鍏宠澶囩殑婕旂ず" /> + + <Button + android:id="@+id/btnOpen" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="寮�" /> + + + <Button + android:id="@+id/btnClose" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鍏�" /> + </LinearLayout> + +</RelativeLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_ctrl_security.xml b/app/src/main/res/layout/activity_ctrl_security.xml new file mode 100644 index 0000000..87799b4 --- /dev/null +++ b/app/src/main/res/layout/activity_ctrl_security.xml @@ -0,0 +1,254 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/activity_ctrl" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + + + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_marginLeft="20dp" + android:layout_marginRight="20dp" + android:orientation="vertical"> + + <!--<TextView--> + <!--android:layout_width="match_parent"--> + <!--android:layout_height="40dp"--> + <!--android:gravity="center|left"--> + <!--android:text="MCU 鍗忚璋冭瘯"--> + <!--android:textColor="@color/black"--> + <!--android:textSize="@dimen/ts_24" />--> + <TextView + android:layout_width="match_parent" + android:layout_height="40dp" + android:gravity="center|left" + android:text="瀹夐槻妯″潡" + android:textSize="@dimen/ts_20" /> + <TextView + android:layout_width="match_parent" + android:layout_height="30dp" + android:gravity="center|left" + android:text="甯冮槻鍓嶏紝瑕佸厛鎾ら槻鍚庡竷闃�" + android:textSize="@dimen/ts_18" /> + + <LinearLayout + android:id="@+id/air" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + + + <!--<LinearLayout--> + <!--android:layout_width="match_parent"--> + <!--android:layout_height="30dp">--> + <!--<TextView--> + <!--android:layout_width="100dp"--> + <!--android:layout_height="match_parent"--> + <!--android:gravity="center"--> + <!--android:textColor="@color/black"--> + <!--android:textSize="@dimen/ts_18"--> + <!--android:text="鐏鐘舵�侊細" />--> + <!--<TextView--> + <!--android:id="@+id/tv_alarmFire"--> + <!--android:layout_width="wrap_content"--> + <!--android:layout_height="match_parent"--> + <!--android:gravity="center|left"--> + <!--android:text="姝e父" />--> + <!--</LinearLayout>--> + + <!--<LinearLayout--> + <!--android:layout_width="match_parent"--> + <!--android:layout_height="30dp">--> + <!--<TextView--> + <!--android:layout_width="100dp"--> + <!--android:layout_height="match_parent"--> + <!--android:gravity="center"--> + <!--android:textColor="@color/black"--> + <!--android:textSize="@dimen/ts_18"--> + <!--android:text="鐓ゆ皵鎶ヨ锛�" />--> + <!--<TextView--> + <!--android:id="@+id/tv_alarmGas"--> + <!--android:layout_width="wrap_content"--> + <!--android:layout_height="match_parent"--> + <!--android:gravity="center|left"--> + <!--android:text="姝e父" />--> + <!--</LinearLayout>--> + <!--<LinearLayout--> + <!--android:layout_width="match_parent"--> + <!--android:layout_height="30dp">--> + <!--<TextView--> + <!--android:layout_width="100dp"--> + <!--android:layout_height="match_parent"--> + <!--android:gravity="center"--> + <!--android:textColor="@color/black"--> + <!--android:textSize="@dimen/ts_18"--> + <!--android:text="绐佸彂鎶ヨ锛�" />--> + <!--<TextView--> + <!--android:id="@+id/tv_alarmSudden"--> + <!--android:layout_width="wrap_content"--> + <!--android:layout_height="match_parent"--> + <!--android:gravity="center|left"--> + <!--android:text="姝e父" />--> + <!--</LinearLayout>--> + <!--<LinearLayout--> + <!--android:layout_width="match_parent"--> + <!--android:layout_height="30dp">--> + <!--<TextView--> + <!--android:layout_width="100dp"--> + <!--android:layout_height="match_parent"--> + <!--android:gravity="center"--> + <!--android:textColor="@color/black"--> + <!--android:textSize="@dimen/ts_18"--> + <!--android:text="绱ф�ユ姤璀︼細" />--> + <!--<TextView--> + <!--android:id="@+id/tv_alarmEmergency"--> + <!--android:layout_width="wrap_content"--> + <!--android:layout_height="match_parent"--> + <!--android:gravity="center|left"--> + <!--android:text="姝e父" />--> + <!--</LinearLayout>--> + <!--<LinearLayout--> + <!--android:layout_width="match_parent"--> + <!--android:layout_height="30dp">--> + <!--<TextView--> + <!--android:layout_width="100dp"--> + <!--android:layout_height="match_parent"--> + <!--android:gravity="center"--> + <!--android:textColor="@color/black"--> + <!--android:textSize="@dimen/ts_18"--> + <!--android:text="鐢垫祦鎶ヨ锛�" />--> + <!--<TextView--> + <!--android:id="@+id/tv_alarmCurrent"--> + <!--android:layout_width="wrap_content"--> + <!--android:layout_height="match_parent"--> + <!--android:gravity="center|left"--> + <!--android:text="姝e父" />--> + <!--</LinearLayout>--> + <!--<LinearLayout--> + <!--android:layout_width="match_parent"--> + <!--android:layout_height="30dp">--> + <!--<TextView--> + <!--android:layout_width="100dp"--> + <!--android:layout_height="match_parent"--> + <!--android:gravity="center"--> + <!--android:textColor="@color/black"--> + <!--android:textSize="@dimen/ts_18"--> + <!--android:text="鏃犲0鎶ヨ锛�" />--> + <!--<TextView--> + <!--android:id="@+id/tv_alarmSilent"--> + <!--android:layout_width="wrap_content"--> + <!--android:layout_height="match_parent"--> + <!--android:gravity="center|left"--> + <!--android:text="姝e父" />--> + <!--</LinearLayout>--> + <!--<LinearLayout--> + <!--android:layout_width="match_parent"--> + <!--android:layout_height="30dp">--> + <!--<TextView--> + <!--android:layout_width="100dp"--> + <!--android:layout_height="match_parent"--> + <!--android:gravity="center"--> + <!--android:textColor="@color/black"--> + <!--android:textSize="@dimen/ts_18"--> + <!--android:text="鍔熺巼鎶ヨ锛�" />--> + <!--<TextView--> + <!--android:id="@+id/tv_alarmPower"--> + <!--android:layout_width="wrap_content"--> + <!--android:layout_height="match_parent"--> + <!--android:gravity="center|left"--> + <!--android:text="姝e父" />--> + <!--</LinearLayout>--> + + <!--<LinearLayout--> + <!--android:layout_width="match_parent"--> + <!--android:layout_height="30dp">--> + <!--<TextView--> + <!--android:layout_width="100dp"--> + <!--android:layout_height="match_parent"--> + <!--android:gravity="center"--> + <!--android:textColor="@color/black"--> + <!--android:textSize="@dimen/ts_18"--> + <!--android:text="娓╁害鎶ヨ锛�" />--> + <!--<TextView--> + <!--android:id="@+id/tv_alarmTemperature"--> + <!--android:layout_width="wrap_content"--> + <!--android:layout_height="match_parent"--> + <!--android:gravity="center|left"--> + <!--android:text="姝e父" />--> + <!--</LinearLayout>--> + + + + + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="40dp"> + + <TextView + android:layout_width="100dp" + android:layout_height="match_parent" + android:gravity="center" + android:textSize="@dimen/ts_18" + android:text="甯冮槻鐘舵�侊細" /> + + <Spinner + android:id="@+id/spinner_arming" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:minWidth="120dp"></Spinner> + </LinearLayout> + + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="40dp"> + + <Button + android:id="@+id/btn_read_config" + android:layout_width="wrap_content" + android:layout_height="40dp" + android:textSize="@dimen/ts_18" + android:text="璇诲彇瀹夐槻璁剧疆 " /> + + <Button + android:id="@+id/btn_set_arming" + android:layout_width="wrap_content" + android:layout_height="40dp" + android:textSize="@dimen/ts_18" + android:text="淇敼甯冮槻鐘舵��" /> + + + + </LinearLayout> + <Button + android:id="@+id/btn_send_alarm" + android:layout_width="wrap_content" + android:layout_height="40dp" + android:textSize="@dimen/ts_18" + android:visibility="gone" + android:text="鍙戦�佹姤璀︽寚浠�" /> + + <TextView + android:id="@+id/tv_mes" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="5dp" + android:text="瀹夐槻妯″潡甯冮槻婕旂ず" + android:textSize="@dimen/ts_20" /> + + + + + + + + </LinearLayout> + </LinearLayout> + +</RelativeLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_sensor.xml b/app/src/main/res/layout/activity_sensor.xml new file mode 100644 index 0000000..251ffef --- /dev/null +++ b/app/src/main/res/layout/activity_sensor.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" +xmlns:tools="http://schemas.android.com/tools" +android:id="@+id/activity_ctrl" +android:layout_width="match_parent" +android:layout_height="match_parent"> + +<!--<include--> +<!-- android:id="@+id/hdl_top_bar_layout"--> +<!-- layout="@layout/hdl_toolbar_top_view_b" />--> + + + +<LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_marginLeft="20dp" + android:layout_marginRight="20dp" + android:layout_marginTop="20dp" + android:orientation="vertical"> + + <TextView + android:id="@+id/sensorText" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="杩欎釜鎸夐挳鍋氫紶鎰熷櫒婕旂ず" /> + + <Button + android:id="@+id/sensorbtn" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鑾峰彇浼犳劅鍣ㄧ姸鎬�" /> +</LinearLayout> + +</RelativeLayout> \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000..662d34a --- /dev/null +++ b/app/src/main/res/values/dimens.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + + <!-- 榛樿瀛椾綋澶у皬 --> + <dimen name="textSize_title">20sp</dimen> + <dimen name="ts_44">44sp</dimen> + <dimen name="ts_40">40sp</dimen> + <dimen name="ts_32">32sp</dimen> + <dimen name="ts_24">24sp</dimen> + <dimen name="ts_22">22sp</dimen> + <dimen name="ts_20">20sp</dimen> + <dimen name="ts_18">18sp</dimen> + <dimen name="ts_16">16sp</dimen> + <dimen name="ts_15">15sp</dimen> + <dimen name="ts_14">14sp</dimen> + <dimen name="ts_13">13sp</dimen> + <dimen name="ts_12">12sp</dimen> + <dimen name="ts_11">11sp</dimen> + <dimen name="ts_10">10sp</dimen> + + <dimen name="toolbar_height">56dp</dimen> +</resources> \ No newline at end of file diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/Config/Configuration.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/Config/Configuration.java index 6a84fd1..e4af1f5 100644 --- a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/Config/Configuration.java +++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/Config/Configuration.java @@ -15,6 +15,8 @@ public static final int GEOTHERMAL_BIG_TYPE = 8; public static final int AIR_BIG_TYPE = 7; public static final int AUDIO_BIG_TYPE = 9; + /**瀹夐槻鍔熻兘*/ + public static final int SECURITY_BIG_TYPE = 10; public static final int LOGIC_BIG_TYPE = 12; public static final int GLOBAL_LOGIC_BIG_TYPE = 17; /** @@ -25,6 +27,9 @@ //鏀寔鐨勫皬绫� public static final int FRESH_AIR_LITTLE_TYPE_0 = 0; public static final int GEOTHERMAL_LITTLE_TYPE_0 = 0; + + /**閫氱敤寮�鍏�*/ + public static final int COMMON_SWITCH_BIG_TYPE = 100; //灏忕被 鍏堜笉鍋氬垎绫� @@ -148,6 +153,24 @@ public static final int FRESH_AIR_STATE_COMMAND = 0x144C; public static final int FRESH_AIR_STATE_BACK_COMMAND = 0x144D; + /** + * 2020-06-23 瀹夐槻鍔熻兘妯″潡鎿嶄綔鐮併�佺姸鎬佽鍙栫爜 ARMING甯冮槻 ALARM鎶ヨ + */ + public static final int SECURITY_ARMING_CTRL_COMMAND = 0x0104;//甯冮槻璁剧疆 + public static final int SECURITY_ARMING_CTRL_BACK_COMMAND = 0x0105;//甯冮槻璁剧疆鍙嶉 + public static final int SECURITY_STATE_COMMAND = 0x011E;//璇诲彇瀹夐槻璁剧疆 + public static final int SECURITY_STATE_BACK_COMMAND = 0x011F;//璇诲彇瀹夐槻璁剧疆鍙嶉 + public static final int SECURITY_ALARM_CTRL_COMMAND = 0x010C;//鎶ヨ璁剧疆 + public static final int SECURITY_ALARM_CTRL_BACK_COMMAND = 0x010D;//鎶ヨ璁剧疆鍙嶉 + + /** + * 2020-06-23 閫氱敤寮�鍏� + */ + public static final int COMMON_SWITCH_CTRL_COMMAND = 0xE01C;//閫氱敤寮�鍏虫帶鍒� + public static final int COMMON_SWITCH_CTRL_BACK_COMMAND = 0xE01D;//閫氱敤寮�鍏虫帶鍒跺弽棣� + public static final int COMMON_SWITCH_STATE_COMMAND = 0xE018;//璇婚�氱敤寮�鍏崇姸鎬� + public static final int COMMON_SWITCH_STATE_BACK_COMMAND = 0xE019;//璇婚�氱敤寮�鍏崇姸鎬佸弽棣� + /** * RCU 閰嶇疆鏁版嵁 diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/Config/HDLApConfig.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/Config/HDLApConfig.java index 97580f2..32963d5 100644 --- a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/Config/HDLApConfig.java +++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/Config/HDLApConfig.java @@ -54,16 +54,21 @@ public static final int TYPE_SENSOR_ELECTRICITY = 624; public static final int TYPE_SENSOR_POWER = 625; - + public static final int TYPE_SENSOR_FLOODING = 626; //姘存蹈//2019-11-4 鏂板 + public static final int TYPE_SENSOR_DOOR_MAGNET= 627; //闂ㄧ銆佺獥纾� + public static final int TYPE_SENSOR_EMERGENCY_BUTTON = 628; //绱ф�ユ寜閽� //2019-07 public static final int TYPE_GEOTHERMAL_MODULE = 801; //鍦扮儹妯″潡锛�0锛� 鍥炶矾鍙凤紝澶囨敞锛屽湴鐑姸鎬� // public static final int TYPE_GEOTHERMAL_MODULE_PANEL = 802; //甯歌鍦扮儹闈㈡澘锛�1锛� 闈㈡澘鍙凤紝澶囨敞锛屾湇鍔″櫒妯″紡锛屽湴鐑姸鎬� // public static final int TYPE_GEOTHERMAL_MODULE_PI = 803; //甯I杩愮畻鐨勫湴鐑潰鏉匡紙2锛� 闈㈡澘鍙凤紝澶囨敞锛屽湴鐑姸鎬� + //瀹夐槻鍔熻兘妯″潡 + public static final int TYPE_SECURITY_MODULE = 1001; + public static final int TYPE_FRESH_AIR = 1901; //鏂伴绯荤粺 - + public static final int TYPE_COMMON_SWITCH = 10001;//閫氱敤寮�鍏� diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLCommonSwitch/CommonSwitchBackInfo.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLCommonSwitch/CommonSwitchBackInfo.java new file mode 100644 index 0000000..5a614fc --- /dev/null +++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLCommonSwitch/CommonSwitchBackInfo.java @@ -0,0 +1,39 @@ +package com.hdl.sdk.hdl_core.HDLAppliances.HDLCommonSwitch; + + +import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.AppliancesInfo; + +/** + * Created by jlchen on 2020-04-01. + */ +public class CommonSwitchBackInfo { + + private AppliancesInfo appliancesInfo; + private int switchNum; //鍥炶矾鍙� + private int switchState; //寮�鍏崇姸鎬� + + public AppliancesInfo getAppliancesInfo() { + return appliancesInfo; + } + + public void setAppliancesInfo(AppliancesInfo appliancesInfo) { + this.appliancesInfo = appliancesInfo; + } + + + public int getSwitchNum() { + return switchNum; + } + + public void setSwitchNum(int switchNum) { + this.switchNum = switchNum; + } + + public int getSwitchState() { + return switchState; + } + + public void setSwitchState(int switchState) { + this.switchState = switchState; + } +} diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLSecurity/Parser/SecurityParser.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLSecurity/Parser/SecurityParser.java new file mode 100644 index 0000000..37e3f3c --- /dev/null +++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLSecurity/Parser/SecurityParser.java @@ -0,0 +1,117 @@ +package com.hdl.sdk.hdl_core.HDLAppliances.HDLSecurity.Parser; + + +import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.AppliancesInfo; + +/** + * Created by JLChen on 2019/7/29 + */ +public class SecurityParser { + + public static final int fail = 0; + /** + * 甯冮槻璁剧疆 + */ + //甯冮槻绫诲瀷 6 =鎾ら槻 5 = 鐧藉ぉ甯冮槻 4 = 鏅氫笂鏈夊甯冮槻 3 = 澶滈棿甯冮槻 2 = 绂诲紑甯冮槻 1 = 鍋囨湡甯冮槻 + public static final int ARMING_HOLIDAY = 1; + public static final int ARMING_LEAVE = 2; + public static final int ARMING_AT_NIGHT = 3; + public static final int ARMING_AT_NIGHT_WITH_GUEST = 4; + public static final int ARMING_DURING_THE_DAY = 5; + public static final int ARMING_DISARMING = 6; + + public static final int ARMING_FAIL = 7;//甯冮槻澶辫触 +// public static final int ARMING_UNKNOWM = -1;//鏈煡鐘舵�� + + //鑾峰彇甯冮槻 bytes鏁版嵁 + public static byte[] getArmingByte(AppliancesInfo appliancesInfo, int state) { + try { + if (state < 0 || state > 6) {//鍙傛暟閿欒榛樿鎾ら槻 + state = 6; + } + byte[] addBytes = new byte[2]; + addBytes[0] = (byte) appliancesInfo.getChannelNum(); + addBytes[1] = (byte) state; + return addBytes; + } catch (Exception e) { + e.printStackTrace(); + return new byte[]{fail}; + } + + } + + +// Bit 4 0 = 姝e父鐘舵�� , 1 = 鐢垫祦鎶ヨ +// Bit 3 0 =姝e父鐘舵��, 1 = 绱ф�ユ姤璀� +// Bit 2 0 =姝e父鐘舵��, 1 = 绐佸彂鎶ヨ +// Bit 1 0 =姝e父鐘舵��, 1 =鐓ゆ皵鎶ヨ +// Bit 0 0 =姝e父鐘舵��, 1 = 鐏 3 +// +// Encode Bit Value +// Bit 7 0 =姝e父鐘舵��, 1 = 娓╁害鎶ヨ +// Bit 6 0 =姝e父鐘舵��, 1 = 鍔熺巼鎶ヨ +// Bit 5 0 =姝e父鐘舵��, 1 = 鏃犲0鎶ヨ +//private int CurrentAlarm; //鐢垫祦鎶ヨ +// private int EmergencyAlarm; //绱ф�ユ姤璀� +// private int SuddenAlarm; //绐佸彂鎶ヨ +// private int FireAlarm; //鐏 3 +// +// private int TemperatureAlarm;//娓╁害鎶ヨ +// private int PowerAlarm; //鍔熺巼鎶ヨ +// private int SilentAlarm; //鏃犲0鎶ヨ + /** + * 鎶ヨ璁剧疆 ALARM + */ + public static final int ALARM_CURRENT = 4; //鐢垫祦鎶ヨ + public static final int ALARM_EMERGENCY = 3; //绱ф�ユ姤璀� + public static final int ALARM_SUDDEN = 2; //绐佸彂鎶ヨ + public static final int ALARM_GAS = 1; //鐓ゆ皵鎶ヨ + public static final int ALARM_FIRE = 0; //鐏 3 + public static final int ALARM_TEMPERATURE = 7; //娓╁害鎶ヨ + public static final int ALARM_POWER = 6; //鍔熺巼鎶ヨ + public static final int ALARM_SILENT = 5; //鏃犲0鎶ヨ + + //鑾峰彇鎶ヨ璁剧疆 bytes鏁版嵁 鍙姤璀︿竴绉嶆儏鍐� + public static byte[] getAlarmByte(AppliancesInfo appliancesInfo, int state) { + try { + byte[] addBytes = new byte[3]; + addBytes[0] = (byte) appliancesInfo.getChannelNum(); + switch (state) { + case ALARM_FIRE: + addBytes[1] = 0x01; + break; + case ALARM_GAS: + addBytes[1] = (byte) (1 << 1); + break; + case ALARM_SUDDEN: + addBytes[1] = (byte) (1 << 2); + break; + case ALARM_EMERGENCY: + addBytes[1] = (byte) (1 << 3); + break; + case ALARM_CURRENT: + addBytes[1] = (byte) (1 << 4); + break; + + case ALARM_SILENT: + addBytes[2] = (byte) (1 << 5); + break; + case ALARM_POWER: + addBytes[2] = (byte) (1 << 6); + break; + case ALARM_TEMPERATURE: + addBytes[2] = (byte) (1 << 7); + break; + default: + break; + } + + return addBytes; + } catch (Exception e) { + e.printStackTrace(); + return new byte[]{fail}; + } + + } + +} diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLSecurity/SecurityArmingStateBackInfo.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLSecurity/SecurityArmingStateBackInfo.java new file mode 100644 index 0000000..27183ed --- /dev/null +++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLSecurity/SecurityArmingStateBackInfo.java @@ -0,0 +1,24 @@ +package com.hdl.sdk.hdl_core.HDLAppliances.HDLSecurity; + +/** + * Created by JLChen on 2019/8/9 + */ +public class SecurityArmingStateBackInfo { + private int armingState; //甯冮槻鐘舵�� 6 = 鎾ら槻 5 = 鐧藉ぉ甯冮槻 4 = 鏅氫笂鏈夊甯冮槻 3 = 澶滈棿甯冮槻 2 = 绂诲紑甯冮槻 1 = 鍋囨湡甯冮槻 + + public SecurityArmingStateBackInfo(byte[] curState) { + armingState = -1; + if (curState == null) return; + if (curState.length >= 2) { + armingState = curState[1] & 0xFF; + } + } + + public int getArmingState() { + return armingState; + } + + public void setArmingState(int armingState) { + this.armingState = armingState; + } +} diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLSecurity/SecurityBackInfo.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLSecurity/SecurityBackInfo.java new file mode 100644 index 0000000..4f2f45b --- /dev/null +++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLSecurity/SecurityBackInfo.java @@ -0,0 +1,132 @@ +package com.hdl.sdk.hdl_core.HDLAppliances.HDLSecurity; + + +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.SecurityStateBean; + +/** + * Created by JLChen on 2019/7/29 + * 瀹夐槻妯″潡 + */ +public class SecurityBackInfo { + + private AppliancesInfo appliancesInfo; + private String remarks; + private int channelNum; //鍥炶矾鍙� + private SecurityStateBean mSecurityStateBean; + + private byte[] curState; //杩斿洖淇℃伅 + + public SecurityBackInfo() { + + } + + public SecurityBackInfo(AppliancesInfo mAppliancesInfo) { + this.appliancesInfo = mAppliancesInfo; + this.remarks = mAppliancesInfo.getRemarks(); + this.curState = mAppliancesInfo.getArrCurState(); + this.mSecurityStateBean = new SecurityStateBean(); + + if (this.curState == null) return; + + if (this.curState.length >= 3) { + this.channelNum = this.curState[0] & 0xFF; + this.mSecurityStateBean.alarmCurrent = this.curState[1] & 0x10; + this.mSecurityStateBean.alarmEmergency = this.curState[1] & 0x08; + this.mSecurityStateBean.alarmSudden = this.curState[1] & 0x04; + this.mSecurityStateBean.alarmGas = this.curState[1] & 0x02; + this.mSecurityStateBean.alarmFire = this.curState[1] & 0x01; + this.mSecurityStateBean.alarmTemperature = this.curState[2] & 0x80; + this.mSecurityStateBean.alarmPower = this.curState[2] & 0x40; + this.mSecurityStateBean.alarmSilent = this.curState[2] & 0x20; + int mCurState = this.curState[2] & 0x1F; + + switch (mCurState) { + case 0: + this.mSecurityStateBean.armingState = SecurityParser.ARMING_DISARMING;//鎾ら槻鐘舵�� + break; + case 1: + this.mSecurityStateBean.armingState = SecurityParser.ARMING_HOLIDAY;//鍋囨湡甯冮槻 + break; + case 2: + this.mSecurityStateBean.armingState = SecurityParser.ARMING_LEAVE;//绂诲紑甯冮槻 + break; + case 4: + this.mSecurityStateBean.armingState = SecurityParser.ARMING_AT_NIGHT;//澶滈棿甯冮槻 + break; + case 8: + this.mSecurityStateBean.armingState = SecurityParser.ARMING_AT_NIGHT_WITH_GUEST;//鏅氫笂鏈夊甯冮槻 + break; + case 10: + this.mSecurityStateBean.armingState = SecurityParser.ARMING_DURING_THE_DAY;//鐧藉ぉ甯冮槻 + break; + default: +// this.armingState = SecurityParser.ARMING_DISARMING;//鎾ら槻鐘舵�� + this.mSecurityStateBean.armingState = -1; //鏈煡鐘舵�� + break; + } + + + } + + } + + + public AppliancesInfo getAppliancesInfo() { + return appliancesInfo; + } + + public void setAppliancesInfo(AppliancesInfo appliancesInfo) { + this.appliancesInfo = appliancesInfo; + } + + public String getRemarks() { + return remarks; + } + + public void setRemarks(String remarks) { + this.remarks = remarks; + } + + public int getChannelNum() { + return channelNum; + } + + public void setChannelNum(int channelNum) { + this.channelNum = channelNum; + } + + public SecurityStateBean getSecurityStateBean() { + return mSecurityStateBean; + } + + public void setSecurityStateBean(SecurityStateBean securityStateBean) { + mSecurityStateBean = securityStateBean; + } + + public byte[] getCurState() { + return curState; + } + + public void setCurState(byte[] curState) { + this.curState = curState; + } +} + + +// Bit 4 0 = 姝e父鐘舵�� , 1 = 鐢垫祦鎶ヨ +// Bit 3 0 =姝e父鐘舵��, 1 = 绱ф�ユ姤璀� +// Bit 2 0 =姝e父鐘舵��, 1 = 绐佸彂鎶ヨ +// Bit 1 0 =姝e父鐘舵��, 1 = 鐓ゆ皵鎶ヨ +// Bit 0 0 =姝e父鐘舵��, 1 = 鐏 3 +// +// Encode Bit Value +// Bit 7 0 =姝e父鐘舵��, 1 = 娓╁害鎶ヨ +// Bit 6 0 =姝e父鐘舵��, 1 = 鍔熺巼鎶ヨ +// Bit 5 0 =姝e父鐘舵��, 1 = 鏃犲0鎶ヨ +// Bit 4 0 =姝e父鐘舵��, 1 = 鐧藉ぉ甯冮槻鐘舵�� +// Bit 3 0 =姝e父鐘舵��, 1 = 鏅氫笂鏈夊甯冮槻 +// Bit 2 0 =姝e父鐘舵��, 1 = 澶滈棿甯冮槻 +// Bit 1 0 =姝e父鐘舵��, 1 = 绂诲紑甯冮槻 +// Bit 0 0 =姝e父鐘舵��, 1 = 鍋囨湡甯冮槻 \ No newline at end of file diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Bean/SecurityStateBean.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Bean/SecurityStateBean.java new file mode 100644 index 0000000..617031c --- /dev/null +++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Bean/SecurityStateBean.java @@ -0,0 +1,90 @@ +package com.hdl.sdk.hdl_core.HDLDeviceManger.Bean; + +/** + * Created by JLChen on 2019/7/29 + */ +public class SecurityStateBean { + public int alarmCurrent; //鐢垫祦鎶ヨ + public int alarmEmergency; //绱ф�ユ姤璀� + public int alarmSudden; //绐佸彂鎶ヨ + public int alarmGas; //鐓ゆ皵鎶ヨ + public int alarmFire; //鐏 3 + + public int alarmTemperature;//娓╁害鎶ヨ + public int alarmPower; //鍔熺巼鎶ヨ + public int alarmSilent; //鏃犲0鎶ヨ + + public int armingState; //甯冮槻鐘舵�� 6 = 鎾ら槻 5 = 鐧藉ぉ甯冮槻 4 = 鏅氫笂鏈夊甯冮槻 3 = 澶滈棿甯冮槻 2 = 绂诲紑甯冮槻 1 = 鍋囨湡甯冮槻 + + public int getAlarmCurrent() { + return alarmCurrent; + } + + public void setAlarmCurrent(int alarmCurrent) { + this.alarmCurrent = alarmCurrent; + } + + public int getAlarmEmergency() { + return alarmEmergency; + } + + public void setAlarmEmergency(int alarmEmergency) { + this.alarmEmergency = alarmEmergency; + } + + public int getAlarmSudden() { + return alarmSudden; + } + + public void setAlarmSudden(int alarmSudden) { + this.alarmSudden = alarmSudden; + } + + public int getAlarmGas() { + return alarmGas; + } + + public void setAlarmGas(int alarmGas) { + this.alarmGas = alarmGas; + } + + public int getAlarmFire() { + return alarmFire; + } + + public void setAlarmFire(int alarmFire) { + this.alarmFire = alarmFire; + } + + public int getAlarmTemperature() { + return alarmTemperature; + } + + public void setAlarmTemperature(int alarmTemperature) { + this.alarmTemperature = alarmTemperature; + } + + public int getAlarmPower() { + return alarmPower; + } + + public void setAlarmPower(int alarmPower) { + this.alarmPower = alarmPower; + } + + public int getAlarmSilent() { + return alarmSilent; + } + + public void setAlarmSilent(int alarmSilent) { + this.alarmSilent = alarmSilent; + } + + public int getArmingState() { + return armingState; + } + + public void setArmingState(int armingState) { + this.armingState = armingState; + } +} 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() +// ); +// } +// } } 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 5d5b0fc..db59326 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 @@ -12,6 +12,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; @@ -19,6 +20,7 @@ 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.HDLLogic.LogicMode; +import com.hdl.sdk.hdl_core.HDLAppliances.HDLSecurity.SecurityBackInfo; import com.hdl.sdk.hdl_core.HDLAppliances.HDLSensor.SensorStateBackInfo; import com.hdl.sdk.hdl_core.HDLAppliances.HDLWarning.WarningType; import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.AppliancesInfo; @@ -28,6 +30,8 @@ import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.RcuLight; import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.UdpDataBean; 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.CommonSwitchStateBackEvent; 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; @@ -35,6 +39,8 @@ 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.SecurityAlarmFeedBackEvent; +import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.SecurityArmingFeedBackEvent; import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.WarningInfoEvent; import com.hdl.sdk.hdl_core.HDLDeviceManger.Parser.DeviceParser; import com.hdl.sdk.hdl_core.Util.LogUtil.HDLLog; @@ -177,7 +183,20 @@ case Configuration.GEOTHERMAL_MODULE_CTRL_BACK_COMMAND://20190709鏂板 handleGeothermalCtrlData(getDatas); break; - + /***2020-06-23 鏂板閫氱敤寮�鍏�**/ + case Configuration.COMMON_SWITCH_CTRL_BACK_COMMAND: + handleCommonSwitchCtrlData(getDatas); + break; + case Configuration.COMMON_SWITCH_STATE_BACK_COMMAND: + handleCommonSwitchStateData(getDatas); + break; + case Configuration.SECURITY_ARMING_CTRL_BACK_COMMAND://20190729鏂板 + case Configuration.SECURITY_ALARM_CTRL_BACK_COMMAND://鎶ヨ璁剧疆鍙嶉 + handleSecurityCtrlData(getDatas); + break; + case Configuration.SECURITY_STATE_BACK_COMMAND: + handleSecurityStateData(getDatas); + break; // 鑾峰彇璁惧澶囨敞 case Configuration.DEVICES_READ_BACK_COMMAND: @@ -2619,7 +2638,199 @@ } } + /** + * 閫氱敤寮�鍏虫帶鍒跺弽棣� + * + * @param getDatas + */ + private static void handleCommonSwitchCtrlData(UdpDataBean getDatas) { + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID) { + List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); + for (int j = 0, len2 = infos.size(); j < len2; j++) { + if (infos.get(j).getBigType() == Configuration.COMMON_SWITCH_BIG_TYPE + && infos.get(j).getDeviceType() == HDLApConfig.TYPE_COMMON_SWITCH) { + + if (infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) { + //澶х被銆佸皬绫汇�佸洖璺彿閮藉尮閰� + devicesDataList.get(i).getAppliancesInfoList().get(j).setCurState(getDatas.addBytes[1] & 0xFF); + devicesDataList.get(i).getAppliancesInfoList().get(j).setIntCurState(getDatas.addBytes[1] & 0xFF); + AppliancesInfo mSwitchInfo = infos.get(j); + CommonSwitchBackInfo info = new CommonSwitchBackInfo(); + info.setAppliancesInfo(mSwitchInfo); + info.setSwitchNum(getDatas.addBytes[0] & 0xFF); + info.setSwitchState(getDatas.addBytes[1] & 0xFF); + setDeviceCtrlSuccessStateWithInfo(infos.get(j), true); + EventBus.getDefault().post(new CommonSwitchCtrlBackEvent(info, true)); + break outter;//璺冲嚭寰幆 + } + } + } + + break outter;//璺冲嚭寰幆 + } + } + } + + + /**************************************2020-06-23鏂板***************************************/ + /** + * 閫氱敤寮�鍏宠鐘舵�佸弽棣堝弽棣� + * + * @param getDatas + */ + private static void handleCommonSwitchStateData(UdpDataBean getDatas) { + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID) { + + List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); + for (int j = 0, len2 = infos.size(); j < len2; j++) { + if (infos.get(j).getBigType() == Configuration.COMMON_SWITCH_BIG_TYPE + && infos.get(j).getDeviceType() == HDLApConfig.TYPE_COMMON_SWITCH) { + + if (infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) { + //澶х被銆佸皬绫汇�佸洖璺彿閮藉尮閰� + if (getDatas.addBytes.length >= 2) { + isGetDeviceStateSuccess = true; + devicesDataList.get(i).getAppliancesInfoList().get(j).setCurState(getDatas.addBytes[1] & 0xFF); + devicesDataList.get(i).getAppliancesInfoList().get(j).setIntCurState(getDatas.addBytes[1] & 0xFF); + AppliancesInfo mSwitchInfo = infos.get(j); + CommonSwitchBackInfo info = new CommonSwitchBackInfo(); + info.setAppliancesInfo(mSwitchInfo); + info.setSwitchNum(getDatas.addBytes[0] & 0xFF); + info.setSwitchState(getDatas.addBytes[1] & 0xFF); + EventBus.getDefault().post(new CommonSwitchStateBackEvent(info, true)); + } + break outter;//璺冲嚭寰幆 + } + } + } + + break outter;//璺冲嚭寰幆 + } + } + } + + + /** + * 璇诲彇瀹夐槻璁剧疆鍙嶉 + * 2020-06-23 + * + * @param getDatas + */ + private static void handleSecurityStateData(UdpDataBean getDatas) { + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID + ) { + List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); + for (int j = 0, len2 = infos.size(); j < len2; j++) { + if (infos.get(j).getBigType() == Configuration.SECURITY_BIG_TYPE + && infos.get(j).getDeviceType() == HDLApConfig.TYPE_SECURITY_MODULE + && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) {//2019-07-29 + if (getDatas.addBytes.length >= 2) { + isGetDeviceStateSuccess = true; + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); + EventBus.getDefault().post(new DeviceStateEvent(devicesDataList.get(i).getAppliancesInfoList().get(j), true)); + } else { + isGetDeviceStateSuccess = true; + EventBus.getDefault().post(new DeviceStateEvent(devicesDataList.get(i).getAppliancesInfoList().get(j), false)); + HDLLog.info("handleSecurityStateData 杩斿洖addBytes鏁版嵁寮傚父"); + } + break outter; + } else { + HDLLog.info("handleSecurityStateData 娌℃湁鎵惧埌鍖归厤绫诲瀷"); + } + } + break outter; + } + } + } + + /** + * 澶勭悊瀹夐槻璁惧 + * 2020-06-23 + * + * @param getDatas + */ + private static void handleSecurityCtrlData(UdpDataBean getDatas) { + switch (getDatas.command) { + //Arming 甯冮槻璁剧疆鍙嶉 + case Configuration.SECURITY_ARMING_CTRL_BACK_COMMAND: + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID + ) { + List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); + for (int j = 0, len2 = infos.size(); j < len2; j++) { + if (getDatas.addBytes.length > 0) { + if (infos.get(j).getBigType() == Configuration.SECURITY_BIG_TYPE + && infos.get(j).getDeviceType() == HDLApConfig.TYPE_SECURITY_MODULE + && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) { + if (getDatas.addBytes.length >= 2) { + AppliancesInfo mInfo = devicesDataList.get(i).getAppliancesInfoList().get(j); +// isSecurityCtrlSuccess = true; + setDeviceCtrlSuccessStateWithInfo(mInfo, true); + EventBus.getDefault().post(new SecurityArmingFeedBackEvent(mInfo, getDatas.addBytes[1] & 0xFF, true)); + } else { + HDLLog.E("甯冮槻璁剧疆 鍙嶉鏁版嵁寮傚父"); + } + break outter; + } + } + } + break outter; + } + } + + break; + + //ALARM 鎶ヨ璁剧疆鍙嶉 + case Configuration.SECURITY_ALARM_CTRL_BACK_COMMAND: + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID + ) { + + List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); + for (int j = 0, len2 = infos.size(); j < len2; j++) { + if (getDatas.addBytes.length > 0) { + if (infos.get(j).getBigType() == Configuration.SECURITY_BIG_TYPE + && infos.get(j).getDeviceType() == HDLApConfig.TYPE_SECURITY_MODULE + && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) { + if (getDatas.addBytes.length >= 3) { + //byte[] getBytes = devicesDataList.get(i).getAppliancesInfoList().get(j).getArrCurState(); + + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); + AppliancesInfo mInfo = devicesDataList.get(i).getAppliancesInfoList().get(j); + + SecurityBackInfo info = new SecurityBackInfo(mInfo); +// isSecurityCtrlSuccess = true; + setDeviceCtrlSuccessStateWithInfo(infos.get(j), true); + EventBus.getDefault().post(new SecurityAlarmFeedBackEvent(info, true)); + } else { + HDLLog.E("鎶ヨ璁剧疆鍙嶉 鍙嶉鏁版嵁寮傚父"); + } + + break outter; + } + } + } + break outter; + } + } + + break; + } + } } diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLSDK.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLSDK.java new file mode 100644 index 0000000..e2e0b0b --- /dev/null +++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLSDK.java @@ -0,0 +1,64 @@ +//package com.hdl.sdk.hdl_core.HDLDeviceManger.Core; +// +//import android.content.Context; +// +//import com.hdl.sdk.hdl_core.Util.LogUtil.HDLLog; +//import com.hdl.sdk.hdl_core.Util.SPUtil.SPUtils; +// +///** +// * Created by jlchen on 2020-06-23. +// */ +//public class HDLSDK { +// +// /** +// * 鍒濆鍖� SDK +// * +// * @param context +// */ +// public static void init(Context context) { +// 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(); +// } +// +// /** +// * 鏄惁寮�鍚疭DK鏃ュ織鎵撳嵃 +// * +// * @param bOpen +// */ +// public static void setHDLLogOpen(boolean bOpen) { +// HDLLog.setHDLLogOpen(bOpen); +// } +// +// /** +// * 閲婃斁璧勬簮 鍏抽棴涓插彛 +// */ +// public static void release() { +// HDLDeviceManager.release(); +// } +//} diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLUdpCore.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLUdpCore.java index dc4bf08..713c936 100644 --- a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLUdpCore.java +++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLUdpCore.java @@ -433,6 +433,11 @@ case Configuration.FRESH_AIR_STATE_BACK_COMMAND://20190709鏂板 case Configuration.GEOTHERMAL_MODULE_CTRL_BACK_COMMAND://20190709鏂板 鍦扮儹妯″潡 case Configuration.GEOTHERMAL_MODULE_STATE_BACK_COMMAND://20190709鏂板 + case Configuration.COMMON_SWITCH_CTRL_BACK_COMMAND: //2020-06-23 閫氱敤寮�鍏� + case Configuration.COMMON_SWITCH_STATE_BACK_COMMAND: //2020-06-23 閫氱敤寮�鍏� + case Configuration.SECURITY_ARMING_CTRL_BACK_COMMAND://20190729瀹夐槻妯″潡 甯冮槻璁剧疆鍙嶉 + case Configuration.SECURITY_STATE_BACK_COMMAND://20190729 璇诲彇瀹夐槻璁剧疆鍙嶉 + case Configuration.SECURITY_ALARM_CTRL_BACK_COMMAND://20190729 鎶ヨ璁剧疆鍙嶉 case Configuration.CURTAIN_STATE_BACK_COMMAND: case Configuration.AIR_STATE_BACK_COMMAND: diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/EventBusEvent/CommonSwitchCtrlBackEvent.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/EventBusEvent/CommonSwitchCtrlBackEvent.java new file mode 100644 index 0000000..77836ea --- /dev/null +++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/EventBusEvent/CommonSwitchCtrlBackEvent.java @@ -0,0 +1,26 @@ +package com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent; + + +import com.hdl.sdk.hdl_core.HDLAppliances.HDLCommonSwitch.CommonSwitchBackInfo; + +/** + * Created by jlchen on 2020-04-01. + */ +public class CommonSwitchCtrlBackEvent { + CommonSwitchBackInfo mCommonSwitchBackInfo; + boolean isSuccess; + + public CommonSwitchCtrlBackEvent(CommonSwitchBackInfo commonSwitchBackInfo, boolean isSuccess){ + this.isSuccess = isSuccess; + this.mCommonSwitchBackInfo = commonSwitchBackInfo; + } + + public CommonSwitchBackInfo getCommonSwitchBackInfo() { + return mCommonSwitchBackInfo; + } + + public boolean isSuccess() { + return isSuccess; + } + +} diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/EventBusEvent/CommonSwitchStateBackEvent.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/EventBusEvent/CommonSwitchStateBackEvent.java new file mode 100644 index 0000000..03e6941 --- /dev/null +++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/EventBusEvent/CommonSwitchStateBackEvent.java @@ -0,0 +1,26 @@ +package com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent; + + +import com.hdl.sdk.hdl_core.HDLAppliances.HDLCommonSwitch.CommonSwitchBackInfo; + +/** + * Created by jlchen on 2020-04-01. + */ +public class CommonSwitchStateBackEvent { + CommonSwitchBackInfo mCommonSwitchBackInfo; + boolean isSuccess; + + public CommonSwitchStateBackEvent(CommonSwitchBackInfo commonSwitchBackInfo, boolean isSuccess){ + this.isSuccess = isSuccess; + this.mCommonSwitchBackInfo = commonSwitchBackInfo; + } + + public CommonSwitchBackInfo getCommonSwitchBackInfo() { + return mCommonSwitchBackInfo; + } + + public boolean isSuccess() { + return isSuccess; + } + +} diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/EventBusEvent/SecurityAlarmFeedBackEvent.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/EventBusEvent/SecurityAlarmFeedBackEvent.java new file mode 100644 index 0000000..4fffcd0 --- /dev/null +++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/EventBusEvent/SecurityAlarmFeedBackEvent.java @@ -0,0 +1,24 @@ +package com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent; + +import com.hdl.sdk.hdl_core.HDLAppliances.HDLSecurity.SecurityBackInfo; + +/** + * Created by JLChen on 2019/7/29 + */ +public class SecurityAlarmFeedBackEvent { + SecurityBackInfo mSecurityBackInfo; + boolean isSuccess; + + public SecurityAlarmFeedBackEvent(SecurityBackInfo securityBackInfo, boolean isSuccess){ + this.mSecurityBackInfo = securityBackInfo; + this.isSuccess = isSuccess; + } + + public SecurityBackInfo getSecurityBackInfo() { + return mSecurityBackInfo; + } + + public boolean isSuccess() { + return isSuccess; + } +} diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/EventBusEvent/SecurityArmingFeedBackEvent.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/EventBusEvent/SecurityArmingFeedBackEvent.java new file mode 100644 index 0000000..7285eef --- /dev/null +++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/EventBusEvent/SecurityArmingFeedBackEvent.java @@ -0,0 +1,35 @@ +package com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent; + + +import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.AppliancesInfo; + +/** + * Created by JLChen on 2019/7/29 + */ +public class SecurityArmingFeedBackEvent { + AppliancesInfo appliancesInfo; + int armingState; + boolean isSuccess; + + public SecurityArmingFeedBackEvent(boolean isSuccess){ + this.isSuccess = isSuccess; + } + + public SecurityArmingFeedBackEvent(AppliancesInfo mAppliancesInfo, int armingState, boolean isSuccess){ + this.appliancesInfo = mAppliancesInfo; + this.armingState = armingState; + this.isSuccess = isSuccess; + } + + public int getArmingState() { + return armingState; + } + + public boolean isSuccess() { + return isSuccess; + } + + public AppliancesInfo getAppliancesInfo() { + return appliancesInfo; + } +} diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Parser/DeviceParser.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Parser/DeviceParser.java index 0278e0d..0508d49 100644 --- a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Parser/DeviceParser.java +++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Parser/DeviceParser.java @@ -2,6 +2,7 @@ import com.hdl.sdk.hdl_core.Config.Configuration; import com.hdl.sdk.hdl_core.HDLAppliances.Config.HDLApConfig; +import com.hdl.sdk.hdl_core.HDLAppliances.HDLLogic.LogicMode; import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.AppliancesInfo; import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.DevicesData; import com.hdl.sdk.hdl_core.HDLDeviceManger.Core.HDLDeviceManager; @@ -10,6 +11,8 @@ import java.util.ArrayList; import java.util.List; + +import static com.hdl.sdk.hdl_core.HDLDeviceManger.Core.HDLDeviceManager.devicesDataList; /** * Created by djl on 2017/3/29. @@ -223,6 +226,29 @@ case Configuration.FRESH_AIR_LITTLE_TYPE_0: isWant = true; break; + default: + isWant = false; + break; + } + break; + case Configuration.COMMON_SWITCH_BIG_TYPE://2020-06-23 閫氱敤寮�鍏宠澶� + switch (littleType) { + case 0: + isWant = true; + break; + default: + isWant = false; + break; + } + break; + case Configuration.SECURITY_BIG_TYPE: + switch (littleType) { + case 0: + isWant = true; + break; +// case 2: +// isWant = true; +// break; default: isWant = false; break; @@ -723,7 +749,7 @@ if (bWantData) { devicesData.setAppliancesInfoList(appliancesInfoList); - HDLDeviceManager.devicesDataList.add(devicesData); + devicesDataList.add(devicesData); HandleSearch.OnDeviceListGetSuccessCallBack(); }else { @@ -765,6 +791,12 @@ case Configuration.FRESH_AIR_BIG_TYPE: parseFreshAirData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, port, ""); break; + case Configuration.COMMON_SWITCH_BIG_TYPE://2020-06-23 閫氱敤寮�鍏� + parseCommonSwitchData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, ""); + break; + case Configuration.SECURITY_BIG_TYPE://2020-06-23 鏂板 + parseSecurityData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, ""); + break; default: // appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE); break; @@ -782,4 +814,219 @@ } + + /** + * 2020-06-23 + * 鏂板閫氱敤寮�鍏� + * @param littleType + * @param appliancesInfo + * @param devicesData + * @param parentRemarks + * @param channelNum + * @param port + * @param ipAddress + */ + private static void parseCommonSwitchData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) { + switch (littleType) { + case 0: + appliancesInfo.setDeviceName("閫氱敤寮�鍏�"); + appliancesInfo.setDeviceType(HDLApConfig.TYPE_COMMON_SWITCH); + break; + default: + appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE); + break; + + } + if (devicesData != null) { + appliancesInfo.setChannelNum(channelNum); + appliancesInfo.setBigType(Configuration.COMMON_SWITCH_BIG_TYPE); + appliancesInfo.setLittleType(littleType); + appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); + appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); + appliancesInfo.setParentRemarks(parentRemarks); + + appliancesInfo.setCtrlCommand(Configuration.COMMON_SWITCH_CTRL_COMMAND);// + appliancesInfo.setCtrlBackCommand(Configuration.COMMON_SWITCH_CTRL_BACK_COMMAND);// + appliancesInfo.setStateCommand(Configuration.COMMON_SWITCH_STATE_COMMAND);// + appliancesInfo.setStateBackCommand(Configuration.COMMON_SWITCH_STATE_BACK_COMMAND);// + + } + } + + /** + * 2020-06-23 鏂板 + * + * @param littleType + * @param appliancesInfo + * @param devicesData + * @param parentRemarks + * @param channelNum + * @param port + * @param ipAddress + */ + private static void parseSecurityData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) { + switch (littleType) { + case 0: + appliancesInfo.setDeviceName("瀹夐槻妯″潡"); + appliancesInfo.setDeviceType(HDLApConfig.TYPE_SECURITY_MODULE); + break; +// case 2: +// appliancesInfo.setDeviceName("瀹夐槻鎺у埗闈㈡澘"); +// appliancesInfo.setDeviceType(HDLApConfig.SECURITY_CONTROL_PANEL); +// break; + default: + appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE); + break; + + } + if (devicesData != null) { + appliancesInfo.setChannelNum(channelNum); + appliancesInfo.setBigType(Configuration.SECURITY_BIG_TYPE); + appliancesInfo.setLittleType(littleType); + appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); + appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); + appliancesInfo.setParentRemarks(parentRemarks); +// appliancesInfo.setPort(port); +// appliancesInfo.setIpAddress(ipAddress); + appliancesInfo.setCtrlCommand(Configuration.SECURITY_ARMING_CTRL_COMMAND);//甯冮槻 + appliancesInfo.setCtrlBackCommand(Configuration.SECURITY_ARMING_CTRL_BACK_COMMAND);//甯冮槻璁剧疆鍙嶉 + appliancesInfo.setStateCommand(Configuration.SECURITY_STATE_COMMAND);//璇诲彇瀹夐槻璁剧疆 + appliancesInfo.setStateBackCommand(Configuration.SECURITY_STATE_BACK_COMMAND);//璇诲彇瀹夐槻璁剧疆鍙嶉 + + + + } + } + + /** + * 娣诲姞璁惧鍥炶矾 + * 濡傛灉瀛樺湪鐩稿悓瀛愮綉鍙� 璁惧鍙凤紝鍒欏綋鎴愭贩鍚堟ā鍧楁坊鍔犲埌璇ュ洖璺笅锛屼笉瀛樺湪鍒欐柊娣诲姞妯″潡 + * @param port 鍙戦�乁DP鍖� 绔彛鍙� + * @param bigType + * @param littleType + * @param mSubnetID + * @param mDeviceID + * @param mChannelNum + * @param mChannelRemark + * @param parentRemarks + * @param bSaveAndCallBack 鏄惁椹笂淇濆瓨鏈湴骞朵笖鎺ㄩ�丏evicesInfoEvent 浜嬩欢 + * @return + */ + public static DevicesData addDevicesListWithoutSearching(int port, int bigType, int littleType, int mSubnetID, int mDeviceID, int mChannelNum, String mChannelRemark, String parentRemarks, boolean bSaveAndCallBack) { +// boolean bWantData = false; + if (isWantData(bigType, littleType)) { + DevicesData devicesData = new DevicesData(); + devicesData.setSourceSubnetID(mSubnetID); + devicesData.setSourceDeviceID(mDeviceID); + devicesData.setRemark(parentRemarks); + + Boolean isFindDevicesData = false; + int index = 0; + for (int i = 0; i < devicesDataList.size(); i++) { + if (devicesDataList.get(i).getSourceSubnetID() == mSubnetID && devicesDataList.get(i).getSourceDeviceID() == mDeviceID) { + index = i; + isFindDevicesData = true; + break; + } + } + + + if (isFindDevicesData) { + AppliancesInfo mAppliancesInfo = getDevicesInfo(devicesData, bigType, littleType, mChannelNum, port, parentRemarks, mChannelRemark); + devicesDataList.get(index).getAppliancesInfoList().add(mAppliancesInfo); + devicesData = devicesDataList.get(index); + if(bSaveAndCallBack){ + HandleSearch.OnDeviceListGetSuccessCallBack();} + } else { + List<AppliancesInfo> appliancesInfoList = new ArrayList<>(); + appliancesInfoList.add(getDevicesInfo(devicesData, bigType, littleType, mChannelNum, port, parentRemarks, mChannelRemark)); + devicesData.setAppliancesInfoList(appliancesInfoList); + devicesDataList.add(devicesData); + if(bSaveAndCallBack){ + HandleSearch.OnDeviceListGetSuccessCallBack();} + + } + + + return devicesData; + + } else { + return null; + + } + + + } + + + /** + * 娣诲姞鍦烘櫙璁惧鍥炶矾 + * 濡傛灉瀛樺湪鐩稿悓瀛愮綉鍙� 璁惧鍙凤紝鍒欏綋鎴愭贩鍚堟ā鍧楁坊鍔犲埌璇ュ洖璺笅锛屼笉瀛樺湪鍒欐柊娣诲姞妯″潡 + * @param mSubnetID + * @param mDeviceID + * @param mAreaNum //鍦烘櫙 鍖哄煙鍙� + * @param mAreaSceneNum //鍦烘櫙 褰撳墠鍖哄煙鍦烘櫙鍙� + * @param mChannelRemark + * @param parentRemarks + * @param bSaveAndCallBack 鏄惁椹笂淇濆瓨鏈湴骞朵笖鎺ㄩ�丏evicesInfoEvent 浜嬩欢 + * @return + */ + public static DevicesData addScenesDevicesListWithoutSearching(int port, int mSubnetID, int mDeviceID, int mAreaNum, int mAreaSceneNum, String mChannelRemark, String parentRemarks, boolean bSaveAndCallBack) { +// boolean bWantData = false; + + int bigType = Configuration.GLOBAL_LOGIC_BIG_TYPE; + int littleType = 0; + if (isWantData(bigType, littleType)) { + DevicesData devicesData = new DevicesData(); + devicesData.setSourceSubnetID(mSubnetID); + devicesData.setSourceDeviceID(mDeviceID); + devicesData.setRemark(parentRemarks); + + Boolean isFindDevicesData = false; + int index = 0; + for (int i = 0; i < devicesDataList.size(); i++) { + if (devicesDataList.get(i).getSourceSubnetID() == mSubnetID && devicesDataList.get(i).getSourceDeviceID() == mDeviceID) { + index = i; + isFindDevicesData = true; + break; + } + } + + + if (isFindDevicesData) { + AppliancesInfo mAppliancesInfo = getDevicesInfo(devicesData, bigType, littleType, mAreaNum, port, parentRemarks, mChannelRemark); + LogicMode mLogicMode = new LogicMode(); + mLogicMode.setAreaNum(mAreaNum); + mLogicMode.setAreaSceneNum(mAreaSceneNum); + mAppliancesInfo.setLogicMode(mLogicMode); + devicesDataList.get(index).getAppliancesInfoList().add(mAppliancesInfo); + devicesData = devicesDataList.get(index); + if(bSaveAndCallBack){ + HandleSearch.OnDeviceListGetSuccessCallBack();} + } else { + List<AppliancesInfo> appliancesInfoList = new ArrayList<>(); + AppliancesInfo mAppliancesInfo = getDevicesInfo(devicesData, bigType, littleType, mAreaNum, port, parentRemarks, mChannelRemark); + LogicMode mLogicMode = new LogicMode(); + mLogicMode.setAreaNum(mAreaNum); + mLogicMode.setAreaSceneNum(mAreaSceneNum); + mAppliancesInfo.setLogicMode(mLogicMode); + appliancesInfoList.add(mAppliancesInfo); + devicesData.setAppliancesInfoList(appliancesInfoList); + devicesDataList.add(devicesData); + if(bSaveAndCallBack){ + HandleSearch.OnDeviceListGetSuccessCallBack();} + } + + + return devicesData; + + } else { + return null; + + } + + + } + + } -- Gitblit v1.8.0