wxr
2021-09-01 4c0b2ce14b299b3409dfee230a052979c2844de4
HDL_ON/DAL/DriverLayer/Packet.cs
@@ -97,7 +97,8 @@
                {
                    ddd += bb + ",";
                }
                MainPage.Log(((int)command) + " : " + ddd);
                MainPage.Log($"bus命令:" + ((int)command).ToString("X").PadLeft(4, '0') + " : 数据:" + ddd);
                //MainPage.Log($"bus命令:"+ ((int)command) + " : 数据:" + ddd);
#endif
                //处理是否要重发数据
                ManagerReceive(subnetID, deviceID, command, usefulBytes);
@@ -179,7 +180,7 @@
                                    light.trait_on_off.curValue = receiveBytes[light.bus.LoopId] == 0 ? "off" : "on";
                                    if (light.trait_on_off.curValue.ToString() == "on")
                                    {
                                        light.SetAttrState(FunctionAttributeKey.Brightness, receiveBytes[2].ToString());
                                        light.SetAttrState(FunctionAttributeKey.Brightness, receiveBytes[i+1].ToString());
                                        light.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[2] + "%";
                                    }
                                    HomePage.UpdataFunctionStates(light);
@@ -227,25 +228,40 @@
                        break;
                    case Command.SetLogicLoopColorACK:
                    case Command.ReadLogicLoopColorACK:
                        foreach (var rgb in FunctionList.List.GetLightList())
                        foreach (var lightTeme in FunctionList.List.GetLightList())
                        {
                            if (rgb.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0])
                            if (lightTeme.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0])
                            {
                                if (rgb.spk == SPK.LightRGB)
                                if (lightTeme.spk == SPK.LightRGB)
                                {
                                    rgb.trait_on_off.curValue = receiveBytes[1] > 0 ? "on" : "off";
                                    lightTeme.trait_on_off.curValue = receiveBytes[1] > 0 ? "on" : "off";
                                    if (receiveBytes[1] > 0)
                                    {
                                        rgb.SetAttrState(FunctionAttributeKey.Brightness, receiveBytes[1].ToString());
                                        rgb.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[1] + "%";
                                        lightTeme.SetAttrState(FunctionAttributeKey.Brightness, receiveBytes[1].ToString());
                                        lightTeme.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[1] + "%";
                                    }
                                    new Light().SetRGBcolor(new byte[] { receiveBytes[6], receiveBytes[7], receiveBytes[8] }, rgb);
                                    new Light().SetRGBcolor(new byte[] { receiveBytes[6], receiveBytes[7], receiveBytes[8] }, lightTeme);
                                    HomePage.UpdataFunctionStates(rgb);
                                    RoomPage.UpdataStates(rgb);
                                    FunctionPage.UpdataStates(rgb);
                                    ClassificationPage.UpdataInfo(rgb);
                                    RGBPage.UpdataStates(rgb);
                                    HomePage.UpdataFunctionStates(lightTeme);
                                    RoomPage.UpdataStates(lightTeme);
                                    FunctionPage.UpdataStates(lightTeme);
                                    ClassificationPage.UpdataInfo(lightTeme);
                                    RGBPage.UpdataStates(lightTeme);
                                }else if(lightTeme.spk == SPK.LightCCT)
                                {
                                    lightTeme.trait_on_off.curValue = receiveBytes[1] > 0 ? "on" : "off";
                                    if (receiveBytes[1] > 0)
                                    {
                                        lightTeme.SetAttrState(FunctionAttributeKey.Brightness, receiveBytes[1].ToString());
                                        lightTeme.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[1] + "%";
                                    }
                                    new Light().SetCCT(new byte[] { receiveBytes[6], receiveBytes[7] }, lightTeme);
                                    HomePage.UpdataFunctionStates(lightTeme);
                                    RoomPage.UpdataStates(lightTeme);
                                    FunctionPage.UpdataStates(lightTeme);
                                    ClassificationPage.UpdataInfo(lightTeme);
                                    ColorTureLampPage.UpdataStatus(lightTeme);
                                }
                            }
                        }
@@ -503,21 +519,27 @@
                                        case SPK.SensorTemperature:
                                            byte[] tempBytes = new byte[] { receiveBytes[24], receiveBytes[25], receiveBytes[26], receiveBytes[27] };
                                            sensor.SetAttrState(FunctionAttributeKey.Value,Math.Round(BitConverter.ToSingle(tempBytes, 0), 1).ToString());
                                            sensor.SetAttrState(sensor.spk,Math.Round(BitConverter.ToSingle(tempBytes, 0), 1).ToString());
                                            break;
                                        case SPK.SensorHumidity:
                                            sensor.SetAttrState(FunctionAttributeKey.Value, (Convert.ToDouble(receiveBytes[24] * 256 + receiveBytes[25]) / 10).ToString());
                                            sensor.SetAttrState(sensor.spk, (Convert.ToDouble(receiveBytes[24] * 256 + receiveBytes[25]) / 10).ToString());
                                            break;
                                        case SPK.SensorTVOC:
                                            sensor.SetAttrState(FunctionAttributeKey.Value, (Convert.ToDouble(receiveBytes[24] * 256 + receiveBytes[25]) / 100).ToString());
                                            sensor.SetAttrState(sensor.spk, (Convert.ToDouble(receiveBytes[24] * 256 + receiveBytes[25]) / 100).ToString());
                                            break;
                                        case SPK.SensorPm25:
                                            sensor.SetAttrState(FunctionAttributeKey.Value,Convert.ToInt32(receiveBytes[24] * 256 + receiveBytes[25]).ToString());
                                            sensor.SetAttrState(sensor.spk,Convert.ToInt32(receiveBytes[24] * 256 + receiveBytes[25]).ToString());
                                            break;
                                        case SPK.SensorCO2:
                                            sensor.SetAttrState(FunctionAttributeKey.Value, Convert.ToInt32(receiveBytes[24] * 256 + receiveBytes[25]).ToString());
                                            sensor.SetAttrState(sensor.spk, Convert.ToInt32(receiveBytes[24] * 256 + receiveBytes[25]).ToString());
                                            break;
                                    }
                                    EnvironmentalPage.LoadEvent_UpdataStatus(sensor);
                                A_EnvironmentalDataCenter.LoadEvent_UpdataStatus(sensor);
                                }
                            }
                        }
@@ -555,13 +577,16 @@
                                    {
                                        case 1:
                                            sensor.SetAttrState(FunctionAttributeKey.Value,( (receiveBytes[5] * 256 * 256 * 256) + (receiveBytes[6] * 256 * 256) + (receiveBytes[7] * 256) + receiveBytes[8]).ToString());
                                            sensor.SetAttrState(sensor.spk,( (receiveBytes[5] * 256 * 256 * 256) + (receiveBytes[6] * 256 * 256) + (receiveBytes[7] * 256) + receiveBytes[8]).ToString());
                                            break;
                                        case 2:
                                            sensor.SetAttrState(FunctionAttributeKey.Value,( -1 * ((receiveBytes[5] * 256 * 256 * 256) + (receiveBytes[6] * 256 * 256) + (receiveBytes[7] * 256) + receiveBytes[8])).ToString());
                                            sensor.SetAttrState(sensor.spk,( -1 * ((receiveBytes[5] * 256 * 256 * 256) + (receiveBytes[6] * 256 * 256) + (receiveBytes[7] * 256) + receiveBytes[8])).ToString());
                                            break;
                                        case 3:
                                            byte[] tempBytes = new byte[] { receiveBytes[5], receiveBytes[6], receiveBytes[7], receiveBytes[8] };
                                            sensor.SetAttrState(FunctionAttributeKey.Value,( Math.Round(BitConverter.ToSingle(tempBytes, 0), 1)).ToString());
                                            sensor.SetAttrState(sensor.spk,( Math.Round(BitConverter.ToSingle(tempBytes, 0), 1)).ToString());
                                            break;
                                    }
                                    switch (receiveBytes[4])
@@ -571,9 +596,12 @@
                                            {
                                                var value = Convert.ToInt32(sensor.GetAttrState(FunctionAttributeKey.Value));
                                                sensor.SetAttrState(FunctionAttributeKey.Value, (value /= 100000).ToString());
                                                sensor.SetAttrState(sensor.spk, (value /= 100000).ToString());
                                            }
                                            break;
                                    }
                                A_EnvironmentalDataCenter.LoadEvent_UpdataStatus(sensor);
                                    EnvironmentalPage.LoadEvent_UpdataStatus(sensor);
                                }
                            }