Crabtree/SmartHome/UI/SimpleControl/Phone/User/UserMiddle.cs
@@ -75,7 +75,7 @@
            Width = Application.GetRealWidth (640),
            Height = Application.GetRealHeight (1136 - 126 - 90 - 90),
            BackgroundColor = SkinStyle.Current.ViewColor,
            ScrollEnabled = false
            //ScrollEnabled = true
        };
        public static Button btnVersion = new Button () {
            Y = Application.GetRealHeight (1136 - 90 - 90),
@@ -284,9 +284,38 @@
                }
            }
            UserConfig.Instance.SaveUserConfig ();
            btnLinkStatus.MouseUpEventHandler += (dd, ff) => {
                EquipmentPublicClass.CheckLinkRemote (UserConfig.Instance.internetStatus);
            EventHandler<MouseEventArgs> btnLinkEvent = (sender, e) => {
                try {
                    if (SmartHome.MqttCommon.remoteMqttIsConnecting && CommonPage.IsRemote) {
                        Alert alert = new Alert ("", "Being connected remotely, do you still want to cancel and re-detect?", Language.StringByID (R.MyInternationalizationString.Cancel), Language.StringByID (R.MyInternationalizationString.Confrim));
                        alert.ResultEventHandler += (sender2, e2) => {
                            if (e2) {
                                EquipmentPublicClass.CheckLinkRemote (UserConfig.Instance.internetStatus);
                            }
                        };
                        alert.Show ();
                        //MainPage.ShowAlertOnMainThread ("Please wait, connecting remotely...");
                    } else {
                        EquipmentPublicClass.CheckLinkRemote (UserConfig.Instance.internetStatus);
                    }
                } catch { }
            };
            try {
                //2020-04-23 解决安卓重复弹窗问题
                if (btnLinkStatus.MouseUpEventHandler == null) {
                    btnLinkStatus.MouseUpEventHandler += btnLinkEvent;
                } else {
                    btnLinkStatus.MouseUpEventHandler -= btnLinkEvent;
                    btnLinkStatus.MouseUpEventHandler += btnLinkEvent;
                }
            } catch {
                //Utlis.WriteLine ("ccc");
            }
        }
@@ -311,31 +340,33 @@
                return;
            }
            Language.CurrentLanguage = "English";
#if DEBUG
            //UserConfig.Instance.SkinCode = 1;
            Language.CurrentLanguage = "English";
            var lii = new LightLogic () { Type = DeviceType.LightRGB, LoopID = 1, DeviceID = 4, SubnetID = 42, Name = "RGB" };
            IO.FileUtils.SaveEquipmentMessage (lii, lii.LoopID.ToString ());
            var lii1 = new LightSwitch () { LoopID = 1, DeviceID = 2, SubnetID = 232, Name = "继电器" };
            IO.FileUtils.SaveEquipmentMessage (lii1, lii1.LoopID.ToString ());
            //var lii11 = new LightDimming () { LoopID = 1, DeviceID = 1, SubnetID = 232, Name = "调光器" };
            //IO.FileUtils.SaveEquipmentMessage (lii11, lii11.LoopID.ToString ());
            //var lii111 = new LightDimming () { LoopID = 1, DeviceID = 8, SubnetID = 232, Name = "调光器2" };
            //IO.FileUtils.SaveEquipmentMessage (lii111, lii111.LoopID.ToString ());
            //var lii = new LightLogic () { Type = DeviceType.LightRGB, LoopID = 1, DeviceID = 4, SubnetID = 42, Name = "RGB" };
            //IO.FileUtils.SaveEquipmentMessage (lii, lii.LoopID.ToString ());
            //var lii1 = new LightSwitch () { LoopID = 1, DeviceID = 2, SubnetID = 232, Name = "继电器" };
            //IO.FileUtils.SaveEquipmentMessage (lii1, lii1.LoopID.ToString ());
            ////var lii11 = new LightDimming () { LoopID = 1, DeviceID = 1, SubnetID = 232, Name = "调光器" };
            ////IO.FileUtils.SaveEquipmentMessage (lii11, lii11.LoopID.ToString ());
            ////var lii111 = new LightDimming () { LoopID = 1, DeviceID = 8, SubnetID = 232, Name = "调光器2" };
            ////IO.FileUtils.SaveEquipmentMessage (lii111, lii111.LoopID.ToString ());
            var mCurtainModel1 = new CurtainModel () { LoopID = 1, DeviceID = 9, SubnetID = 42, Name = "窗帘" };
            IO.FileUtils.SaveEquipmentMessage (mCurtainModel1, mCurtainModel1.LoopID.ToString ());
            //var mCurtainModel2 = new CurtainModel () { LoopID = 2, DeviceID = 9, SubnetID = 42, Name = "窗帘2" };
            //IO.FileUtils.SaveEquipmentMessage (mCurtainModel2, mCurtainModel2.LoopID.ToString ());
            //var mCurtainModel3 = new CurtainModel () { LoopID = 1, DeviceID = 2, SubnetID = 42, Name = "窗帘3" };
            //IO.FileUtils.SaveEquipmentMessage (mCurtainModel3, mCurtainModel3.LoopID.ToString ());
            //var mCurtainModel1 = new CurtainModel () { LoopID = 1, DeviceID = 9, SubnetID = 42, Name = "窗帘" };
            //IO.FileUtils.SaveEquipmentMessage (mCurtainModel1, mCurtainModel1.LoopID.ToString ());
            ////var mCurtainModel2 = new CurtainModel () { LoopID = 2, DeviceID = 9, SubnetID = 42, Name = "窗帘2" };
            ////IO.FileUtils.SaveEquipmentMessage (mCurtainModel2, mCurtainModel2.LoopID.ToString ());
            ////var mCurtainModel3 = new CurtainModel () { LoopID = 1, DeviceID = 2, SubnetID = 42, Name = "窗帘3" };
            ////IO.FileUtils.SaveEquipmentMessage (mCurtainModel3, mCurtainModel3.LoopID.ToString ());
            var mCurtainRoller = new CurtainRoller () { LoopID = 1, DeviceID = 88, SubnetID = 42, Name = "窗帘CurtainRoller" };
            IO.FileUtils.SaveEquipmentMessage (mCurtainRoller, mCurtainRoller.LoopID.ToString ());
            //var mCurtainRoller = new CurtainRoller () { LoopID = 1, DeviceID = 88, SubnetID = 42, Name = "窗帘CurtainRoller" };
            //IO.FileUtils.SaveEquipmentMessage (mCurtainRoller, mCurtainRoller.LoopID.ToString ());
            var mCurtainTrietex = new CurtainTrietex () { LoopID = 1, DeviceID = 87, SubnetID = 42, Name = "窗帘CurtainTrietex" };
            IO.FileUtils.SaveEquipmentMessage (mCurtainTrietex, mCurtainTrietex.LoopID.ToString ());
            //var mCurtainTrietex = new CurtainTrietex () { LoopID = 1, DeviceID = 87, SubnetID = 42, Name = "窗帘CurtainTrietex" };
            //IO.FileUtils.SaveEquipmentMessage (mCurtainTrietex, mCurtainTrietex.LoopID.ToString ());
            
@@ -346,20 +377,20 @@
            //var s2 = new LightEnergySwitch () { LoopID = 11, DeviceID = 1, SubnetID = 44, Name = "EnergySwitch" };
            //IO.FileUtils.SaveEquipmentMessage (s2, s2.LoopID.ToString ());
            InfraredMode infraredMode = new InfraredMode () { LoopID = 1, SubnetID = 100, DeviceID = 12, InfraredType = InfraredType.TV, Name = "测试电视" };
            IO.FileUtils.SaveEquipmentMessage (infraredMode, "1");
            ACInfrared aCInfrared = new ACInfrared () { LoopID = 1, SubnetID = 100, DeviceID = 112, Name = "空调ACInfrared" };
            IO.FileUtils.SaveEquipmentMessage (aCInfrared, "1");
            //InfraredMode infraredMode = new InfraredMode () { LoopID = 1, SubnetID = 100, DeviceID = 12, InfraredType = InfraredType.TV, Name = "测试电视" };
            //IO.FileUtils.SaveEquipmentMessage (infraredMode, "1");
            //ACInfrared aCInfrared = new ACInfrared () { LoopID = 1, SubnetID = 100, DeviceID = 112, Name = "空调ACInfrared" };
            //IO.FileUtils.SaveEquipmentMessage (aCInfrared, "1");
            ACPanel mACPanel = new ACPanel () { LoopID = 1, SubnetID = 100, DeviceID = 42, Name = "空调面板ACPanel" };
            IO.FileUtils.SaveEquipmentMessage (mACPanel, "1");
            //ACPanel mACPanel = new ACPanel () { LoopID = 1, SubnetID = 100, DeviceID = 42, Name = "空调面板ACPanel" };
            //IO.FileUtils.SaveEquipmentMessage (mACPanel, "1");
            CustomAC mCustomAC = new CustomAC () { LoopID = 1, SubnetID = 99, DeviceID = 42, Name = "空调CustomAC" };
            IO.FileUtils.SaveEquipmentMessage (mCustomAC, "1");
            //CustomAC mCustomAC = new CustomAC () { LoopID = 1, SubnetID = 99, DeviceID = 42, Name = "空调CustomAC" };
            //IO.FileUtils.SaveEquipmentMessage (mCustomAC, "1");
            HVAC mHVAC = new HVAC () { LoopID = 1, SubnetID = 98, DeviceID = 42, Name = "空调HVAC" };
            IO.FileUtils.SaveEquipmentMessage (mHVAC, "1");
            //HVAC mHVAC = new HVAC () { LoopID = 1, SubnetID = 98, DeviceID = 42, Name = "空调HVAC" };
            //IO.FileUtils.SaveEquipmentMessage (mHVAC, "1");
            //var fanM = new FanModule () { Name = "Fan Module",SubnetID = 2,DeviceID  = 1,LoopID = 1};
@@ -368,8 +399,8 @@
            //IO.FileUtils.SaveEquipmentMessage (fanLoop1, "1");
            //var fanLoop2 = new FanModule () { Name = "Fan 2", SubnetID = 2, DeviceID = 1, LoopID = 2 };
            //IO.FileUtils.SaveEquipmentMessage (fanLoop2, "2");
            LightEnergySocket sddd = new LightEnergySocket () { LoopID = 1, SubnetID = 100, DeviceID = 122,   Name = "测试插座" };
            IO.FileUtils.SaveEquipmentMessage (sddd, "1");
            //LightEnergySocket sddd = new LightEnergySocket () { LoopID = 1, SubnetID = 100, DeviceID = 122,   Name = "测试插座" };
            //IO.FileUtils.SaveEquipmentMessage (sddd, "1");
            //var ud = new UniversalDevice () { LoopID = 1,SubnetID = 42,DeviceID = 6,ActionType = 2,Name = "Universal-1",obj1 = 1,TargetType = 0};
            //ud.SendBytes = new List<byte> () { 1 ,0};