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ç›®å‰æ”¯æŒæ‰‹åŠ¨æ·»åŠ çš„å¤§ç±»ï¼šå°ç±» * ç¯å…‰ç±»ï¼ˆå¤§ç±»1):调光回路(0)ã€å¼€å…³å›žè·¯ï¼ˆ1ï¼‰ã€æ··åˆè°ƒå…‰ç±»ï¼ˆ9ï¼‰ã€æ··åˆå¼€å…³ç±»ï¼ˆ10) * 窗帘类(大类2):开åˆå¸˜ç”µæœºï¼ˆ0)ã€å·å¸˜ç”µæœºï¼ˆ1)ã€çª—帘模å—(2) * 空调功能(大类7):HVAC 模å—(0)ã€é€šç”¨ç©ºè°ƒé¢æ¿ï¼ˆ3) * 背景音ä¹åŠŸèƒ½ï¼ˆå¤§ç±»9ï¼‰ï¼šèƒŒæ™¯éŸ³ä¹æ¨¡å— 2018æ–°èƒŒæ™¯éŸ³ä¹æ¨¡å—å°ç±»3 * ä¼ æ„Ÿå™¨ï¼ˆå¤§ç±»5):干结点0 到 功率24 * 逻辑功能(大类12):逻辑模å—(0) * 全局场景(大类17):全局场景(0) * 地çƒåŠŸèƒ½ï¼šåœ°çƒæ¨¡å—(0) * 新风(大类19):新风系统(0) * 通用开关(大类100):通用开关(0) * æ ¼å¼ æ”¯æŒçš„æ¨¡å—åå— å¤§ç±»ID:å°ç±»ID * * ç¯å…‰ç±» 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,et_scene2; 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); et_scene2 = findViewById(R.id.et_scene2); 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(mChannelNumStr)) { 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 mChannelNum å›žè·¯å· è¿™é‡Œçš„å›žè·¯å·éœ€è¦æ³¨æ„,相åŒå网å·å’Œè®¾å¤‡å·ä¸‹çš„场景需è¦ç´¯åŠ ä¸é‡å¤ï¼Œé€»è¾‘模å—为例:1区有3个表,2区有2个表 总共5个场景,所以(2区表1 回路å·ä¸º4ã€2区表2 回路å·ä¸º5) * @param mAreaNum //场景 åŒºåŸŸå· * @param mAreaSceneNum //场景 当å‰åŒºåŸŸåœºæ™¯å· * @param mChannelRemark 读å–场景的备注åç§° 例如: å…¥ä½ã€èµ·åºŠæ¨¡å¼ã€é˜…è¯»æ¨¡å¼ * @param parentRemarks 当å‰å›žè·¯æ¨¡å—的备注 例如: 酒店RCUæ¨¡å— * @param bSaveAndCallBack 是å¦é©¬ä¸Šä¿å˜æœ¬åœ°å¹¶ä¸”推é€DevicesInfoEvent 事件 * @return */ private void AddScenesDevices(int mSubnetID, int mDeviceID, int mChannelNum, int mAreaNum, int mAreaSceneNum, String mChannelRemark, String parentRemarks, boolean bSaveAndCallBack) { //æ·»åŠ åœºæ™¯ DevicesData mScenesData = DeviceParser.addScenesDevicesListWithoutSearching(port, mSubnetID, mDeviceID, mChannelNum, 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 mChannelNumStr = et_mChannelNum.getText().toString(); if (TextUtils.isEmpty(mChannelNumStr)) { 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_AreaNumString = et_scene.getText().toString(); if (TextUtils.isEmpty(et_AreaNumString)) { showToast("场景:区å·ä¸èƒ½ä¸ºç©º"); return; } String et_scene2String = et_scene2.getText().toString(); if (TextUtils.isEmpty(et_scene2String)) { showToast("场景:场景å·ä¸èƒ½ä¸ºç©º"); 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 areaID = Integer.parseInt(et_AreaNumString); int sceneID = Integer.parseInt(et_scene2String); DevicesData mScenesData = DeviceParser.addScenesDevicesListWithoutSearching(port, mSubnetID, mDeviceID, mChannelNum, areaID, 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); // //æ·»åŠ ä¸€ä¸ªåœºæ™¯ 最åŽä¸€ä¸ªbSaveAndCallBack 设置为true // 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); // // //æ·»åŠ ä¸€ä¸ªå¹²èŠ‚ç‚¹ä¼ æ„Ÿå™¨ // DeviceParser.addDevicesListWithoutSearching(port, Configuration.SENSOR_BIG_TYPE, 0, 111, 99, 1, "干节点", "干节点",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); /** * 场景这里的回路å·éœ€è¦æ³¨æ„: 相åŒå网å·å’Œè®¾å¤‡å·ä¸‹çš„场景需è¦ç´¯åŠ ä¸é‡å¤ï¼Œé€»è¾‘模å—为例:1区有3个表,2区有2个表 总共5个场景,所以(2区表1 回路å·ä¸º4ã€2区表2 回路å·ä¸º5) * ä¸ç„¶å¦‚果回路å·ä¸å¯¹ç®€æ˜“编程æœç´¢å¤‡æ³¨çš„è¯ä¼šå‡ºé”™ */ //æ·»åŠ ä¸€ä¸ªåœºæ™¯ DeviceParser.addLogicScenesDevicesListWithoutSearching(port, 1, 16, 4, 2, 1, "å§å®¤å¼€ç¯", "逻辑模å—",false); //æ·»åŠ ä¸€ä¸ªåœºæ™¯ 最åŽä¸€ä¸ªbSaveAndCallBack 设置为true DeviceParser.addLogicScenesDevicesListWithoutSearching(port, 1, 16, 5,2, 2, "å§å®¤å…³ç¯", "逻辑模å—",true); } private void showToast(String text) { Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); } }