From 5eeafe3af80bfd88306bd8ad9e76c8f4b51ca35f Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期四, 17 十二月 2020 14:16:20 +0800 Subject: [PATCH] 增加本地发送的重发机制 --- HDL_ON/UI/MainPage.cs | 271 +++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 209 insertions(+), 62 deletions(-) diff --git a/HDL_ON/UI/MainPage.cs b/HDL_ON/UI/MainPage.cs index 4e3acab..51f1f50 100644 --- a/HDL_ON/UI/MainPage.cs +++ b/HDL_ON/UI/MainPage.cs @@ -9,33 +9,57 @@ { public static class MainPage { + /// <summary> + /// BaseView + /// </summary> public static FrameLayout BaseView { get; internal set; } + /// <summary> + /// BasePageView + /// </summary> public static PageLayout BasePageView { get; set; } - + /// <summary> + /// DisplayCompleted + /// </summary> public static bool DisplayCompleted = false; - public static UserInfo LoginUser; + //public static UserInfo LoginUser; + /// <summary> + /// 鐗堟湰鍙� + /// </summary> + public static string VersionString = "1.0.0924"; + ///// <summary> + ///// 瀹㈡埛绔被鍨� + ///// </summary> + //public static string ClientType = APIClientType.HDL_ON_PRO.ToString(); - public static List<string> LocationFiles; - - public static string VersionString = "1.0103"; - + /// <summary> + /// + /// </summary> public static Entity.CityInfo cityInfo = new Entity.CityInfo(); /// <summary> /// 澶╂皵鍒锋柊action /// </summary> public static Action RefreshAir; /// <summary> - /// 鏈湴妯″紡 + /// 鏃犵櫥褰曟ā寮� /// </summary> - public static bool LocalMode = false; - + public static bool NoLoginMode = false; /// <summary> - /// 鍏徃浠g爜 - /// 棰勭暀绗笁鏂瑰畾鍒舵爣璁� - /// 0:HDL + /// 杩滅▼妯″紡 /// </summary> - public static int Company = 0; + public static bool IsRemote = false; + /// <summary> + /// 缃戠粶杩炴帴鐘舵�� + /// 0:鏃犵綉缁� + /// </summary> + public static int InternetStatus = 2; + + ///// <summary> + ///// 鍏徃浠g爜 + ///// 棰勭暀绗笁鏂瑰畾鍒舵爣璁� + ///// 0:HDL + ///// </summary> + //public static int Company = 0; /// <summary> /// 鏄惁鍏ㄩ潰灞忔墜鏈� @@ -64,40 +88,34 @@ Application.DesignWidth = 375; Application.DesignHeight = 667; - BusSocket.Start(6000); - CommonPage.InitReceiveEvent(); - BaseView = Application.MainPage; Application.MainPage.BackgroundColor = CSS_Color.MainBackgroundColor; - LoginUser = Newtonsoft.Json.JsonConvert.DeserializeObject<UserInfo>(System.Text.Encoding.UTF8.GetString(FileUtils.ReadFile("Register_File"))); - //鍒ゆ柇闇�涓嶉渶瑕佺櫥褰曪紝鏈夋病鏈夌櫥褰曪紝鎴栬�呯櫥褰曟槸鍚﹁繃鏈燂紝 - if (LoginUser == null || !LoginUser.IsLogin) + + if (string.IsNullOrEmpty(OnAppConfig.Instance.LastLoginUserId)) { - GoLoginPage(LoginUser); + GoLoginPage(); } else { - new System.Threading.Thread(() => + //鍒ゆ柇闇�涓嶉渶瑕佺櫥褰曪紝鏈夋病鏈夌櫥褰曪紝鎴栬�呯櫥褰曟槸鍚﹁繃鏈燂紝 + if (UserInfo.Current == null || !UserInfo.Current.IsLogin) { - var pm =new DAL.Server.HttpServerRequest(); - pm.GetUserInfo();//鍒锋柊涓汉淇℃伅 - }) - { IsBackground = true }.Start(); - new System.Threading.Thread(() => + GoLoginPage(UserInfo.Current); + } + else { - var pm = new DAL.Server.HttpServerRequest(); - pm.GetHomePager();//鍒锋柊浣忓畢淇℃伅 - }) - { IsBackground = true }.Start(); - GoUserPage(); - //鍚姩瀵嗙爜楠岃瘉 - new AppUnlockPage().LoadPage(); - //璇诲彇闊充箰淇℃伅 - UI.Music.A31MusicModel.ReadMusicStates(); + new System.Threading.Thread(() => + { + var pm = new DAL.Server.HttpServerRequest(); + pm.RefreshToken();//鍒锋柊Token + pm.GetHomePager();//鍒锋柊浣忓畢淇℃伅 + pm.GetUserInfo();//鍒锋柊涓汉淇℃伅 + }) + { IsBackground = true }.Start(); - new HDL_ON.DAL.Net.TcpListener().OpenServer(8586); - + GoUserPage(true); + } } } catch (Exception ex) @@ -106,13 +124,16 @@ } finally { + //Application.RunOnMainThread(() => { + // Application.HideSoftInput(); + //}); } } /// <summary> /// 杩涘叆鐧诲綍鐣岄潰 /// </summary> - public static void GoLoginPage(UserInfo userInfo =null) + public static void GoLoginPage(UserInfo userInfo = null) { BaseView.RemoveAll(); BaseView.BackgroundColor = CSS_Color.BackgroundColor; @@ -125,36 +146,135 @@ /// <summary> /// 杩涘叆涓婚〉 /// </summary> - public static void GoUserPage() + /// <param name="isFirstOpen">濡傛灉鏄涓�娆″惎鍔� 妫�娴嬫牎楠屽瘑鐮�</param> + public static void GoUserPage(bool isFirstOpen = false) { - BaseView.RemoveAll(); - BasePageView = new PageLayout(); - BasePageView.ScrollEnabled = false; - BasePageView.IsShowPoint = false; - BasePageView.PageChange = (sender, e) => { - if (e < BasePageView.ChildrenCount - 1) + //鍔犺浇Loading鏁堟灉 + var waitPage = new Loading(); + BaseView.AddChidren(waitPage); + waitPage.Start(Language.StringByID(StringId.PleaseWait)); + new System.Threading.Thread(() => + { + try { - MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent(); - } + if (UserInfo.Current.regionList.Count == 0) + { + bool loadPage = true; + var pm = new DAL.Server.HttpServerRequest(); + while (UserInfo.Current.regionList.Count == 0) + { + pm.GetHomePager();//鍒锋柊浣忓畢淇℃伅 + System.Threading.Thread.Sleep(2000); + if (loadPage) + { + loadPage = false; + Application.RunOnMainThread(() => + { + waitPage.Hide(); + var addResidencePage = new BindingResidencePage(); + BaseView.AddChidren(addResidencePage); + addResidencePage.LoadView(); + }); + } + } + } + else + { + Entity.FunctionList.List.Clear(); + Entity.SpatialInfo.CurrentSpatial.Clear(); + } + ///绛夊緟鑾峰彇浣忓畢淇℃伅 + Application.RunOnMainThread(() => + { + waitPage.Hide(); + BaseView.RemoveAll(); + BasePageView = new PageLayout(); + BasePageView.ScrollEnabled = false; + BasePageView.IsShowPoint = false; + BasePageView.PageChange = (sender, e) => + { + if (e < BasePageView.ChildrenCount - 1) + { + MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent(); + } - while (e < BasePageView.ChildrenCount - 1) + while (e < BasePageView.ChildrenCount - 1) + { + BasePageView.GetChildren(BasePageView.ChildrenCount - 1).RemoveFromParent(); + } + }; + BasePageView.MouseDownEventHandler += (sender, e) => + { + BasePageView.ScrollEnabled = true; + }; + BasePageView.MouseUpEventHandler += (sender, e) => + { + BasePageView.ScrollEnabled = false; + }; + BaseView.AddChidren(BasePageView); + + //璺宠浆椤甸潰---- + var userPage = new UserPage(); + BasePageView.AddChidren(userPage); + userPage.LoadPage(); + BasePageView.PageIndex = 0; + + if (isFirstOpen) + { + //鍚姩瀵嗙爜楠岃瘉 + new AppUnlockPage().LoadPage(isFirstOpen); + } + }); + } + catch (Exception ex) { - BasePageView.GetChildren(BasePageView.ChildrenCount - 1).RemoveFromParent(); + MainPage.Log($"GoUserPage : {ex.Message}"); + }finally + { + ///鍒濆鍖朼pp鏁版嵁 + InitializationData(); } - }; - BasePageView.MouseDownEventHandler += (sender, e) => { - BasePageView.ScrollEnabled = true; - }; - BasePageView.MouseUpEventHandler += (sender, e) => { - BasePageView.ScrollEnabled = false; - }; - BaseView.AddChidren(BasePageView); + }).Start(); + } - //璺宠浆椤甸潰---- - var userPage = new UserPage(); - BasePageView.AddChidren(userPage); - userPage.LoadPage(); - BasePageView.PageIndex = 0; + /// <summary> + /// 鍒濆鍖朼pp鎵�闇�瑕佺殑鏁版嵁 + /// </summary> + public static void InitializationData() + { + new System.Threading.Thread(() => + { + while (true) + { + if (Entity.DB_ResidenceData.Instance == null )//|| Entity.DB_ResidenceData.residenceData.HomeGateway == null) + { + System.Threading.Thread.Sleep(100); + } + else + { + break; + } + } + //System.Threading.Thread.Sleep(2000); + #region 璇诲彇浜戠鏁版嵁-- + //todo鏁版嵁瑕嗙洊澶勭悊 + //璇诲彇浜戠鎴块棿銆佹ゼ灞傛暟鎹� + Entity.SpatialInfo.CurrentSpatial.DownloadRoomList(); + //璇诲彇浜戠璁惧鏁版嵁 + Entity.FunctionList.List.DownloadFunctionList(); + //璇诲彇浜戠鍦烘櫙鏁版嵁 + Entity.FunctionList.List.DownloadSceneList(); + #endregion + + }) + { IsBackground = true }.Start(); + + #region 璇诲彇鏈湴鏁版嵁 + //璇诲彇闊充箰淇℃伅 + UI.Music.A31MusicModel.ReadMusicStates(); + //鎼滅储缃戝叧 + DriverLayer.Control.Ins.SearchLoaclGateway(); + #endregion } /// <summary> @@ -166,5 +286,32 @@ Console.WriteLine(msg); #endif } + + /// <summary> + /// 鐢熸垚13浣嶆椂闂存埑 + /// </summary> + /// <param name="value">鏃堕棿</param> + /// <returns></returns> + public static long GetTimestamp13bit(DateTime value) + { + return new DateTimeOffset(value).ToUnixTimeSeconds(); + } + + /// <summary> + /// 鑾峰彇鏃堕棿 + /// </summary> + /// <param name="timestamp"></param> + /// <returns></returns> + public static DateTime GetDateTime (long timestamp) + { + long begtime = timestamp * 10000000; + DateTime dt_1970 = new DateTime(1970, 1, 1, 0, 0, 0); + long tricks_1970 = dt_1970.Ticks;//1970骞�1鏈�1鏃ュ埢搴� + long time_tricks = tricks_1970 + begtime;//鏃ュ織鏃ユ湡鍒诲害 + DateTime dt = new DateTime(time_tricks);//杞寲涓篋ateTime + return dt; + } + } + } -- Gitblit v1.8.0