From 5a5a2b696866f947b6025d26c3302e8ffef46435 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期一, 11 一月 2021 16:11:20 +0800
Subject: [PATCH] 2021-01-11 1.更新MQTT连接和本地搜索网关方法。2.子账号相关接口完善
---
Crabtree/SmartHome/HDL/Operation/UserConfig.cs | 273 ++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 251 insertions(+), 22 deletions(-)
diff --git a/Crabtree/SmartHome/HDL/Operation/UserConfig.cs b/Crabtree/SmartHome/HDL/Operation/UserConfig.cs
index 8a4145b..a51d781 100644
--- a/Crabtree/SmartHome/HDL/Operation/UserConfig.cs
+++ b/Crabtree/SmartHome/HDL/Operation/UserConfig.cs
@@ -7,7 +7,7 @@
[System.Serializable]
public class UserConfig
{
- static string configFile = "UserConfig";
+ public static string configFile = "UserConfig";
static UserConfig instance;
public static UserConfig Instance {
@@ -28,11 +28,19 @@
instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.Sensor);
instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.Environmental);
instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.MusicModel);
- instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.UniversalDevice);
+ //instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.UniversalDevice);
} else {
instance = temp;
}
- } catch{}
+ } catch{
+ instance = new UserConfig { };
+ instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.Projector);
+ instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.DoorLock);
+ instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.FreshAir);
+ instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.Sensor);
+ instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.Environmental);
+ instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.MusicModel);
+ }
}
return instance;
}
@@ -144,38 +152,259 @@
public Dictionary<string, string> RemoteDoorLockPasswordList = new Dictionary<string, string> ();
//public string CountryCode = "CN";
+ /// <summary>
+ ///
+ /// </summary>
public int SkinCode = 1;
-
-
+ /// <summary>
+ /// 浣忓畢鍒楄〃
+ /// </summary>
public List<RegionInfoRes> HomeLists = new List<RegionInfoRes> ();
+ /// <summary>
+ /// 褰撳墠浣忓畢
+ /// </summary>
+ RegionInfoRes currentRegion = new RegionInfoRes ();
+ public RegionInfoRes CurrentRegion {
+ set {
+ currentRegion = value;
+ //CheckIfNeedGetMasterAccountToken ();
+ //鍒囨崲浣忓畢 璁剧疆鏈湴鍔犲瘑Key
+ SetLocalEncryptKey ();
+ //娓呯┖涔嬪墠缃戝叧鐨勪俊鎭紝閲嶆柊鑾峰彇
+ HomeGateway = null;
+ GetHomeGatewayList ();
+ }
+ get {
+ if (currentRegion == null) {
+ currentRegion = new RegionInfoRes ();
+ }
+ return currentRegion;
+ }
+ }
- public RegionInfoRes CurrentRegion = new RegionInfoRes ();
-
- public bool CheckHomeGateways ()
+ #region HomeGateway
+ /// <summary>
+ /// 鏄惁鑾峰彇涓�
+ /// 2020-01-11
+ /// </summary>
+ bool bGettingMac = false;
+ //public static List<string> LocalFiles = IO.FileUtils.ReadFiles ();
+ /// <summary>
+ /// 妫�鏌ユ槸鍚﹂渶瑕佽幏鍙栨帶鍒跺垎浜」鐩�(浣忓畢)璇锋眰淇℃伅
+ /// </summary>
+ /// <param name="mMainAccountId"></param>
+ /// <param name="mSharedHid"></param>
+ public void GetHomeGatewayList ()
{
- if (CurrentRegion.HomeGateways != null && CurrentRegion.HomeGateways.Count > 0) {
+ //System.Threading.Tasks.Task.Run (() => {
+ //if (bGettingMac) return;
+ HttpServerRequest.Current.GetHomeGatewayList ();
+ //});
+ }
+ /// <summary>
+ /// 缃戝叧璇︾粏淇℃伅
+ /// </summary>
+ public HomeGatewayInfo HomeGateway;
+ /// <summary>
+ /// 鏄惁鍏佽杩滅▼鎺у埗
+ /// </summary>
+ public bool AllowRemoteControl {
+ get {
+ if (HomeIsOtherShare) {
+ //绛変簬0鏄厑璁歌繙绋嬫帶鍒�
+ return UserConfig.Instance.CurrentRegion.isRemoteControl;
+ } else {
+ //浣忓畢鏄嚜宸辨湰浜虹殑鍏佽鎺у埗
+ return true;
+ }
+ }
+ }
+
+ /// <summary>
+ /// 鏄惁鏄鐞嗗憳鏉冮檺(鍙樻洿浜�,鎴愬憳鐨勬椂鍊�,杩欎釜涔熶负ture銆備负浠�涔堜細澹版槑杩欐牱鍙橀噺,鍥犱负鏈変簺鎺ュ彛蹇呴』浣跨敤鍘熸潵鐨凾oken)
+ /// </summary>
+ public bool HomeIsOtherShare {
+ get {
+ if (UserConfig.Instance == null || UserConfig.Instance.CurrentRegion == null) {
+ return false;
+ } else {
+ return UserConfig.Instance.CurrentRegion.IsOthreShare;
+ }
+ }
+ }
+
+ /// <summary>
+ /// 妫�娴嬩綇瀹呮槸鍚︾粦瀹氫簡缃戝叧
+ /// gatewayId 鍒ょ┖
+ /// </summary>
+ /// <returns></returns>
+ public bool CheckWhetherGatewayIdNotNull ()
+ {
+ if (HomeGateway != null && !string.IsNullOrEmpty (HomeGateway.gatewayId)) {
return true;
} else {
return false;
}
}
- public List<GatewayRes> GatewayList = new List<GatewayRes> ();
-
- public List<string> GatewayMACList {
- get {
- List<string> macList = new List<string> ();
- foreach (var mac in GatewayList) {
- macList.Add (mac.GatewayUniqueId);
- }
- return macList;
+ /// <summary>
+ /// 妫�娴嬩綇瀹呮槸鍚︾粦瀹氫簡缃戝叧
+ /// </summary>
+ /// <returns></returns>
+ public bool CheckHomeGatewaysNotEmpty ()
+ {
+ if (HomeGateway != null && !string.IsNullOrEmpty (HomeGateway.mac)) {
+ return true;
+ } else {
+ return false;
}
}
- public string GatewayMAC = "";
- public List<string> RometoUserInfoKeys = new List<string> ();
+ /// <summary>
+ ///
+ /// </summary>
+ public string GatewayMAC {
+ get {
+ if (CheckHomeGatewaysNotEmpty ()) {
+ return HomeGateway.mac;
+ } else {
+ return "";
+ }
+ }
+ set {
+ if (CheckHomeGatewaysNotEmpty()) {
+ HomeGateway.mac = value;
+ } else {
+ //2020-01-11
+ if (HomeGateway != null) {
+ HomeGateway.mac = value;
+ } else {
+ HomeGateway = new HomeGatewayInfo () { mac = value};
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ ///// <summary>
+ ///// 鏇存柊璁剧疆褰撳墠浣忓畢缃戝叧
+ ///// 2020-01-11
+ ///// </summary>
+ ///// <param name="mGatewayDataList"></param>
+ //public void SetNowHomeGateways (List<GatewayRes> mGatewayDataList) {
+ // try {
+ // if (currentRegion != null) {
+ // if (mGatewayDataList != null && mGatewayDataList.Count > 0) {
+ // var mMacList = new List<HomeGateways> ();
+ // foreach (var mGatewayRes in mGatewayDataList) {
+ // var mac = new HomeGateways ();
+ // mac.GatewayUniqueId = mGatewayRes.GatewayUniqueId;
+ // mMacList.Add (mac);
+ // }
+ // //HomeGateways = mMacList;
+ // }
+ // }
+ // } catch {
+
+ // }
+ //}
+
+ //public List<string> RometoUserInfoKeys = new List<string> ();
+
+ /// <summary>
+ /// 鏈湴閫氫俊鍔犲瘑Key
+ /// </summary>
+ public string LocalEncryptKey = string.Empty;
+
+ /// <summary>
+ /// 鏄惁鍔犲瘑瀵嗙爜楠岃瘉閫氳繃
+ /// </summary>
+ public bool EncryptedPasswordCorrect = true;
+ /// <summary>
+ /// 鏄惁鍔犲瘑
+ /// </summary>
+ public bool IsLocalEncrypt = false;
+ /// <summary>
+ /// 璁剧疆涓洪粯璁ゅ姞瀵嗭紝骞惰绠楀姞瀵咾ey
+ /// </summary>
+ private void SetLocalEncryptKey ()
+ {
+ if (currentRegion != null) {
+ IsLocalEncrypt = true;
+ GenerateLocalEncryptionKey ();
+ //LocalEncryptKey = CommonPage.MyEncodingUTF8.GetString (GenerateLocalEncryptionKey ());
+ }
+ }
+
+ /// <summary>
+ /// 鑾峰彇16浣嶇殑key byte []
+ /// </summary>
+ /// <returns></returns>
+ public byte [] GenerateLocalEncryptionKey ()
+ {
+ byte [] aseKey = new byte [16];
+ try {
+ //鐢熸垚鍔犲瘑Key
+ byte [] homeId = System.Text.Encoding.ASCII.GetBytes (currentRegion.Id);
+ Array.Copy (homeId, 0, aseKey, 0, 16 < homeId.Length ? 16 : homeId.Length);
+ LocalEncryptKey = System.Text.Encoding.ASCII.GetString (aseKey);
+ return aseKey;
+
+ } catch {
+ return aseKey;
+ }
+
+ }
+
+ public string MasterAccountToken = "";
+ public string MasterAccountRequestBaseUrl = "";
+ /// <summary>
+ /// 鏄惁鑾峰彇涓�
+ /// 2020-01-11
+ /// </summary>
+ bool bGetting = false;
//public static List<string> LocalFiles = IO.FileUtils.ReadFiles ();
+ /// <summary>
+ /// 鑾峰彇鎺у埗鍒嗕韩椤圭洰(浣忓畢)璇锋眰淇℃伅
+ /// </summary>
+ /// <param name="mMainAccountId"></param>
+ /// <param name="mSharedHid"></param>
+ public void CheckIfNeedGetMasterAccountToken ()
+ {
+ if (bGetting) return;
- }
-}
\ No newline at end of file
+ ////2020-01-08 鍒ゆ柇鏄惁鍒嗕韩杩囨潵鐨勪綇瀹�
+ //if (currentRegion != null && currentRegion.IsOthreShare) {
+ // //MainPage.IsAdministrator = UserConfig.Instance.CurrentRegion.IsOthreShare;
+ // //璇锋眰涓昏处鍙穞oken
+ // System.Threading.Tasks.Task.Run (() => {
+ // try {
+ // bGetting = true;
+ // var requestObj = new GetSharedHomeApiControlObj () {
+ // LoginAccessToken = MainPage.LoginUser.LoginTokenString,
+ // MainAccountId = currentRegion.MainUserDistributedMark,
+ // SharedHid = currentRegion.Id,
+
+ // };
+ // var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
+ // var revertObj = MainPage.RequestHttps (API.GetSharedHomeApiControl, requestJson);
+ // if (revertObj.StateCode.ToUpper () == StateCode.SUCCESS) {
+ // var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<MemberAdministratorResult> (revertObj.ResponseData.ToString ());
+ // if (responseDataObj != null) {
+ // MasterAccountToken = responseDataObj.RequestToken;
+ // MasterAccountRequestBaseUrl = responseDataObj.RequestBaseUrl;
+ // }
+ // }
+ // } catch {
+
+ // } finally {
+ // bGetting = false;
+ // }
+ // });
+ //}
+ }
+
+ }
+ }
\ No newline at end of file
--
Gitblit v1.8.0