| | |
| | | { |
| | | public class GuideSettingGateway : FrameLayout |
| | | { |
| | | |
| | | static byte TYPEStandardMQTT = 5; |
| | | static byte TYPEHdlMQTT = 4; |
| | | static GuideSettingGateway curView; |
| | |
| | | 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); |
| | | } |
| | | }); |
| | |
| | | }) { IsBackground = true }.Start (); |
| | | } |
| | | |
| | | ///// <summary> |
| | | ///// 2020-02-11 |
| | | ///// 搜索重复次数 由4次增加为6次 |
| | | ///// </summary> |
| | | //static readonly int READ_COUNT = 6; |
| | | /// <summary> |
| | | /// 读取设备 |
| | | /// </summary> |
| | |
| | | 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 (); |
| | |
| | | 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; }); |
| | |
| | | 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) { |
| | |
| | | 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) { |
| | |
| | | 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) { |
| | |
| | | } |
| | | }); |
| | | //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> |
| | |
| | | { |
| | | if (backBytes == null) { |
| | | Application.RunOnMainThread (() => { |
| | | new Alert ("", Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline), |
| | | new Alert ("", ErrorCode.GatewayNoResponse, |
| | | Language.StringByID (R.MyInternationalizationString.Close)).Show (); |
| | | }); |
| | | return false; |
| | |
| | | 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) { |
| | |
| | | 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); |
| | | |
| | | } |
| | | |
| | | |