HDL Home App 第二版本 旧平台金堂用 正在使用
陈嘉乐
2020-12-31 cb7fd6a89ad9fcd9cf575025ab43873f17bf17c8
2020-12-31-1
4个文件已修改
532 ■■■■ 已修改文件
ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs 172 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/PublicInterface.cs 344 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml
@@ -1,15 +1,12 @@
<Properties StartupConfiguration="{28EDE1FF-20EF-476B-8AF8-24A3EEB69F45}|Default">
  <MonoDevelop.Ide.ItemProperties.GateWay.Droid PreferredExecutionTarget="Android.4b65c4650918" />
  <MonoDevelop.Ide.ItemProperties.ShardLib PreferredExecutionTarget="Android.4b65c4650918" />
  <MonoDevelop.Ide.Workbench ActiveDocument="Shared/Phone/Device/Logic/LogicDveiceStatus.cs">
  <MonoDevelop.Ide.Workbench ActiveDocument="Shared/Phone/Device/Logic/PublicInterface.cs">
    <Files>
      <File FileName="Shared/Phone/Device/Logic/LogicView/CompleteView.cs" Line="8" Column="18" />
      <File FileName="Shared/Phone/Device/Logic/TimePoint.cs" Line="477" Column="29" />
      <File FileName="Shared/Phone/Device/Logic/CurrentDeviceState.cs" Line="77" Column="23" />
      <File FileName="Shared/Phone/Device/Logic/LogicView/mFunView.cs" Line="46" Column="23" />
      <File FileName="Shared/Phone/Device/Logic/PublicInterface.cs" Line="135" Column="22" />
      <File FileName="Shared/Phone/Device/Logic/LogicDveiceStatus.cs" Line="1123" Column="36" />
      <File FileName="Shared/Phone/Device/Logic/LogicCommunalPage.cs" Line="213" Column="36" />
      <File FileName="Shared/Phone/Device/Logic/TimePoint.cs" />
      <File FileName="Shared/Phone/Device/Logic/Send.cs" />
      <File FileName="Shared/Phone/Device/Logic/CurrentDeviceState.cs" Line="1251" Column="22" />
      <File FileName="Shared/Phone/Device/Logic/PublicInterface.cs" Line="107" Column="52" />
    </Files>
    <Pads>
      <Pad Id="ProjectPad">
@@ -22,8 +19,7 @@
              <Node name="Phone" expanded="True">
                <Node name="Device" expanded="True">
                  <Node name="Logic" expanded="True">
                    <Node name="LogicView" expanded="True" />
                    <Node name="LogicDveiceStatus.cs" selected="True" />
                    <Node name="PublicInterface.cs" selected="True" />
                  </Node>
                </Node>
              </Node>
ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide
Binary files differ
ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs
old mode 100755 new mode 100644
@@ -12,7 +12,7 @@
        /// 选中该设备功能作为条件或者目标的视图方法
        /// </summary>
        /// <param name="common">Common.</param>
        public static void CurrentDeviceView(FrameLayout flMain, CommonDevice common, bool edit, string str,int intValue)
        public static void CurrentDeviceView(FrameLayout flMain, CommonDevice common, bool edit, string str, int intValue)
        {
            #region  -------界面布局部分
            //不让当前界面滑动
@@ -33,19 +33,14 @@
            mFunView openView = new mFunView();
            openView.frameLayout.Y = Application.GetRealHeight(140 + 20);
            //completeView.Show(l).AddChidren(openView.Show());
            openView.titleBtn.TextID = MyInternationalizationString.open;
            mFunView closeView = new mFunView();
            closeView.frameLayout.Y = Application.GetRealHeight(140 + 20+160);
            // closeView.frameLayout.Y = openView.frameLayout.Bottom;
            //completeView.Show(l).AddChidren(closeView.Show());
            closeView.frameLayout.Y = Application.GetRealHeight(140 + 20 + 160);
            closeView.titleBtn.TextID = MyInternationalizationString.close;
            mFunView takebackView = new mFunView();
             takebackView.frameLayout.Y = Application.GetRealHeight(140+20+160+160);
            // takebackView.frameLayout.Y = closeView.frameLayout.Bottom;
            //completeView.Show(l).AddChidren(takebackView.Show());
            takebackView.frameLayout.Y = Application.GetRealHeight(140 + 20 + 160 + 160);
            takebackView.titleBtn.TextID = MyInternationalizationString.onoff;
            takebackView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
            #region  -------进度条控件
@@ -95,10 +90,10 @@
            actionsInfo.Add("TaskList", taskListInfo);
            List<Dictionary<string, string>> TaskList = null;
            #endregion
            var _if=str.Split('_');
            var _if = str.Split('_');
            if (edit)
            {
                if (_if[0]== "condition")
                if (_if[0] == "condition")
                {
                    var deviceinfo = Common.Logic.CurrentLogic.Conditions[intValue];
                    if (deviceinfo["Type"] == "1")
@@ -121,7 +116,7 @@
                            TaskList = deviceinfo["TaskList"] as List<Dictionary<string, string>>;
                        }
                    }
                }
            }
            #endregion
@@ -132,6 +127,7 @@
                ///灯光
                case DeviceType.OnOffOutput:
                    {
                        if (_if[0] == "condition")
                        {
                            l = 2;
@@ -280,6 +276,8 @@
                                }
                            }
                        }
                    }
                    break;
                case DeviceType.IASZone:
@@ -305,7 +303,7 @@
                            closeView.selectedIconBtn.Visible = false;
                            if (iASZonedevice.IasDeviceType == 13)
                            {
                                closeView.selectedIconBtn.Visible = true;
                            }
                            Send.dictionary(deviceConditionsInfo, "Range", "5");
@@ -321,7 +319,7 @@
                            closeView.selectedIconBtn.Visible = true;
                            Send.dictionary(deviceConditionsInfo, "Range", "8");//1
                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", "3");//0
                            if (iASZonedevice.IasDeviceType == 13|| iASZonedevice.IasDeviceType == 541)
                            if (iASZonedevice.IasDeviceType == 13 || iASZonedevice.IasDeviceType == 541)
                            {
                                SelectedDeviceStatus = "";
                                closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
@@ -490,13 +488,13 @@
                        {
                            if (devices["AttriButeId"] == "1281")
                            {
                                if (devices.ContainsKey("IgnoreTime")&& devices["IgnoreTime"]!="0")
                                if (devices.ContainsKey("IgnoreTime") && devices["IgnoreTime"] != "0")
                                {
                                    timeValue = int.Parse(devices["IgnoreTime"]);
                                }
                                else
                                {
                                    if (devices["Range"]== "5")
                                    if (devices["Range"] == "5")
                                    {
                                        openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
                                        closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
@@ -515,7 +513,7 @@
                            }
                        }
                    }
@@ -561,132 +559,36 @@
                    break;
                case DeviceType.TemperatureSensor:
                    {
                        l = 4;
                        string current = Language.StringByID(MyInternationalizationString.current);
                        completeView.Show(l);
                        var temperatureSensor = common as TemperatureSensor;
                        SelectedDeviceStatus = "TemperatureSensor";
                        #region  布局View
                        var PickerViewfra = new FrameLayout
                        //编辑时的状态值
                        string str1 = "";
                        string str2 = "";
                        if (edit && devices != null)
                        {
                            Y = Application.GetRealHeight(140),
                            Height = Application.GetRealHeight(640),
                        };
                        completeView.Show(l).AddChidren(PickerViewfra);
                        var mUIPickerView = new UIPickerView
                        {
                            Height = Application.GetRealHeight(640 - 5),
                        };
                        PickerViewfra.AddChidren(mUIPickerView);
                            //温度值
                            str1 = devices["AttriButeData1"];
                            //比较关系值
                            str2 = devices["Range"];
                        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());
                        }
                        var temperatureSensor = common as TemperatureSensor;
                        if (temperatureSensor.SensorDiv == 1)
                        {
                            mList3.Add("℃");
                            Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1026");
                            Send.dictionary(deviceConditionsInfo, "AttriButeId", "0");
                            Send.dictionary(deviceConditionsInfo, "Range", "1");//1:等于AttriButeData1时触发动作
                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", "5000");//默认温度值50℃
                            Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
                        }
                        else
                        {
                            mList3.Add("%");
                            Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1029");
                            Send.dictionary(deviceConditionsInfo, "AttriButeId", "0");
                            Send.dictionary(deviceConditionsInfo, "Range", "1");//1:等于AttriButeData1时触发动作
                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", "5000");//默认湿度值50%
                            Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
                        }
                        mUIPickerView.setNPicker(mList1, mList2, mList3);
                        #endregion
                        mUIPickerView.OnSelectChangeEvent += (s1, s2, s3) =>
                        Send.dictionary(deviceConditionsInfo, "AttriButeId", "0");
                        Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
                        completeView.Show(4);
                        PublicInterface publicInterface = new PublicInterface();
                        publicInterface.TemperatureShow(completeView.fraView, common, str2, str1, (relationValueStr, tempValueStr) =>
                        {
                            ///温度进率转换*100
                            var strValue = (int.Parse(mList2[s2]) * 100).ToString();
                            SelectedDeviceStatus = "TemperatureSensor";
                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", strValue);
                            switch (mList1[s1])
                            {
                                case ">":
                                    {
                                        Send.dictionary(deviceConditionsInfo, "Range", "0");
                                    }
                                    break;
                                case "<":
                                    {
                                        Send.dictionary(deviceConditionsInfo, "Range", "2");
                                    }
                                    break;
                                case "=":
                                    {
                                        Send.dictionary(deviceConditionsInfo, "Range", "1");
                                    }
                                    break;
                                case "≥":
                                    {
                                        Send.dictionary(deviceConditionsInfo, "Range", "6");
                                    }
                                    break;
                                case "≤":
                                    {
                                        Send.dictionary(deviceConditionsInfo, "Range", "7");
                                    }
                                    break;
                            }
                        };
                        //默认=,50
                        int index1 = 2, index2 = 49;
                        if (edit && devices != null)
                        {
                            SelectedDeviceStatus = "";
                            string s = "";
                            switch (devices["Range"])
                            {
                                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
                            var dd = (int.Parse(devices["AttriButeData1"])/100).ToString();
                            index2 = mList2.IndexOf(dd);
                        }
                        ///更新最新状态;
                        mUIPickerView.setCurrentItems(index1, index2, 0);
                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", tempValueStr);
                            Send.dictionary(deviceConditionsInfo, "Range", relationValueStr);
                        });
                    }
                    break;
@@ -700,7 +602,7 @@
                        taskListInfo.Add(switchdictionary);
                        completeView.Show(l).AddChidren(openView.Show());
                        openView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                        horizontalSeekBarRowLien.Y = openView.frameLayout.Bottom;
                        horizontalSeekBarVol.Y = openView.frameLayout.Bottom;
                        completeView.Show(l).AddChidren(horizontalSeekBarRowLien);
@@ -1258,7 +1160,8 @@
                        };
                    }
                    break;
                case DeviceType.ColorTemperatureLight: {
                case DeviceType.ColorTemperatureLight:
                    {
                        flMain.RemoveFromParent();
                        var nightlight = new Nightlight();
                        UserView.HomePage.Instance.AddChidren(nightlight);
@@ -1271,13 +1174,13 @@
                        {
                            nightlight.Show(common, edit, _if[1]);
                        }
                    }
                    break;
            }
            completeView.Btncomplete.MouseUpEventHandler += (sender, e) =>
            {
                //UserView.HomePage.Instance.ScrollEnabled = true;
                UserView.HomePage.Instance.ScrollEnabled = true;
                if (SelectedDeviceStatus != "")
                {
                    if (_if[0] == "condition")
@@ -1339,11 +1242,12 @@
                        }
                        break;
                }
            };
        }
        /// <summary>
        /// 空调模式的状态
        /// </summary>
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;
            }