From 10b78a1626106f18a6b2f68bd2b8cafd2a99683c Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期三, 12 八月 2020 11:31:59 +0800
Subject: [PATCH] 2020-08-12 4.喜爱页面,增加房间场景添加支持。 5.Alexa,添加设备页面增加修改备注功能,点击OK后,增加设备备注名字不匹配然后自动更新操作。
---
Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs | 472 +++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 298 insertions(+), 174 deletions(-)
diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs
index 0ed1ed1..34288c5 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs
@@ -6,6 +6,7 @@
{
public class GuideSettingGateway : FrameLayout
{
+
static byte TYPEStandardMQTT = 5;
static byte TYPEHdlMQTT = 4;
static GuideSettingGateway curView;
@@ -35,6 +36,8 @@
myLoading.Hide ();
btnCloseLoading.RemoveFromParent ();
WirelessConfig (new byte [] { 1 });//close
+ //2020-07-02 鍏抽棴鑷姩鎼滅储绾跨▼
+ StopSearchDeviceThead ();
if (needRefresh) {
needRefresh = false;
SearchDeviceList ();
@@ -49,6 +52,7 @@
curView = null;
addedCommon.Clear ();
BackgroundColor = SkinStyle.Current.MainColor;
+ //StopSearchDeviceThead ();
base.RemoveFromParent ();
}
@@ -93,8 +97,8 @@
};
var btnSearch = new Button () {
- Width = Application.GetRealWidth (75),
- Height = Application.GetRealHeight (75),
+ Width = Application.GetMinRealAverage (75),
+ Height = Application.GetMinRealAverage (75),
X = Application.GetRealWidth (520),
Y = Application.GetRealHeight (10),
UnSelectedImagePath = "Item/Refresh.png",
@@ -145,11 +149,11 @@
{
if (gatewayDeicve.Type == DeviceType.OnePortMqttFR) {
- Console.WriteLine ("Assign OnePortMqttFR锛孒DL MQTT");
+ Utlis.WriteLine ("Assign OnePortMqttFR锛孒DL MQTT");
//RemoteSetting ();
RemoteSettingWithHDLMQTT ();
} else {
- Console.WriteLine ("Assign OnePortWirelessFR");
+ Utlis.WriteLine ("Assign OnePortWirelessFR");
RemoteSettingWithOldDevice ();
//RemoteSettingWithMQTT ();
}
@@ -194,7 +198,7 @@
if (common.Type == DeviceType.MusicModel)
continue;
if (common.isMixBox) {
- Console.WriteLine ("IsMixBox");
+ Utlis.WriteLine ("IsMixBox");
continue;
}
countDevcie++;
@@ -247,7 +251,12 @@
this.AddChidren (myLoading);
//myLoading.Start ("鐐瑰嚮灞忓箷鍏抽棴閰嶉妯″紡");
myLoading.Start ("Searching, Please touch the here to exit the searching mode.");
+ //myLoading.Start ("Waiting for new device, Please touch the here to exit the waiting mode.");
+
this.AddChidren (btnCloseLoading);
+
+ //2020-07-02 缃戝叧閰嶉妯″紡鏃讹紝寮�鍚嚜鍔ㄦ悳绱㈢嚎绋�
+ StartSearchDeviceThead ();
}
});
});
@@ -460,7 +469,7 @@
btnDelDevice.Parent.RemoveFromParent ();
});
} catch (Exception ex) {
- Console.WriteLine (ex.Message);
+ Utlis.WriteLine (ex.Message);
} finally {
Application.RunOnMainThread (() => {
MainPage.Loading.Hide ();
@@ -498,7 +507,7 @@
// }
// }
// } catch (Exception ex) {
- // Console.WriteLine ("Cinfig Read Device Loop Info " + ex.Message);
+ // Utlis.WriteLine ("Cinfig Read Device Loop Info " + ex.Message);
// }
//});
}
@@ -520,12 +529,17 @@
//杩欓噷鎼滅储璁惧锛岀洿鍒板畬鎴愬氨閫�鍑�
readDevice ();
} catch (Exception ex) {
- Console.WriteLine (ex.Message);
+ Utlis.WriteLine (ex.Message);
}
Application.RunOnMainThread (action);
}) { IsBackground = true }.Start ();
}
+ ///// <summary>
+ ///// 2020-02-11
+ ///// 鎼滅储閲嶅娆℃暟 鐢�4娆″鍔犱负6娆�
+ ///// </summary>
+ //static readonly int READ_COUNT = 6;
/// <summary>
/// 璇诲彇璁惧
/// </summary>
@@ -539,7 +553,8 @@
CommonPage.DeviceList.Clear ();
CommonPage.searchTotal = 0;
//濡傛灉涓ゆ閮芥病鏈夋暟鎹弽棣堬紝灏变笉璇诲彇
- int readCount = 4;
+ //2020 - 02 - 11鎼滅储閲嶅娆℃暟 鐢�4娆″鍔犱负6娆�
+ int readCount = 6;
while (0 < readCount) {
readCount--;
var ms = new System.IO.MemoryStream ();
@@ -559,7 +574,7 @@
ms.WriteByte (common.SubnetID);
ms.WriteByte (common.DeviceID);
}
- Console.WriteLine ("鎼滅储闈炵綉鍏宠澶囷紝缃戠粶鍦板潃鏄�:" + CommonPage.EndPoint.ToString ());
+ Utlis.WriteLine ("鎼滅储闈炵綉鍏宠澶囷紝缃戠粶鍦板潃鏄�:" + CommonPage.EndPoint.ToString ());
var control = new Control ();
control.Send (new Target () {
IPEndPoint = CommonPage.EndPoint,
@@ -574,7 +589,7 @@
System.Threading.Thread.Sleep (1000);
//濡傛灉鏁伴噺涓嶇浉绛夛紝灏遍噸缃鏁�
if (tempCount != CommonPage.DeviceList.Count) {
- readCount = 4;
+ readCount = 6;
}
}
CommonPage.DeviceList = CommonPage.DeviceList.FindAll ((obj) => { return obj != null && obj.SubnetID == gatewayDeicve.SubnetID; });
@@ -671,7 +686,7 @@
var mobytes = Control.ControlBytesSendHasReturn (Command.SetGateWayModelInternetInfo, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, serverIPBytes);
if (mobytes == null) {
Application.RunOnMainThread (() => {
- new Alert ("", Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline),
+ new Alert ("", ErrorCode.GatewayNoResponse,
Language.StringByID (R.MyInternationalizationString.Close)).Show ();
});
} else if (mobytes [0] == 0xF5) {
@@ -684,7 +699,7 @@
var bindReginIdStatus = Control.ControlBytesSendHasReturn (Command.Write_APP_Data_STORE_1D5E_CMD, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, currentRegionIdBytes);
if (bindReginIdStatus == null) {
Application.RunOnMainThread (() => {
- new Alert ("", Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+ new Alert ("", ErrorCode.GatewayNoResponse, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
});
return;
} else if (bindReginIdStatus [0] != 0xF8) {
@@ -695,10 +710,10 @@
return;
}
}
- BindGateways ();
+ BindGatewaysNew ();
}
} catch (Exception ex) {
- Console.WriteLine (ex.Message);
+ Utlis.WriteLine (ex.Message);
Application.RunOnMainThread (() => {
new Alert ("", Language.StringByID (R.MyInternationalizationString.OperationFailed), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
});
@@ -723,61 +738,32 @@
byte [] gatewayBytes = null;
string [] strServerIP = (MainPage.SeviceIP).Split ('.');
string [] strServerIP1 = (MainPage.SeviceIP).Split ('.');
- MainPage.Loading.Start ("Configuring device...");
+ MainPage.Loading.Start ("Configuring gateway...");
System.Threading.Tasks.Task.Run (() => {
try {
- //璇诲彇涓�绔彛浜ゆ崲鏈恒�佹棤绾跨綉鍏崇殑閰嶇疆淇℃伅
- gatewayBytes = Control.ControlBytesSendHasReturn (Command.ReadGateWayModelInfo, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, new byte [] { });
-
- gatewayDeicve.Remote_GroupName = MainPage.LoginUser.AccountString;//UserConfig.Instance.CurrentRegion.RegionName;
- gatewayDeicve.Remote_ProjectName = gatewayDeicve.MAC.Replace (".", "");//UserConfig.Instance.CurrentRegion.RegionName;
- gatewayDeicve.Remote_UserName = "Admin";
- gatewayDeicve.Remote_Password = "c" + MainPage.LoginUser.ID;
- //gatewayDeicve.Remote_Password = "85521566";
- byte [] ggn = new byte [20];
- byte [] b1 = CommonPage.MyEncodingGB2312.GetBytes (gatewayDeicve.Remote_GroupName);
- gatewayDeicve.Remote_GroupName = CommonPage.MyEncodingGB2312.GetString (b1);
- Array.Copy (b1, 0, ggn, 0, 20 < b1.Length ? 20 : b1.Length);
-
- byte [] gpn = new byte [20];
- byte [] b2 = CommonPage.MyEncodingGB2312.GetBytes (gatewayDeicve.Remote_ProjectName);
- Array.Copy (b2, 0, gpn, 0, 20 < b2.Length ? 20 : b2.Length);
-
- byte [] gun = new byte [8];
- byte [] b3 = CommonPage.MyEncodingGB2312.GetBytes (gatewayDeicve.Remote_UserName);
- Array.Copy (b3, 0, gun, 0, 8 < b3.Length ? 8 : b3.Length);
-
- byte [] gpw = new byte [8];
- byte [] b4 = CommonPage.MyEncodingGB2312.GetBytes (gatewayDeicve.Remote_Password);
- Array.Copy (b4, 0, gpw, 0, 8 < b4.Length ? 8 : b4.Length);
-
-
- gatewayBytes [0] = TYPEHdlMQTT;//HDL MQTT
- Array.Copy (ggn, 0, gatewayBytes, 1, 20);
- Array.Copy (gpn, 0, gatewayBytes, 21, 20);
- Array.Copy (gun, 0, gatewayBytes, 41, 8);
- Array.Copy (gpw, 0, gatewayBytes, 49, 8);
- //1.淇敼鐢ㄦ埛鍚嶄俊鎭�
- Control.ControlBytesSend (Command.SetGateWayModelInfo, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, gatewayBytes);
- ////2.璇诲彇涓�娆$鐞嗕俊鎭�
- //byte [] adminBytes = Control.ControlBytesSendHasReturn (Command.ReadGateWayAdminInfo, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, new byte [] { });
- ////3.淇敼绠$悊淇℃伅
- //if (SetGateWayAdminInfo (adminBytes)) {
- // //4.鍐欓厤缃垚鍔熷悗涓嬩竴姝ユ搷浣�
- // GatewaySettingSucceeded ();
+ ////璇诲彇涓�绔彛浜ゆ崲鏈恒�佹棤绾跨綉鍏崇殑閰嶇疆淇℃伅
+ //gatewayBytes = Control.ControlBytesSendHasReturn (Command.ReadGateWayModelInfo, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, new byte [] { });
+ //if (gatewayBytes == null) {
+ // //璇诲彇涓�绔彛浜ゆ崲鏈恒�佹棤绾跨綉鍏崇殑閰嶇疆淇℃伅澶辫触
+ // new Alert ("", "Read gateway configuration failed!", "Close").Show ();
+ // return;
//}
-
- //2.淇敼绠$悊淇℃伅
- if (SetGateWayAdminInfo ()) {
- //3.鍐欓厤缃垚鍔熷悗涓嬩竴姝ユ搷浣�
- GatewaySettingSucceeded ();
+
+ //1.淇敼鐢ㄦ埛鍚嶄俊鎭� 鍜屼慨鏀硅繛鎺ユā寮�
+ if (SetGateWayModelInfo()) {
+ //2.淇敼绠$悊淇℃伅
+ if (SetGateWayAdminInfo ()) {
+ //3.鍐欓厤缃垚鍔熷悗涓嬩竴姝ユ搷浣�
+ GatewaySettingSucceeded ();
+ }
}
} catch (Exception ex) {
- Console.WriteLine (ex.Message);
+ Utlis.WriteLine (ex.Message);
Application.RunOnMainThread (() => {
- new Alert ("", Language.StringByID (R.MyInternationalizationString.OperationFailed), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+ //淇敼缃戝叧杩炴帴妯″紡澶辫触
+ new Alert ("", "Failed to modify gateway connection mode!", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
});
bool canRemove = false;
} finally {
@@ -788,6 +774,40 @@
}
});
//Room.InitAllRoom ();
+ }
+
+ bool SetGateWayModelInfo () {
+ byte [] gatewayBytes = new byte [60];
+ gatewayDeicve.Remote_GroupName = MainPage.LoginUser.AccountString;//UserConfig.Instance.CurrentRegion.RegionName;
+ gatewayDeicve.Remote_ProjectName = gatewayDeicve.MAC.Replace (".", "");//UserConfig.Instance.CurrentRegion.RegionName;
+ gatewayDeicve.Remote_UserName = "Admin";
+ gatewayDeicve.Remote_Password = "c" + MainPage.LoginUser.ID;
+ //gatewayDeicve.Remote_Password = "85521566";
+ byte [] ggn = new byte [20];
+ byte [] b1 = CommonPage.MyEncodingGB2312.GetBytes (gatewayDeicve.Remote_GroupName);
+ gatewayDeicve.Remote_GroupName = CommonPage.MyEncodingGB2312.GetString (b1);
+ Array.Copy (b1, 0, ggn, 0, 20 < b1.Length ? 20 : b1.Length);
+
+ byte [] gpn = new byte [20];
+ byte [] b2 = CommonPage.MyEncodingGB2312.GetBytes (gatewayDeicve.Remote_ProjectName);
+ Array.Copy (b2, 0, gpn, 0, 20 < b2.Length ? 20 : b2.Length);
+
+ byte [] gun = new byte [8];
+ byte [] b3 = CommonPage.MyEncodingGB2312.GetBytes (gatewayDeicve.Remote_UserName);
+ Array.Copy (b3, 0, gun, 0, 8 < b3.Length ? 8 : b3.Length);
+
+ byte [] gpw = new byte [8];
+ byte [] b4 = CommonPage.MyEncodingGB2312.GetBytes (gatewayDeicve.Remote_Password);
+ Array.Copy (b4, 0, gpw, 0, 8 < b4.Length ? 8 : b4.Length);
+
+
+ gatewayBytes [0] = TYPEHdlMQTT;//HDL MQTT
+ Array.Copy (ggn, 0, gatewayBytes, 1, 20);
+ Array.Copy (gpn, 0, gatewayBytes, 21, 20);
+ Array.Copy (gun, 0, gatewayBytes, 41, 8);
+ Array.Copy (gpw, 0, gatewayBytes, 49, 8);
+ byte [] backBytes = Control.ControlBytesSendHasReturn (Command.SetGateWayModelInfo, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, gatewayBytes);
+ return CheckIsSuccessfulWithBytes (backBytes, "Failed to modify gateway connection mode.");
}
/// <summary>
@@ -834,7 +854,7 @@
byte [] backBytes = Control.ControlBytesSendHasReturn (Command.SetGateWayAdminInfo, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, adminBytes);
- return CheckIsSuccessfulWithBytes (backBytes);
+ return CheckIsSuccessfulWithBytes (backBytes, "Failed to modify gateway administrator information!");
}
/// <summary>
@@ -842,11 +862,11 @@
/// </summary>
/// <param name="backBytes"></param>
/// <returns></returns>
- private bool CheckIsSuccessfulWithBytes (byte [] backBytes)
+ private bool CheckIsSuccessfulWithBytes (byte [] backBytes, string errorStr = "Modify gateway configuration failed!")
{
if (backBytes == null) {
Application.RunOnMainThread (() => {
- new Alert ("", Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline),
+ new Alert ("", ErrorCode.GatewayNoResponse,
Language.StringByID (R.MyInternationalizationString.Close)).Show ();
});
return false;
@@ -854,7 +874,7 @@
return true;
} else {
Application.RunOnMainThread (() => {
- new Alert ("", Language.StringByID (R.MyInternationalizationString.OperationFailed),
+ new Alert ("", errorStr,
Language.StringByID (R.MyInternationalizationString.Close)).Show ();
});
return false;
@@ -879,7 +899,7 @@
var bindReginIdStatus = Control.ControlBytesSendHasReturn (Command.Write_APP_Data_STORE_1D5E_CMD, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, sendBytes);
if (bindReginIdStatus == null) {
Application.RunOnMainThread (() => {
- new Alert ("", Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+ new Alert ("", ErrorCode.GatewayNoResponse, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
});
return;
} else if (bindReginIdStatus [0] != 0xF8) {
@@ -891,143 +911,165 @@
}
}
- BindGateways ();
+ BindGatewaysNew ();
}
+
/// <summary>
/// Gateway setting succeeded锛宒ata up.Please wait...
+ /// 缁戝畾Mac(鍗板害鐗�)
/// </summary>
- void BindGateways (){
-
+ void BindGatewaysNew ()
+ {
Application.RunOnMainThread (() => {
- MainPage.Loading.Start ("Gateway setting succeeded锛宒ata up.Please wait...");
+ MainPage.Loading.Start ("Gateway setting succeeded锛宒ata up. Please wait...");
});
IO.FileUtils.SaveEquipmentMessage (gatewayDeicve);
var gatewayMAC = gatewayDeicve.MAC.Replace (".", "");
- var oldMac = "";
- //2020-01-11
- if (UserConfig.Instance.CheckHomeGatewaysNotEmpty ()) {
- //褰撳墠浣忓畢瀛樺湪Mac 淇敼MAC鎺ュ彛
- oldMac = UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId;
- if(oldMac == gatewayMAC) {//鍜岀粦瀹歮ac涓�鑷达紝涓嶇敤淇敼
- AddMacToUserConfig (gatewayMAC);
- return;
- }
- var mUpdateMacObj = new UpdateMacObj () {
- LoginAccessToken = MainPage.LoginUser.LoginTokenString,
- HomeId = UserConfig.Instance.CurrentRegion.Id,
- NewMac = gatewayMAC,
- OldMac = oldMac
- };
- string urlHead = MainPage.RequestHttpsHost;
- if (mUpdateMacObj.IsOtherAccountCtrl) {
- urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
- mUpdateMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
- }
+ //璧版柊鏇存柊缁戝畾鎺ュ彛
+ var mBindMacObj = new BindMacObj () {
+ LoginAccessToken = MainPage.LoginUser.LoginTokenString,
+ HomeId = UserConfig.Instance.CurrentRegion.Id,
+ MAC = gatewayMAC
- var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mUpdateMacObj);
-
- //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true });
- var respone = MainPage.RequestHttps (API.UpdateMac, requestJson, urlHead);
- if (respone.StateCode.ToUpper () != "SUCCESS") {
- GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11
- Application.RunOnMainThread (() => {
- new Alert ("", "Failed to update Mac address, gateway binding failed!", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
- if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
- new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
- }
- });
- return;
- }
- //GetNowHomeGateway ();
- AddMacToUserConfig (gatewayMAC);
- } else {
- //璧版柊缁戝畾鎺ュ彛
- var mBindMacObj = new BindGatewayToHomeObj () {
- LoginAccessToken = MainPage.LoginUser.LoginTokenString,
- HomeId = UserConfig.Instance.CurrentRegion.Id,
-
- };
- mBindMacObj.BindGateways.Add (gatewayMAC);
- string urlHead = MainPage.RequestHttpsHost;
- if (mBindMacObj.IsOtherAccountCtrl) {
- urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
- mBindMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
- }
-
-
- var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mBindMacObj);
-
- //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true });
- var respone = MainPage.RequestHttps (API.BindGatewayToHome, requestJson, urlHead);
- if (respone.StateCode.ToUpper () != "SUCCESS" && respone.StateCode != "BindGatewaysExists") {
- GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11
- Application.RunOnMainThread (() => {
- new Alert ("", "Failed to bind Mac address, gateway binding failed!", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
- if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
- new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
- }
- });
- return;
- }
- //GetNowHomeGateway ();
- AddMacToUserConfig (gatewayMAC);
+ };
+
+ string urlHead = MainPage.RequestHttpsHost;
+ if (mBindMacObj.IsOtherAccountCtrl) {
+ urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
+ mBindMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
}
+
+ var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mBindMacObj);
+
+ //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true });
+ var respone = MainPage.RequestHttps (API.BindMac, requestJson, urlHead);
+ if (respone.StateCode.ToUpper () != "SUCCESS") {
+ GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11
+ Application.RunOnMainThread (() => {
+ new Alert ("", $"Failed to bind Mac address! {ErrorCode.Reason }{respone.StateCode}", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+ if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
+ new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+ }
+ });
+ return;
+ }
+ //GetNowHomeGateway ();
+ AddMacToUserConfig (gatewayMAC);
+
}
-
- //void GetAllBindGatewarysPagger ()
- //{
- // var gatewayListObj = new GetAllBindGatewarysPaggerObj ();
- // gatewayListObj.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString;
- // var gatewayListJson = Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListObj);
- // var gatewayListRevertObj = MainPage.RequestHttps (API.GetAllBindGatewarysPagger, gatewayListJson);
- // if (gatewayListRevertObj.StateCode.ToUpper () == "SUCCESS") {
- // var mGateRes = Newtonsoft.Json.JsonConvert.DeserializeObject<AllBindGatewarysPaggerRes> (gatewayListRevertObj.ResponseData.ToString ());
- // var responseGatewayDataObj = mGateRes.PageData;
- // if (responseGatewayDataObj.Count > 0) {
- // UserConfig.Instance.GatewayList.Clear ();
- // UserConfig.Instance.GatewayList.AddRange (responseGatewayDataObj);
- // UserConfig.Instance.GatewayMAC = gatewayDeicve.MAC;
- // UserConfig.Instance.SaveUserConfig ();
- // MainPage.LoginUser.LastTime = DateTime.Now;
- // Application.RunOnMainThread (() => {
- // UserMiddle.Init (true);
- // });
- // } else {
- // Application.RunOnMainThread (() => {
- // new Alert ("", "Communication abnormality, gateway failed to bind residence.Please try again.", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
- // if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
- // new Alert ("22:" + gatewayListRevertObj.StateCode, gatewayListRevertObj.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
- // }
- // });
- // }
- // } else {
-
- // ShowGetAllBindGatewarysPaggerErrorInfo (gatewayListRevertObj.StateCode);
- // }
-
- //}
/// <summary>
/// 淇敼鍒囨崲鏈湴浣忓畢 缃戝叧
/// </summary>
void AddMacToUserConfig (string gatewayMAC)
{
-
+
UserConfig.Instance.GatewayMAC = gatewayMAC;
UserConfig.Instance.SaveUserConfig ();
MainPage.LoginUser.LastTime = DateTime.Now;
Application.RunOnMainThread (() => {
bodyView.RemoveAll ();
+ //MainPage.WiFiStatus = "CrabtreeAdd/WiFi.png";
UserMiddle.Init (true);
+ MainPage.WiFiStatus = "CrabtreeAdd/WiFi.png";
+ UserMiddle.btnLinkStatus.UnSelectedImagePath = MainPage.WiFiStatus;
});
+
+ //Utlis.ShowAppLinkStatus (AppLinkStatus.WiFi);
}
+
+
+
+ ///// <summary>
+ ///// Gateway setting succeeded锛宒ata up.Please wait...
+ ///// </summary>
+ //void BindGateways ()
+ //{
+
+ // Application.RunOnMainThread (() => {
+ // MainPage.Loading.Start ("Gateway setting succeeded锛宒ata up.Please wait...");
+ // });
+ // IO.FileUtils.SaveEquipmentMessage (gatewayDeicve);
+ // var gatewayMAC = gatewayDeicve.MAC.Replace (".", "");
+ // var oldMac = "";
+ // //2020-01-11
+ // if (UserConfig.Instance.CheckHomeGatewaysNotEmpty ()) {
+ // //褰撳墠浣忓畢瀛樺湪Mac 淇敼MAC鎺ュ彛
+ // oldMac = UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId;
+ // if (oldMac == gatewayMAC) {//鍜岀粦瀹歮ac涓�鑷达紝涓嶇敤淇敼
+ // AddMacToUserConfig (gatewayMAC);
+ // return;
+ // }
+
+ // var mUpdateMacObj = new UpdateMacObj () {
+ // LoginAccessToken = MainPage.LoginUser.LoginTokenString,
+ // HomeId = UserConfig.Instance.CurrentRegion.Id,
+ // NewMac = gatewayMAC,
+ // OldMac = oldMac
+ // };
+ // string urlHead = MainPage.RequestHttpsHost;
+ // if (mUpdateMacObj.IsOtherAccountCtrl) {
+ // urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
+ // mUpdateMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
+ // }
+
+ // var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mUpdateMacObj);
+
+ // //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true });
+ // var respone = MainPage.RequestHttps (API.UpdateMac, requestJson, urlHead);
+ // if (respone.StateCode.ToUpper () != "SUCCESS") {
+ // GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11
+ // Application.RunOnMainThread (() => {
+ // new Alert ("", "Failed to update Mac address, gateway binding failed!", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+ // if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
+ // new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+ // }
+ // });
+ // return;
+ // }
+ // //GetNowHomeGateway ();
+ // AddMacToUserConfig (gatewayMAC);
+ // } else {
+ // //璧版柊缁戝畾鎺ュ彛
+ // var mBindMacObj = new BindGatewayToHomeObj () {
+ // LoginAccessToken = MainPage.LoginUser.LoginTokenString,
+ // HomeId = UserConfig.Instance.CurrentRegion.Id,
+
+ // };
+ // mBindMacObj.BindGateways.Add (gatewayMAC);
+ // string urlHead = MainPage.RequestHttpsHost;
+ // if (mBindMacObj.IsOtherAccountCtrl) {
+ // urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
+ // mBindMacObj.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
+ // }
+
+
+ // var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mBindMacObj);
+
+ // //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = gatewayMAC, IsReBind = true });
+ // var respone = MainPage.RequestHttps (API.BindGatewayToHome, requestJson, urlHead);
+ // if (respone.StateCode.ToUpper () != "SUCCESS" && respone.StateCode != "BindGatewaysExists") {
+ // GetNowHomeGatewayAfterBindMacFailed ();//2020-01-11
+ // Application.RunOnMainThread (() => {
+ // new Alert ("", "Failed to bind Mac address, gateway binding failed!", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+ // if (MainPage.LoginUser.AccountString == "464027401@qq.com") {
+ // new Alert (respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+ // }
+ // });
+ // return;
+ // }
+ // //GetNowHomeGateway ();
+ // AddMacToUserConfig (gatewayMAC);
+ // }
+
+ //}
/// <summary>
@@ -1059,6 +1101,88 @@
}
+
+ #region 2020-07-02
+ /// <summary>
+ /// 瀹氭椂鎼滅储璁惧绾跨▼
+ /// </summary>
+ Thread searchDeviceThead;
+ bool bStartSearch;
+
+ /// <summary>
+ /// 2020-07-02
+ /// 缃戝叧閰嶉妯″紡鏃讹紝寮�鍚嚜鍔ㄦ悳绱㈢嚎绋�
+ /// </summary>
+ void StartSearchDeviceThead ()
+ {
+ StopSearchDeviceThead ();
+ CommonPage.LocalPhoneFindDevice = true;
+ CommonPage.FindGatewayChilren = true;
+ CommonPage.RandomHigh = (byte)new Random ().Next (255);
+ CommonPage.RandomLow = (byte)new Random ().Next (255);
+
+ bStartSearch = true;
+ searchDeviceThead = new Thread ((obj) => {
+ while (bStartSearch) {
+ try {
+ //瀹氭椂4S
+ Thread.Sleep (4000);
+
+ var ms = new System.IO.MemoryStream ();
+ ms.WriteByte (CommonPage.RandomHigh);
+ ms.WriteByte (CommonPage.RandomLow);
+
+ var list = CommonPage.DeviceList;
+ int tempCount = list.Count;
+ string s = ";";
+ for (int i = 0; i < list.Count; i++) {
+ Common common = list [i];
+ if (common.SubnetID != gatewayDeicve.SubnetID)
+ continue;
+ if (s.Contains (";" + common.SubnetID.ToString () + ":" + common.DeviceID.ToString ()))
+ continue;
+ s += common.SubnetID.ToString () + ":" + common.DeviceID.ToString () + ";";
+ ms.WriteByte (common.SubnetID);
+ ms.WriteByte (common.DeviceID);
+ }
+ Utlis.WriteLine ("SearchDeviceThead鎼滅储闈炵綉鍏宠澶囷紝缃戠粶鍦板潃鏄�:" + CommonPage.EndPoint.ToString ());
+ var control = new Control ();
+ control.Send (new Target () {
+ IPEndPoint = CommonPage.EndPoint,
+ Command = Command.ReadDeviceModul,
+ SubnetID = gatewayDeicve.SubnetID,
+ DeviceID = 0xFF,
+ AddData = ms.ToArray ()
+ }, SendCount.Zero, false);
+
+ ms.Close ();
+
+ } catch {
+
+ }
+ }
+ });
+ searchDeviceThead.Start ();
+
+
+ Utlis.WriteLine ("----StartSearchDeviceThead----");
+ }
+
+ /// <summary>
+ /// 鏆傚仠鎼滅储璁惧绾跨▼
+ /// </summary>
+ void StopSearchDeviceThead ()
+ {
+ CommonPage.LocalPhoneFindDevice = false;
+ CommonPage.FindGatewayChilren = false;
+ bStartSearch = false;
+ if (searchDeviceThead != null)
+ searchDeviceThead.Abort ();
+
+ Utlis.WriteLine ("----StopSearchDeviceThead----");
+
+ }
+ #endregion
///// <summary>
///// 鏌ヨ褰撳墠浣忓畢 缃戝叧鍒楄〃
@@ -1184,7 +1308,7 @@
// }
// } catch (Exception ex) {
- // Console.WriteLine (ex.Message);
+ // Utlis.WriteLine (ex.Message);
// Application.RunOnMainThread (() => {
// new Alert ("", Language.StringByID (R.MyInternationalizationString.OperationFailed), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
// });
@@ -1199,7 +1323,7 @@
// //Room.InitAllRoom ();
//}
-
+
///// <summary>
///// 淇敼URL
--
Gitblit v1.8.0