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() è¦æ³¨å†Œä½¿ç”¨EventBus,这里è¦è®¾ç½®è¿”回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); } /** * åˆå§‹åŒ–Toolbar */ 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 "æ£å¸¸"; } 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(), "æ— å£°æŠ¥è¦")); // tv_alarmPower.setText(getAlarmStateString(mSecurityStateBean.getAlarmPower(), "功率报è¦")); // tv_alarmTemperature.setText(getAlarmStateString(mSecurityStateBean.getAlarmTemperature(), "温度报è¦")); } }