预置条件:遥控器控制CCT灯
操作步骤:变化色温显示
预期结果:APP上色温条会同步显示变化
实际结果:APP上色温条无反应
一看到这个bug就知道是数据问题,首先我找了个遥控器跟灯,试了一下,发现亮度是会有同步,而色温却没有同步。
解决思路:1先找到对应页面 2断点查看下为什么没有值
找到了DeviceCtrlFragment页面 发现色温条 tempSeekbar取的是
getAct().selectedDevice.getTemperature()
就去取看setTemperature的值 发现只有一个地方调用
而setBrightness却有两个地方调用
for (OnlineStatusNotificationParser.DeviceNotificationInfo notificationInfo : notificationInfoList) {
Log.e("weichongbin1"," brightness = "+notificationInfo.brightness+" connectionStatus = "+notificationInfo.connectionStatus+" meshAddress = "+notificationInfo.meshAddress+" reserve = "+notificationInfo.reserve+" status = "+notificationInfo.status);
int meshAddress = notificationInfo.meshAddress;
int brightness = notificationInfo.brightness;
int temperature = notificationInfo.reserve;
Device device = DeviceMange.getInstance().getDeviceByMesh(meshAddress);
if (device != null) {
device.setMeshAddress(meshAddress);
if (notificationInfo.connectionStatus != ConnectionStatus.OFF) {
device.setBrightness(brightness);
device.setTemperature(temperature);
Log.e("weichongbin1","设备上报状态设置");
}
device.setConnectionStatus(notificationInfo.connectionStatus);
CtrlDeviceHandler.handler.removeMessages(meshAddress);
}
}
发现这边原来设备上报状态的时候,只保存了亮度没保存色温 添加后验证 就没问题了