黄学彪
2020-12-16 0d9f64668fd7350d6a21fd157e32009a96d98134
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
@@ -88,13 +88,6 @@
            {
                this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1028);
            }
            else if (this.deviceObj.Type == DeviceType.Airer)
            {
                //晾衣架设备只存取回路1,如果是晾衣架,默认端点都是1;
                this.deviceObj.DeviceEpoint = 1;
                this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1342);
            }
            else
            {
                this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1128);
@@ -113,37 +106,26 @@
                dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = frameDeviceName.Text.Trim();
                foreach (var epoint in dicDeviceSaveName.Keys)
                {
                    var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint);
                    var device = HdlDeviceCommonLogic.Current.GetDevice(deviceObj.DeviceAddr, epoint);
                    if (device == null || dicDeviceSaveName[epoint] == string.Empty)
                    {
                        //不能允许空白名字
                        continue;
                    }
                    string newName = dicDeviceSaveName[epoint];
                    string oldName = Common.LocalDevice.Current.GetDeviceEpointName(device);
                    string oldName = HdlDeviceCommonLogic.Current.GetDeviceEpointName(device);
                    if (oldName != newName)
                    {
                        //设备名称修改
                        var result = Common.LocalDevice.Current.ReName(device, newName);
                        var result = HdlDeviceCommonLogic.Current.ReName(device, newName);
                        if (result == false)
                        {
                            return;
                        }
                    }
                }
                //如果是晾衣架「时间先不处理」
                //if (deviceObj.Type == DeviceType.Airer)
                //{
                //  var airer = deviceObj as Airer;
                //  SetAirerFunTimeDevice(airer);
                //}
                //else
                //{
                //关闭自身
                this.CloseForm();
                //}
            };
            //如果当前是展示模板,则不能编辑
            if (Common.Config.Instance.Home.IsShowTemplate == true)
@@ -161,8 +143,7 @@
            //回路备注
            string caption = Language.StringByID(R.MyInternationalizationString.uDeviceEpointNote);
            string nameValue = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice);
            string nameValue = HdlDeviceCommonLogic.Current.GetDeviceEpointName(nowSelectDevice);
            if (dicDeviceSaveName.ContainsKey(nowSelectDevice.DeviceEpoint) == true)
            {
                nameValue = dicDeviceSaveName[nowSelectDevice.DeviceEpoint];
@@ -178,7 +159,7 @@
            {
                frameDeviceName.txtInput.FinishInputEvent += () =>
                {
                    string oldName = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice);
                    string oldName = HdlDeviceCommonLogic.Current.GetDeviceEpointName(nowSelectDevice);
                    if (frameDeviceName.Text.Trim() == string.Empty)
                    {
                        //将名字还原
@@ -187,7 +168,7 @@
                    if (oldName != frameDeviceName.Text.Trim())
                    {
                        //设备名称修改
                        var result = Common.LocalDevice.Current.ReName(nowSelectDevice, frameDeviceName.Text.Trim());
                        var result = HdlDeviceCommonLogic.Current.ReName(nowSelectDevice, frameDeviceName.Text.Trim());
                        if (result == false)
                        {
                            return;
@@ -210,20 +191,9 @@
                //变更房间
                HdlRoomLogic.Current.ChangedRoom(nowSelectDevice, roomKeys);
            };
            //添加功能类型行
            this.AddFunctionTypeRow();
            if (this.deviceObj.Type == DeviceType.Airer)
            {
                var airer = this.deviceObj as Airer;
                //添加烘干时间行
                this.AddAirerDryTimeRow(airer);
                //添加风干时间行
                this.AddAirerWindTimeRow(airer);
                //添加消毒时间行
                this.AddAirerDisinfectTimeRow(airer);
            }
            //初始化桌布完成
            tableContr.FinishInitControl();
        }
@@ -238,7 +208,7 @@
        private void InitTopRightMenu()
        {
            //检测此回路是否拥有定位功能
            if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice) == false
            if (HdlDeviceCommonLogic.Current.DeviceIsCanFixedPosition(nowSelectDevice) == false
                || Common.Config.Instance.Home.IsShowTemplate == true)
            {
                return;
@@ -262,7 +232,7 @@
            int menuCount = 1;
            string deviceMenu = string.Empty;
            //检测此回路是否拥有定位功能
            bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice);
            bool canTest = HdlDeviceCommonLogic.Current.DeviceIsCanFixedPosition(nowSelectDevice);
            //if (canTest == true)
            //{
            //    menuCount = 2;
@@ -275,7 +245,7 @@
                frame.AddRowMenu(deviceMenu, "Item/FixedPosition.png", "Item/FixedPositionSelected.png", () =>
                {
                    //发送定位功能
                    Common.LocalDevice.Current.SetFixedPositionCommand(nowSelectDevice);
                    HdlDeviceCommonLogic.Current.SetFixedPositionCommand(nowSelectDevice);
                });
            }
@@ -306,151 +276,7 @@
            //底线
            rowFunction.AddBottomLine();
        }
        #endregion
        #region ■ 晾衣架专用_________________________
        #region ■ 烘干时间_________________________
        /// <summary>
        ///  烘干时间行
        /// </summary>
        private void AddAirerDryTimeRow(Airer airer)
        {
            var rowAirer = new AiererTimeControl(listview.rowSpace / 2);
            listview.AddChidren(rowAirer);
            var text = Language.StringByID(R.MyInternationalizationString.AirerDefault) + 3 + Language.StringByID(R.MyInternationalizationString.AirerHour);
            if (airer.DryTime != 0)
            {
                double result = airer.DryTime / 60.0;
                var hour = Math.Round(result, 2);
                text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour);
            }
            rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDryTime), text, 1);
            //底线
            rowAirer.AddBottomLine();
            rowAirer.SelectTimeEvent += (v1, v2) =>
            {
                //double result = second / 3600.0;
                //var hour = Math.Round(result, 1);
                //text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour);
                //rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDryTime), text, 1);
            };
        }
        #endregion
        #region ■ 风干时间_________________________
        /// <summary>
        ///  风干时间行
        /// </summary>
        private void AddAirerWindTimeRow(Airer airer)
        {
            var rowAirer = new AiererTimeControl(listview.rowSpace / 2);
            listview.AddChidren(rowAirer);
            var text = Language.StringByID(R.MyInternationalizationString.AirerDefault) + 3 + Language.StringByID(R.MyInternationalizationString.AirerHour);
            if (airer.WindTime != 0)
            {
                double result = airer.WindTime / 60.0;
                var hour = Math.Round(result, 1);
                text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour);
            }
            rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerWindTime), text, 2);
            //底线
            rowAirer.AddBottomLine();
            rowAirer.SelectTimeEvent += (v1, v2) =>
            {
                //double result = second / 3600.0;
                //var hour = Math.Round(result, 1);
                //text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour);
                //rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDryTime), text, 1);
            };
        }
        #endregion
        #region ■ 消毒时间_________________________
        /// <summary>
        ///  消毒时间行
        /// </summary>
        private void AddAirerDisinfectTimeRow(Airer airer)
        {
            var rowAirer = new AiererTimeControl(listview.rowSpace / 2);
            listview.AddChidren(rowAirer);
            var text = Language.StringByID(R.MyInternationalizationString.AirerDefault) + 30 + Language.StringByID(R.MyInternationalizationString.AirerMin);
            if (airer.DisinfectTime != 0)
            {
                text = airer.DisinfectTime + Language.StringByID(R.MyInternationalizationString.AirerMin);
            }
            rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDisinfectTime), text, 3);
            //底线
            rowAirer.AddBottomLine();
            rowAirer.SelectTimeEvent += (v1, v2) =>
            {
            };
        }
        #endregion
        #region ■  读取时间命令___________________
        /// <summary>
        /// 读取时间命令
        /// </summary>
        public void ReadAirerFunTimeDevice()
        {
        }
        #endregion
        /// <summary>
        /// 设备时间设置
        /// </summary>
        private void SetAirerFunTimeDevice(Airer airer)
        {
            HdlThreadLogic.Current.RunThread(async () =>
            {
                //打开进度条
                this.ShowProgressBar();
                //则要设置对应的功能时间
                List<CommonDevice> listdevice = new List<CommonDevice>();
                for (int i = 3; i < 6; i++)
                {
                    int time = 0;
                    listdevice.Add(deviceObj);
                    switch (i)
                    {
                        case 3:
                            time = airer.WindTime;
                            break;
                        case 4:
                            time = airer.DryTime;
                            break;
                        case 5:
                            time = airer.DisinfectTime;
                            break;
                    }
                    bool result = await Common.LocalDevice.Current.SetAirerTimeDevice(listdevice, airer, time, i);
                    if (result == false)
                    {
                        airer.WindTime = airer.WindRemainTime = 0;
                        airer.DryTime = airer.DryRemainTime = 0;
                        airer.DisinfectTime = airer.DisinfectTime = 0;
                        HdlThreadLogic.Current.RunMainInThread(() =>
                  {
                      this.InitMiddleFrame();
                  });
                        //关闭进度条
                        this.CloseProgressBar();
                        return;
                    }
                }
                //关闭进度条
                this.CloseProgressBar();
                //关闭自身
                this.CloseForm();
            });
        }
        #endregion
        #region ■ 初始化设备回路图标_________________
@@ -528,19 +354,6 @@
                        frameBack.Y = Application.GetRealHeight(153);
                        frameBack.Gravity = Gravity.Center;
                    }
                    //如果是晾衣架
                    if (deviceObj.Type == DeviceType.Airer)
                    {
                        frame.RemoveFromParent();
                        frameBorder.Y = Application.GetRealHeight(0);
                        frameBorder.Height = Application.GetRealHeight(299);
                        frameBack.BackgroundImagePath = "Airer/Airer216.png";
                        frameBack.Width = this.GetPictrueRealSize(207);
                        frameBack.Height = this.GetPictrueRealSize(207);
                        frameBack.Y = Application.GetRealHeight(92);
                        frameBack.Gravity = Gravity.CenterHorizontal;
                    }
                }
                else
                {
@@ -548,9 +361,6 @@
                }
            }
            //如果是晾衣架,有5个回路,但是5个回路只是代表不同功能使用,不是真实的对应设备,所以默认只显示第一回路
            if (deviceObj.Type != DeviceType.Airer)
            {
                if (listIcon.Count > 2)
                {
                    //计算真实高度
@@ -561,7 +371,6 @@
                    {
                        //变更高度
                        frameBack.Height = realHeight;
                    }
                }
            }
        }
@@ -615,7 +424,7 @@
        private List<List<CommonDevice>> GetAllDeviceGroup()
        {
            bool hadDevice = false;
            var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceObj.DeviceAddr);
            var listDevice = HdlDeviceCommonLogic.Current.GetDevicesByMac(deviceObj.DeviceAddr);
            var listRelay = new List<CommonDevice>();
            foreach (var device in listDevice)
            {
@@ -631,8 +440,8 @@
                }
                //获取设备属于【简约多功能面板】
                var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
                if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.ButtonPanel_SimpleMultifunction)
                var deviceEnumInfo = HdlDeviceCommonLogic.Current.GetMyDeviceEnumInfo(listDevice);
                if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction)
                {
                    if (device.Type == DeviceType.TemperatureSensor && device.DeviceEpoint == 1)
                    {
@@ -696,14 +505,10 @@
            if (nowSelectControl != null)
            {
                //同一个东西,不鸟他
                if (this.deviceObj.Type != DeviceType.Airer)
                {
                    if (nowSelectControl.Name == nowContr.Name)
                    {
                        return;
                    }
                }
                //不选择状态
                nowSelectControl.BorderColor = 0xff979797;
                nowSelectControl.TextSize = 13;
@@ -717,7 +522,7 @@
            nowContr.TextColor = UserCenterColor.Current.TextColor1;
            nowSelectControl = nowContr;
            nowSelectDevice = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, Convert.ToInt32(nowContr.Name.Replace("btn", string.Empty)));
            nowSelectDevice = HdlDeviceCommonLogic.Current.GetDevice(deviceObj.DeviceAddr, Convert.ToInt32(nowContr.Name.Replace("btn", string.Empty)));
            //重新初始化菜单行
            this.InitMenuRow();