From 691dbe24f5724f153e07947c7b75bdfea5f0b6d5 Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期二, 24 九月 2024 16:15:15 +0800
Subject: [PATCH] 离线控制模式

---
 HDL_ON/UI/UI1-Login/LoginPage.cs | 1005 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 904 insertions(+), 101 deletions(-)

diff --git a/HDL_ON/UI/UI1-Login/LoginPage.cs b/HDL_ON/UI/UI1-Login/LoginPage.cs
index c5577fa..c1afe23 100644
--- a/HDL_ON/UI/UI1-Login/LoginPage.cs
+++ b/HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -18,10 +18,84 @@
             //AddChidren(bodyView);
             bodyView = this;
             //2020-12-22 澧炲姞鐐瑰嚮闅愯棌閿洏浜嬩欢
-            bodyView.MouseDownEventHandler += (sender, e) => {
+            bodyView.MouseDownEventHandler += (sender, e) =>
+            {
                 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,9 +107,17 @@
                 waitPage = null;
             }
 
+#if __ANDROID__
+            BaseActivity.HideKeyboardEvent = () =>
+            {
+
+            };
+            BaseActivity.ShowKeyboardEvent = () => { };
+            BaseActivity.SmsAction = (sms) => { };
+#endif
             base.RemoveFromParent();
 
-            ////2020-12-22 澧炲姞鐐瑰嚮闅愯棌閿洏浜嬩欢
+            //2020-12-22 澧炲姞鐐瑰嚮闅愯棌閿洏浜嬩欢
             //Application.HideSoftInput();
         }
 
@@ -54,6 +136,10 @@
         int logintMode = 0;
         string account = "";
         string password = "";
+        /// <summary>
+        /// 鐭俊楠岃瘉鐮�
+        /// </summary>
+        string smsCode = "";
         #endregion
 
         #region 鎺т欢鍒楄〃
@@ -171,6 +257,8 @@
 #if __Android__
             OnAppConfig.Instance.isAgreePrivacyPolicy = true;
 #endif
+            this.BackgroundColor = CSS_Color.MainBackgroundColor;
+
             var btnIcon = new Button()
             {
                 X = Application.GetRealWidth(28),
@@ -190,12 +278,16 @@
                 UnSelectedImagePath = "Public/Logo-bg.png"
             };
             bodyView.AddChidren(btnIcon_bg);
+            btnIcon_bg.MouseDownEventHandler += (sender, e) =>
+            {
+                Application.HideSoftInput();
+            };
 
 #if DEBUG
             btnIcon_bg.MouseUpEventHandler += (sender, e) =>
             {
                 return;
-                
+
             };
 
             bool b = false;
@@ -208,52 +300,74 @@
                 //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 = "455740454@qq.com";
+                    //etAccount.Text = "13288623489";//缃楁檽涓�
+                    //etAccount.Text = "18688414428";//澶╂渤3妤�
+                    //etAccount.Text = "12345678904";//2.0 娴嬭瘯  钀ょ煶
+                    //etAccount.Text = "1272061968@qq.com";//涓囩鍩庡競涔嬪厜E鍖�8鏍�206
+                    //etAccount.Text = "marketing@australindo.co.id";
+                    //etAccount.Text = "13922115008";//鍒樻��
+                    //etAccount.Text = "support7@hdlautomation.com";
+                    etAccount.Text = "13336018868";
+                    etAccount.Text = "649362315@qq.com";//钄℃窇濞�
+                    //etAccount.Text = "18402017839";
+                    //etAccount.Text = "13414984501";//鍚存檽鑱�
+                    etAccount.Text = "13682244600";
+                    etAccount.Text = "pjh@hdlchina.com.cn";
+                    etAccount.Text = "13580507523";
+                    //etAccount.Text = "18475593023";
                 }
                 else
                 {
-                    //etAccount.Text = "15018447586";//闊充箰鏁伴噺鍒锋柊闂
                     //etAccount.Text = "464027401@qq.com";//
-                    //etAccount.Text = "15217626103";//
-                    //etAccount.Text = "13682244600";//娉㈠摜
-                    etAccount.Text = "13168123446";//鏄嗘槑閲戣寕椤圭洰锛屾柊椋庨棶棰�
+                    //etAccount.Text = "13168123446";//鏄嗘槑閲戣寕椤圭洰锛屾柊椋庨棶棰�
                     //etAccount.Text = "2949126848@qq.com";//闄堢惓
-                    //etAccount.Text = "13415629083";
                     //etAccount.Text = "13676202754";//宸存灄鏈嶅姟鍣�
-                    //etAccount.Text = "13602944661";//kx
-                    //etAccount.Text = "18666455392";//13375012446//13602944661//tzy 18778381374
                     //etAccount.Text = "15971583093";//楂樿儨
                     //etAccount.Text = "15217626103";//鏄嗘槑閲戣寕椤圭洰
-                    //etAccount.Text = "18598273624";
-                    etAccount.Text = "tf@smarttech.com.ua";
                     //etAccount.Text = "18814122445";//钁f辰鏂� 澶╂渤鍔炲叕瀹�
-                    etAccount.Text = "18824864143";//"464027401@qq.com"; //"2791308028@qq.com";//13697499568
-                    etAccount.Text = "18402017839";//wjc
                     //etAccount.Text = "13430286286";//cwc
-                    //etAccount.Text = "13709260805";
                     //etAccount.Text = "support5@hdlchina.com.cn";
-                    //etAccount.Text = "13375012441";
-                    //etAccount.Text = "info@smartlife-ks.com";
                     //etAccount.Text = "551775569@qq.com";//wcf
                     etAccount.Text = "15626203746";
-                    //etAccount.Text = "zhangquansongjava@163.com";
-                    //etAccount.Text = "s.savinov@hdlautomation.ru";
+
                 }
+                //etAccount.Text = "13580507523";
                 b = !b;
                 etPassword.Text = "123456";
-                if(etAccount.Text == "s.savinov@hdlautomation.ru")
+                if (etAccount.Text == "13682244600")
                 {
-                    etPassword.Text = "BWGVOFCJ";
+                    etPassword.Text = "asd123456789123";
                 }
-                //etPassword.Text = "Hdl85521566";
+                else if (etAccount.Text == "18475593023")
+                {
+                    etPassword.Text = "a123456";
+                }
+                else if (etAccount.Text == "13288623489")
+                {
+                    etPassword.Text = "luoxiaodong";
+                }
+                else if (etAccount.Text == "15014291819")
+                {
+                    etPassword.Text = "hdl123456";
+                }
+                else if (etAccount.Text == "15262988048")
+                {
+                    etPassword.Text = "15262988048";
+                }
+                else if (etAccount.Text == "649362315@qq.com")
+                {
+                    etPassword.Text = "aa123456";
+                }
+                else if (etAccount.Text == "13580507523")
+                {
+                    etPassword.Text = "a123456";
+                }
                 btnLogin.IsSelected = true;
             };
 #endif
@@ -274,19 +388,19 @@
 
             btnEmailLogin = new Button()
             {
-                X = btnPhoneLogin.Right ,//+ Application.GetRealWidth(20),
+                X = btnPhoneLogin.Right,//+ Application.GetRealWidth(20),
                 Y = Application.GetRealHeight(177),
                 Width = Application.GetRealWidth(140),
                 Height = Application.GetRealHeight(40),
                 TextID = StringId.LoginByEmail,
                 TextColor = CSS_Color.PromptingColor1,
-                TextAlignment = TextAlignment.Center,
+                TextAlignment = TextAlignment.CenterLeft,
                 TextSize = CSS_FontSize.TextFontSize,
             };
             bodyView.AddChidren(btnEmailLogin);
-#endregion
+            #endregion
 
-#region 璐﹀彿濉啓
+            #region 璐﹀彿濉啓
             accountView = new FrameLayout()
             {
                 X = Application.GetRealWidth(28),
@@ -345,6 +459,9 @@
                 PlaceholderText = Language.StringByID(StringId.PlsEntryPhoneNumber),
                 TextAlignment = TextAlignment.CenterLeft,
             };
+#if __IOS__
+            etAccount.MyTextContentType = UIKit.UITextContentType.Name;
+#endif
             accountView.AddChidren(etAccount);
 
             if (userInfo != null && userInfo.ID != "1234567890")
@@ -374,9 +491,9 @@
                 accountView.AddChidren(btnAccountIcon);
             }
 
-#endregion
+            #endregion
 
-#region 瀵嗙爜濉啓
+            #region 瀵嗙爜濉啓
             passwordView = new FrameLayout()
             {
                 X = Application.GetRealWidth(28),
@@ -417,10 +534,11 @@
                 PlaceholderText = Language.StringByID(StringId.PlsEntryPassword),
                 SecureTextEntry = true,
                 TextAlignment = TextAlignment.CenterLeft,
+
             };
             passwordView.AddChidren(etPassword);
 
-#region 瀵嗙爜鐧诲綍-鎺т欢鍔犺浇
+            #region 瀵嗙爜鐧诲綍-鎺т欢鍔犺浇
             btnVisiblePassword = new Button()
             {
                 X = Application.GetRealWidth(223),
@@ -452,9 +570,9 @@
                 TextSize = 12,
             };
             passwordView.AddChidren(btnForgetPassword);
-#endregion
+            #endregion
 
-#region 楠岃瘉鐮佺櫥褰�-鎺т欢鍔犺浇
+            #region 楠岃瘉鐮佺櫥褰�-鎺т欢鍔犺浇
             btnGetVerificationCode = new Button()
             {
                 X = Application.GetRealWidth(219),
@@ -468,7 +586,7 @@
                 IsSelected = false,
             };
             passwordView.AddChidren(btnGetVerificationCode);
-#endregion
+            #endregion
 
             btnPasswordViewBottomLine = new Button()
             {
@@ -479,9 +597,9 @@
             };
             passwordView.AddChidren(btnPasswordViewBottomLine);
 
-#endregion
+            #endregion
 
-#region 娉ㄥ唽涓庡揩鎹风櫥褰�
+            #region 娉ㄥ唽涓庡揩鎹风櫥褰�
             btnRegister = new Button()
             {
                 X = Application.GetRealWidth(28),
@@ -508,7 +626,7 @@
             };
             bodyView.AddChidren(btnSwitchLoginMode);
 
-#endregion
+            #endregion
 
             btnLogin = new Button()
             {
@@ -538,12 +656,20 @@
             };
             bodyView.AddChidren(btnDomeLogin);
 
-            if(Language.CurrentLanguage!= "Chinese")
+            if (Language.CurrentLanguage != "Chinese")
             {
-                btnDomeLogin.Text = "Tourist experience";
+                if (Language.CurrentLanguage == "russian")
+                {
+                    btnDomeLogin.Text = "袚芯褋褌械胁芯泄 褉械卸懈屑";
+                }
+                else
+                {
+                    btnDomeLogin.Text = "Tourist experience";
+                }
             }
 
-            btnDomeLogin.MouseUpEventHandler = (sender, e) => {
+            btnDomeLogin.MouseUpEventHandler = (sender, e) =>
+            {
 
                 MainPage.NoLoginMode = true;
 #if DEBUG
@@ -553,13 +679,13 @@
                 //妤煎眰鎴块棿鍒楄〃
                 var floor1 = new SpatialInfo("FLOOR") { roomName = "F1", parentId = DB_ResidenceData.Instance.CurrentRegion.id };
                 floor1.SaveRoomFile();
-#region 鎴块棿涓� -- 瀹㈠巺
+                #region 鎴块棿涓� -- 瀹㈠巺
                 //澶勭悊鎴块棿鍒楄〃
 
                 var room1 = new Room()
                 {
                     roomId = "1405771366041378818",
-                    roomName = Language.CurrentLanguage == "Chinese"? "娲楁墜闂�" : "Restroom",
+                    roomName = Language.CurrentLanguage == "Chinese" ? "娲楁墜闂�" : "Restroom",
                     roomImage = "Classification/Room/Roombg.png",
                     uid = "47c98953-6fd4-4379-88b9-4b748963504f",
                     roomType = "ROOM",
@@ -587,7 +713,7 @@
                 var room3 = new Room()
                 {
                     roomId = "1405771193802285057",
-                    roomName = Language.CurrentLanguage == "Chinese"? "椁愬巺" : "Restaurant",
+                    roomName = Language.CurrentLanguage == "Chinese" ? "椁愬巺" : "Restaurant",
                     roomImage = "Classification/Room/Roombg.png",
                     uid = "ed7fc784-aace-44b8-97a3-bc3e727e598b",
                     roomType = "ROOM",
@@ -601,7 +727,7 @@
                 var room4 = new Room()
                 {
                     roomId = "1405771024583090178",
-                    roomName = Language.CurrentLanguage == "Chinese"? "瀹㈠巺" : "Drawing room",
+                    roomName = Language.CurrentLanguage == "Chinese" ? "瀹㈠巺" : "Drawing room",
                     roomImage = "Classification/Room/Roombg.png",
                     uid = "9191a3a2-026f-4667-a0b1-e3af699e7295",
                     roomType = "ROOM",
@@ -633,23 +759,27 @@
                 SpatialInfo.CurrentSpatial.RoomList.Add(room4);
 
 
-#region 瀹㈠巺
-#region 鍔熻兘
+                #region 瀹㈠巺
+                #region 鍔熻兘
                 var lightRgb1 = new Function()
                 {
-                    sid = "light1",
-                    deviceId = "light1",
-                    name = Language.CurrentLanguage == "Chinese"?  "瀹㈠巺姘涘洿鐏�1": "RGB light 1",
+                    sid = "light10000000000",
+                    deviceId = "light10000000000",
+                    name = Language.CurrentLanguage == "Chinese" ? "瀹㈠巺姘涘洿鐏�1" : "RGB light 1",
                     spk = SPK.LightRGB,
-                    roomIds = new List<string>() { "1405771024583090178"},
+                    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 = "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();
@@ -659,7 +789,7 @@
                     deviceId = "light2",
                     name = Language.CurrentLanguage == "Chinese" ? "瀹㈠巺姘涘洿鐏�2" : "RGB light 2",
                     spk = SPK.LightRGB,
-                    roomIds = new List<string>() { "1405771024583090178"},
+                    roomIds = new List<string>() { "1405771024583090178" },
                     attributes = new List<FunctionAttributes>()
                     {
                         new FunctionAttributes() { key = "on_off",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
@@ -676,7 +806,7 @@
                     deviceId = "light3",
                     name = Language.CurrentLanguage == "Chinese" ? "闃呰鐏�" : "CCT light",
                     spk = SPK.LightCCT,
-                    roomIds = new List<string>() { "1405771024583090178"},
+                    roomIds = new List<string>() { "1405771024583090178" },
                     attributes = new List<FunctionAttributes>()
                     {
                         new FunctionAttributes() { key = "on_off",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
@@ -708,7 +838,7 @@
                     deviceId = "light5",
                     name = Language.CurrentLanguage == "Chinese" ? "寮�鍏崇伅" : "light 2",
                     spk = SPK.LightSwitch,
-                    roomIds = new List<string>() { "1405771024583090178"},
+                    roomIds = new List<string>() { "1405771024583090178" },
                     attributes = new List<FunctionAttributes>()
                     {
                         new FunctionAttributes() { key = "on_off",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
@@ -722,7 +852,7 @@
                     deviceId = "curtain1",
                     name = Language.CurrentLanguage == "Chinese" ? "寮�鍚堝笜" : "Curtain 1",
                     spk = SPK.CurtainTrietex,
-                    roomIds = new List<string>() { "1405771024583090178"},
+                    roomIds = new List<string>() { "1405771024583090178" },
                     attributes = new List<FunctionAttributes>()
                     {
                         new FunctionAttributes() { key = "on_off",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
@@ -736,7 +866,7 @@
                     deviceId = "curtain2",
                     name = Language.CurrentLanguage == "Chinese" ? "鍗峰笜" : "Curtain 2",
                     spk = SPK.CurtainRoller,
-                    roomIds = new List<string>() { "1405771024583090178"},
+                    roomIds = new List<string>() { "1405771024583090178" },
                     attributes = new List<FunctionAttributes>()
                     {
                         new FunctionAttributes() { key = "on_off",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
@@ -744,24 +874,689 @@
                     },
                 };
                 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",
                     deviceId = "floorheat1",
                     name = Language.CurrentLanguage == "Chinese" ? "鍦版殩" : "Floorheat 1",
                     spk = SPK.FloorHeatStandard,
-                    roomIds = new List<string>() { "1405771024583090178"},
+                    roomIds = new List<string>() { "1405771024583090178" },
                     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>(){ "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
+                var hesTv = new Function()
+                {
+                    sid = "hisense000000000001",
+                    deviceId = "hisense000000000001",
+                    name = "娴蜂俊鐢佃",
+                    spk = SPK.ElectricalTvHisense,
+
+                    roomIds = new List<string>() { "1405771024583090178" },
+                    attributes = new List<FunctionAttributes>()
+                    {
+                        new FunctionAttributes() { key = "on_off",value =new List<string>(){ "off" }, curValue="on",state = "on"   },
+                        new FunctionAttributes() { key = "wol",value =new List<string>(){ "on" }, curValue="on",state = "on"   },
+                    }
+                };
+                hesTv.SaveFunctionFile();
+
+
+                var airSwitchP3 = new Function()
+                {
+                    sid = "airSwitchP3000000000001",
+                    deviceId = "airSwitchP3000000000001",
+                    name = "娴嬭瘯-涓夌浉鏅鸿兘绌哄紑",
+                    spk = SPK.AirSwitchP3,
+                    roomIds = new List<string>() { "1405771024583090178" },
+                    attributes = new List<FunctionAttributes>()
+                    {
+                        new FunctionAttributes() { key = "on_off",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
+                        new FunctionAttributes() { key = "delay",value =new List<string>(){ "0","100" }, curValue="0",state = "0"   },
+                        new FunctionAttributes() { key = FunctionAttributeKey.PowerA,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.PowerB,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.PowerC,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.VoltageA,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.VoltageB,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.VoltageC,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.CurrentA,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.CurrentB,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.CurrentC,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.TempA,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.TempB,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.TempC,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.MaxCurrent,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.MaxTemp,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.ElectricityA,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.ElectricityB,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.ElectricityC,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.TotalElectricity,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                    },
+                    //collect = true,
+                };
+                airSwitchP3.SaveFunctionFile();
+
+                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 = "娴嬭瘯-閲戣寕鍏変紡鍌ㄨ兘",
+                    extend = "jinmaot1rue",
+                    spk = SPK.InverterJinmao,
+                    collect = true,
+                    attributes = new List<FunctionAttributes>()
+                    {
+                        new FunctionAttributes(){key = InverterJinmao_AttrEnum.pv_power.ToString(),value =new List<string>(){ "on","off" }, curValue="28",state = "28" },
+                        new FunctionAttributes(){key = InverterJinmao_AttrEnum.pv_electricity_today.ToString(),value = new List<string>(){ "0" },curValue ="20",state = "20"},
+                        new FunctionAttributes(){key = InverterJinmao_AttrEnum.pv_electricity_month.ToString(),value = new List<string>(){ "0" },curValue ="500",state = "500"},
+                        new FunctionAttributes(){key = InverterJinmao_AttrEnum.pv_electricity.ToString(),value = new List<string>(){ "0" },curValue ="2100",state = "2100"},
+                        new FunctionAttributes(){key = InverterJinmao_AttrEnum.system_status.ToString(),value = new List<string>(){ "0" },curValue = InverterJinmao_Attr_SystemStatusEnum.run.ToString(),state = InverterJinmao_Attr_SystemStatusEnum.run.ToString()},
+                        new FunctionAttributes(){key = InverterJinmao_AttrEnum.ess_status.ToString(),value = new List<string>(){ "0" },curValue = InverterJinmao_Attr_EssStatusEnum.charge.ToString(),state = InverterJinmao_Attr_EssStatusEnum.charge.ToString()},
+                        new FunctionAttributes(){key = InverterJinmao_AttrEnum.ess_charge_power.ToString(),value = new List<string>(){ "0" },curValue ="100",state = "100"},
+                        new FunctionAttributes(){key = InverterJinmao_AttrEnum.ess_discharg_power.ToString(),value = new List<string>(){ "0" },curValue ="100",state = "100"},
+                        new FunctionAttributes(){key = InverterJinmao_AttrEnum.battery_soc.ToString(),value = new List<string>(){ "0" },curValue ="100",state = "100"},
+                        new FunctionAttributes(){key = InverterJinmao_AttrEnum.load_active_power.ToString(),value = new List<string>(){ "0" },curValue ="100",state = "100"},
+                        new FunctionAttributes(){key = InverterJinmao_AttrEnum.load_electricity_today.ToString(),value = new List<string>(){ "0" },curValue ="100",state = "100"},
+                        new FunctionAttributes(){key = InverterJinmao_AttrEnum.load_electricity_month.ToString(),value = new List<string>(){ "0" },curValue ="200",state = "200"},
+                        new FunctionAttributes(){key = InverterJinmao_AttrEnum.load_electricity.ToString(),value = new List<string>(){ "0" },curValue ="1000",state = "1000"},
+                        new FunctionAttributes(){key = InverterJinmao_AttrEnum.coal.ToString(),value = new List<string>(){ "0" },curValue ="1021210",state = "1021210"},
+                        new FunctionAttributes(){key = InverterJinmao_AttrEnum.co2.ToString(),value = new List<string>(){ "0" },curValue ="1031300",state = "1031300"},
+                        new FunctionAttributes(){key = InverterJinmao_AttrEnum.trees.ToString(),value = new List<string>(){ "0" },curValue ="121310",state = "121310"},
+                    }
+                });
+
+                FunctionList.List.Functions.Add(new Function
+                {
+                    name = "娴嬭瘯-绌鸿皟绉戞妧绯荤粺鎬绘帶",
+                    spk = SPK.AcstParent,
+                    extend = "jinmaotrue",
+                    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 = "鐑按鍣�-1",
+                    spk = SPK.WaterHeaterJinmao,
+                    sid = "0000000001",
+                    attributes = new List<FunctionAttributes>()
+                    {
+                        new FunctionAttributes(){ key = FunctionAttributeKey.OnOff ,curValue = "on",state = "on" },
+                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.co2.ToString(),curValue = "522222",state = "522222" },
+                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.energy_electricity.ToString(),curValue = "144400",state = "144400" },
+                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.flow.ToString(),curValue = "2",state = "2" },
+                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.mode.ToString(),curValue = "economic",state = "economic" },
+                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.mode_free.ToString(),curValue = "true",state = "true" },
+                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.recycl_volume.ToString(),curValue = "10",state = "10" },
+                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.set_temp.ToString(),curValue = "25",state = "25" },
+                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.temp.ToString(),curValue = "23",state = "23" },
+                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.trees.ToString(),curValue = "11228",state = "11228" },
+                        new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.volume.ToString(),curValue = "100",state = "100" },
+
+                    },
+                });
+
+
+
+
+                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 = "1",state = "1" },//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,
+                    collect = true,
+                    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 = "骞叉帴鐐�",
+                    //collect = true,
+                    sid = "sss000001",
+                    attributes = new List<FunctionAttributes>()
+                    {
+                        new FunctionAttributes(){ key = "contact_status",curValue= "open",state = "open" },
+                    },
+                });
+
+                FunctionList.List.Functions.Add(new Function()
+                {
+                    spk = SPK.SensorLight,
+                    name = "鍏夌収浼犳劅鍣�",
+                    //collect = true,
+                    sid = "SensorLightsss000001",
+                    attributes = new List<FunctionAttributes>()
+                    {
+                        new FunctionAttributes(){ key = "illuminance",curValue= "100",state = "100" },
+                    },
+                });
+
+
+                FunctionList.List.Functions.Add(new Function()
+                {
+                    spk = SPK.OtherCommon,
+                    name = "閫氱敤寮�鍏�",
+                    //collect = true,
+                    sid = "sssCommon000001",
+                    attributes = new List<FunctionAttributes>()
+                    {
+                        new FunctionAttributes(){ key = "on_off",curValue= "on",state = "off" },
+                    },
+                });
+
+
+
+                FunctionList.List.Functions.Add(new Function()
+                {
+                    spk = SPK.SensorPir,
+                    name = "浜轰綋瀛樺湪浼犳劅鍣�1",
+                    collect = true,
+                    sid = "sss000001111",
+                    attributes = new List<FunctionAttributes>()
+                    {
+                        new FunctionAttributes(){ key = "people_status",curValue= "false",state = "false" },
+                    },
+                });
+
+
+                FunctionList.List.Functions.Add(new Function()
+                {
+                    spk = SPK.SensorPirHold,
+                    name = "浜轰綋瀛樺湪浼犳劅鍣�2",
+                    collect = true,
+                    sid = "sss0000011112",
+                    attributes = new List<FunctionAttributes>()
+                    {
+                        new FunctionAttributes(){ key = "people_status",curValue= "true",state = "true" },
+                    },
+                });
+
+                //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",
@@ -913,9 +1708,9 @@
 
                 };
                 scene2.SaveSceneFile();
-#endregion
-#endregion
-#region 椁愬巺
+                #endregion
+                #endregion
+                #region 椁愬巺
                 var lightSwitch3 = new Function()
                 {
                     sid = "light6",
@@ -1019,8 +1814,8 @@
                     }
                 };
                 scene4.SaveSceneFile();
-#endregion
-#region 鍗у
+                #endregion
+                #region 鍗у
                 var ac = new Function()
                 {
                     sid = "ac1",
@@ -1033,12 +1828,35 @@
                         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",unit = "F", step = "1", value = new List<string>() { "16", "30"}, curValue = "16", state = "16",max = 30,min = 16 },
+                        new FunctionAttributes() { key = FunctionAttributeKey.TempType,unit = "F", 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",
@@ -1059,7 +1877,7 @@
                 //    collect = false,
                 //};
                 //scene6.SaveSceneFile();
-#endregion
+                #endregion
 
 
                 var lightSwitch6 = new Function()
@@ -1077,12 +1895,12 @@
                 };
                 lightSwitch6.SaveFunctionFile();
 
-#endregion
+                #endregion
 
                 var fileList = Common.FileUtlis.Files.ReadFiles();
-                foreach(var file in fileList)
+                foreach (var file in fileList)
                 {
-                    FunctionList.List.IniFunctionList(file,true);
+                    FunctionList.List.IniFunctionList(file, true);
                 }
                 Room.CurrentSpatial.InitRoomListFunctions();
 
@@ -1096,31 +1914,8 @@
             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 闅愮鏀跨瓥
+            #region 闅愮鏀跨瓥
             AddServiceAgreementControl(bodyView);
             #endregion
 
@@ -1134,7 +1929,8 @@
         /// <param name="frameBack"></param>
         private void AddServiceAgreementControl(FrameLayout frameLayout)
         {
-            isAgreePrivacyPolicy = OnAppConfig.Instance.isAgreePrivacyPolicy;
+            isAgreePrivacyPolicy = false;
+            OnAppConfig.Instance.isAgreePrivacyPolicy = false;
 
 
 
@@ -1155,7 +1951,7 @@
                 X = Application.GetRealWidth(22),
             };
             frameRow.AddChidren(agreeView);
-            if(Language.CurrentLanguage == "Chinese")
+            if (Language.CurrentLanguage == "Chinese")
             {
                 agreeView.X = Application.GetRealWidth(52);
             }
@@ -1247,12 +2043,12 @@
                 OpenWebViewPage(true);
             };
 
-            #if __ANDROID__
+#if __ANDROID__
             //if(OnAppConfig.Instance.FirstRunApp || !OnAppConfig.Instance.isAgreePrivacyPolicy)
             //{
             //    HDL_ON_Android.HDLONUtils.StartSplashActivity();    
             //}
-            #endif
+#endif
         }
 
         /// <summary>
@@ -1272,6 +2068,13 @@
         /// <returns></returns>
         private bool CheckPrivacyPolicy()
         {
+#if DEBUG
+            return true;
+#endif
+            if (HttpUtil.GlobalRequestHttpsHost == "https://test-gz.hdlcontrol.com")
+            {
+                return true;
+            }
             if (isAgreePrivacyPolicy == false)
             {
                 //璇峰悓鎰忋�婄敤鎴峰崗璁�嬪拰銆婇殣绉佹斂绛栥��
@@ -1281,6 +2084,6 @@
             return true;
         }
 
-#endregion
+        #endregion
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0