From bbc74a6dae2e90a811b2507c5896fe89aa29ccc0 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 08 一月 2020 11:30:46 +0800
Subject: [PATCH] 2020-01-08 1.替换新服务器接口。
---
Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs | 221 +++++++++++++++++++++++++++++++++---------------------
1 files changed, 135 insertions(+), 86 deletions(-)
diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs
index 74791eb..2b4e0ac 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs
@@ -15,6 +15,7 @@
static Loading myLoading;
bool isReBind = false;
static List<Common> addedCommon;
+ static bool needRefresh;
public GuideSettingGateway (GatewayBase gd)
{
gatewayDeicve = gd as GatewayBase;
@@ -34,6 +35,10 @@
myLoading.Hide ();
btnCloseLoading.RemoveFromParent ();
WirelessConfig (new byte [] { 1 });//close
+ if (needRefresh) {
+ needRefresh = false;
+ SearchDeviceList ();
+ }
});
};
@@ -127,7 +132,7 @@
bottomView.AddChidren (btnAssignRoom);
btnAssignRoom.MouseUpEventHandler += (sender, e) => {
//bodyView.RemoveAll ();
-
+
btnAssignRoomAction ();
};
SearchDeviceList ();
@@ -139,7 +144,7 @@
void btnAssignRoomAction ()
{
if (gatewayDeicve.Type == DeviceType.OnePortMqttFR) {
-
+
Console.WriteLine ("Assign OnePortMqttFR锛孒DL MQTT");
//RemoteSetting ();
RemoteSettingWithHDLMQTT ();
@@ -151,7 +156,7 @@
}
-
+
/// <summary>
/// 寮�鍏虫棤绾块厤缃�
@@ -478,23 +483,24 @@
//}
if (config) {
- System.Threading.Tasks.Task.Factory.StartNew (() => {
- try {
- byte bigClass = common.BigClass;
- byte minClass = common.MinClass;
- int count = common.LoopCount;
- for (int k = 1, j = 0; k <= count; k++) {
- if (Control.ControlBytesSendHasReturn (Command.ReadDeviceLoopInfo, common.SubnetID, common.DeviceID, new byte [] { bigClass, minClass, (byte)k }) == null) {
- j++;
- //杩炵画涓ゆ璇诲彇涓嶅埌鏁版嵁鍒欒烦鍑鸿寰幆
- if (j == 2 && k == 2)
- break;
- }
- }
- } catch (Exception ex) {
- Console.WriteLine ("Cinfig Read Device Loop Info " + ex.Message);
- }
- });
+ needRefresh = true;
+ //System.Threading.Tasks.Task.Factory.StartNew (() => {
+ // try {
+ // byte bigClass = common.BigClass;
+ // byte minClass = common.MinClass;
+ // int count = common.LoopCount;
+ // for (int k = 1, j = 0; k <= count; k++) {
+ // if (Control.ControlBytesSendHasReturn (Command.ReadDeviceLoopInfo, common.SubnetID, common.DeviceID, new byte [] { bigClass, minClass, (byte)k }) == null) {
+ // j++;
+ // //杩炵画涓ゆ璇诲彇涓嶅埌鏁版嵁鍒欒烦鍑鸿寰幆
+ // if (j == 2 && k == 2)
+ // break;
+ // }
+ // }
+ // } catch (Exception ex) {
+ // Console.WriteLine ("Cinfig Read Device Loop Info " + ex.Message);
+ // }
+ //});
}
#endregion
@@ -604,7 +610,7 @@
//var currentRegionIdBytes = Utlis.IntToByteArray (UserConfig.Instance.CurrentRegion.RegionID);
- byte [] RegionIDBytes = CommonPage.MyEncodingGB2312.GetBytes (UserConfig.Instance.CurrentRegion.RegionID.ToString());
+ byte [] RegionIDBytes = CommonPage.MyEncodingGB2312.GetBytes (UserConfig.Instance.CurrentRegion.Id.ToString ());
var currentRegionIdBytes = new byte [4];
Array.Copy (RegionIDBytes, 0, currentRegionIdBytes, 0, 4 < RegionIDBytes.Length ? 4 : RegionIDBytes.Length);
@@ -614,7 +620,7 @@
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.MasterID;
+ gatewayDeicve.Remote_Password = "c" + MainPage.LoginUser.ID;
byte [] ggn = new byte [20];
byte [] b1 = CommonPage.MyEncodingGB2312.GetBytes (gatewayDeicve.Remote_GroupName);
gatewayDeicve.Remote_GroupName = CommonPage.MyEncodingGB2312.GetString (b1);
@@ -689,45 +695,7 @@
return;
}
}
- Application.RunOnMainThread (() => {
- MainPage.Loading.Start ("Gateway setting succeeded锛宒ata up.Please wait...");
- });
- IO.FileUtils.SaveEquipmentMessage (gatewayDeicve);
- var gatewayMAC = gatewayDeicve.MAC.Replace (".", "");
- var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.RegionID, MAC = gatewayMAC, IsReBind = true });
- var respone = MainPage.RequestHttps ("EditMACByHomeId", requestJson);
- if (respone.StateCode != "SUCCESS") {
- Application.RunOnMainThread (() => {
- new Alert ("", "Communication abnormality,gateway failed to bind residence!", 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;
- }
- var gatewayListObj = new GatewayListObj ();
- var gatewayListJson = Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListObj);
- var gatewayListRevertObj = MainPage.RequestHttps ("GatewayList", gatewayListJson);
- if (gatewayListRevertObj.StateCode == "SUCCESS") {
- var responseGatewayDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GatewayRes>> (gatewayListRevertObj.ResponseData.ToString ());
- 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:" + respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
- }
- });
- }
- }
+ BindGateways ();
}
} catch (Exception ex) {
Console.WriteLine (ex.Message);
@@ -744,6 +712,8 @@
});
//Room.InitAllRoom ();
}
+
+
/// <summary>
/// 杩滅▼閰嶇疆 HDL MQTT妯″紡
@@ -763,7 +733,7 @@
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.MasterID;
+ gatewayDeicve.Remote_Password = "c" + MainPage.LoginUser.ID;
//gatewayDeicve.Remote_Password = "85521566";
byte [] ggn = new byte [20];
byte [] b1 = CommonPage.MyEncodingGB2312.GetBytes (gatewayDeicve.Remote_GroupName);
@@ -803,7 +773,7 @@
//3.鍐欓厤缃垚鍔熷悗涓嬩竴姝ユ搷浣�
GatewaySettingSucceeded ();
}
-
+
@@ -828,15 +798,15 @@
/// </summary>
/// <param name="adminBytes"></param>
/// <returns></returns>
- bool SetGateWayAdminInfo (byte[] adminBytes) {
+ bool SetGateWayAdminInfo (byte [] adminBytes) {
byte [] name = CommonPage.MyEncodingGB2312.GetBytes (MainPage.LoginUser.AccountString);
byte [] backBytes;
if (adminBytes != null && adminBytes.Length >= 73) {//杩斿洖鏁版嵁姝e父,鍙慨鏀硅处鍙蜂俊鎭�
Array.Copy (name, 0, adminBytes, 0, 36 < name.Length ? 36 : name.Length);
backBytes = Control.ControlBytesSendHasReturn (Command.SetGateWayAdminInfo, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, adminBytes);
-
+
} else {
- byte [] currentRegionIdBytes = CommonPage.MyEncodingGB2312.GetBytes (UserConfig.Instance.CurrentRegion.RegionID.ToString());
+ byte [] currentRegionIdBytes = CommonPage.MyEncodingGB2312.GetBytes (UserConfig.Instance.CurrentRegion.Id.ToString ());
//byte [] currentRegionIdBytes = CommonPage.MyEncodingGB2312.GetBytes (UserConfig.Instance.CurrentRegion.RegionID);
//var currentRegionIdBytes = Utlis.IntToByteArray (UserConfig.Instance.CurrentRegion.RegionID);
adminBytes = new byte [73];
@@ -844,7 +814,7 @@
Array.Copy (name, 0, adminBytes, 0, 36 < name.Length ? 36 : name.Length);
Array.Copy (currentRegionIdBytes, 0, adminBytes, 37, 36 < currentRegionIdBytes.Length ? 36 : currentRegionIdBytes.Length);
backBytes = Control.ControlBytesSendHasReturn (Command.SetGateWayAdminInfo, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, adminBytes);
-
+
}
return CheckIsSuccessfulWithBytes (backBytes);
}
@@ -858,7 +828,7 @@
{
byte [] name = CommonPage.MyEncodingGB2312.GetBytes (MainPage.LoginUser.AccountString);
//byte [] currentRegionIdBytes = CommonPage.MyEncodingGB2312.GetBytes (UserConfig.Instance.CurrentRegion.RegionID);
- byte [] currentRegionIdBytes = CommonPage.MyEncodingGB2312.GetBytes (UserConfig.Instance.CurrentRegion.RegionID.ToString());
+ byte [] currentRegionIdBytes = CommonPage.MyEncodingGB2312.GetBytes (UserConfig.Instance.CurrentRegion.Id.ToString ());
//var currentRegionIdBytes = Utlis.IntToByteArray (UserConfig.Instance.CurrentRegion.RegionID);
byte [] adminBytes = new byte [73];
adminBytes [36] = 1;//浣忓畢鏍囧織浣�
@@ -1037,9 +1007,9 @@
if (gatewayDeicve.Type == DeviceType.OnePortMqttFR) {
//var currentRegionIdBytes = Utlis.IntToByteArray (UserConfig.Instance.CurrentRegion.RegionID);
//byte [] currentRegionIdBytes = CommonPage.MyEncodingGB2312.GetBytes (UserConfig.Instance.CurrentRegion.RegionID);
- byte [] currentRegionIdBytes = CommonPage.MyEncodingGB2312.GetBytes (UserConfig.Instance.CurrentRegion.RegionID.ToString());
- byte [] sendBytes = new byte [32];
- Array.Copy (currentRegionIdBytes, 0, sendBytes, 2, 32 < currentRegionIdBytes.Length ? 32 : currentRegionIdBytes.Length);
+ byte [] currentRegionIdBytes = CommonPage.MyEncodingGB2312.GetBytes (UserConfig.Instance.CurrentRegion.Id.ToString ());
+ byte [] sendBytes = new byte [36];
+ Array.Copy (currentRegionIdBytes, 0, sendBytes, 2, 36 < currentRegionIdBytes.Length ? 36 : currentRegionIdBytes.Length);
//var currentRegionIdBytes = Utlis.IntToByteArray (UserConfig.Instance.CurrentRegion.RegionID);
var bindReginIdStatus = Control.ControlBytesSendHasReturn (Command.Write_APP_Data_STORE_1D5E_CMD, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, sendBytes);
@@ -1057,28 +1027,81 @@
}
}
+ BindGateways ();
+
+
+ }
+
+ /// <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 requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (new EditMACByHomeId { RegionID = UserConfig.Instance.CurrentRegion.RegionID, MAC = gatewayMAC, IsReBind = true });
- var respone = MainPage.RequestHttps ("EditMACByHomeId", requestJson);
- if (respone.StateCode != "SUCCESS") {
- Application.RunOnMainThread (() => {
- new Alert ("", "Communication abnormality,gateway failed to bind residence!", 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;
+ var oldMac = "";
+ if (UserConfig.Instance.CheckHomeGateways () && !string.IsNullOrEmpty (UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId)) {
+ //淇敼MAC鎺ュ彛
+ oldMac = UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId;
+ var mUpdateMacObj = new UpdateMacObj () {
+ LoginAccessToken = MainPage.LoginUser.LoginTokenString,
+ HomeId = UserConfig.Instance.CurrentRegion.Id,
+ NewMac = gatewayMAC,
+ OldMac = oldMac
+ };
+ 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);
+ if (respone.StateCode.ToUpper () != "SUCCESS") {
+ Application.RunOnMainThread (() => {
+ new Alert ("", "Communication abnormality,gateway failed to bind residence!", 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;
+ }
+ GetAllBindGatewarysPagger ();
+ } else {
+ //璧版柊缁戝畾鎺ュ彛
+ var mBindMacObj = new BindGatewayToHomeObj () {
+ LoginAccessToken = MainPage.LoginUser.LoginTokenString,
+ HomeId = UserConfig.Instance.CurrentRegion.Id,
+
+ };
+ mBindMacObj.BindGateways.Add (gatewayMAC);
+
+ 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);
+ if (respone.StateCode.ToUpper () != "SUCCESS" && respone.StateCode != "BindGatewaysExists") {
+ Application.RunOnMainThread (() => {
+ new Alert ("", "Communication abnormality,gateway failed to bind residence!", 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;
+ }
+ GetAllBindGatewarysPagger ();
+
}
- var gatewayListObj = new GatewayListObj ();
+
+ }
+
+ void GetAllBindGatewarysPagger () {
+ var gatewayListObj = new GetAllBindGatewarysPaggerObj ();
+ gatewayListObj.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString;
var gatewayListJson = Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListObj);
- var gatewayListRevertObj = MainPage.RequestHttps ("GatewayList", gatewayListJson);
- if (gatewayListRevertObj.StateCode == "SUCCESS") {
- var responseGatewayDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GatewayRes>> (gatewayListRevertObj.ResponseData.ToString ());
+ 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);
@@ -1092,11 +1115,37 @@
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:" + respone.StateCode, respone.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+ new Alert ("22:" + gatewayListRevertObj.StateCode, gatewayListRevertObj.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
}
});
}
+ } else {
+
+ ShowGetAllBindGatewarysPaggerErrorInfo (gatewayListRevertObj.StateCode);
}
}
+
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name="stateCodeStr"></param>
+ void ShowGetAllBindGatewarysPaggerErrorInfo (string stateCodeStr)
+ {
+ string mes = "";
+ //2020-01-06 寰呰ˉ鍏�
+ if (stateCodeStr == ErrorCode.NetworkError) {
+ mes = ErrorCode.NetworkError;
+ } else {
+ mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr;
+
+ }
+ if (!string.IsNullOrEmpty (mes)) {
+ Application.RunOnMainThread (() => {
+ new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+ });
+ }
+
+
+ }
}
}
\ No newline at end of file
--
Gitblit v1.8.0