黄学彪
2020-12-17 9f326f4000847e6167d8166fa2f6a66f53cb3734
ZigbeeApp/Shared/Phone/UserCenter/Residence/EditorRoomInforForm.cs
@@ -67,15 +67,11 @@
            //加一个白色背景
            var frameBack1 = new FrameLayout();
            frameBack1.Height = Application.GetRealHeight(450);
            frameBack1.Height = Application.GetRealHeight(750);
            frameBack1.Y = Application.GetRealHeight(196);
            frameBack1.BackgroundColor = UserCenterColor.Current.White;
            frameBack1.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
            listBackControl.frameTable.AddChidren(frameBack1);
            //初始化信息桌布
            var tableContr = new InformationEditorControl();
            this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 1175);
            //房间图片底部阴影
            var btnShadow = new PicViewControl(853, 593);
@@ -109,7 +105,7 @@
            btnZhezhao.Radius = (uint)Application.GetRealHeight(17);
            listBackControl.frameTable.AddChidren(btnZhezhao);
            //分享的房间不能编辑
            if (this.editorRoom.IsSharedRoom == false)
            if (this.editorRoom.IsSharedRoom == false && Common.Config.Instance.Home.IsShowTemplate == false)
            {
                btnZhezhao.MouseUpEventHandler += (sender, e) =>
                {
@@ -118,8 +114,9 @@
                };
            }
            //变更一下那个白色背景的Y轴,它到图片的中间位置
            frameBack1.Y = btnPic.Y + btnPic.Height / 2;
            //初始化信息桌布
            var tableContr = new InformationEditorControl();
            this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uInfoEditor), bodyFrameLayout.Height - btnShadow.Bottom, false);
            //添加全部菜单
            this.AddAllMenuRow(tableContr, btnPic);
@@ -140,6 +137,7 @@
            {
                txtRoomName = new FrameCaptionInputControl(Language.StringByID(R.MyInternationalizationString.uRoomName), this.cloneRoom.Name, this.listview.rowSpace / 2);
                txtRoomName.txtInput.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPleaseInputRoomName);
                txtRoomName.txtInput.MaxByte = 48;//限制只能输入48个字节
                listview.AddChidren(txtRoomName);
                txtRoomName.InitControl();
                //底线
@@ -166,7 +164,7 @@
                //底线
                btnBelone.AddBottomLine();
                //分享的房间不能修改
                if (this.editorRoom.IsSharedRoom == false)
                if (this.editorRoom.IsSharedRoom == false && Common.Config.Instance.Home.IsShowTemplate == false)
                {
                    //右箭头
                    btnBelone.AddRightArrow();
@@ -188,7 +186,8 @@
            //底线
            rowTemperature.AddBottomLine();
            //分享的房间不能修改 或者当前住宅不是虚拟的
            if (this.editorRoom.IsSharedRoom == false && Common.Config.Instance.Home.IsVirtually == false)
            if (this.editorRoom.IsSharedRoom == false && Common.Config.Instance.Home.IsVirtually == false
                && Common.Config.Instance.Home.IsShowTemplate == false)
            {
                rowTemperature.ButtonClickEvent += (sender, e) =>
                {
@@ -196,7 +195,8 @@
                    this.ShowTemperatrueDevice(btnTemper);
                };
            }
            if (string.IsNullOrEmpty(cloneRoom.TemperatrueDevice) == false)
            if (string.IsNullOrEmpty(cloneRoom.TemperatrueDevice) == false
                && Common.Config.Instance.Home.IsShowTemplate == false)
            {
                //获取温度
                this.GetTemperatrueValue(btnTemper, cloneRoom.TemperatrueDevice);
@@ -212,7 +212,8 @@
            //底线
            rowHumidity.AddBottomLine();
            //分享的房间不能修改 或者当前住宅不是虚拟的
            if (this.editorRoom.IsSharedRoom == false && Common.Config.Instance.Home.IsVirtually == false)
            if (this.editorRoom.IsSharedRoom == false && Common.Config.Instance.Home.IsVirtually == false
                && Common.Config.Instance.Home.IsShowTemplate == false)
            {
                rowHumidity.ButtonClickEvent += (sender, e) =>
                {
@@ -220,7 +221,8 @@
                    this.ShowHumidityDevice(btnHumi);
                };
            }
            if (string.IsNullOrEmpty(cloneRoom.HumidityDevice) == false)
            if (string.IsNullOrEmpty(cloneRoom.HumidityDevice) == false
                && Common.Config.Instance.Home.IsShowTemplate == false)
            {
                //获取湿度
                this.GetHumidityValue(btnHumi, cloneRoom.HumidityDevice);
@@ -231,7 +233,7 @@
            tableContr = null;
            //分享的房间不能保存
            if (this.editorRoom.IsSharedRoom == true)
            if (this.editorRoom.IsSharedRoom == true|| Common.Config.Instance.Home.IsShowTemplate == true)
            {
                return;
            }
@@ -262,7 +264,7 @@
                            Common.Global.DeleteFilebyHomeId(editorRoom.BackgroundImage);
                        }
                        //备份
                        HdlAutoBackupLogic.DeleteFile(editorRoom.BackgroundImage);
                        HdlBackupLogic.Current.DeleteAutoBackFileStatu(editorRoom.BackgroundImage);
                    }
                    //自定义图片
                    if (cloneRoom.BackgroundImageType == 1 || cloneRoom.BackgroundImageType == 2)
@@ -273,7 +275,7 @@
                        Shared.IO.FileUtils.WriteFileByBytes(picFullName, btnPic.ImageBytes);
                        cloneRoom.BackgroundImage = picName;
                        //备份
                        HdlAutoBackupLogic.AddOrEditorFile(picName);
                        HdlBackupLogic.Current.AddOrEditorAutoBackFileStatu(picName);
                    }
                }
@@ -352,7 +354,7 @@
        private void ShowTemperatrueDevice(NormalViewControl btnTemper)
        {
            var listDevice = new List<ZigBee.Device.CommonDevice>();
            foreach (var device in Common.LocalDevice.Current.listAllDevice)
            foreach (var device in HdlDeviceCommonLogic.Current.listAllDevice)
            {
                //获取温度传感器
                if (device is ZigBee.Device.TemperatureSensor && ((ZigBee.Device.TemperatureSensor)device).SensorDiv == 1)
@@ -376,7 +378,7 @@
                    btnTemper.Text = Language.StringByID(R.MyInternationalizationString.uNothing);
                    return;
                }
                cloneRoom.TemperatrueDevice = Common.LocalDevice.Current.GetDeviceMainKeys(list[0]);
                cloneRoom.TemperatrueDevice = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(list[0]);
                //获取温度值
                this.GetTemperatrueValue(btnTemper, cloneRoom.TemperatrueDevice);
            };
@@ -389,7 +391,7 @@
        /// <param name="deviceKey"></param>
        private void GetTemperatrueValue(NormalViewControl btnTemper, string deviceKey)
        {
            var device = Common.LocalDevice.Current.GetDevice(deviceKey);
            var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKey);
            if (device == null)
            {
                return;
@@ -401,14 +403,14 @@
            HdlGatewayReceiveLogic.Current.RemoveEvent("TemperatrueDevice");
            HdlGatewayReceiveLogic.Current.AddAttributeEvent("TemperatrueDevice", ReceiveComandDiv.A设备属性上报, ((report) =>
            {
                string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(report);
                string mainKeys = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(report);
                if (cloneRoom.TemperatrueDevice != mainKeys || btnTemper == null
                || report.DeviceStatusReport.CluterID != 1026)
                {
                    return;
                }
                receiveData = true;
                var localDevice = Common.LocalDevice.Current.GetDevice(mainKeys);
                var localDevice = HdlDeviceCommonLogic.Current.GetDevice(mainKeys);
                HdlThreadLogic.Current.RunMain(() =>
                {
                    decimal temperatrue = (decimal)device.GetType().InvokeMember("currentTemperature", System.Reflection.BindingFlags.GetField, null, device, null);
@@ -431,7 +433,7 @@
            {
                //去获取设备列表的信息
                System.Threading.Thread.Sleep(1500);
                var result = Common.LocalDevice.Current.ReadDeviceEpointDeviceInfo(device);
                var result = HdlDeviceCommonLogic.Current.ReadDeviceEpointDeviceInfo(device);
                if (result != null)
                {
                    device.AttributeStatus.Clear();
@@ -513,7 +515,7 @@
        private void ShowHumidityDevice(NormalViewControl btnHumi)
        {
            var listDevice = new List<ZigBee.Device.CommonDevice>();
            foreach (var device in Common.LocalDevice.Current.listAllDevice)
            foreach (var device in HdlDeviceCommonLogic.Current.listAllDevice)
            {
                //获取湿度传感器
                if (device is ZigBee.Device.TemperatureSensor && ((ZigBee.Device.TemperatureSensor)device).SensorDiv == 2)
@@ -542,7 +544,7 @@
                    btnHumi.Text = Language.StringByID(R.MyInternationalizationString.uNothing);
                    return;
                }
                cloneRoom.HumidityDevice = Common.LocalDevice.Current.GetDeviceMainKeys(list[0]);
                cloneRoom.HumidityDevice = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(list[0]);
                //获取湿度值
                this.GetHumidityValue(btnHumi, cloneRoom.HumidityDevice);
            };
@@ -555,7 +557,7 @@
        /// <param name="deviceKey"></param>
        private void GetHumidityValue(NormalViewControl btnHumi, string deviceKey)
        {
            var device = Common.LocalDevice.Current.GetDevice(deviceKey);
            var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKey);
            if (device == null)
            {
                return;
@@ -567,14 +569,14 @@
            HdlGatewayReceiveLogic.Current.RemoveEvent("HumidityDevice");
            HdlGatewayReceiveLogic.Current.AddAttributeEvent("HumidityDevice", ReceiveComandDiv.A设备属性上报, (report) =>
            {
                string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(report);
                string mainKeys = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(report);
                if (cloneRoom.HumidityDevice != mainKeys || btnHumi == null
                || report.DeviceStatusReport.CluterID != 1029)
                {
                    return;
                }
                receiveData = true;
                var localDevice = Common.LocalDevice.Current.GetDevice(mainKeys);
                var localDevice = HdlDeviceCommonLogic.Current.GetDevice(mainKeys);
                HdlThreadLogic.Current.RunMain(() =>
                {
                    decimal humidity = (decimal)localDevice.GetType().InvokeMember("currentHumidity", System.Reflection.BindingFlags.GetField, null, localDevice, null);
@@ -597,7 +599,7 @@
            {
                //去获取设备列表的信息
                System.Threading.Thread.Sleep(1500);
                var result = Common.LocalDevice.Current.ReadDeviceEpointDeviceInfo(device);
                var result = HdlDeviceCommonLogic.Current.ReadDeviceEpointDeviceInfo(device);
                if (result != null)
                {
                    device.AttributeStatus.Clear();