| | |
| | |
|
| | | //加一个白色背景
|
| | | 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);
|
| | |
| | | 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) =>
|
| | | {
|
| | |
| | | };
|
| | | }
|
| | |
|
| | | //变更一下那个白色背景的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);
|
| | |
| | | {
|
| | | 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();
|
| | | //底线
|
| | |
| | | //底线
|
| | | btnBelone.AddBottomLine();
|
| | | //分享的房间不能修改
|
| | | if (this.editorRoom.IsSharedRoom == false)
|
| | | if (this.editorRoom.IsSharedRoom == false && Common.Config.Instance.Home.IsShowTemplate == false)
|
| | | {
|
| | | //右箭头
|
| | | btnBelone.AddRightArrow();
|
| | |
| | | //底线
|
| | | 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) =>
|
| | | {
|
| | |
| | | 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);
|
| | |
| | | //底线
|
| | | 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) =>
|
| | | {
|
| | |
| | | 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);
|
| | |
| | | tableContr = null;
|
| | |
|
| | | //分享的房间不能保存
|
| | | if (this.editorRoom.IsSharedRoom == true)
|
| | | if (this.editorRoom.IsSharedRoom == true|| Common.Config.Instance.Home.IsShowTemplate == true)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
| | | Common.Global.DeleteFilebyHomeId(editorRoom.BackgroundImage);
|
| | | }
|
| | | //备份
|
| | | HdlAutoBackupLogic.DeleteFile(editorRoom.BackgroundImage);
|
| | | HdlBackupLogic.Current.DeleteAutoBackFileStatu(editorRoom.BackgroundImage);
|
| | | }
|
| | | //自定义图片
|
| | | if (cloneRoom.BackgroundImageType == 1 || cloneRoom.BackgroundImageType == 2)
|
| | |
| | | Shared.IO.FileUtils.WriteFileByBytes(picFullName, btnPic.ImageBytes);
|
| | | cloneRoom.BackgroundImage = picName;
|
| | | //备份
|
| | | HdlAutoBackupLogic.AddOrEditorFile(picName);
|
| | | HdlBackupLogic.Current.AddOrEditorAutoBackFileStatu(picName);
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | 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)
|
| | |
| | | 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);
|
| | | };
|
| | |
| | | /// <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;
|
| | |
| | | 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);
|
| | |
| | | {
|
| | | //去获取设备列表的信息
|
| | | System.Threading.Thread.Sleep(1500);
|
| | | var result = Common.LocalDevice.Current.ReadDeviceEpointDeviceInfo(device);
|
| | | var result = HdlDeviceCommonLogic.Current.ReadDeviceEpointDeviceInfo(device);
|
| | | if (result != null)
|
| | | {
|
| | | device.AttributeStatus.Clear();
|
| | |
| | | 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)
|
| | |
| | | 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);
|
| | | };
|
| | |
| | | /// <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;
|
| | |
| | | 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);
|
| | |
| | | {
|
| | | //去获取设备列表的信息
|
| | | System.Threading.Thread.Sleep(1500);
|
| | | var result = Common.LocalDevice.Current.ReadDeviceEpointDeviceInfo(device);
|
| | | var result = HdlDeviceCommonLogic.Current.ReadDeviceEpointDeviceInfo(device);
|
| | | if (result != null)
|
| | | {
|
| | | device.AttributeStatus.Clear();
|