package com.hdl.sdk.ttl_sdk.activity; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; import android.view.View; import android.widget.RelativeLayout; import android.widget.TextView; import com.hdl.sdk.ttl.HDLAppliances.Config.HDLApConfig; import com.hdl.sdk.ttl.HDLAppliances.HDLSensor.DryContactSensorBackEvent; import com.hdl.sdk.ttl.HDLAppliances.HDLSensor.SensorStateBackInfo; import com.hdl.sdk.ttl.HDLDeviceManger.Bean.AppliancesInfo; import com.hdl.sdk.ttl.HDLDeviceManger.Core.HDLCommand; import com.hdl.sdk.ttl_sdk.R; import com.hdl.sdk.ttl_sdk.base.BaseActivity; import com.hdl.sdk.ttl_sdk.utlis.HDLLog; import com.hdl.sdk.ttl_sdk.utlis.HDLUtlis; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; public class SensorActivity extends BaseActivity { /** * Topbar */ private RelativeLayout topBarBack; private TextView topBarTitle; private TextView sensorText; private TextView sensorStatusText; private AppliancesInfo appliancesInfo; private String showMessage; /** * å¤å†™isRegisterEventBus() è¦æ³¨å†Œä½¿ç”¨EventBus,这里è¦è®¾ç½®è¿”回true * * @return true */ @Override protected boolean isRegisterEventBus() { return true; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sensor); initToolbar(); initcurState(); initView(); displayStateView(); Log.d("panlili", "SensorActivity.java:appliancesInfo-----> " + appliancesInfo.toString()); //å®‰é˜²ä¼ æ„Ÿå™¨æ— çŠ¶æ€èŽ·å–,åªèƒ½è§¦å‘事件上报 //çŽ¯å¢ƒä¼ æ„Ÿå™¨èŽ·å–çŠ¶æ€ HDLCommand.getSensorStateFromNetwork(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(); } }); } private void initcurState() { appliancesInfo = (AppliancesInfo) getIntent().getSerializableExtra("hdl"); String titleStr = appliancesInfo.getRemarks(); if (TextUtils.isEmpty(titleStr) || titleStr.equals(HDLUtlis.REMAEK_NULL)) { if (TextUtils.isEmpty(appliancesInfo.getDeviceName())) { titleStr = "备注为空"; } else { titleStr = appliancesInfo.getDeviceName(); } } topBarTitle.setText(titleStr + appliancesInfo.getDeviceType()); } private void initView() { sensorText = findViewById(R.id.sensorText); sensorStatusText = findViewById(R.id.sensorStatusText); } private void displayStateView() { switch (appliancesInfo.getDeviceType()) { case HDLApConfig.TYPE_SENSOR_MOVEMENT_DETECTOR: //çº¢å¤–æ„Ÿåº”ä¼ æ„Ÿå™¨ case HDLApConfig.TYPE_SENSOR_LPG: //ç…¤æ°”ä¼ æ„Ÿå™¨ 液化石油气 case HDLApConfig.TYPE_SENSOR_CO_H2: //ç…¤æ°”ä¼ æ„Ÿå™¨ 人工煤气(CO,H2) case HDLApConfig.TYPE_SENSOR_CH4: //ç…¤æ°”ä¼ æ„Ÿå™¨ 天然气(CH4) case HDLApConfig.TYPE_SENSOR_SMOG: //çƒŸé›¾ä¼ æ„Ÿå™¨ case HDLApConfig.TYPE_SENSOR_FLOODING: //æ°´æµ¸ä¼ æ„Ÿå™¨ case HDLApConfig.TYPE_SENSOR_DOOR_MAGNET: //é—¨ç£ä¼ 感器 case HDLApConfig.TYPE_SENSOR_EMERGENCY_BUTTON://紧急按钮 case HDLApConfig.TYPE_SENSOR_TEMP://温度 case HDLApConfig.TYPE_SENSOR_HUMIDITY://湿度 case HDLApConfig.TYPE_SENSOR_VOC://VOC case HDLApConfig.TYPE_SENSOR_PM_2_POINT_5://PM2.5 case HDLApConfig.TYPE_SENSOR_C02://C02 case HDLApConfig.TYPE_SENSOR_PM_10://PM10 break; default: finish();//设备类型ä¸å¯¹ç»“æŸé¡µé¢ break; } /**æ ¹æ®éœ€æ±‚是å¦å‘é€ä¸€æ¬¡èŽ·å–刷新状æ€è¯·æ±‚*/ } /** * ä¼ æ„Ÿå™¨çŠ¶æ€å›žè°ƒ Event * 干节点状æ€ä¸»åŠ¨å¹¿æ’--->15D0 * * @param event */ @Subscribe(threadMode = ThreadMode.MAIN) public void onDryContactSensorBackEventMain(DryContactSensorBackEvent event) { if (event.getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID() && event.getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID() && event.getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum() ) { if (!event.isSuccess()) { showToast("ä¼ æ„Ÿå™¨çŠ¶æ€ä¸ŠæŠ¥å¤±è´¥ï¼Œè¯·é‡æ–°å†è¯•"); return; } String mData = ""; if (appliancesInfo.getDeviceType() == HDLApConfig.TYPE_SENSOR_MOVEMENT_DETECTOR) {//çº¢å¤–æ„Ÿåº”ä¼ æ„Ÿå™¨ mData = event.getState() == 0 ? "æ— äºº" : "有人"; } else if (appliancesInfo.getDeviceType() == HDLApConfig.TYPE_SENSOR_FLOODING) {//æ°´æµ¸ä¼ æ„Ÿå™¨ mData = event.getState() == 0 ? "æ£å¸¸" : "æ¼æ°´"; } else if (appliancesInfo.getDeviceType() == HDLApConfig.TYPE_SENSOR_DOOR_MAGNET) {//é—¨ç£ä¼ 感器 mData = event.getState() == 0 ? "é—åˆ" : "打开"; } else { mData = event.getState() == 0 ? "æ£å¸¸" : "报è¦"; } sensorText.setVisibility(View.VISIBLE); sensorStatusText.setVisibility(View.GONE); sensorText.setText("ä¼ æ„Ÿå™¨çŠ¶æ€ï¼š" + mData); HDLLog.Log("ä¼ æ„Ÿå™¨çŠ¶æ€ï¼š" + mData); } } /** * ä¼ æ„Ÿå™¨çŠ¶æ€å›žè°ƒ Event * * @param event */ @Subscribe(threadMode = ThreadMode.MAIN) public void onSensorStateBackInfoMain(SensorStateBackInfo event) { if (event.getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID() && event.getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID() && event.getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum() ) { showMessage = ""; sensorText.setVisibility(View.GONE); sensorStatusText.setVisibility(View.VISIBLE); //è¿™ä¸ªè¿”å›žçš„ä¿¡æ¯æ˜¯å½“å‰çжæ€çš„ switch (event.getAppliancesInfo().getDeviceType()) { case HDLApConfig.TYPE_SENSOR_TEMP: //ä¼ æ„Ÿå™¨ 温度 if (!event.isSuccess()) { showToast("获å–ä¼ æ„Ÿå™¨---温度状æ€å¤±è´¥ï¼Œè¯·é‡æ–°å†è¯•"); return; } float tempValue = (float) event.getAppliancesInfo().getCurState(); String tempValueUnit = ((SensorStateBackInfo) event).getUnite(); showMessage = tempValue + tempValueUnit; sensorStatusText.setText("ä¼ æ„Ÿå™¨---温度:" + showMessage); showToast("ä¼ æ„Ÿå™¨---温度:" + tempValue + tempValueUnit); HDLLog.Log("ä¼ æ„Ÿå™¨---温度:" + tempValue + tempValueUnit); break; case HDLApConfig.TYPE_SENSOR_HUMIDITY: //ä¼ æ„Ÿå™¨ 湿度 if (!event.isSuccess()) { showToast("获å–ä¼ æ„Ÿå™¨---湿度状æ€å¤±è´¥ï¼Œè¯·é‡æ–°å†è¯•"); return; } float humidityValue = (float) event.getAppliancesInfo().getCurState(); String humidityValueUnit = ((SensorStateBackInfo) event).getUnite(); showMessage = humidityValue + humidityValueUnit; sensorStatusText.setText("ä¼ æ„Ÿå™¨---湿度:" + showMessage); showToast("ä¼ æ„Ÿå™¨---湿度:" + humidityValue + humidityValueUnit); HDLLog.Log("ä¼ æ„Ÿå™¨---湿度:" + humidityValue + humidityValueUnit); break; case HDLApConfig.TYPE_SENSOR_VOC: //ä¼ æ„Ÿå™¨ 当å‰ç©ºæ°”è´¨é‡ç‰çº§ if (!event.isSuccess()) { showToast("获å–ä¼ æ„Ÿå™¨---当å‰ç©ºæ°”è´¨é‡ç‰çº§çжæ€å¤±è´¥ï¼Œè¯·é‡æ–°å†è¯•"); return; } float vocValue = (float) event.getAppliancesInfo().getCurState(); String vocValueUnit = ((SensorStateBackInfo) event).getUnite(); showMessage = vocValue + vocValueUnit; sensorStatusText.setText("ä¼ æ„Ÿå™¨---当å‰ç©ºæ°”è´¨é‡ç‰çº§ï¼š" + showMessage); showToast("ä¼ æ„Ÿå™¨---当å‰ç©ºæ°”è´¨é‡ç‰çº§ï¼š" + vocValue + vocValueUnit); HDLLog.Log("ä¼ æ„Ÿå™¨---当å‰ç©ºæ°”è´¨é‡ç‰çº§ï¼š" + vocValue + vocValueUnit); break; case HDLApConfig.TYPE_SENSOR_PM_2_POINT_5: //ä¼ æ„Ÿå™¨ pm2.5 if (!event.isSuccess()) { showToast("获å–ä¼ æ„Ÿå™¨---pm2.5状æ€å¤±è´¥ï¼Œè¯·é‡æ–°å†è¯•"); return; } float pm2_5Value = (float) event.getAppliancesInfo().getCurState(); String pm2_5ValueUnit = ((SensorStateBackInfo) event).getUnite(); showMessage = pm2_5Value + pm2_5ValueUnit; sensorStatusText.setText("ä¼ æ„Ÿå™¨---pm2.5:" + showMessage); showToast("ä¼ æ„Ÿå™¨---pm2.5:" + pm2_5Value + pm2_5ValueUnit); HDLLog.Log("ä¼ æ„Ÿå™¨---pm2.5:" + pm2_5Value + pm2_5ValueUnit); break; case HDLApConfig.TYPE_SENSOR_C02: //ä¼ æ„Ÿå™¨ 二氧化碳 if (!event.isSuccess()) { showToast("获å–ä¼ æ„Ÿå™¨---二氧化碳状æ€å¤±è´¥ï¼Œè¯·é‡æ–°å†è¯•"); return; } float co2Value = (float) event.getAppliancesInfo().getCurState(); String co2ValueUnit = ((SensorStateBackInfo) event).getUnite(); showMessage = co2Value + co2ValueUnit; sensorStatusText.setText("ä¼ æ„Ÿå™¨---二氧化碳:" + showMessage); showToast("ä¼ æ„Ÿå™¨---二氧化碳:" + co2Value + co2ValueUnit); HDLLog.Log("ä¼ æ„Ÿå™¨---二氧化碳:" + co2Value + co2ValueUnit); break; case HDLApConfig.TYPE_SENSOR_PM_10: //ä¼ æ„Ÿå™¨ pm10 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { showToast("获å–ä¼ æ„Ÿå™¨---pm10状æ€å¤±è´¥ï¼Œè¯·é‡æ–°å†è¯•"); return; } float pm10Value = (float) event.getAppliancesInfo().getCurState(); String pm10ValueUnit = ((SensorStateBackInfo) event).getUnite(); showMessage = pm10Value + pm10ValueUnit; sensorStatusText.setText("ä¼ æ„Ÿå™¨---pm10:" + showMessage); showToast("ä¼ æ„Ÿå™¨---pm10:" + pm10Value + pm10ValueUnit); HDLLog.Log("ä¼ æ„Ÿå™¨---pm10:" + pm10Value + pm10ValueUnit); break; } } } }