xm
2020-12-10 3aa397ab145382935492b11c1f18c9634e69910b
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
old mode 100755 new mode 100644
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Text;
using Java.Util;
using ZigBee.Device;
namespace Shared.Phone.UserCenter.Device
@@ -88,6 +89,13 @@
            {
                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);
@@ -124,8 +132,19 @@
                        }
                    }
                }
        //如果是晾衣架
        if (deviceObj.Type == DeviceType.Airer)
        {
          var airer = deviceObj as Airer;
          SetAirerFunTimeDevice(airer);
        }
        else
        {
                //关闭自身
                this.CloseForm();
        }
            };
            //如果当前是展示模板,则不能编辑
            if (Common.Config.Instance.Home.IsShowTemplate == true)
@@ -144,6 +163,10 @@
            //回路备注
            string caption = Language.StringByID(R.MyInternationalizationString.uDeviceEpointNote);
            string nameValue = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice);
      if (this.deviceObj.Type == DeviceType.Airer)
      {
        nameValue = Common.LocalDevice.Current.GetDeviceMacName(nowSelectDevice);
      }
            if (dicDeviceSaveName.ContainsKey(nowSelectDevice.DeviceEpoint) == true)
            {
                nameValue = dicDeviceSaveName[nowSelectDevice.DeviceEpoint];
@@ -191,9 +214,20 @@
                //变更房间
                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();
        }
@@ -276,7 +310,151 @@
            //底线
            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 ■ 初始化设备回路图标_________________
@@ -354,6 +532,19 @@
                        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(709);
            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
                {
@@ -361,6 +552,9 @@
                }
            }
      //如果是晾衣架,有5个回路,但是5个回路只是代表不同功能使用,不是真实的对应设备,所以默认只显示第一回路
      if (deviceObj.Type != DeviceType.Airer)
      {
            if (listIcon.Count > 2)
            {
                //计算真实高度
@@ -371,6 +565,7 @@
                {
                    //变更高度
                    frameBack.Height = realHeight;
          }
                }
            }
        }
@@ -505,10 +700,14 @@
            if (nowSelectControl != null)
            {
                //同一个东西,不鸟他
        if (this.deviceObj.Type != DeviceType.Airer)
        {
                if (nowSelectControl.Name == nowContr.Name)
                {
                    return;
                }
        }
                //不选择状态
                nowSelectControl.BorderColor = 0xff979797;
                nowSelectControl.TextSize = 13;