HDL Home App 第二版本 旧平台金堂用 正在使用
陈嘉乐
2020-12-31 cb7fd6a89ad9fcd9cf575025ab43873f17bf17c8
ZigbeeApp/Shared/Phone/Device/Logic/PublicInterface.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using Shared.Common;
using Shared.R;
using ZigBee.Device;
namespace Shared.Phone.Device.Logic
{
@@ -99,6 +100,332 @@
        }
        /// <summary>
        /// 温湿度方法
        /// </summary>
        /// <param name="frame">显示在哪个界面的父控件</param>
        /// <param name="common">当前设备</param>
        /// <param name="state1">之前状态</param>
        /// <param name="state2">之前状态</param>
        /// <param name="action">返回值</param>
        public void TemperatureShow1(FrameLayout frameLayout, CommonDevice common, string state1, string state2, Action<string, string> action)
        {
            //FrameLayout frameLayout = new FrameLayout
            //{
            //    BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor,
            //};
            //frame.AddChidren(frameLayout);
            CompleteView view = new CompleteView();
            view.Btntitle.Text= LocalDevice.Current.GetDeviceEpointName(common);
            frameLayout.AddChidren(view.Show(4));
            UserView.HomePage.Instance.ScrollEnabled = false;
            view.Btncancel.MouseUpEventHandler += (sender, e) =>
            {
                UserView.HomePage.Instance.ScrollEnabled = true;
                //移除fLayout界面
                frameLayout.RemoveFromParent();
            };
            #region  布局View
            var PickerViewfra = new FrameLayout
            {
                Y = Application.GetRealHeight(140),
                Height = Application.GetRealHeight(640),
            };
            view.fraView.AddChidren(PickerViewfra);
            var mUIPickerView = new UIPickerView
            {
                Height = Application.GetRealHeight(640 - 5),
            };
            PickerViewfra.AddChidren(mUIPickerView);
            var mList1 = new List<string> { ">", "<", "=", "≥", "≤" };
            var mList2 = new List<string>();
            var mList3 = new List<string>();
            for (int i = 1; i <= 100; i++)
            {
                mList2.Add(i.ToString());
            }
            switch (common.Type)
            {
                case DeviceType.TemperatureSensor:
                    {
                        var temperatureSensor = common as TemperatureSensor;
                        if (temperatureSensor.SensorDiv == 1)
                        {
                            mList3.Add("℃");
                        }
                        else
                        {
                            mList3.Add("%");
                        }
                    }
                    break;
            }
            mUIPickerView.setNPicker(mList1, mList2, mList3);
            #endregion
            //默认=,50
            int index1 = 2, index2 = 49;
            if (state1!="" && state2 != "")
            {
                string s = "";
                switch (state1)
                {
                    case "0":
                        {
                            s = ">";
                        }
                        break;
                    case "1":
                        {
                            s = "=";
                        }
                        break;
                    case "2":
                        {
                            s = "<";
                        }
                        break;
                    case "6":
                        {
                            s = "≥";
                        }
                        break;
                    case "7":
                        {
                            s = "≤";
                        }
                        break;
                }
                //查找索引
                index1 = mList1.IndexOf(s);
                //转换温度值/100
                string tempValue = (int.Parse(state2) / 100).ToString();
                index2 = mList2.IndexOf(tempValue);
            }
            ///更新最新状态;
            mUIPickerView.setCurrentItems(index1, index2, 0);
            mUIPickerView.OnSelectChangeEvent += (s1, s2, s3) =>
            {
                //返回索引值
                index1 = s1;
                index2 = s2;
                string relationValueStr = "";
                switch (mList1[index1])
                {
                    case ">":
                        {
                            relationValueStr = "0";
                        }
                        break;
                    case "<":
                        {
                            relationValueStr = "2";
                        }
                        break;
                    case "=":
                        {
                            relationValueStr = "1";
                        }
                        break;
                    case "≥":
                        {
                            relationValueStr = "6";
                        }
                        break;
                    case "≤":
                        {
                            relationValueStr = "7";
                        }
                        break;
                }
                ///温度进率转换*100
                string tempValueStr = (int.Parse(mList2[index2]) * 100).ToString();
                action(relationValueStr, tempValueStr);
            };
            view.Btncomplete.MouseUpEventHandler += (sender1, e1) =>
            {
                string relationValueStr = "";
                switch (mList1[index1])
                {
                    case ">":
                        {
                            relationValueStr = "0";
                        }
                        break;
                    case "<":
                        {
                            relationValueStr = "2";
                        }
                        break;
                    case "=":
                        {
                            relationValueStr = "1";
                        }
                        break;
                    case "≥":
                        {
                            relationValueStr = "6";
                        }
                        break;
                    case "≤":
                        {
                            relationValueStr = "7";
                        }
                        break;
                }
                ///温度进率转换*100
                string tempValueStr = (int.Parse(mList2[index2]) * 100).ToString();
                action(relationValueStr, tempValueStr);
                UserView.HomePage.Instance.ScrollEnabled = true;
                //移除fLayout界面
                frameLayout.RemoveFromParent();
            };
        }
        public void TemperatureShow(FrameLayout frameLayout, CommonDevice common, string state1, string state2, Action<string, string> action)
        {
            #region  布局View
            var PickerViewfra = new FrameLayout
            {
                Y = Application.GetRealHeight(140),
                Height = Application.GetRealHeight(640),
            };
            frameLayout.AddChidren(PickerViewfra);
            var mUIPickerView = new UIPickerView
            {
                Height = Application.GetRealHeight(640 - 5),
            };
            PickerViewfra.AddChidren(mUIPickerView);
            var mList1 = new List<string> { ">", "<", "=", "≥", "≤" };
            var mList2 = new List<string>();
            var mList3 = new List<string>();
            for (int i = 1; i <= 100; i++)
            {
                mList2.Add(i.ToString());
            }
            switch (common.Type)
            {
                case DeviceType.TemperatureSensor:
                    {
                        var temperatureSensor = common as TemperatureSensor;
                        if (temperatureSensor.SensorDiv == 1)
                        {
                            mList3.Add("℃");
                        }
                        else
                        {
                            mList3.Add("%");
                        }
                    }
                    break;
            }
            mUIPickerView.setNPicker(mList1, mList2, mList3);
            #endregion
            //默认=,50
            int index1 = 2, index2 = 49;
            if (state1 != "" && state2 != "")
            {
                string s = "";
                switch (state1)
                {
                    case "0":
                        {
                            s = ">";
                        }
                        break;
                    case "1":
                        {
                            s = "=";
                        }
                        break;
                    case "2":
                        {
                            s = "<";
                        }
                        break;
                    case "6":
                        {
                            s = "≥";
                        }
                        break;
                    case "7":
                        {
                            s = "≤";
                        }
                        break;
                }
                //查找索引
                index1 = mList1.IndexOf(s);
                //转换温度值/100
                string tempValue = (int.Parse(state2) / 100).ToString();
                index2 = mList2.IndexOf(tempValue);
            }
            ///更新最新状态;
            mUIPickerView.setCurrentItems(index1, index2, 0);
            mUIPickerView.OnSelectChangeEvent += (s1, s2, s3) =>
            {
                //返回索引值
                index1 = s1;
                index2 = s2;
                string relationValueStr = "";
                switch (mList1[index1])
                {
                    case ">":
                        {
                            relationValueStr = "0";
                        }
                        break;
                    case "<":
                        {
                            relationValueStr = "2";
                        }
                        break;
                    case "=":
                        {
                            relationValueStr = "1";
                        }
                        break;
                    case "≥":
                        {
                            relationValueStr = "6";
                        }
                        break;
                    case "≤":
                        {
                            relationValueStr = "7";
                        }
                        break;
                }
                ///温度进率转换*100
                string tempValueStr = (int.Parse(mList2[index2]) * 100).ToString();
                action(relationValueStr, tempValueStr);
            };
        }
        /// <summary>
        /// 获取界面列表
        /// </summary>
@@ -142,6 +469,23 @@
                            };
                    }
                    break;
                case "开关2":
                    {
                        list = new List<string> {
                 Language.StringByID(MyInternationalizationString.open),
                Language.StringByID(MyInternationalizationString.close),
                            };
                    }
                    break;
                case "开关3":
                    {
                        list = new List<string> {
                 Language.StringByID(MyInternationalizationString.open),
                Language.StringByID(MyInternationalizationString.close),
                Language.StringByID(MyInternationalizationString.onoff),
                            };
                    }
                    break;
            }