panlili2024
2024-09-19 071a8328823a2861f93ce556a4da3e4119cab1a3
app/src/main/java/com/hdl/sdk/ttl_sdk/activity/CtrlActivity.java
@@ -8,6 +8,7 @@
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.hdl.sdk.ttl.HDLAppliances.Config.HDLApConfig;
import com.hdl.sdk.ttl.HDLAppliances.HDLAirCondition.Parser.AirCtrlParser;
import com.hdl.sdk.ttl.HDLAppliances.HDLCurtain.Parser.CurtainCtrlParser;
@@ -27,10 +28,13 @@
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.List;
public class CtrlActivity extends BaseActivity {
    /**Topbar*/
    /**
     * Topbar
     */
    private RelativeLayout topBarBack;
    private TextView topBarTitle;
    private Button lightBtn, curtainBtn, curtainBtn2, curtainBtn3, curtainBtn4, curtainBtn5,
@@ -48,11 +52,9 @@
    private int airSpeedState;
    /**
     * 要注册使用EventBus,这里必须要设置返回true
     *
     * @return true
     */
    @Override
@@ -146,7 +148,7 @@
                if (appliancesInfo.getCurState() != null) {
                    int curLightState =  HDLUtlis.getIntegerByObject(appliancesInfo.getCurState());
                    int curLightState = HDLUtlis.getIntegerByObject(appliancesInfo.getCurState());
                    lightText.setText("当前灯光亮度:" + curLightState);
                    lightBtn.setText("当前灯光亮度:" + curLightState);
@@ -165,6 +167,7 @@
            case HDLApConfig.TYPE_CURTAIN_GLYSTRO:
            case HDLApConfig.TYPE_CURTAIN_ROLLER:
            case HDLApConfig.TYPE_CURTAIN_MODULE:
            case HDLApConfig.TYPE_CURTAIN_SHANGRILA:
                lightBtn.setVisibility(View.GONE);
                logicBtn.setVisibility(View.GONE);
                airDisplay.setVisibility(View.GONE);
@@ -183,7 +186,7 @@
                    if (appliancesInfo.getCurState() != null) {
                        String stringCurtainState = "";
                        int curCurtainState =  HDLUtlis.getIntegerByObject(appliancesInfo.getCurState());
                        int curCurtainState = HDLUtlis.getIntegerByObject(appliancesInfo.getCurState());
                        HDLLog.Log("curCurtainState = " + curCurtainState);
                        switch (curCurtainState) {
                            case CurtainCtrlParser.TYPE_STATE_PAUSE:
@@ -227,6 +230,7 @@
            case HDLApConfig.TYPE_AC_HVAC:
            case HDLApConfig.TYPE_AC_PANEL:
            case HDLApConfig.TYPE_AC_TECHSYS:
            case HDLApConfig.TYPE_AC_KNXTECHSYS:
                lightBtn.setVisibility(View.GONE);
                curtainBtn.setVisibility(View.GONE);
                curtainBtn2.setVisibility(View.GONE);
@@ -417,6 +421,7 @@
            case HDLApConfig.TYPE_SENSOR_FLOODING:
            case HDLApConfig.TYPE_SENSOR_DOOR_MAGNET:
            case HDLApConfig.TYPE_SENSOR_EMERGENCY_BUTTON:
            case HDLApConfig.TYPE_SENSOR_PM_10:
                lightBtn.setVisibility(View.GONE);
                curtainBtn.setVisibility(View.GONE);
                curtainBtn2.setVisibility(View.GONE);
@@ -482,36 +487,18 @@
                        }
                        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:
                    case HDLApConfig.TYPE_CURTAIN_SHANGRILA:
                        //判断是哪个回路的设备
                        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;
                    case HDLApConfig.TYPE_AC_TECHSYS:
                    case HDLApConfig.TYPE_AC_KNXTECHSYS:
                        //判断是哪个回路的设备
                        if (deviceStateBean.getChannelNum() == appliancesInfo.getChannelNum()) {
                            appliancesInfo.setArrCurState(deviceStateBean.getArrCurState());
@@ -539,7 +526,7 @@
            @Override
            public void onClick(View view) {
                //窗帘模块第二个参数 为CurtainCtrlParser.curtainOn,CurtainCtrlParser.curtainOff,CurtainCtrlParser.curtainPause其中一个
                HDLCommand.curtainCtrl(appliancesInfo, curtainState);
                HDLCommand.curtainCtrl(appliancesInfo, curtainState, 0);
                if (curtainState == CurtainCtrlParser.curtainOn) {
                    curtainState = CurtainCtrlParser.curtainOff;
                } else {
@@ -552,28 +539,28 @@
        curtainBtn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainOn);
                HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainOn, 0);
            }
        });
        curtainBtn3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainOff);
                HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainOff, 0);
            }
        });
        curtainBtn4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainPause);
                HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainPause, 0);
            }
        });
        curtainBtn5.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                HDLCommand.curtainCtrl(appliancesInfo, 50);
                HDLCommand.curtainCtrl(appliancesInfo, 50, 0);
            }
        });
@@ -713,6 +700,7 @@
    /**
     * 灯光控制回调Event
     *
     * @param event
     */
    @Subscribe(threadMode = ThreadMode.MAIN)
@@ -737,13 +725,14 @@
            String remarks = event.getLightCtrlBackInfo().getRemarks();//获取返回的灯光备注。如果每个灯光回路备注都唯一,可以直接通过备注判断
            String parentRemarks = event.getLightCtrlBackInfo().getParentRemarks();//获取继电器或调光灯备注。这里可以知道是哪个设备返回的
            int num = event.getLightCtrlBackInfo().getChannelNum();//获取回路号。这里可以获取到这个继电器或调光灯的回路号
            showToast("模块:"+ parentRemarks + " 的 " + remarks + " 回路,回路号为:" + num + " 返回" + " 亮度为:" + brightness);
            showToast(remarks + " 回路,回路号为:" + num + " 返回" + " 亮度为:" + brightness);
            HDLLog.Log("当前亮度 = " + brightness);
        }
    }
    /**
     * 窗帘模块控制回调Event
     *
     * @param event
     */
    @Subscribe(threadMode = ThreadMode.MAIN)
@@ -801,6 +790,7 @@
    /**
     * 空调模块控制回调Event
     *
     * @param event
     */
    @Subscribe(threadMode = ThreadMode.MAIN)
@@ -947,6 +937,7 @@
    /**
     * 逻辑模块控制回调Event
     *
     * @param event
     */
    @Subscribe(threadMode = ThreadMode.MAIN)
@@ -966,6 +957,7 @@
    /**
     * 获取单一设备状态回调Event
     *
     * @param event
     */
    @Subscribe(threadMode = ThreadMode.MAIN)
@@ -990,6 +982,7 @@
                case HDLApConfig.TYPE_CURTAIN_GLYSTRO:
                case HDLApConfig.TYPE_CURTAIN_ROLLER:
                case HDLApConfig.TYPE_CURTAIN_MODULE:
                case HDLApConfig.TYPE_CURTAIN_SHANGRILA:
                    if (appliancesInfo.getChannelNum() == event.getAppliancesInfo().getChannelNum()) {
                        if (!event.isSuccess()) {
                            showToast("获取窗帘状态失败,请重新再试");
@@ -1021,6 +1014,7 @@
                case HDLApConfig.TYPE_AC_HVAC:
                case HDLApConfig.TYPE_AC_PANEL:
                case HDLApConfig.TYPE_AC_TECHSYS:
                case HDLApConfig.TYPE_AC_KNXTECHSYS:
                    if (appliancesInfo.getChannelNum() == event.getAppliancesInfo().getChannelNum()) {
                        if (!event.isSuccess()) {
                            showToast("获取空调状态失败,请重新再试");
@@ -1462,12 +1456,21 @@
                    showToast("传感器---紧急按钮:" + emergencyButtonValue + emergencyButtonUnite);
                    HDLLog.Log("传感器---紧急按钮:" + emergencyButtonValue + emergencyButtonUnite);
                    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();
                    showToast("传感器---pm10:" + pm10Value + pm10ValueUnit);
                    HDLLog.Log("传感器---pm10:" + pm10Value + pm10ValueUnit);
                    break;
            }
        }
    }
}