From 9508510f0b27da3278fa1161eb2ba3dd1e3e2030 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 26 七月 2023 13:14:00 +0800
Subject: [PATCH] 2023年07月26日13:12:21

---
 HDL_ON/UI/UI1-Login/LoginPage.cs |  738 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 688 insertions(+), 50 deletions(-)

diff --git a/HDL_ON/UI/UI1-Login/LoginPage.cs b/HDL_ON/UI/UI1-Login/LoginPage.cs
index 7f8e495..c5cfa1d 100644
--- a/HDL_ON/UI/UI1-Login/LoginPage.cs
+++ b/HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -22,6 +22,76 @@
                 Application.HideSoftInput();
             };
             pm = new HttpServerRequest();
+#if __ANDROID__
+            BaseActivity.HideKeyboardEvent = () => {
+                if (this.Y != 0)
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        try
+                        {
+                            this.Y = 0;
+                        }
+                        catch { }
+                    });
+                }
+            };
+            BaseActivity.ShowKeyboardEvent = () => {
+                try
+                {
+                    if (etPassword.Foucs)
+                    {
+                     
+                        new Thread(() =>
+                        {
+                            Thread.Sleep(100);
+                            if (this.Y < 0)
+                            {
+                                return;
+                            }
+                            for (var i = 0; i < 10; i++)
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    try
+                                    {
+                                        this.Y = 0 - Application.GetRealHeight(10 * i);
+                                    }
+                                    catch { }
+                                });
+                                Thread.Sleep(10);
+                            }
+                        })
+                        { IsBackground = true }.Start();
+                    }
+                }
+                catch { }
+            };
+            BaseActivity.SmsAction = (message) => {
+                Console.WriteLine($"鎺ユ敹鍒扮煭淇★細"+ message);
+
+                string pattern = @"銆怘DL銆�.*(\d{6}).*";
+
+                Regex regex = new Regex(pattern);
+
+                Match match = regex.Match(message);
+
+                if (match.Success)
+                {
+                    string code = match.Groups[1].Value;
+                    Console.WriteLine("楠岃瘉鐮佷负锛�" + code);
+                    if(loginType==0 && logintMode == 1)
+                    {
+                        etPassword.Text = code;
+                    }
+                    smsCode = code;
+                }
+                else
+                {
+                    Console.WriteLine("鏈壘鍒伴獙璇佺爜锛�");
+                }
+            };
+#endif
         }
 
         public override void RemoveFromParent()
@@ -33,13 +103,20 @@
                 waitPage = null;
             }
 
+#if __ANDROID__
+            BaseActivity.HideKeyboardEvent = () => {
+
+            };
+            BaseActivity.ShowKeyboardEvent = () => { };
+            BaseActivity.SmsAction = (sms) => { };
+#endif
             base.RemoveFromParent();
 
-            ////2020-12-22 澧炲姞鐐瑰嚮闅愯棌閿洏浜嬩欢
+            //2020-12-22 澧炲姞鐐瑰嚮闅愯棌閿洏浜嬩欢
             //Application.HideSoftInput();
         }
 
-        #region 灞�閮ㄥ彉閲�
+#region 灞�閮ㄥ彉閲�
         /// <summary>
         /// 鐧诲綍绫诲瀷
         /// 0:鎵嬫満
@@ -54,9 +131,13 @@
         int logintMode = 0;
         string account = "";
         string password = "";
-        #endregion
+        /// <summary>
+        /// 鐭俊楠岃瘉鐮�
+        /// </summary>
+        string smsCode = "";
+#endregion
 
-        #region 鎺т欢鍒楄〃
+#region 鎺т欢鍒楄〃
         /// <summary>
         /// 绛夊緟鎻愮ず
         /// </summary>
@@ -149,7 +230,7 @@
         /// 鏈嶅姟鍣ㄨ姹傚璞�
         /// </summary>
         HttpServerRequest pm;
-        #endregion
+#endregion
 
         string verAccount = "";
 
@@ -171,6 +252,8 @@
 #if __Android__
             OnAppConfig.Instance.isAgreePrivacyPolicy = true;
 #endif
+            this.BackgroundColor = CSS_Color.MainBackgroundColor;
+
             var btnIcon = new Button()
             {
                 X = Application.GetRealWidth(28),
@@ -190,6 +273,9 @@
                 UnSelectedImagePath = "Public/Logo-bg.png"
             };
             bodyView.AddChidren(btnIcon_bg);
+            btnIcon_bg.MouseDownEventHandler += (sender, e) => {
+                Application.HideSoftInput();
+            };
 
 #if DEBUG
             btnIcon_bg.MouseUpEventHandler += (sender, e) =>
@@ -208,24 +294,43 @@
                 //return;
                 if (b)
                 {
-                    //etAccount.Text = "13375012446";//娴嬭瘯鏈嶅姟鍣�
                     //etAccount.Text = "1033326940@qq.com";
                     //etAccount.Text = "18022428438";//wjc
                     //etAccount.Text = "13602944661";//kx
                     //etAccount.Text = "13226233133";//璞嗚眴
-                    etAccount.Text = "18316672920";
                     //etAccount.Text = "18316120654";//tujie
                     //etAccount.Text = "13450425807";//榛勭婧� knx椤圭洰
-                    etAccount.Text = "18244942707";
-                    etAccount.Text = "tf@smarttech.com.ua";
-                    etAccount.Text = "13418062953";
+                    //etAccount.Text = "tf@smarttech.com.ua";
+                    //etAccount.Text = "455740454@qq.com";
+                    //etAccount.Text = "18688565449";
+                    //etAccount.Text = "18570064522";
+                    //etAccount.Text = "18718417827";
+                    //etAccount.Text = "18188019284";
+                    //etAccount.Text = "13143792049";
+                    //etAccount.Text = "13288623489";//缃楁檽涓�
+                    //etAccount.Text = "18244942707";
+                    //etAccount.Text = "13143792049";
+                    etAccount.Text = "18688414428";//澶╂渤3妤�
+                    //etAccount.Text = "18244942707";
+                    //etAccount.Text = "13418062953";
+                    etAccount.Text = "13138683659";
+                    //etAccount.Text = "15217626103";
+                    //etAccount.Text = "18100573477";
+                    //etAccount.Text = "18321091245";
+                    //etAccount.Text = "13751916353";
+                    etAccount.Text = "13549566666";
+                    etAccount.Text = "support7@hdlautomation.com";
+                    etAccount.Text = "13375012446";//娴嬭瘯鏈嶅姟鍣�
+                    etAccount.Text = "15855403939";
+                    etAccount.Text = "15006564444";
+                    etAccount.Text = "13580507523";
+                    //etAccount.Text = "12345678904";//2.0 娴嬭瘯  钀ょ煶
+                    etAccount.Text = "18316672920";
                 }
                 else
                 {
-                    //etAccount.Text = "15018447586";//闊充箰鏁伴噺鍒锋柊闂
                     //etAccount.Text = "464027401@qq.com";//
                     //etAccount.Text = "15217626103";//
-                    //etAccount.Text = "13682244600";//娉㈠摜
                     etAccount.Text = "13168123446";//鏄嗘槑閲戣寕椤圭洰锛屾柊椋庨棶棰�
                     //etAccount.Text = "2949126848@qq.com";//闄堢惓
                     etAccount.Text = "15014291819 ";
@@ -246,22 +351,42 @@
                     //etAccount.Text = "info@smartlife-ks.com";
                     //etAccount.Text = "551775569@qq.com";//wcf
                     etAccount.Text = "15626203746";
-                    //etAccount.Text = "18244942707";
                     //etAccount.Text = "zhangquansongjava@163.com";
                     //etAccount.Text = "s.savinov@hdlautomation.ru";
+
                 }
                 b = !b;
                 etPassword.Text = "123456";
-                if(etAccount.Text == "13418062953")
+                if(etAccount.Text == "18188019284")
                 {
-                    etPassword.Text = "a123456";
+                    etPassword.Text = "CEZUJHSZ";
+                }
+                else if(etAccount.Text == "13143792049")
+                {
+                    etPassword.Text = "BVVBQATD";
+                }else if(etAccount.Text == "13288623489")
+                {
+                    etPassword.Text = "luoxiaodong";
+                }else if(etAccount.Text == "18688414428")
+                {
+                    etPassword.Text = "HDL1985000";
+                }else if (etAccount.Text == "15855403939")
+                {
+                    etPassword.Text = "yyr123456";
+                }
+                else if (etAccount.Text == "18100573477")
+                {
+                    etPassword.Text = "huang12345";
+                }else if(etAccount.Text == "15006564444")
+                {
+                    etPassword.Text = "zht626800";
                 }
                 //etPassword.Text = "Hdl85521566";
                 btnLogin.IsSelected = true;
             };
 #endif
 
-            #region 鐧诲綍鏂瑰紡閫夋嫨
+#region 鐧诲綍鏂瑰紡閫夋嫨
             btnPhoneLogin = new Button()
             {
                 X = Application.GetRealWidth(28),
@@ -283,7 +408,7 @@
                 Height = Application.GetRealHeight(40),
                 TextID = StringId.LoginByEmail,
                 TextColor = CSS_Color.PromptingColor1,
-                TextAlignment = TextAlignment.Center,
+                TextAlignment = TextAlignment.CenterLeft,
                 TextSize = CSS_FontSize.TextFontSize,
             };
             bodyView.AddChidren(btnEmailLogin);
@@ -647,8 +772,8 @@
 #region 鍔熻兘
                 var lightRgb1 = new Function()
                 {
-                    sid = "light1",
-                    deviceId = "light1",
+                    sid = "light10000000000",
+                    deviceId = "light10000000000",
                     name = Language.CurrentLanguage == "Chinese"?  "瀹㈠巺姘涘洿鐏�1": "RGB light 1",
                     spk = SPK.LightRGB,
                     roomIds = new List<string>() { "1405771024583090178"},
@@ -658,8 +783,12 @@
                         new FunctionAttributes() { key = "on_off",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
                         new FunctionAttributes() { key = "brightness",value =new List<string>(){ "0","100" }, curValue="100",state = "100"   },
                         new FunctionAttributes() { key = "rgb",value =new List<string>(){ "0","100" }, curValue="0,0,0",state = "0,0,0"   },
-                        //new FunctionAttributes() { key = "fade_time",value =new List<string>(){ "0","100" }, curValue="0",state = "0"   },
+                        new FunctionAttributes() { key = "fade_time",value =new List<string>(){ "0","100" }, curValue="0",state = "0"   },
                         new FunctionAttributes() { key = "delay",value =new List<string>(){ "0","100" }, curValue="0",state = "0"   },
+                        new FunctionAttributes() { key = "colorful",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
+                        new FunctionAttributes() { key = FunctionAttributeKey.ColorfulBegin,value =new List<string>(){ "0","100" }, curValue="0,0,0",state = "0,0,0"   },
+                        new FunctionAttributes() { key = FunctionAttributeKey.ColorfulEnd,value =new List<string>(){ "0","100" }, curValue="0,0,0",state = "0,0,0"   },
+                        new FunctionAttributes() { key = FunctionAttributeKey.ColorfulTime,value =new List<string>(){ "0","100" }, curValue="0",state = "0"   },
                     },
                 };
                 lightRgb1.SaveFunctionFile();
@@ -754,6 +883,25 @@
                     },
                 };
                 curtain2.SaveFunctionFile();
+
+
+                var curtain3 = new Function()
+                {
+                    sid = "curtain3",
+                    deviceId = "curtain3",
+                    name = Language.CurrentLanguage == "Chinese" ? "鐧惧彾甯�" : "Curtain 3",
+                    spk = SPK.CurtainRoller,
+                    roomIds = new List<string>() { "1405771024583090178" },
+                    collect = true,
+                    attributes = new List<FunctionAttributes>()
+                    {
+                        new FunctionAttributes() { key = "on_off",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
+                        new FunctionAttributes() { key = "percent",value =new List<string>(){ "0","100" }, curValue="0",state = "0"   },
+                        new FunctionAttributes(){ key = "angle",curValue= "0",state = "0" },
+                    },
+                };
+                curtain3.SaveFunctionFile();
+
                 var fh = new Function()
                 {
                     sid = "floorheat1",
@@ -767,11 +915,502 @@
                         new FunctionAttributes() { key = "mode",value =new List<string>(){ "day", "night", "away", "normal", "timer" }, curValue="day",state = "day"   },
                         new FunctionAttributes() { key = "set_temp",value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 35,min = 5  },
                         new FunctionAttributes() { key = "room_temp",value =new List<string>(){ "" }, curValue="26",state = "26"   },
+                        new FunctionAttributes() { key = "temperature_type", value = new List<string>() { "掳F", "掳C" }, curValue = "掳C", state = "掳C" },
                     },
                 };
                 fh.SaveFunctionFile();
-#endregion
-#region 鍦烘櫙
+
+
+
+#if DEBUG
+
+
+                if (FunctionList.List.groupControls.Count == 0)
+                {
+                    FunctionList.List.groupControls.Add(new GroupControl()
+                    {
+                        name = "缇ゆ帶娴嬭瘯",
+                        collect = true,
+                        sid = "234567876545678765",
+                        uids = new List<string>()
+                        {
+                            "1405771024583090178",
+                            "9191a3a2-026f-4667-a0b1-e3af699e7295",
+                        },
+                        roomIds = new List<string>()
+                        {
+                            "1405771024583090178",
+                            "9191a3a2-026f-4667-a0b1-e3af699e7295",
+                        },
+                        sids = new List<GroupControlFunction>()
+                        {
+                            new GroupControlFunction(){
+                                sid = lightRgb1.sid,
+                                spk = SPK.LightRGB,
+                            },
+                            new GroupControlFunction(){
+                                sid = "light2",
+                                spk = SPK.LightRGB,
+                            },
+                        }
+                    });
+                }
+
+
+                var series1 = new Function()
+                {
+                    sid = "light10000000000series1",
+                    deviceId = "light10000000000series1",
+                    name = Language.CurrentLanguage == "Chinese" ? "搴忓垪1" : "Series1",
+                    spk = SPK.CommonSeries,
+                    roomIds = new List<string>() { "1405771024583090178" },
+                    attributes = new List<FunctionAttributes>()
+                    {
+                        new FunctionAttributes() { key = "on_off",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
+                    },
+                };
+                series1.SaveFunctionFile();
+
+
+                var series2 = new Function()
+                {
+                    sid = "light10000000000series2",
+                    deviceId = "light10000000000series2",
+                    name = Language.CurrentLanguage == "Chinese" ? "搴忓垪2" : "Series2",
+                    spk = SPK.CommonSeries,
+                    roomIds = new List<string>() { "1405771024583090178" },
+                    attributes = new List<FunctionAttributes>()
+                    {
+                        new FunctionAttributes() { key = "on_off",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
+                    },
+                };
+                series2.SaveFunctionFile();
+
+
+                var mechanicalArm = new Function()
+                {
+                    sid = "mechanicalArm1",
+                    deviceId = "mechanicalArm1",
+                    name = Language.CurrentLanguage == "Chinese" ? "鏈烘鎵�" : "Mechanical Arm",
+                    spk = SPK.MechanicalArm,
+                    roomIds = new List<string>() { "1405771024583090178" },
+                    attributes = new List<FunctionAttributes>()
+                    {
+                        new FunctionAttributes() { key = "on_off",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
+                    },
+                };
+                mechanicalArm.SaveFunctionFile();
+
+
+                var lightRgbw1 = new Function()
+                {
+                    sid = "light11",
+                    deviceId = "light11",
+                    name = Language.CurrentLanguage == "Chinese" ? "瀹㈠巺姘涘洿鐏�12" : "RGB light 21",
+                    spk = SPK.LightRGBW,
+                    roomIds = new List<string>() { "1405771024583090178" },
+                    collect = true,
+                    attributes = new List<FunctionAttributes>()
+                    {
+                        new FunctionAttributes() { key = "on_off",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
+                        new FunctionAttributes() { key = "brightness",value =new List<string>(){ "0","100" }, curValue="100",state = "100"   },
+                        new FunctionAttributes() { key = "rgbw",value =new List<string>(){ "0","100" }, curValue="0,0,0,0",state = "0,0,0,0"   },
+                        //new FunctionAttributes() { key = "fade_time",value =new List<string>(){ "0","100" }, curValue="0",state = "0"   },
+                        new FunctionAttributes() { key = "delay",value =new List<string>(){ "0","100" }, curValue="0",state = "0"   },
+                    },
+                };
+                FunctionList.List.Functions.Add(lightRgbw1);
+
+                FunctionList.List.Functions.Add(new Function
+                {
+                    name = "娴嬭瘯-绌鸿皟绉戞妧绯荤粺鎬绘帶",
+                    spk = SPK.AcstParent,
+                    collect = true,
+                    attributes = new List<FunctionAttributes>()
+                {
+                    new FunctionAttributes(){ key = FunctionAttributeKey.OnOff ,curValue = "on",state = "on" },
+                    new FunctionAttributes(){ key = AcstParent_AttrEnum.mode.ToString(),curValue = AcstParent_Attr_ModeValueEnum.cool.ToString(),state = AcstParent_Attr_ModeValueEnum.cool.ToString(),
+                         value = new List<string>
+                         {
+                             AcstParent_Attr_ModeValueEnum.cool.ToString(),
+                             AcstParent_Attr_ModeValueEnum.dry.ToString(),
+                             AcstParent_Attr_ModeValueEnum.fan.ToString(),
+                             AcstParent_Attr_ModeValueEnum.heat.ToString(),
+                             AcstParent_Attr_ModeValueEnum.humidity.ToString(),
+                             AcstParent_Attr_ModeValueEnum.heat_humidity.ToString(),
+                         }
+                    },
+                    new FunctionAttributes(){ key = AcstParent_AttrEnum.scene.ToString(), curValue = AcstParent_Attr_SceneValueEnum.at_home.ToString(), state = AcstParent_Attr_SceneValueEnum.at_home.ToString(),
+                        value = new List<string>()
+                        {
+                            AcstParent_Attr_SceneValueEnum.at_home.ToString(),
+                            AcstParent_Attr_SceneValueEnum.leave_home.ToString(),
+                            AcstParent_Attr_SceneValueEnum.sleep.ToString(),
+                        }
+                    },
+                    new FunctionAttributes(){ key = AcstParent_AttrEnum.day_electricity.ToString(),curValue = "99",state = "99"},
+                    new FunctionAttributes(){ key = AcstParent_AttrEnum.month_electricity.ToString(),curValue = "999",state = "999"},
+                    new FunctionAttributes(){ key = AcstParent_AttrEnum.total_electricity.ToString(),curValue = "9999",state = "9999"},
+                    new FunctionAttributes(){ key = AcstParent_AttrEnum.active_power.ToString(),curValue = "9999",state = "9999"},
+                    //new FunctionAttributes(){ key = AcstParent_AttrEnum.room_temp.ToString(),curValue = "26",state = "26"},
+                    //new FunctionAttributes(){ key = AcstParent_AttrEnum.room_humidity.ToString(),curValue = "66",state = "66"},
+                    //new FunctionAttributes(){ key = AcstParent_AttrEnum.co2.ToString(),curValue = "266",state = "266"},
+                    //new FunctionAttributes(){ key = AcstParent_AttrEnum.tvoc.ToString(),curValue = "666",state = "666"},
+                    //new FunctionAttributes(){ key = AcstParent_AttrEnum.pm25.ToString(),curValue = "36",state = "36"},
+                }
+                });
+
+                FunctionList.List.Functions.Add(new Function
+                {
+                    name = "娴嬭瘯-绌鸿皟绉戞妧绯荤粺瀛愭帶-1",
+                    spk = SPK.AcstSub,
+                    sid = "0000001",
+                    attributes = new List<FunctionAttributes>()
+                {
+                    new FunctionAttributes(){ key = FunctionAttributeKey.OnOff ,curValue = "on",state = "on" },
+                    new FunctionAttributes(){ key = AcstSub_AttrEnum.set_temp.ToString(),curValue = "26",state = "26"},
+                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_temp.ToString(),curValue = "26",state = "26"},
+                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_humidity.ToString(),curValue = "66",state = "66"},
+                }
+                });
+                FunctionList.List.Functions.Add(new Function
+                {
+                    name = "娴嬭瘯-绌鸿皟绉戞妧绯荤粺瀛愭帶-2",
+                    spk = SPK.AcstSub,
+                    sid = "0000002",
+                    attributes = new List<FunctionAttributes>()
+                {
+                    new FunctionAttributes(){ key = FunctionAttributeKey.OnOff ,curValue = "on",state = "on" },
+                    new FunctionAttributes(){ key = AcstSub_AttrEnum.set_temp.ToString(),curValue = "26",state = "26"},
+                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_temp.ToString(),curValue = "26",state = "26"},
+                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_humidity.ToString(),curValue = "66",state = "66"},
+                }
+                });
+                FunctionList.List.Functions.Add(new Function
+                {
+                    name = "娴嬭瘯-绌鸿皟绉戞妧绯荤粺瀛愭帶-3",
+                    spk = SPK.AcstSub,
+                    sid = "0000003",
+                    attributes = new List<FunctionAttributes>()
+                {
+                    new FunctionAttributes(){ key = FunctionAttributeKey.OnOff ,curValue = "on",state = "on" },
+                    new FunctionAttributes(){ key = AcstSub_AttrEnum.set_temp.ToString(),curValue = "26",state = "26"},
+                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_temp.ToString(),curValue = "26",state = "26"},
+                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_humidity.ToString(),curValue = "66",state = "66"},
+                }
+                });
+                FunctionList.List.Functions.Add(new Function
+                {
+                    name = "娴嬭瘯-绌鸿皟绉戞妧绯荤粺瀛愭帶-4",
+                    spk = SPK.AcstSub,
+                    sid = "0000004",
+                    attributes = new List<FunctionAttributes>()
+                {
+                    new FunctionAttributes(){ key = FunctionAttributeKey.OnOff ,curValue = "on",state = "on" },
+                    new FunctionAttributes(){ key = AcstSub_AttrEnum.set_temp.ToString(),curValue = "26",state = "26"},
+                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_temp.ToString(),curValue = "26",state = "26"},
+                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_humidity.ToString(),curValue = "66",state = "66"},
+                }
+                });
+                FunctionList.List.Functions.Add(new Function
+                {
+                    name = "娴嬭瘯-绌鸿皟绉戞妧绯荤粺瀛愭帶-5",
+                    spk = SPK.AcstSub,
+                    sid = "0000005",
+                    attributes = new List<FunctionAttributes>()
+                {
+                    new FunctionAttributes(){ key = FunctionAttributeKey.OnOff ,curValue = "on",state = "on" },
+                    new FunctionAttributes(){ key = AcstSub_AttrEnum.set_temp.ToString(),curValue = "26",state = "26"},
+                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_temp.ToString(),curValue = "26",state = "26"},
+                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_humidity.ToString(),curValue = "66",state = "66"},
+                }
+                });
+
+
+
+
+                FunctionList.List.Functions.Add(new Function
+                {
+                    name = "娴嬭瘯姊﹀够绐楀笜",
+                    spk = SPK.CurtainDream,
+                    sid = "1234577",
+                    attributes = new List<FunctionAttributes> {
+                        new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
+                        new FunctionAttributes(){ key = "percent",curValue= "100",state = "100" },
+                        new FunctionAttributes(){ key = "angle",curValue= "0",state = "0" },
+                    }
+                });
+
+                FunctionList.List.Functions.Add(new Function
+                {
+                    name = "娴嬭瘯姣背娉紶鎰熷櫒",
+                    spk = SPK.SenesorMegahealth,
+                    attributes = new List<FunctionAttributes>
+                    {
+                        new FunctionAttributes(){ key = "enable",curValue = "true",state = "true" },
+                        new FunctionAttributes(){ key = "people_num",curValue = "0",state = "0" },
+                        new FunctionAttributes(){ key = "people_id",curValue = "1",state = "1" },
+                        new FunctionAttributes(){ key = "target_status",curValue = "0",state = "0" },//0绌猴紝1璧帮紝2璺戯紝3鍧愶紝4璺屽�掞紝5绔�
+                        new FunctionAttributes(){ key = "people_status",curValue = "false",state = "false" },//鐘舵��  鏈変汉鏃犱汉
+                        //new FunctionAttributes(){ key = "",curValue = "",state = "" },
+                        //new FunctionAttributes(){ key = "",curValue = "",state = "" },
+                        //new FunctionAttributes(){ key = "",curValue = "",state = "" },
+                    }
+                });
+                FunctionList.List.Functions.Add(new Function
+                {
+                    name = "娴嬭瘯娓╂帶鍣�",
+                    spk = SPK.HvacCac,
+                    attributes = new List<FunctionAttributes>
+                {
+                    new FunctionAttributes(){ key = "on_off",curValue = "on",state = "on" },
+                    new FunctionAttributes(){ key = "cac_valve",curValue = "on",state = "on" },//姣涚粏闃�
+                    new FunctionAttributes(){ key = "fh_valve",curValue = "on",state = "on" },//鍦版殩闃�
+                    new FunctionAttributes(){ key = "mode",curValue = "cool",state = "cool", value = new List<string>{ "cool","heat"} },
+                    new FunctionAttributes(){ key = "set_temp",curValue = "20",state = "20",min = 16,max = 30 },
+                    new FunctionAttributes(){ key = "room_temp",curValue = "20",state = "20" },
+                    new FunctionAttributes(){ key = "dew_point_temp",curValue = "20",state = "20" },//闇茬偣娓╁害
+                    new FunctionAttributes(){ key = "surface_temp",curValue = "20",state = "20" },//琛ㄩ潰娓╁害
+                    new FunctionAttributes(){ key = "energy_saving",curValue = "true",state = "true" },//鑺傝兘
+                    new FunctionAttributes(){ key = "room_humidity",curValue = "66",state = "66" },
+                    //new FunctionAttributes(){ key = "",curValue = "",state = "" },
+                }
+                });
+
+                //FunctionList.List.Functions.Add(new Function
+                //{
+                //    name = "闂ㄩ攣",
+                //    spk = SPK.DoorLock,
+                //    sid = "12345",
+                //    attributes = new List<FunctionAttributes> {
+                //        new FunctionAttributes(){ key = "door_status",curValue= "open",state = "open" },
+                //        new FunctionAttributes(){ key = "normal_open",curValue= "true",state = "true" },
+                //        new FunctionAttributes(){ key = "normal_open_countdown",curValue= "10",state = "10" },
+                //        new FunctionAttributes(){ key = "local_id",curValue= "10",state = "10" },
+                //        new FunctionAttributes(){ key = "door_volume",curValue= "10",state = "10" },
+                //        new FunctionAttributes(){ key = "door_volume_step",curValue= "up",state = "up" },
+                //        new FunctionAttributes(){ key = "battery_value",curValue= "100",state = "100" },
+                //        new FunctionAttributes(){ key = "battery_percentage",curValue= "100",state = "100" },
+                //        new FunctionAttributes(){ key = "battery_state",curValue= "high",state = "high" },
+                //    }
+                //});
+                //FunctionList.List.Functions.Add(new Function
+                //{
+                //    name = "闂ㄩ攣1",
+                //    spk = SPK.DoorLock,
+                //    sid = "123",
+                //    attributes = new List<FunctionAttributes> {
+                //        new FunctionAttributes(){ key = "door_status",curValue= "open",state = "open" },
+                //        new FunctionAttributes(){ key = "normal_open",curValue= "true",state = "true" },
+                //        new FunctionAttributes(){ key = "normal_open_countdown",curValue= "10",state = "10" },
+                //        new FunctionAttributes(){ key = "local_id",curValue= "10",state = "10" },
+                //        new FunctionAttributes(){ key = "door_volume",curValue= "10",state = "10" },
+                //        new FunctionAttributes(){ key = "door_volume_step",curValue= "up",state = "up" },
+                //        new FunctionAttributes(){ key = "battery_value",curValue= "100",state = "100" },
+                //        new FunctionAttributes(){ key = "battery_percentage",curValue= "100",state = "100" },
+                //        new FunctionAttributes(){ key = "battery_state",curValue= "high",state = "high" },
+                //    }
+                //});
+
+                //FunctionList.List.Functions.Add(new Function()
+                //{
+                //    spk = SPK.PanelSocket,
+                //    name = "闈㈡澘鎻掑骇",
+                //    attributes = new List<FunctionAttributes>
+                //    {
+                //        new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
+                //        new FunctionAttributes(){ key = "on_off_usb",curValue= "on",state = "on" },
+                //        new FunctionAttributes(){ key = "active_power",curValue= "220",state = "220" },
+                //        new FunctionAttributes(){ key = "voltage",curValue= "5",state = "5" },
+                //        new FunctionAttributes(){ key = "current",curValue= "110",state = "110" },
+                //        new FunctionAttributes(){ key = "total_electricity",curValue= "123.33",state = "123.33" },
+                //    }
+                //});
+
+                //FunctionList.List.Functions.Add(new Function()
+                //{
+                //    spk = SPK.SensorDryContact,
+                //    name = "骞叉帴鐐�",
+                //    attributes = new List<FunctionAttributes>()
+                //    {
+                //        new FunctionAttributes(){ key = "status",curValue= "on",state = "on" },
+                //    },
+                //});
+
+                //FunctionList.List.Functions.Add(new Function()
+                //{
+                //    spk = SPK.SensorPm25,
+                //    name = "娴嬭瘯Pm2.5",
+                //    attributes = new List<FunctionAttributes>()
+                //    {
+                //        new FunctionAttributes(){ key = "pm25",curValue= "70",state = "70" },
+                //    },
+                //    attrKeyConfigs = new List<AttrKeyConfig>()
+                //    {
+                //        new AttrKeyConfig (){
+                //            key = "pm2.5",
+                //            type = "interval" ,
+                //            unit = "ug/m鲁",
+                //            configs = new List<AttrKeyInfo>(){
+                //               new AttrKeyInfo(){ start = "0",end = "75",color = "0xFFADE764", desc = "鑹ソ"},
+                //               new AttrKeyInfo(){ start = "76",end = "150",color = "0xFFFFD154",desc = "杞�/涓害姹℃煋"},
+                //               new AttrKeyInfo(){ start = "151",end = "500",color = "0xFFFF9D54",desc = "閲嶅害/涓ラ噸姹℃煋"},
+                //            }
+                //        }
+                //    },
+                //});
+
+                //FunctionList.List.Functions.Add(new Function()
+                //{
+                //    spk = SPK.SensorHelp,
+                //    name = "娴嬭瘯绱ф�ユ眰鍔╂寜閽�",
+                //    attributes = new List<FunctionAttributes>()
+                //    {
+                //        new FunctionAttributes(){ key = "status",curValue= "on",state = "on" },
+                //        new FunctionAttributes(){ key = "alarm_status",curValue= "alarm",state = "alarm" },
+                //        new FunctionAttributes(){ key = "battery_value",curValue= "200",state = "200" },
+                //        new FunctionAttributes(){ key = "battery_percentage",curValue= "10",state = "10" },
+                //        new FunctionAttributes(){ key = "battery_state",curValue= "low",state = "low" },
+                //    },
+                //});
+
+                //FunctionList.List.Functions.Add(new Function()
+                //{
+                //    spk = SPK.AirSwitch,
+                //    name = "鏅鸿兘绌哄紑",
+                //    attributes = new List<FunctionAttributes>()
+                //    {
+                //        new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
+                //    },
+                //});
+
+                //FunctionList.List.Functions.Add(new Function()
+                //{
+                //    spk = SPK.AirFreshStandard,
+                //    name = "娴嬭瘯鏂伴",
+                //    attributes = new List<FunctionAttributes>()
+                //    {
+                //        new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
+                //        new FunctionAttributes(){ key = "fan",curValue= "low",state = "low" ,value = new List<string>(){ "high", "medium", "low" } },
+                //    },
+                //});
+
+
+                //FunctionList.List.Functions.Add(new Function()
+                //{
+                //    spk = SPK.HvacAirFreshJinmao,
+                //    name = "娴嬭瘯閲戣寕鏂伴",
+                //    attributes = new List<FunctionAttributes>()
+                //    {
+                //        new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
+                //        new FunctionAttributes(){ key = "mode",curValue= "humidification",state = "humidification" ,value = new List<string>(){ "humidification", "fan" } },
+                //        new FunctionAttributes(){ key = "energy",curValue= "true",state = "true" ,value = new List<string>(){ "true", "false" } },
+                //        new FunctionAttributes(){ key = "fan",curValue= "level_1",state = "level_1" ,value = new List<string>(){ "level_1", "level_2", "level_3","auto" } },
+                //        new FunctionAttributes(){ key = "humidity",curValue= "0",state = "0" ,value = new List<string>(){  },min = 0,max = 100 },
+                //        new FunctionAttributes(){ key = "indoor_temp",curValue= "26",state = "26" ,value = new List<string>(){  },min = 0,max = 100 },
+                //        new FunctionAttributes(){ key = "indoor_humidity",curValue= "0",state = "0" ,value = new List<string>(){  },min = 0,max = 100 },
+                //        new FunctionAttributes(){ key = "filter_remain",curValue= "0",state = "0" ,value = new List<string>(){  },min = 0,max = 100 },
+                //        new FunctionAttributes(){ key = "filter_timeout",curValue= "false",state = "false" ,value = new List<string>(){ "true", "false"  }},
+                //    },
+                //});
+
+                //FunctionList.List.Functions.Add(new Function()
+                //{
+                //    spk = SPK.SensorGas,
+                //    name = "鐕冩皵浼犳劅鍣�",
+                //    attributes = new List<FunctionAttributes>()
+                //    {
+                //        new FunctionAttributes(){ key = "enable",curValue= "true",state = "true" ,value = new List<string>(){ "true", "false" } },
+                //        new FunctionAttributes(){ key = "status",curValue= "normal",state = "normal" ,value = new List<string>(){ "alarm", "normal" } },
+                //    },
+                //});
+
+                //FunctionList.List.Functions.Add(new Function() { spk = SPK.PjtIr, name = "娴嬭瘯鎶曞奖浠�",
+                //                            attributes = new List<FunctionAttributes>() {
+                //                                new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
+                //                                new FunctionAttributes(){ key = "computer",value = new List<string>(){"鐢佃剳" } },
+                //                                new FunctionAttributes(){ key = "video",value = new List<string>(){"瑙嗛" } },
+                //                                new FunctionAttributes(){ key = "source",value = new List<string>(){"淇″彿婧�" } },
+                //                                new FunctionAttributes(){ key = "zoom+",value = new List<string>(){"鍙樼劍+" } },
+                //                                new FunctionAttributes(){ key = "zoom-",value = new List<string>(){"鍙樼劍-" } },
+                //                                new FunctionAttributes(){ key = "page+",value = new List<string>(){"鐢婚潰+" } },
+                //                                new FunctionAttributes(){ key = "page-",value = new List<string>(){"鐢婚潰-" } },
+                //                                new FunctionAttributes(){ key = "menu",value = new List<string>(){"鑿滃崟" } },
+                //                                new FunctionAttributes(){ key = "ok",value = new List<string>(){"纭" } },
+                //                                new FunctionAttributes(){ key = "up",value = new List<string>(){"涓�" } },
+                //                                new FunctionAttributes(){ key = "left",value = new List<string>(){"宸�" } },
+                //                                new FunctionAttributes(){ key = "right",value = new List<string>(){"鍙�" } },
+                //                                new FunctionAttributes(){ key = "down",value = new List<string>(){"涓�" } },
+                //                                new FunctionAttributes(){ key = "exit",value = new List<string>(){"閫�鍑�" } },
+                //                                new FunctionAttributes(){ key = "volume+",value = new List<string>(){"闊抽噺+" } },
+                //                                new FunctionAttributes(){ key = "volume-",value = new List<string>(){"闊抽噺-" } },
+                //                                new FunctionAttributes(){ key = "mute",value = new List<string>(){"闈欓煶" } },
+                //                                new FunctionAttributes(){ key = "auto",value = new List<string>(){"鑷姩" } },
+                //                                new FunctionAttributes(){ key = "pause",value = new List<string>(){"鏆傚仠" } },
+                //                            }
+                //});
+
+                //FunctionList.List.Functions.Add(new Function()
+                //{
+                //    spk = SPK.StbIr,
+                //    name = "娴嬭瘯鏈洪《鐩�",
+                //    attributes = new List<FunctionAttributes>() {
+                //                                new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
+                //                                new FunctionAttributes(){ key = "computer",value = new List<string>(){"鐢佃剳" } },
+                //                                new FunctionAttributes(){ key = "video",value = new List<string>(){"瑙嗛" } },
+                //                                new FunctionAttributes(){ key = "source",value = new List<string>(){"淇″彿婧�" } },
+                //                                new FunctionAttributes(){ key = "zoom+",value = new List<string>(){"鍙樼劍+" } },
+                //                                new FunctionAttributes(){ key = "zoom-",value = new List<string>(){"鍙樼劍-" } },
+                //                                new FunctionAttributes(){ key = "page+",value = new List<string>(){"鐢婚潰+" } },
+                //                                new FunctionAttributes(){ key = "page-",value = new List<string>(){"鐢婚潰-" } },
+                //                                new FunctionAttributes(){ key = "menu",value = new List<string>(){"鑿滃崟" } },
+                //                                new FunctionAttributes(){ key = "ok",value = new List<string>(){"纭" } },
+                //                                new FunctionAttributes(){ key = "up",value = new List<string>(){"涓�" } },
+                //                                new FunctionAttributes(){ key = "left",value = new List<string>(){"宸�" } },
+                //                                new FunctionAttributes(){ key = "right",value = new List<string>(){"鍙�" } },
+                //                                new FunctionAttributes(){ key = "down",value = new List<string>(){"涓�" } },
+                //                                new FunctionAttributes(){ key = "exit",value = new List<string>(){"閫�鍑�" } },
+                //                                new FunctionAttributes(){ key = "volume+",value = new List<string>(){"闊抽噺+" } },
+                //                                new FunctionAttributes(){ key = "volume-",value = new List<string>(){"闊抽噺-" } },
+                //                                new FunctionAttributes(){ key = "mute",value = new List<string>(){"闈欓煶" } },
+                //                                new FunctionAttributes(){ key = "auto",value = new List<string>(){"鑷姩" } },
+                //                                new FunctionAttributes(){ key = "pause",value = new List<string>(){"鏆傚仠" } },
+                //                            }
+                //});
+
+                //FunctionList.List.Functions.Add(new Function()
+                //{
+                //    spk = SPK.TvIr,
+                //    name = "娴嬭瘯鐢佃",
+                //    attributes = new List<FunctionAttributes>() {
+                //                                new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
+                //                                new FunctionAttributes(){ key = "computer",value = new List<string>(){"鐢佃剳" } },
+                //                                new FunctionAttributes(){ key = "video",value = new List<string>(){"瑙嗛" } },
+                //                                new FunctionAttributes(){ key = "source",value = new List<string>(){"淇″彿婧�" } },
+                //                                new FunctionAttributes(){ key = "zoom+",value = new List<string>(){"鍙樼劍+" } },
+                //                                new FunctionAttributes(){ key = "zoom-",value = new List<string>(){"鍙樼劍-" } },
+                //                                new FunctionAttributes(){ key = "page+",value = new List<string>(){"鐢婚潰+" } },
+                //                                new FunctionAttributes(){ key = "page-",value = new List<string>(){"鐢婚潰-" } },
+                //                                new FunctionAttributes(){ key = "menu",value = new List<string>(){"鑿滃崟" } },
+                //                                new FunctionAttributes(){ key = "ok",value = new List<string>(){"纭" } },
+                //                                new FunctionAttributes(){ key = "up",value = new List<string>(){"涓�" } },
+                //                                new FunctionAttributes(){ key = "left",value = new List<string>(){"宸�" } },
+                //                                new FunctionAttributes(){ key = "right",value = new List<string>(){"鍙�" } },
+                //                                new FunctionAttributes(){ key = "down",value = new List<string>(){"涓�" } },
+                //                                new FunctionAttributes(){ key = "exit",value = new List<string>(){"閫�鍑�" } },
+                //                                new FunctionAttributes(){ key = "volume+",value = new List<string>(){"闊抽噺+" } },
+                //                                new FunctionAttributes(){ key = "volume-",value = new List<string>(){"闊抽噺-" } },
+                //                                new FunctionAttributes(){ key = "mute",value = new List<string>(){"闈欓煶" } },
+                //                                new FunctionAttributes(){ key = "auto",value = new List<string>(){"鑷姩" } },
+                //                                new FunctionAttributes(){ key = "pause",value = new List<string>(){"鏆傚仠" } },
+                //                            }
+                //});
+#endif
+
+
+                #endregion
+
+                #region 鍦烘櫙
                 var scene1 = new Scene()
                 {
                     sid = "scene1",
@@ -1043,12 +1682,34 @@
                         new FunctionAttributes() { key = "on_off", value = new List<string>() { "on", "off" }, curValue = "on", state = "on" },
                         new FunctionAttributes() { key = "mode", value = new List<string>() { "cool", "heat", "fan", "auto", "dry" }, curValue = "cool", state = "cool" },
                         new FunctionAttributes() { key = "fan", value = new List<string>() { "high", "medium", "low", "auto" }, curValue = "auto", state = "auto" },
-                        new FunctionAttributes() { key = "set_temp", value = new List<string>() { "16", "30"}, curValue = "16", state = "16",max = 30,min = 16 },
+                        new FunctionAttributes() { key = "set_temp",step = "1", value = new List<string>() { "16", "30"}, curValue = "16", state = "16",max = 30,min = 16 },
                         new FunctionAttributes() { key = "room_temp", value = new List<string>() { }, curValue = "20", state = "20" },
                         new FunctionAttributes() { key = "swing", value = new List<string>() {"up_down", "left_right", "stop" }, curValue = "20", state = "20" },
                     }
                 };
                 ac.SaveFunctionFile();
+
+                var ac2 = new Function()
+                {
+                    sid = "ac2",
+                    deviceId = "ac2",
+                    name = Language.CurrentLanguage == "Chinese" ? "瀹㈠巺绌鸿皟" : "AC",
+                    spk = SPK.AcStandard,
+                    roomIds = new List<string>() { room4.roomId },
+                    attributes = new List<FunctionAttributes>()
+                    {
+                        new FunctionAttributes() { key = "on_off", value = new List<string>() { "on", "off" }, curValue = "on", state = "on" },
+                        new FunctionAttributes() { key = "mode", value = new List<string>() { "cool", "heat", "fan", "auto", "dry" }, curValue = "cool", state = "cool" },
+                        new FunctionAttributes() { key = "fan", value = new List<string>() { "high", "medium", "low", "auto" }, curValue = "auto", state = "auto" },
+                        new FunctionAttributes() { key = "set_temp",step = "0.5", value = new List<string>() { "16", "30"}, curValue = "16", state = "16",max = 30,min = 16 },
+                        new FunctionAttributes() { key = "room_temp", value = new List<string>() { }, curValue = "20", state = "20" },
+                        new FunctionAttributes() { key = "swing", value = new List<string>() {"up_down", "left_right", "stop" }, curValue = "20", state = "20" },
+                        new FunctionAttributes() { key = "temperature_type", value = new List<string>() { "掳F", "掳C" }, curValue = "掳C", state = "掳C" },
+                    }
+                };
+                ac2.SaveFunctionFile();
+
+
                 //var scene5 = new Scene()
                 //{
                 //    sid = "scene5",
@@ -1106,37 +1767,14 @@
             LoadEventList();
             account = etAccount.Text.Trim();
 
-#if DEBUG1211
-            //鏈湴妯″紡
-            Button btnLocalMode = new Button()
-            {
-                Y = Application.GetRealHeight(600),
-                Height = Application.GetRealHeight(67),
-                Text = "Local Mode",
-                TextAlignment = TextAlignment.Center,
-                BackgroundColor  = CSS_Color.MainColor,
-                TextColor = CSS_Color.TextualColor,
-            };
-            bodyView.AddChidren(btnLocalMode);
-
-            btnLocalMode.MouseUpEventHandler = (sender, e) =>
-            {
-                MainPage.LocalMode = true;
-                 UserInfo.Current = new UserInfo();
-                MainPage.GoUserPage();
-            };
-
-            MainPage.Log("etAccount.TextAlignment : " + etAccount.TextAlignment.ToString());
-
-#endif
 
 #region 闅愮鏀跨瓥
             AddServiceAgreementControl(bodyView);
-            #endregion
+#endregion
 
         }
 
-        #region 鈻� 鏈嶅姟鍗忚___________________________
+#region 鈻� 鏈嶅姟鍗忚___________________________
         bool isAgreePrivacyPolicy = false;
         /// <summary>
         /// 娣诲姞鏈嶅姟鍗忚鎺т欢
@@ -1258,12 +1896,12 @@
                 OpenWebViewPage(true);
             };
 
-            #if __ANDROID__
+#if __ANDROID__
             //if(OnAppConfig.Instance.FirstRunApp || !OnAppConfig.Instance.isAgreePrivacyPolicy)
             //{
             //    HDL_ON_Android.HDLONUtils.StartSplashActivity();    
             //}
-            #endif
+#endif
         }
 
         /// <summary>

--
Gitblit v1.8.0