package com.hdl.sdk.ttl_sdk.activity; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.RelativeLayout; import android.widget.TextView; import com.hdl.sdk.ttl.HDLAppliances.Config.HDLApConfig; import com.hdl.sdk.ttl.HDLDeviceManger.Bean.AppliancesInfo; import com.hdl.sdk.ttl.HDLDeviceManger.Core.HDLCommand; import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.DeviceStateEvent; import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.LightFeedBackEvent; 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; /** * Created by JLChen on 2019/7/4 * 调光模å—ï¼Œç»§ç”µå™¨æ¨¡å—æŽ§åˆ¶é¡µé¢ */ public class CtrlLightActivity extends BaseActivity { /** * Topbar */ private RelativeLayout topBarBack; private TextView topBarTitle; private Button lightBtn, brightnessBtn; private EditText brightnessEt; private TextView lightText; private AppliancesInfo appliancesInfo; private int lightState; /** * å¤å†™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_light); initToolbar(); initView(); initOnClick(); initcurState(); displayStateView(); // //从SDKæœ¬åœ°èŽ·å– // HDLCommand.getDeviceStateFromLocal(appliancesInfo); //从网络上查询刷新一次设备状æ€ï¼Œå¾…调试 HDLCommand.getLightDeviceStateFromNetwork(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(); topBarTitle.setText(titleStr); } private void initView() { lightBtn = findViewById(R.id.ctrlbtn); lightText = findViewById(R.id.lightText); brightnessBtn = findViewById(R.id.ctrl_brightness); brightnessEt = findViewById(R.id.et_brightness); } private void initOnClick() { lightBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { HDLCommand.lightCtrl(appliancesInfo, lightState); HDLLog.Log("lightBtn: 开关ç¯" + lightState); } }); brightnessBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String brightnessStr = brightnessEt.getText().toString(); if (TextUtils.isEmpty(brightnessStr)) { showToast("设置的亮度ä¸èƒ½ä¸ºç©º"); return; } HDLCommand.lightCtrl(appliancesInfo, Integer.parseInt(brightnessStr)); HDLLog.Log("brightnessBtn: 设置亮度" + brightnessStr); } }); } private void displayStateView() { 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: if (appliancesInfo.getCurState() != null) { int curLightState = HDLUtlis.getIntegerByObject(appliancesInfo.getCurState()); lightText.setText("当å‰ç¯å…‰äº®åº¦ï¼š" + curLightState); if (curLightState == 0) { lightState = 100; lightBtn.setText("å¼€ç¯"); } else { lightState = 0; lightBtn.setText("å…³ç¯"); } } else { lightText.setText("未获å–到ç¯å…‰äº®åº¦"); lightBtn.setText("未获å–到ç¯å…‰äº®åº¦"); } break; default: finish();//设备类型ä¸å¯¹ç»“æŸé¡µé¢ break; } /**æ ¹æ®éœ€æ±‚是å¦å‘é€ä¸€æ¬¡èŽ·å–刷新状æ€è¯·æ±‚*/ } /** * ç¯å…‰æŽ§åˆ¶å›žè°ƒEvent * * @param event */ @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() && event.getLightCtrlBackInfo().getPhysicsChannelNum() == appliancesInfo.getPhysicsChannelNum() ) { // å…ˆåˆ¤æ–æ˜¯å¦è¶…æ—¶ if (!event.isSuccess()) { showToast("ç¯å…‰æŽ§åˆ¶è¶…æ—¶ï¼Œè¯·é‡æ–°å†è¯•"); lightBtn.setText("ç¯å…‰æŽ§åˆ¶è¶…æ—¶ï¼Œè¯·é‡æ–°å†è¯•"); return; } int brightness = event.getLightCtrlBackInfo().getBrightness(); lightText.setText("当å‰äº®åº¦ = " + brightness); if (brightness == 0) { lightState = 100; lightBtn.setText("å¼€ç¯"); } else { lightState = 0; lightBtn.setText("å…³ç¯"); } /*以下为ç¯å…‰æŽ¨é€ç¤ºä¾‹ä»£ç ,å¯ä»¥è¯†åˆ«å“ªä¸ªç»§ç”µå™¨ï¼Œå“ªä¸ªè°ƒå…‰ç¯ï¼Œå“ªä¸ªå›žè·¯ï¼Œä¹Ÿå¯ç”¨ä½œæŽ§åˆ¶å›žé¦ˆã€‚ 按需求调用*/ String remarks = event.getLightCtrlBackInfo().getRemarks();//获å–返回的ç¯å…‰å¤‡æ³¨ã€‚如果æ¯ä¸ªç¯å…‰å›žè·¯å¤‡æ³¨éƒ½å”¯ä¸€ï¼Œå¯ä»¥ç›´æŽ¥é€šè¿‡å¤‡æ³¨åˆ¤æ– String parentRemarks = event.getLightCtrlBackInfo().getParentRemarks();//获å–继电器或调光ç¯å¤‡æ³¨ã€‚这里å¯ä»¥çŸ¥é“是哪个设备返回的 int num = event.getLightCtrlBackInfo().getChannelNum();//获å–回路å·ã€‚这里å¯ä»¥èŽ·å–到这个继电器或调光ç¯çš„å›žè·¯å· showToast(remarks + " 回路,回路å·ä¸ºï¼š" + num + " 返回" + " 亮度为:" + brightness); HDLLog.Log("当å‰äº®åº¦ = " + brightness); } } /** * 获å–å•一设备状æ€å›žè°ƒ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_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()) { showToast("获å–ç¯å…‰çжæ€å¤±è´¥ï¼Œè¯·é‡æ–°å†è¯•"); return; } int brightness = HDLUtlis.getIntegerByObject(event.getAppliancesInfo().getCurState()); if (brightness == 0) { lightState = 100; lightBtn.setText("å¼€ç¯"); } else { lightState = 0; lightBtn.setText("å…³ç¯"); } lightText.setText("当å‰äº®åº¦ = " + brightness); showToast("获å–状æ€è¿”回:亮度 = " + brightness); } break; default: //ä¸å¤„ç† break; } } } }