package com.hdl.sdk.hdl_sdk.activity; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; import com.hdl.sdk.hdl_core.HDLAppliances.Config.HDLApConfig; import com.hdl.sdk.hdl_core.HDLAppliances.HDLAirCondition.Parser.AirCtrlParser; import com.hdl.sdk.hdl_core.HDLAppliances.HDLCurtain.Parser.CurtainCtrlParser; import com.hdl.sdk.hdl_core.HDLAppliances.HDLSensor.SensorStateBackInfo; 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.Core.HDLCommand; import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.AirFeedBackEvent; 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.LightFeedBackEvent; import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.LogicFeedBackEvent; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import java.util.List; public class CtrlActivity extends AppCompatActivity { private Button lightBtn, curtainBtn, curtainBtn2, curtainBtn3, curtainBtn4, curtainBtn5, logicBtn, airBtnSwitch, airBtnMode, airBtnTemp, airBtnSpeed, sensorBtn; private TextView lightText, curText1, curText2, airText, logicText, sensorText; private EditText airTempEd; private LinearLayout airDisplay; private AppliancesInfo appliancesInfo; private int lightState; private int curtainState; private int airSwitchState;//Demo仅以此作为演示,实际请根据需求开发设计 private int airModeState; private int airTempState; private int airSpeedState; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(com.hdl.sdk.hdl_sdk.R.layout.activity_ctrl); if (!EventBus.getDefault().isRegistered(this)) { EventBus.getDefault().register(this); } // 此方法为主动获取单一设备状态,逻辑模块、背景音乐模块没有这个api,仅支持灯光,窗帘,空调。一般不需要用到。 // HDLCommand.getDeviceState(appliancesInfo); initcurState(); initView(); initClickOnEvent(); HDLCommand.getDeviceState(appliancesInfo); } private void initView() { lightBtn = findViewById(com.hdl.sdk.hdl_sdk.R.id.ctrlbtn); curtainBtn = findViewById(com.hdl.sdk.hdl_sdk.R.id.curtainbtn); curtainBtn2 = findViewById(com.hdl.sdk.hdl_sdk.R.id.curtainbtn2); curtainBtn3 = findViewById(com.hdl.sdk.hdl_sdk.R.id.curtainbtn3); curtainBtn4 = findViewById(com.hdl.sdk.hdl_sdk.R.id.curtainbtn4); curtainBtn5 = findViewById(com.hdl.sdk.hdl_sdk.R.id.curtainbtn5); logicBtn = findViewById(com.hdl.sdk.hdl_sdk.R.id.logicbtn); sensorBtn = findViewById(com.hdl.sdk.hdl_sdk.R.id.sensorbtn); airDisplay = findViewById(com.hdl.sdk.hdl_sdk.R.id.air); airBtnSwitch = findViewById(com.hdl.sdk.hdl_sdk.R.id.airbtn_switch); airBtnMode = findViewById(com.hdl.sdk.hdl_sdk.R.id.airbtn_mode); airBtnSpeed = findViewById(com.hdl.sdk.hdl_sdk.R.id.airbtn_speed); airBtnTemp = findViewById(com.hdl.sdk.hdl_sdk.R.id.airbtn_tempBtn); airTempEd = findViewById(com.hdl.sdk.hdl_sdk.R.id.airet_tempet); lightText = findViewById(com.hdl.sdk.hdl_sdk.R.id.lightText); curText1 = findViewById(com.hdl.sdk.hdl_sdk.R.id.curtainText1); curText2 = findViewById(com.hdl.sdk.hdl_sdk.R.id.curtainText2); airText = findViewById(com.hdl.sdk.hdl_sdk.R.id.airText); logicText = findViewById(com.hdl.sdk.hdl_sdk.R.id.logicText); sensorText = findViewById(com.hdl.sdk.hdl_sdk.R.id.sensorText); //此处判断什么设备,并将其他设备控件隐藏 //1:调光回路(灯) 2:开关回路(灯) 3:混合调光类 (灯) 4:混合开关类(灯) // 5:开合帘电机(窗帘)6:卷帘电机(窗帘) 7:窗帘模块 (窗帘) // 8:HVAC 模块(空调) 9:通用空调面板(空调) // 10:背景音乐模块(音乐) 11:第三方背景音乐模块(音乐) // 12:逻辑模块(场景) 13:全局逻辑模块(场景) //101、102、103、104 为灯 TYPE_LIGHT_DIMMER、TYPE_LIGHT_RELAY、TYPE_LIGHT_MIX_DIMMER、TYPE_LIGHT_MIX_RELAY //201、202、203 为窗帘 TYPE_CURTAIN_GLYSTRO、TYPE_CURTAIN_ROLLER、TYPE_CURTAIN_MODULE //301、304 为空调 TYPE_AC_HVAC、TYPE_AC_PANEL //501、502 为场景 TYPE_LOGIC_MODULE、TYPE_GLOBAL_LOGIC_MODULE //601-625 为传感器 switch (appliancesInfo.getDeviceType()) { case HDLApConfig.TYPE_LIGHT_DIMMER: case HDLApConfig.TYPE_LIGHT_RELAY: case HDLApConfig.TYPE_LIGHT_MIX_DIMMER: case HDLApConfig.TYPE_LIGHT_MIX_RELAY: curtainBtn.setVisibility(View.GONE); curtainBtn2.setVisibility(View.GONE); curtainBtn3.setVisibility(View.GONE); curtainBtn4.setVisibility(View.GONE); curtainBtn5.setVisibility(View.GONE); logicBtn.setVisibility(View.GONE); airDisplay.setVisibility(View.GONE); curText1.setVisibility(View.GONE); curText2.setVisibility(View.GONE); airText.setVisibility(View.GONE); logicText.setVisibility(View.GONE); sensorBtn.setVisibility(View.GONE); sensorText.setVisibility(View.GONE); if (appliancesInfo.getCurState() != null) { int curLightState = (int) appliancesInfo.getCurState(); lightText.setText("当前灯光亮度:" + curLightState); lightBtn.setText("当前灯光亮度:" + curLightState); if (curLightState == 100) { lightState = 0; } else { lightState = 100; } } else { lightText.setText("未获取到灯光亮度"); lightBtn.setText("未获取到灯光亮度"); } break; case HDLApConfig.TYPE_CURTAIN_GLYSTRO: case HDLApConfig.TYPE_CURTAIN_ROLLER: case HDLApConfig.TYPE_CURTAIN_MODULE: lightBtn.setVisibility(View.GONE); logicBtn.setVisibility(View.GONE); airDisplay.setVisibility(View.GONE); lightText.setVisibility(View.GONE); airText.setVisibility(View.GONE); logicText.setVisibility(View.GONE); sensorBtn.setVisibility(View.GONE); sensorText.setVisibility(View.GONE); if (appliancesInfo.getDeviceType() == HDLApConfig.TYPE_CURTAIN_MODULE) { //窗帘模块 curText2.setVisibility(View.GONE); curtainBtn2.setVisibility(View.GONE); curtainBtn3.setVisibility(View.GONE); curtainBtn4.setVisibility(View.GONE); curtainBtn5.setVisibility(View.GONE); if (appliancesInfo.getCurState() != null) { String stringCurtainState = ""; int curCurtainState = (int) appliancesInfo.getCurState(); Log.i("djl", "curCurtainState = " + curCurtainState); switch (curCurtainState) { case CurtainCtrlParser.TYPE_STATE_PAUSE: stringCurtainState += "窗帘模块停止状态"; curtainState = CurtainCtrlParser.curtainOn;//初始化窗帘控制状态 break; case CurtainCtrlParser.TYPE_STATE_OPEN: stringCurtainState += "窗帘模块开状态"; curtainState = CurtainCtrlParser.curtainOff;//初始化窗帘控制状态 break; case CurtainCtrlParser.TYPE_STATE_CLOSE: stringCurtainState += "窗帘模块关状态"; curtainState = CurtainCtrlParser.curtainOn;//初始化窗帘控制状态 break; default: stringCurtainState = "未获取到窗帘模块状态"; curtainState = CurtainCtrlParser.curtainOff;//初始化窗帘控制状态 break; } curText1.setText(stringCurtainState); curtainBtn.setText(stringCurtainState); } else { curText1.setText("未获取到窗帘模块状态"); curtainBtn.setText("未获取到窗帘模块状态"); } } else { //开合帘、卷帘 curText1.setVisibility(View.GONE); curtainBtn.setVisibility(View.GONE); if (appliancesInfo.getCurState() != null) { curText2.setText("当前窗帘状态:" + appliancesInfo.getCurState()); } else { curText2.setText("未获取到窗帘模块状态"); } } break; case HDLApConfig.TYPE_AC_HVAC: case HDLApConfig.TYPE_AC_PANEL: lightBtn.setVisibility(View.GONE); curtainBtn.setVisibility(View.GONE); curtainBtn2.setVisibility(View.GONE); curtainBtn3.setVisibility(View.GONE); curtainBtn4.setVisibility(View.GONE); curtainBtn5.setVisibility(View.GONE); logicBtn.setVisibility(View.GONE); curText1.setVisibility(View.GONE); curText2.setVisibility(View.GONE); lightText.setVisibility(View.GONE); logicText.setVisibility(View.GONE); sensorBtn.setVisibility(View.GONE); sensorText.setVisibility(View.GONE); if (appliancesInfo.getArrCurState() != null) { String stringACState = ""; byte[] acCurState = appliancesInfo.getArrCurState(); for (int index = 0; index < acCurState.length; index++) { if (index == 0 && acCurState[index] == 0) { airSwitchState = 0; stringACState += "空调已关闭"; //如果空调关闭状态,则无需再遍历 break; } if (index == 0 && acCurState[index] == 1) { airSwitchState = 1; stringACState += "空调正在运行"; } switch (index) { case 1: switch (acCurState[index]) { case 0: airModeState = 0; stringACState += " 空调模式:制冷"; break; case 1: airModeState = 1; stringACState += " 空调模式:制热"; break; case 2: airModeState = 2; stringACState += " 空调模式:通风"; break; case 3: airModeState = 3; stringACState += " 空调模式:自动"; break; case 4: airModeState = 4; stringACState += " 空调模式:抽湿"; break; default: airModeState = -1; stringACState += " 未知空调模式"; break; } break; case 2: switch (acCurState[1]) { case 0: airTempState = acCurState[index] & 0xff; stringACState += " 制冷温度:" + (acCurState[index] & 0xff); break; case 1: airTempState = acCurState[index] & 0xff; stringACState += " 制热温度:" + (acCurState[index] & 0xff); break; case 2: airTempState = -1; stringACState += " 通风无温度显示"; break; case 3: airTempState = acCurState[index] & 0xff; stringACState += " 自动温度:" + (acCurState[index] & 0xff); break; case 4: airTempState = acCurState[index] & 0xff; stringACState += " 抽湿温度:" + (acCurState[index] & 0xff); break; default: airTempState = -2; stringACState += " 未知温度"; break; } break; case 3: String curSpeed; switch (appliancesInfo.getArrCurState()[index]) { case 0: airSpeedState = 0; curSpeed = " 风速自动"; break; case 1: airSpeedState = 1; curSpeed = " 风速高"; break; case 2: airSpeedState = 2; curSpeed = " 风速中"; break; case 3: airSpeedState = 3; curSpeed = " 风速低"; break; default: airSpeedState = -1; curSpeed = " 未知风速"; break; } switch (appliancesInfo.getArrCurState()[1]) { case 0: stringACState += curSpeed; break; case 1: stringACState += curSpeed; break; case 2: stringACState += curSpeed; break; case 3: stringACState += curSpeed; break; case 4: stringACState += " 抽湿无风速"; break; default: stringACState += " 未知空调模式"; break; } break; default: break; } } airText.setText(stringACState); } else { airText.setText("未获取到空调设备状态"); } break; case HDLApConfig.TYPE_LOGIC_MODULE: case HDLApConfig.TYPE_GLOBAL_LOGIC_MODULE: lightBtn.setVisibility(View.GONE); curtainBtn.setVisibility(View.GONE); curtainBtn2.setVisibility(View.GONE); curtainBtn3.setVisibility(View.GONE); curtainBtn4.setVisibility(View.GONE); curtainBtn5.setVisibility(View.GONE); airDisplay.setVisibility(View.GONE); curText1.setVisibility(View.GONE); curText2.setVisibility(View.GONE); lightText.setVisibility(View.GONE); sensorBtn.setVisibility(View.GONE); sensorText.setVisibility(View.GONE); break; case HDLApConfig.TYPE_SENSOR_DRY_CONTACT: case HDLApConfig.TYPE_SENSOR_MOVEMENT_DETECTOR: case HDLApConfig.TYPE_SENSOR_TEMP: case HDLApConfig.TYPE_SENSOR_HUMIDITY: case HDLApConfig.TYPE_SENSOR_ILLUMINACE: case HDLApConfig.TYPE_SENSOR_VOC: case HDLApConfig.TYPE_SENSOR_PM_2_POINT_5: case HDLApConfig.TYPE_SENSOR_C02: case HDLApConfig.TYPE_SENSOR_LPG: case HDLApConfig.TYPE_SENSOR_CO_H2: case HDLApConfig.TYPE_SENSOR_CH4: case HDLApConfig.TYPE_SENSOR_SMOG: case HDLApConfig.TYPE_SENSOR_WIND_SPEED: case HDLApConfig.TYPE_SENSOR_WIND_PRESSURE: case HDLApConfig.TYPE_SENSOR_LIQUID_FLOW: case HDLApConfig.TYPE_SENSOR_LIQUID_PRESSURE: case HDLApConfig.TYPE_SENSOR_LIQUID_DEPTH: case HDLApConfig.TYPE_SENSOR_RAIN_FALL: case HDLApConfig.TYPE_SENSOR_WEIGHT: case HDLApConfig.TYPE_SENSOR_HEIGHT_LENGTH: case HDLApConfig.TYPE_SENSOR_OBJECT_SPEED: case HDLApConfig.TYPE_SENSOR_SHAKE: case HDLApConfig.TYPE_SENSOR_VOLTAGE: case HDLApConfig.TYPE_SENSOR_ELECTRICITY: case HDLApConfig.TYPE_SENSOR_POWER: lightBtn.setVisibility(View.GONE); curtainBtn.setVisibility(View.GONE); curtainBtn2.setVisibility(View.GONE); curtainBtn3.setVisibility(View.GONE); curtainBtn4.setVisibility(View.GONE); curtainBtn5.setVisibility(View.GONE); airDisplay.setVisibility(View.GONE); curText1.setVisibility(View.GONE); curText2.setVisibility(View.GONE); lightText.setVisibility(View.GONE); logicBtn.setVisibility(View.GONE); logicText.setVisibility(View.GONE); if (appliancesInfo.getCurState() != null) { float value = (float) appliancesInfo.getCurState(); sensorBtn.setText("传感器数值:" + value); } break; } } private void initcurState() { // lightState = 100;//初始化灯光亮度100 curtainState = CurtainCtrlParser.curtainOff; appliancesInfo = (AppliancesInfo) getIntent().getSerializableExtra("hdl"); // 获取所有设备的状态。deviceStateBeanList为所有设备的状态列表 List deviceStateBeanList = HDLCommand.getAllDevicesState(); // 第三方可根据自己的需求刷新设备页。以下为示例代码。 for (DeviceStateBean deviceStateBean : deviceStateBeanList) { //注意!第三方应该将设备集合全部在这里遍历一遍以下操作,并更新状态值。这里仅作为Demo演示,只判断一个。 //先判断此模块是否为当前设备的模块 if (deviceStateBean.getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID() && deviceStateBean.getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()) { // 再判断是什么类型的设备。 switch (deviceStateBean.getDeviceType()) { case HDLApConfig.TYPE_LIGHT_DIMMER: //判断是哪个回路的设备 if (deviceStateBean.getChannelNum() == appliancesInfo.getChannelNum()) { appliancesInfo.setCurState(deviceStateBean.getCurState()); } break; case HDLApConfig.TYPE_LIGHT_RELAY: //判断是哪个回路的设备 if (deviceStateBean.getChannelNum() == appliancesInfo.getChannelNum()) { appliancesInfo.setCurState(deviceStateBean.getCurState()); } break; case HDLApConfig.TYPE_LIGHT_MIX_DIMMER: //判断是哪个回路的设备 if (deviceStateBean.getChannelNum() == appliancesInfo.getChannelNum()) { appliancesInfo.setCurState(deviceStateBean.getCurState()); } break; case HDLApConfig.TYPE_LIGHT_MIX_RELAY: //判断是哪个回路的设备 if (deviceStateBean.getChannelNum() == appliancesInfo.getChannelNum()) { appliancesInfo.setCurState(deviceStateBean.getCurState()); } break; case HDLApConfig.TYPE_CURTAIN_GLYSTRO: //判断是哪个回路的设备 if (deviceStateBean.getChannelNum() == appliancesInfo.getChannelNum()) { appliancesInfo.setCurState(deviceStateBean.getCurState()); } break; case HDLApConfig.TYPE_CURTAIN_ROLLER: //判断是哪个回路的设备 if (deviceStateBean.getChannelNum() == appliancesInfo.getChannelNum()) { appliancesInfo.setCurState(deviceStateBean.getCurState()); } break; case HDLApConfig.TYPE_CURTAIN_MODULE: //判断是哪个回路的设备 if (deviceStateBean.getChannelNum() == appliancesInfo.getChannelNum()) { appliancesInfo.setCurState(deviceStateBean.getCurState()); } break; case HDLApConfig.TYPE_AC_HVAC: //判断是哪个回路的设备 if (deviceStateBean.getChannelNum() == appliancesInfo.getChannelNum()) { appliancesInfo.setArrCurState(deviceStateBean.getArrCurState()); } break; case HDLApConfig.TYPE_AC_PANEL: //判断是哪个回路的设备 if (deviceStateBean.getChannelNum() == appliancesInfo.getChannelNum()) { appliancesInfo.setArrCurState(deviceStateBean.getArrCurState()); } break; default: break; } } } } private void initClickOnEvent() { lightBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { HDLCommand.lightCtrl(appliancesInfo, lightState); // HDLCommand.lightCtrl(appliancesInfo,50); } }); curtainBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //窗帘模块第二个参数 为CurtainCtrlParser.curtainOn,CurtainCtrlParser.curtainOff,CurtainCtrlParser.curtainPause其中一个 HDLCommand.curtainCtrl(appliancesInfo, curtainState); if (curtainState == CurtainCtrlParser.curtainOn) { curtainState = CurtainCtrlParser.curtainOff; } else { curtainState = CurtainCtrlParser.curtainOn; } } }); curtainBtn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainOn); } }); curtainBtn3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainOff); } }); curtainBtn4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainPause); } }); curtainBtn5.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { HDLCommand.curtainCtrl(appliancesInfo, 20); } }); airBtnSwitch.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //演示当前状态为关,设置为开。开,设置为关。 if (airSwitchState == 0) { HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSwich, AirCtrlParser.airOn);//空调开 } else { HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSwich, AirCtrlParser.airOff);//空调关 } } }); airBtnMode.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { switch (airModeState) { case 0: //若当前空调模式为制冷,则点击按钮设置为制热 HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeHeatTem);//空调模式制热 break; case 1: //若当前空调模式为制热,则点击按钮设置为通风 HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeVen);//空调模式通风 break; case 2: //若当前空调模式为通风,则点击按钮设置为自动 HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeAuto);//空调模式自动 break; case 3: //若当前空调模式为自动,则点击按钮设置为抽湿 HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeDehum);//空调模式抽湿 break; case 4: //若当前空调模式为抽湿,则点击按钮设置为制冷 HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeRefTem);//空调模式制冷 break; default: HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeRefTem);//空调模式制冷 break; } } }); airBtnSpeed.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { switch (airSpeedState) { case 0: //若当前空调风速为自动,则点击按钮设置为高风 HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedHigh);//风速高风 break; case 1: //若当前空调风速为高风,则点击按钮设置为中风 HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedMid);//风速中风 break; case 2: //若当前空调风速为中风,则点击按钮设置为低风 HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedLow);//风速低风 break; case 3: //若当前空调风速为低风,则点击按钮设置为自动 HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedAuto);//风速自动 break; } } }); airBtnTemp.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { switch (airModeState) { case 0: //当前空调模式为制冷 HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.refTem, Integer.parseInt(airTempEd.getText().toString()));//制冷温度 break; case 1: //当前空调模式为制热 HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.heatTem, Integer.parseInt(airTempEd.getText().toString()));//制热温度 break; case 2: //当前空调模式为通风 ToastUtil("通风模式不能控制温度"); break; case 3: //当前空调模式为自动 HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.autoTem, Integer.parseInt(airTempEd.getText().toString()));//自动温度 范围0-84 break; case 4: //当前空调模式为抽湿 HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.dehumTem, Integer.parseInt(airTempEd.getText().toString()));//抽湿温度 范围0-84 break; default: break; } // HDLCommand.airCtrl(appliancesInfo,AirCtrlParser.upTem,1);//上升温度 范围0-5 // HDLCommand.airCtrl(appliancesInfo,AirCtrlParser.downTem,1);//下降温度 范围0-5 } }); logicBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { HDLCommand.logicCtrl(appliancesInfo); } }); sensorBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { HDLCommand.getDeviceState(appliancesInfo); } }); } @Override protected void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); } @Subscribe(threadMode = ThreadMode.MAIN) public void onLightFeedBackInfoEventMain(LightFeedBackEvent event) { if (event.getLightCtrlBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID() && event.getLightCtrlBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID() && event.getLightCtrlBackInfo().getChannelNum() == appliancesInfo.getChannelNum() ) { // 先判断是否超时 if (!event.isSuccess()) { ToastUtil("灯光控制超时,请重新再试"); lightBtn.setText("灯光控制超时,请重新再试"); return; } int brightness = event.getLightCtrlBackInfo().getBrightness(); lightState = brightness == 100 ? 0 : 100;//如果返回100重置状态为0,反之重置状态100 lightBtn.setText("当前亮度 = " + brightness); lightText.setText("当前亮度 = " + brightness); /*以下为灯光推送示例代码,可以识别哪个继电器,哪个调光灯,哪个回路,也可用作控制回馈。 按需求调用*/ String remarks = event.getLightCtrlBackInfo().getRemarks();//获取返回的灯光备注。如果每个灯光回路备注都唯一,可以直接通过备注判断 String parentRemarks = event.getLightCtrlBackInfo().getParentRemarks();//获取继电器或调光灯备注。这里可以知道是哪个设备返回的 int num = event.getLightCtrlBackInfo().getChannelNum();//获取回路号。这里可以获取到这个继电器或调光灯的回路号 ToastUtil(parentRemarks + " 的 " + remarks + " 回路号:" + num + " 返回" + " 亮度为:" + brightness); } } @Subscribe(threadMode = ThreadMode.MAIN) public void onCurtainFeedBackInfoEventMain(CurtainFeedBackEvent event) { // 先判断是否超时 Log.i("djl", "onCurtainFeedBackInfoEventMain in"); if (event.getCurtainCtrlBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID() && event.getCurtainCtrlBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID() && event.getCurtainCtrlBackInfo().getNum() == appliancesInfo.getChannelNum() ) { if (!event.isSuccess()) { ToastUtil("窗帘控制超时,请重新再试"); return; } int curState = event.getCurtainCtrlBackInfo().getState(); //窗帘模块:curState:0=停止,1=打开,2=关闭。 //开合帘电机,卷帘电机:curState:1-100开合度。也会返回0,1,2的状态 //建议开合帘电机,卷帘电机按停止后再读取当前状态来获取当前状态值 String remarks = event.getCurtainCtrlBackInfo().getRemarks(); String parentRemarks = event.getCurtainCtrlBackInfo().getParentRemarks(); int num = event.getCurtainCtrlBackInfo().getNum(); // ToastUtil(parentRemarks+" 的 "+remarks+" 回路号:"+num+" 返回"+" 状态为:"+curState); Log.i("djl", parentRemarks + " 的 " + remarks + " 回路号:" + num + " 返回" + " 状态为:" + curState); if (event.getCurtainCtrlBackInfo().getAppliancesInfo().getDeviceType() == HDLApConfig.TYPE_CURTAIN_MODULE) { //判断是否为窗帘模块 switch (curState) { case CurtainCtrlParser.TYPE_STATE_CLOSE: curtainBtn.setText("窗帘关"); curText1.setText("窗帘关"); Log.i("djl", "窗帘控制 :窗帘关" + " 回路号:" + num); break; case CurtainCtrlParser.TYPE_STATE_OPEN: curtainBtn.setText("窗帘开"); curText1.setText("窗帘开"); Log.i("djl", "窗帘控制 :窗帘开" + " 回路号:" + num); break; case CurtainCtrlParser.TYPE_STATE_PAUSE: curtainBtn.setText("窗帘暂停"); curText1.setText("窗帘暂停"); Log.i("djl", "窗帘控制 :窗帘暂停" + " 回路号:" + num); break; } } else { //开合帘或卷帘 显示百分比 curtainBtn5.setText("窗帘开到" + curState + "%"); curText2.setText("窗帘开到" + curState + "%"); } } } @Subscribe(threadMode = ThreadMode.MAIN) public void onAirFeedBackInfoEventMain(AirFeedBackEvent event) { if (event.getAirCtrlBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID() && event.getAirCtrlBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID() && event.getAirCtrlBackInfo().getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum() ) { // 先判断是否超时 if (!event.isSuccess()) { ToastUtil("空调控制超时,请重新再试"); return; } byte[] curState = event.getAirCtrlBackInfo().getCurState(); switch (curState[0] & 0xFF) { case AirCtrlParser.airSwich: switch (curState[1] & 0xFF) { case AirCtrlParser.airOff: airSwitchState = 0; airText.setText("空调关"); ToastUtil("空调关"); Log.i("djl", "空调关"); break; case AirCtrlParser.airOn: airSwitchState = 1; airText.setText("空调开"); ToastUtil("空调开"); Log.i("djl", "空调开"); break; default: break; } break; case AirCtrlParser.airSpeed: switch (curState[1] & 0xFF) { case AirCtrlParser.airSpeedAuto: airSpeedState = 0; airText.setText("空调风速,风速模式为:airSpeedAuto自动风速"); ToastUtil("空调风速,风速模式为:airSpeedAuto自动风速"); Log.i("djl", "空调风速,风速模式为:airSpeedAuto自动风速"); break; case AirCtrlParser.airSpeedHigh: airSpeedState = 1; airText.setText("空调风速,风速模式为:airSpeedHigh风速高"); ToastUtil("空调风速,风速模式为:airSpeedHigh风速高"); Log.i("djl", "空调风速,风速模式为:airSpeedHigh风速高"); break; case AirCtrlParser.airSpeedMid: airSpeedState = 2; airText.setText("空调风速,风速模式为:airSpeedMid风速中"); ToastUtil("空调风速,风速模式为:airSpeedMid风速中"); Log.i("djl", "空调风速,风速模式为:airSpeedMid风速中"); break; case AirCtrlParser.airSpeedLow: airSpeedState = 3; airText.setText("空调风速,风速模式为:airSpeedLow风速低"); ToastUtil("空调风速,风速模式为:airSpeedLow风速低"); Log.i("djl", "空调风速,风速模式为:airSpeedLow风速低"); break; default: break; } break; case AirCtrlParser.airMode: switch (curState[1] & 0xFF) { case AirCtrlParser.airModeRefTem: airModeState = 0; airText.setText("空调模式,模式为:制冷"); ToastUtil("空调模式,模式为:制冷"); Log.i("djl", "空调模式,模式为:制冷"); break; case AirCtrlParser.airModeHeatTem: airModeState = 1; airText.setText("空调模式,模式为:制热"); ToastUtil("空调模式,模式为:制热"); Log.i("djl", "空调模式,模式为:制热"); break; case AirCtrlParser.airModeVen: airModeState = 2; airText.setText("空调模式,模式为:通风"); ToastUtil("空调模式,模式为:通风"); Log.i("djl", "空调模式,模式为:通风"); break; case AirCtrlParser.airModeAuto: airModeState = 3; airText.setText("空调模式,模式为:自动"); ToastUtil("空调模式,模式为:自动"); Log.i("djl", "空调模式,模式为:自动"); break; case AirCtrlParser.airModeDehum: airModeState = 4; airText.setText("空调模式,模式为:抽湿"); ToastUtil("空调模式,模式为:抽湿"); Log.i("djl", "空调模式,模式为:抽湿"); break; default: airModeState = -1; break; } break; case AirCtrlParser.refTem: airTempState = curState[1] & 0xFF; airText.setText("空调制冷,温度为:" + (curState[1] & 0xFF)); ToastUtil("空调制冷,温度为:" + (curState[1] & 0xFF)); Log.i("djl", "空调制冷,温度为:" + (curState[1] & 0xFF)); break; case AirCtrlParser.heatTem: airTempState = curState[1] & 0xFF; airText.setText("空调制热,制热温度为" + (curState[1] & 0xFF)); ToastUtil("空调制热,制热温度为" + (curState[1] & 0xFF)); Log.i("djl", "空调制热,制热温度为" + (curState[1] & 0xFF)); break; case AirCtrlParser.autoTem: airTempState = -1; airText.setText("空调自动,自动温度为" + (curState[1] & 0xFF)); ToastUtil("空调自动,自动温度为" + (curState[1] & 0xFF)); Log.i("djl", "空调自动,自动温度为" + (curState[1] & 0xFF)); break; case AirCtrlParser.dehumTem: airTempState = curState[1] & 0xFF; airText.setText("空调抽湿,抽湿温度为" + (curState[1] & 0xFF)); ToastUtil("空调抽湿,抽湿温度为" + (curState[1] & 0xFF)); Log.i("djl", "空调抽湿,抽湿温度为" + (curState[1] & 0xFF)); break; case AirCtrlParser.upTem: airTempState = curState[1] & 0xFF; airText.setText("空调调温,上升温度:" + (curState[1] & 0xFF)); ToastUtil("空调调温,上升温度:" + (curState[1] & 0xFF)); Log.i("djl", "空调调温,上升温度:" + (curState[1] & 0xFF)); break; case AirCtrlParser.downTem: airTempState = curState[1] & 0xFF; airText.setText("空调调温,下降温度:" + (curState[1] & 0xFF)); ToastUtil("空调调温,下降温度:" + (curState[1] & 0xFF)); Log.i("djl", "空调调温,下降温度:" + (curState[1] & 0xFF)); break; } } } @Subscribe(threadMode = ThreadMode.MAIN) public void onLogicFeedBackInfoEventMain(LogicFeedBackEvent event) { // 先判断是否超时 if (event.getLogicCtrlBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID() && event.getLogicCtrlBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID() && event.getLogicCtrlBackInfo().getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum() ) { if (!event.isSuccess()) { ToastUtil("场景控制超时,请重新再试"); return; } ToastUtil("场景控制成功"); } } @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_LIGHT_DIMMER: case HDLApConfig.TYPE_LIGHT_RELAY: case HDLApConfig.TYPE_LIGHT_MIX_DIMMER: case HDLApConfig.TYPE_LIGHT_MIX_RELAY: if (appliancesInfo.getChannelNum() == event.getAppliancesInfo().getChannelNum()) { if (!event.isSuccess()) { ToastUtil("获取灯光状态失败,请重新再试"); return; } lightBtn.setText("亮度 = " + event.getAppliancesInfo().getCurState()); } break; case HDLApConfig.TYPE_CURTAIN_GLYSTRO: case HDLApConfig.TYPE_CURTAIN_ROLLER: case HDLApConfig.TYPE_CURTAIN_MODULE: if (appliancesInfo.getChannelNum() == event.getAppliancesInfo().getChannelNum()) { if (!event.isSuccess()) { ToastUtil("获取窗帘状态失败,请重新再试"); return; } //窗帘模块:curState:0=停止,1=打开,2=关闭。 //开合帘电机,卷帘电机:curState:1-100开合度。 int curState = (int) event.getAppliancesInfo().getCurState(); if (event.getAppliancesInfo().getDeviceType() == HDLApConfig.TYPE_CURTAIN_MODULE) {//判断是否为窗帘模块,否则为开合帘或卷帘电机 switch (curState) { case CurtainCtrlParser.curtainOff: curtainBtn.setText("窗帘关"); curText1.setText("窗帘关"); break; case CurtainCtrlParser.curtainOn: curtainBtn.setText("窗帘开"); curText1.setText("窗帘开"); break; case CurtainCtrlParser.curtainPause: curtainBtn.setText("窗帘暂停"); curText1.setText("窗帘暂停"); break; } } else { curtainBtn5.setText("窗帘开到" + curState + "%"); } } break; case HDLApConfig.TYPE_AC_HVAC: case HDLApConfig.TYPE_AC_PANEL: if (appliancesInfo.getChannelNum() == event.getAppliancesInfo().getChannelNum()) { if (!event.isSuccess()) { ToastUtil("获取空调状态失败,请重新再试"); return; } byte[] curState = event.getAppliancesInfo().getArrCurState(); switch (curState[0] & 0xFF) { case AirCtrlParser.airSwich: switch (curState[1] & 0xFF) { case AirCtrlParser.airOff: airSwitchState = 0; airText.setText("空调关"); ToastUtil("空调关"); Log.i("djl", "空调关"); break; case AirCtrlParser.airOn: airSwitchState = 1; airText.setText("空调开"); ToastUtil("空调开"); Log.i("djl", "空调开"); break; default: break; } break; case AirCtrlParser.airSpeed: switch (curState[1] & 0xFF) { case AirCtrlParser.airSpeedAuto: airSpeedState = 0; airText.setText("空调风速,风速模式为:airSpeedAuto自动风速"); ToastUtil("空调风速,风速模式为:airSpeedAuto自动风速"); Log.i("djl", "空调风速,风速模式为:airSpeedAuto自动风速"); break; case AirCtrlParser.airSpeedHigh: airSpeedState = 1; airText.setText("空调风速,风速模式为:airSpeedHigh风速高"); ToastUtil("空调风速,风速模式为:airSpeedHigh风速高"); Log.i("djl", "空调风速,风速模式为:airSpeedHigh风速高"); break; case AirCtrlParser.airSpeedMid: airSpeedState = 2; airText.setText("空调风速,风速模式为:airSpeedMid风速中"); ToastUtil("空调风速,风速模式为:airSpeedMid风速中"); Log.i("djl", "空调风速,风速模式为:airSpeedMid风速中"); break; case AirCtrlParser.airSpeedLow: airSpeedState = 3; airText.setText("空调风速,风速模式为:airSpeedLow风速低"); ToastUtil("空调风速,风速模式为:airSpeedLow风速低"); Log.i("djl", "空调风速,风速模式为:airSpeedLow风速低"); break; default: break; } break; case AirCtrlParser.airMode: switch (curState[1] & 0xFF) { case AirCtrlParser.airModeRefTem: airModeState = 0; airText.setText("空调模式,模式为:制冷"); ToastUtil("空调模式,模式为:制冷"); Log.i("djl", "空调模式,模式为:制冷"); break; case AirCtrlParser.airModeHeatTem: airModeState = 1; airText.setText("空调模式,模式为:制热"); ToastUtil("空调模式,模式为:制热"); Log.i("djl", "空调模式,模式为:制热"); break; case AirCtrlParser.airModeVen: airModeState = 2; airText.setText("空调模式,模式为:通风"); ToastUtil("空调模式,模式为:通风"); Log.i("djl", "空调模式,模式为:通风"); break; case AirCtrlParser.airModeAuto: airModeState = 3; airText.setText("空调模式,模式为:自动"); ToastUtil("空调模式,模式为:自动"); Log.i("djl", "空调模式,模式为:自动"); break; case AirCtrlParser.airModeDehum: airModeState = 4; airText.setText("空调模式,模式为:抽湿"); ToastUtil("空调模式,模式为:抽湿"); Log.i("djl", "空调模式,模式为:抽湿"); break; default: break; } break; case AirCtrlParser.refTem: airTempState = curState[1] & 0xFF; airText.setText("空调制冷,温度为:" + (curState[1] & 0xFF)); ToastUtil("空调制冷,温度为:" + (curState[1] & 0xFF)); Log.i("djl", "空调制冷,温度为:" + (curState[1] & 0xFF)); break; case AirCtrlParser.heatTem: airTempState = curState[1] & 0xFF; airText.setText("空调制热,制热温度为" + (curState[1] & 0xFF)); ToastUtil("空调制热,制热温度为" + (curState[1] & 0xFF)); Log.i("djl", "空调制热,制热温度为" + (curState[1] & 0xFF)); break; case AirCtrlParser.autoTem: airTempState = curState[1] & 0xFF; airText.setText("空调自动,自动温度为" + (curState[1] & 0xFF)); ToastUtil("空调自动,自动温度为" + (curState[1] & 0xFF)); Log.i("djl", "空调自动,自动温度为" + (curState[1] & 0xFF)); break; case AirCtrlParser.dehumTem: airTempState = curState[1] & 0xFF; airText.setText("空调抽湿,抽湿温度为" + (curState[1] & 0xFF)); ToastUtil("空调抽湿,抽湿温度为" + (curState[1] & 0xFF)); Log.i("djl", "空调抽湿,抽湿温度为" + (curState[1] & 0xFF)); break; case AirCtrlParser.upTem: airTempState = curState[1] & 0xFF; airText.setText("空调调温,上升温度:" + (curState[1] & 0xFF)); ToastUtil("空调调温,上升温度:" + (curState[1] & 0xFF)); Log.i("djl", "空调调温,上升温度:" + (curState[1] & 0xFF)); break; case AirCtrlParser.downTem: airTempState = curState[1] & 0xFF; airText.setText("空调调温,下降温度:" + (curState[1] & 0xFF)); ToastUtil("空调调温,下降温度:" + (curState[1] & 0xFF)); Log.i("djl", "空调调温,下降温度:" + (curState[1] & 0xFF)); break; } } break; case HDLApConfig.TYPE_SENSOR_DRY_CONTACT: //传感器 干接点 。只有开关状态 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---干接点状态失败,请重新再试"); return; } float dryContactValue = (float) event.getAppliancesInfo().getCurState(); String dryContactUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---干接点状态:" + dryContactValue + dryContactUnit); Log.i("djl", "传感器---干接点状态:" + dryContactValue + dryContactUnit); break; case HDLApConfig.TYPE_SENSOR_MOVEMENT_DETECTOR: //传感器 移动探测 。灵敏度 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---移动探测灵敏度状态失败,请重新再试"); return; } float mdValue = (float) event.getAppliancesInfo().getCurState(); String mdValueUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---移动探测灵敏度:" + mdValue + mdValueUnit); Log.i("djl", "传感器---移动探测灵敏度:" + mdValue + mdValueUnit); break; case HDLApConfig.TYPE_SENSOR_TEMP: //传感器 温度 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---温度状态失败,请重新再试"); return; } float tempValue = (float) event.getAppliancesInfo().getCurState(); String tempValueUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---温度:" + tempValue + tempValueUnit); Log.i("djl", "传感器---温度:" + tempValue + tempValueUnit); break; case HDLApConfig.TYPE_SENSOR_HUMIDITY: //传感器 湿度 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---湿度状态失败,请重新再试"); return; } float humidityValue = (float) event.getAppliancesInfo().getCurState(); String humidityValueUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---湿度:" + humidityValue + humidityValueUnit); Log.i("djl", "传感器---湿度:" + humidityValue + humidityValueUnit); break; case HDLApConfig.TYPE_SENSOR_ILLUMINACE: //传感器 照度 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---照度状态失败,请重新再试"); return; } float illuminaceValue = (float) event.getAppliancesInfo().getCurState(); String illuminaceValueUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---照度:" + illuminaceValue + illuminaceValueUnit); Log.i("djl", "传感器---照度:" + illuminaceValue + illuminaceValueUnit); break; case HDLApConfig.TYPE_SENSOR_VOC: //传感器 当前空气质量等级 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---当前空气质量等级状态失败,请重新再试"); return; } float vocValue = (float) event.getAppliancesInfo().getCurState(); String vocValueUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---当前空气质量等级:" + vocValue + vocValueUnit); Log.i("djl", "传感器---当前空气质量等级:" + vocValue + vocValueUnit); break; case HDLApConfig.TYPE_SENSOR_PM_2_POINT_5: //传感器 pm2.5 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---pm2.5状态失败,请重新再试"); return; } float pm2_5Value = (float) event.getAppliancesInfo().getCurState(); String pm2_5ValueUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---pm2.5:" + pm2_5Value + pm2_5ValueUnit); Log.i("djl", "传感器---pm2.5:" + pm2_5Value + pm2_5ValueUnit); break; case HDLApConfig.TYPE_SENSOR_C02: //传感器 二氧化碳 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---二氧化碳状态失败,请重新再试"); return; } float co2Value = (float) event.getAppliancesInfo().getCurState(); String co2ValueUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---二氧化碳:" + co2Value + co2ValueUnit); Log.i("djl", "传感器---二氧化碳:" + co2Value + co2ValueUnit); break; case HDLApConfig.TYPE_SENSOR_LPG: //传感器 液化石油气 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---液化石油气状态失败,请重新再试"); return; } float lpgValue = (float) event.getAppliancesInfo().getCurState(); String lpgValueUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---液化石油气:" + lpgValue + lpgValueUnit); Log.i("djl", "传感器---液化石油气:" + lpgValue + lpgValueUnit); break; case HDLApConfig.TYPE_SENSOR_CO_H2: //传感器 人工煤气 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---人工煤气状态失败,请重新再试"); return; } float coh2Value = (float) event.getAppliancesInfo().getCurState(); String coh2ValueUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---人工煤气:" + coh2Value + coh2ValueUnit); Log.i("djl", "传感器---人工煤气:" + coh2Value + coh2ValueUnit); break; case HDLApConfig.TYPE_SENSOR_CH4: //传感器 天然气 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---天然气状态失败,请重新再试"); return; } float ch4Value = (float) event.getAppliancesInfo().getCurState(); String ch4ValueUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---天然气:" + ch4Value + ch4ValueUnit); Log.i("djl", "传感器---天然气:" + ch4Value + ch4ValueUnit); break; case HDLApConfig.TYPE_SENSOR_SMOG: //传感器 烟雾 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---烟雾状态失败,请重新再试"); return; } float smogValue = (float) event.getAppliancesInfo().getCurState(); String smogValueUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---烟雾:" + smogValue + smogValueUnit); Log.i("djl", "传感器---烟雾:" + smogValue + smogValueUnit); break; case HDLApConfig.TYPE_SENSOR_WIND_SPEED: //传感器 风速 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---风速状态失败,请重新再试"); return; } float windSpeedValue = (float) event.getAppliancesInfo().getCurState(); String windSpeedValueUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---风速:" + windSpeedValue + windSpeedValueUnit); Log.i("djl", "传感器---风速:" + windSpeedValue + windSpeedValueUnit); break; case HDLApConfig.TYPE_SENSOR_WIND_PRESSURE: //传感器 风压 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---风压状态失败,请重新再试"); return; } float windPressureValue = (float) event.getAppliancesInfo().getCurState(); String windPressureValueUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---风压:" + windPressureValue + windPressureValueUnit); Log.i("djl", "传感器---风压:" + windPressureValue + windPressureValueUnit); break; case HDLApConfig.TYPE_SENSOR_LIQUID_FLOW: //传感器 液体流量 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---液体流量状态失败,请重新再试"); return; } float liquidFlowValue = (float) event.getAppliancesInfo().getCurState(); String liquidFlowValueUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---液体流量:" + liquidFlowValue + liquidFlowValueUnit); Log.i("djl", "传感器---液体流量:" + liquidFlowValue + liquidFlowValueUnit); break; case HDLApConfig.TYPE_SENSOR_LIQUID_PRESSURE: //传感器 液体压力 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---液体压力状态失败,请重新再试"); return; } float liquidPressureValue = (float) event.getAppliancesInfo().getCurState(); String liquidPressureValueUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---液体压力:" + liquidPressureValue + liquidPressureValueUnit); Log.i("djl", "传感器---液体压力:" + liquidPressureValue + liquidPressureValueUnit); break; case HDLApConfig.TYPE_SENSOR_LIQUID_DEPTH: //传感器 液体深度 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---液体深度状态失败,请重新再试"); return; } float liquidDepthValue = (float) event.getAppliancesInfo().getCurState(); String liquidDepthValueUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---液体深度:" + liquidDepthValue + liquidDepthValueUnit); Log.i("djl", "传感器---液体深度:" + liquidDepthValue + liquidDepthValueUnit); break; case HDLApConfig.TYPE_SENSOR_RAIN_FALL: //传感器 雨量 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---雨量状态失败,请重新再试"); return; } float rainFallValue = (float) event.getAppliancesInfo().getCurState(); String rainFallValueUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---雨量:" + rainFallValue + rainFallValueUnit); Log.i("djl", "传感器---雨量:" + rainFallValue + rainFallValueUnit); break; case HDLApConfig.TYPE_SENSOR_WEIGHT: //传感器 重量 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---重量状态失败,请重新再试"); return; } float weightValue = (float) event.getAppliancesInfo().getCurState(); String weightValueUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---重量:" + weightValue + weightValueUnit); Log.i("djl", "传感器---重量:" + weightValue + weightValueUnit); break; case HDLApConfig.TYPE_SENSOR_HEIGHT_LENGTH: //传感器 重量 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---重量状态失败,请重新再试"); return; } float height_lengthValue = (float) event.getAppliancesInfo().getCurState(); String height_lengthValueUnit = ((SensorStateBackInfo) event).getUnite(); ToastUtil("传感器---重量:" + height_lengthValue + height_lengthValueUnit); Log.i("djl", "传感器---重量:" + height_lengthValue + height_lengthValueUnit); break; case HDLApConfig.TYPE_SENSOR_OBJECT_SPEED: //传感器 物体速度 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---物体速度状态失败,请重新再试"); return; } float objectSpeedValue = (float) event.getAppliancesInfo().getCurState(); String objectSpeedUnite = ((SensorStateBackInfo) event).getUnite();//数值单位 ToastUtil("传感器---物体速度:" + objectSpeedValue + objectSpeedUnite); Log.i("djl", "传感器---物体速度:" + objectSpeedValue + objectSpeedUnite); break; case HDLApConfig.TYPE_SENSOR_SHAKE: //传感器 震动 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---震动状态失败,请重新再试"); return; } float shakeValue = (float) event.getAppliancesInfo().getCurState(); String shakeValueUnite = ((SensorStateBackInfo) event).getUnite();//数值单位 ToastUtil("传感器---震动:" + shakeValue + shakeValueUnite); Log.i("djl", "传感器---震动:" + shakeValue + shakeValueUnite); break; case HDLApConfig.TYPE_SENSOR_VOLTAGE: //传感器 电压 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---电压状态失败,请重新再试"); return; } float voltageValue = (float) event.getAppliancesInfo().getCurState(); String voltageValueUnite = ((SensorStateBackInfo) event).getUnite();//数值单位 ToastUtil("传感器---电压:" + voltageValue + voltageValueUnite); Log.i("djl", "传感器---电压:" + voltageValue + voltageValueUnite); break; case HDLApConfig.TYPE_SENSOR_ELECTRICITY: //传感器 电流 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---电流状态失败,请重新再试"); return; } float electricityValue = (float) event.getAppliancesInfo().getCurState(); String electricityValueUnite = ((SensorStateBackInfo) event).getUnite();//数值单位 ToastUtil("传感器---电流:" + electricityValue + electricityValueUnite); Log.i("djl", "传感器---电流:" + electricityValue + electricityValueUnite); break; case HDLApConfig.TYPE_SENSOR_POWER: //传感器 功率 if (appliancesInfo.getChannelNum() != event.getAppliancesInfo().getChannelNum() || !event.isSuccess()) { ToastUtil("获取传感器---功率状态失败,请重新再试"); return; } float powerValue = (float) event.getAppliancesInfo().getCurState(); String powerValueUnite = ((SensorStateBackInfo) event).getUnite();//数值单位 ToastUtil("传感器---功率:" + powerValue + powerValueUnite); Log.i("djl", "传感器---功率:" + powerValue + powerValueUnite); break; } } } public void ToastUtil(String text) { Toast.makeText(CtrlActivity.this, text, Toast.LENGTH_SHORT).show(); } }