HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2021-01-14 d78515ac4ac8cf4a1785d9df18058d6724f12b79
ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AirQualitySensorLogic.cs
@@ -25,7 +25,13 @@
            {
                curLedTimeData = ledTimeData;
            }
            setLedTimeData = curLedTimeData;
            setLedTimeData.enable= curLedTimeData.enable;
            setLedTimeData.endHour = curLedTimeData.endHour;
            setLedTimeData.endMin = curLedTimeData.endMin;
            setLedTimeData.remark = curLedTimeData.remark;
            setLedTimeData.serialNum = curLedTimeData.serialNum;
            setLedTimeData.startHour = curLedTimeData.startHour;
            setLedTimeData.startMin = curLedTimeData.startMin;
            this.curNum = curNum;
        }
@@ -41,7 +47,7 @@
        /// <summary>
        /// 灯设置灯数据
        /// </summary>
        TemperatureSensor.LedTimeData setLedTimeData = new TemperatureSensor.LedTimeData();
        TimeData setLedTimeData = new TimeData();
        /// <summary>
        /// 当前存在的灯数据
        /// </summary>
@@ -51,6 +57,10 @@
        /// </summary>
        EditText nameLed;
        public Action refreshAction;
        /// <summary>
        /// 当前操作索引
        /// </summary>
        private int curOperateIndex = 0;
        #endregion
        /// <summary>
@@ -128,11 +138,11 @@
            logicnamefl.AddChidren(nameLed);
            if (string.IsNullOrEmpty(curLedTimeData.remark))
            {
                nameLed.PlaceholderText = Language.StringByID(MyInternationalizationString.LEDSet);
                nameLed.Text = Language.StringByID(MyInternationalizationString.LEDSet);
            }
            else
            {
                nameLed.PlaceholderText = curLedTimeData.remark;
                nameLed.Text = curLedTimeData.remark;
            }
            #endregion
@@ -268,7 +278,7 @@
             {
                 try
                 {
                     if (setLedTimeData.startHour == 0)
                     if (setLedTimeData.startHour == -1)
                     {
                         Application.RunOnMainThread(() =>
                   {
@@ -276,7 +286,7 @@
                   });
                         return;
                     }
                     if (setLedTimeData.endHour == 0)
                     if (setLedTimeData.endHour == -1)
                     {
                         Application.RunOnMainThread(() =>
                   {
@@ -284,6 +294,13 @@
                   });
                         return;
                     }
                     if (!CheckValidTime(setLedTimeData.startHour, setLedTimeData.startMin, setLedTimeData.endHour, setLedTimeData.endMin))
                     {
                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.LedBindTip1), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(CommonPage.Instance);
                         return;
                     }
                     Application.RunOnMainThread(() =>
               {
                   CommonPage.Loading.Start("");
@@ -295,6 +312,19 @@
                     else
                     {
                         setLedTimeData.remark = nameLed.Text;
                     }
                     if (!string.IsNullOrEmpty(setLedTimeData.remark))
                     {
                         var reamarkGwBytes = System.Text.Encoding.UTF8.GetBytes(setLedTimeData.remark);
                         if (36 < reamarkGwBytes.Length)
                         {
                             Application.RunOnMainThread(() =>
                       {
                           new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.LedNameTooLong), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(CommonPage.Instance);
                       });
                             return;
                         }
                     }
                     setLedTimeData.enable = 1;
@@ -315,19 +345,26 @@
                             }
                         }
                     }
                     var result = await sensor.SetAirQualitySensorLedTime(setLedTimeData);
                     TemperatureSensor.LedTimeData ledTimeDataTemp = new TemperatureSensor.LedTimeData();
                     ledTimeDataTemp.enable = setLedTimeData.enable;
                     ledTimeDataTemp.endHour = setLedTimeData.endHour;
                     ledTimeDataTemp.endMin = setLedTimeData.endMin;
                     ledTimeDataTemp.remark = setLedTimeData.remark;
                     ledTimeDataTemp.serialNum = setLedTimeData.serialNum;
                     ledTimeDataTemp.startHour = setLedTimeData.startHour;
                     ledTimeDataTemp.startMin = setLedTimeData.startMin;
                     var result = await sensor.SetAirQualitySensorLedTime(ledTimeDataTemp);
                     if (result != null && result.responseData != null)
                     {
                         if (result.responseData.status == 0)
                         {
                             if (sensor.AirQualitySensorLedTimeList.ContainsKey(setLedTimeData.serialNum))
                             {
                                 sensor.AirQualitySensorLedTimeList[setLedTimeData.serialNum] = setLedTimeData;
                                 sensor.AirQualitySensorLedTimeList[setLedTimeData.serialNum] = ledTimeDataTemp;
                             }
                             else
                             {
                                 sensor.AirQualitySensorLedTimeList.Add(setLedTimeData.serialNum, setLedTimeData);
                                 sensor.AirQualitySensorLedTimeList.Add(setLedTimeData.serialNum, ledTimeDataTemp);
                             }
                             Application.RunOnMainThread(() =>
                       {
@@ -370,6 +407,7 @@
            Action okAction = null;
            for (int i = 0; i < 2; i++)
            {
                int curIndex = i;
                var timeFrameLayout = new FrameLayout
                {
                    Width = Application.GetRealWidth(867),
@@ -398,6 +436,7 @@
                    Height = Application.GetRealHeight(58),
                    X = Application.GetRealWidth(429),
                    Y = Application.GetRealHeight(32),
                    Tag = curIndex,
                    TextAlignment = TextAlignment.CenterRight,
                    TextID = MyInternationalizationString.LEDSetTime,
                    TextColor = ZigbeeColor.Current.XMGray3,
@@ -413,12 +452,12 @@
                    BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
                };
                timeFrameLayout.AddChidren(line2);
                int curIndex = i;
                if (i == 1)
                {
                    timeFrameLayout.Y = Application.GetRealHeight(331);
                    timeLeftText.TextID = MyInternationalizationString.endtime;
                    if (curLedTimeData.endHour != 0)
                    if (curLedTimeData.endHour != -1)
                    {
                        string em = curLedTimeData.endMin.ToString();
                        if (curLedTimeData.endMin < 10)
@@ -430,7 +469,7 @@
                }
                else
                {
                    if (curLedTimeData.startHour != 0)
                    if (curLedTimeData.startHour != -1)
                    {
                        string sm = curLedTimeData.startMin.ToString();
                        if (curLedTimeData.startMin < 10)
@@ -462,7 +501,7 @@
            this.bottomRadiusFrameLayout.Y = Application.GetRealHeight(930 + 127);
            this.bottomRadiusFrameLayout.RemoveAll();
            this.BottomRadiusFrameLayout(this);
            curOperateIndex = curIndex;
            var mUIPickerView = new UIPickerView()
            {
                X = Application.GetRealWidth(0),
@@ -494,6 +533,13 @@
                {
                    cur1 = 1;
                }
                else
                {
                    if (curLedTimeData.startHour ==0)
                    {
                        cur1 = 1;
                    }
                }
                if (curLedTimeData.startHour != 0)
                {
                    cur2 = curLedTimeData.startHour - 1;
@@ -501,6 +547,10 @@
                    {
                        cur2 = curLedTimeData.startHour - 13;
                    }
                }
                else
                {
                    cur2 = 11;
                }
                cur3 = curLedTimeData.startMin;
@@ -511,6 +561,13 @@
                {
                    cur1 = 1;
                }
                else
                {
                    if (curLedTimeData.endHour == 0)
                    {
                        cur1 = 1;
                    }
                }
                if (curLedTimeData.endHour != 0)
                {
                    cur2 = curLedTimeData.endHour - 1;
@@ -518,6 +575,10 @@
                    {
                        cur2 = curLedTimeData.endHour - 13;
                    }
                }
                else
                {
                    cur2 = 11;
                }
                cur3 = curLedTimeData.endMin;
@@ -563,15 +624,61 @@
            };
            btnFinish.MouseUpEventHandler += (sender1, e1) =>
            {
                if (setLedTimeData.endHour != 0)
                if (curOperateIndex == 0)
                {
                    if (curIndex == 0)
                    if (setLedTimeData.startHour == -1)
                    {
                        setLedTimeData.startHour = 1;
                    }
                    if (setLedTimeData.startHour == 24)
                    {
                        setLedTimeData.startHour = 0;
                    }
                    string sm = setLedTimeData.startMin.ToString();
                    if (setLedTimeData.startMin < 10)
                    {
                        sm = "0" + setLedTimeData.startMin;
                    }
                    if (int.Parse(timeRightText.Tag.ToString()) == curOperateIndex)
                    {
                        timeRightText.Text = setLedTimeData.startHour + ":" + sm;
                    }
                }
                else
                {
                    if (setLedTimeData.endHour == -1)
                    {
                        setLedTimeData.endHour = 1;
                    }
                    if (setLedTimeData.endHour == 24)
                    {
                        setLedTimeData.endHour = 0;
                    }
                    string em = setLedTimeData.endMin.ToString();
                    if (setLedTimeData.endMin < 10)
                    {
                        em = "0" + setLedTimeData.endMin;
                    }
                    if (int.Parse(timeRightText.Tag.ToString()) == curOperateIndex)
                    {
                        timeRightText.Text = setLedTimeData.endHour + ":" + em;
                    }
                }
                if (setLedTimeData.endHour != -1)
                {
                    //首次输入     
                    if (curOperateIndex == 0)
                    {
                        if (!CheckValidTime(setLedTimeData.startHour, setLedTimeData.startMin, setLedTimeData.endHour, setLedTimeData.endMin))
                        {
                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.LedBindTip1), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(CommonPage.Instance);
                            return;
                        }
                        this.shadowRadiusFrameLayout.RemoveFromParent();
                    }
                    else
                    {
@@ -580,36 +687,13 @@
                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.LedBindTip2), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(CommonPage.Instance);
                            return;
                        }
                        this.shadowRadiusFrameLayout.RemoveFromParent();
                    }
                }
                if (curIndex == 0)
                {
                    if (setLedTimeData.startHour == 0)
                    {
                        setLedTimeData.startHour = 1;
                    }
                    string sm = setLedTimeData.startMin.ToString();
                    if (setLedTimeData.startMin < 10)
                    {
                        sm = "0" + setLedTimeData.startMin;
                    }
                    timeRightText.Text = setLedTimeData.startHour + ":" + sm;
                }
                else
                {
                    if (setLedTimeData.endHour == 0)
                    {
                        setLedTimeData.endHour = 1;
                    }
                    string em = setLedTimeData.endMin.ToString();
                    if (setLedTimeData.endMin < 10)
                    {
                        em = "0" + setLedTimeData.endMin;
                    }
                    timeRightText.Text = setLedTimeData.endHour + ":" + em;
                    this.shadowRadiusFrameLayout.RemoveFromParent();
                }
                this.shadowRadiusFrameLayout.RemoveFromParent();
            };
            this.shadowRadiusFrameLayout.MouseUpEventHandler += (sender1, e1) =>
            {
@@ -623,16 +707,51 @@
        /// </summary>
        /// <returns></returns>
        private bool CheckValidTime(int st, int sm, int et, int em)
        {
        {
            //开始时间
            string nowValue1 = st.ToString() + sm.ToString().PadLeft(2, '0');
            string nowValue1 = "";
            nowValue1 = st.ToString().PadLeft(2, '0') + sm.ToString().PadLeft(2, '0');
            //结束时间
            string nowValue2 = et.ToString() + em.ToString().PadLeft(2, '0');
            string nowValue2 = "";
            nowValue2 = et.ToString().PadLeft(2, '0') + em.ToString().PadLeft(2, '0');
            if (nowValue1.CompareTo(nowValue2) == 1)
            {
                return false;
            }
            return true;
        }
        public class TimeData
        {
            /// <summary>
            /// 序号(正常序号0~4,共5个)
            /// </summary>
            public int serialNum = -1;
            /// <summary>
            /// 使能位
            /// <para>0-无效 1--有效</para>
            /// </summary>
            public int enable = 0;
            /// <summary>
            /// 起始时
            /// </summary>
            public int startHour = -1;
            /// <summary>
            /// 起始分
            /// </summary>
            public int startMin;
            /// <summary>
            /// 结束时
            /// </summary>
            public int endHour = -1;
            /// <summary>
            /// 结束分
            /// </summary>
            public int endMin;
            /// <summary>
            /// 备注
            /// </summary>
            public string remark;
        }
    }
}