HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2019-11-04 c7698e163e43cea9e7f8ee45f8e3f91c9265cca4
ZigbeeApp/Shared/Phone/Device/Room/RoomTemperatureSetting.cs
@@ -1,6 +1,8 @@
using System;
using System.Collections.Generic;
using Shared.Common;
using Shared.Phone.Device.CommonForm;
using ZigBee.Device;
namespace Shared.Phone.Device.Room
{
@@ -14,7 +16,7 @@
        /// <summary>
        /// The action.
        /// </summary>
        public Action<string> action;
        public Action<CommonDevice> selectDeviceAction;
        /// <summary>
        /// verticalScrolView
        /// </summary>
@@ -23,6 +25,14 @@
        /// The room.
        /// </summary>
        public Shared.Common.Room room;
        /// <summary>
        /// tempDeviceRow
        /// </summary>
        private DeviceInfoWithZoneRow tempDeviceRow = null;
        /// <summary>
        /// tempDevice
        /// </summary>
        public CommonDevice tempDevice;
        #endregion
@@ -83,26 +93,67 @@
            var confirm = new Device.CommonForm.CompleteButton(1700, 700, 127);
            confirm.SetTitle(R.MyInternationalizationString.Save);
            AddChidren(confirm);
            for(int i=0;i<15;i++)
            confirm.MouseUpEventHandler += (sender, e) =>
            {
                AddItem(verticalScrolView, 20 + i * (127 + 20));
            }
                RemoveFromParent();
                if(tempDevice!=null)
                {
                    selectDeviceAction?.Invoke(tempDevice);
                }
            };
            var deviceList = GetTemperatrueDevices();
            for (int i = 0; i < deviceList.Count; i++)
            {
                var device = deviceList[i];
                var devRow = new DeviceInfoWithZoneRow(20 + i * (127 + 20));
                verticalScrolView.AddChidren(devRow);
                devRow.Init();
                devRow.SetIcon(device.IconPath);
                devRow.SetName(device.DeviceName);
                devRow.SetZone(room.FloorName + ", " + room.Name);
                if(tempDevice!=null && tempDevice==device)
                {
                    tempDeviceRow = devRow;
                    tempDevice = device;
                    devRow.SetStatu(true);
                }
                else
                {
                    if (i == 0 && tempDevice == null)
                    {
                        tempDeviceRow = devRow;
                        tempDevice = device;
                        devRow.SetStatu(true);
                    }
                }
                devRow.ClickButton.MouseUpEventHandler += (sender, e) =>
                {
                    tempDeviceRow.SetStatu(false);
                    devRow.SetStatu(true);
                    tempDeviceRow = devRow;
                    tempDevice = device;
                };
            }
        }
        /// <summary>
        /// AddItem
        /// 温度传感器列表
        /// </summary>
        /// <param name="vertical"></param>
        public void AddItem(VerticalScrolViewLayout vertical,int y)
        private List<ZigBee.Device.CommonDevice> GetTemperatrueDevices()
        {
            var dev = new DeviceInfoWithZoneRow(y);
            vertical.AddChidren(dev);
            dev.Init();
            dev.SetIcon("DeviceIcon/1.png");
            dev.SetName("温度传感器"+y);
            dev.SetZone(room.FloorName + ", " + room.Name);
            var listDevice = new List<ZigBee.Device.CommonDevice>();
            foreach (var device in Common.LocalDevice.Current.listAllDevice)
            {
                //获取温度传感器
                if (device is ZigBee.Device.TemperatureSensor && ((ZigBee.Device.TemperatureSensor)device).SensorDiv == 1)
                {
                    listDevice.Add(device);
                }
            }
            return listDevice;
        }
        #endregion