| | |
| | | //在端点名字的后面附加【回路】字样
|
| | | dName += "(" + device.DeviceEpoint + Language.StringByID(R.MyInternationalizationString.uDeviceCircuit) + ")";
|
| | |
|
| | | HdlThreadLogic.Current.RunThread(async () =>
|
| | | HdlThreadLogic.Current.RunThread(() =>
|
| | | {
|
| | | await this.ReName(device, dName, ShowErrorMode.NO);
|
| | | this.ReName(device, dName, ShowErrorMode.NO);
|
| | | });
|
| | | }
|
| | | }
|
| | |
| | | /// <param name="device">设备对象</param>
|
| | | /// <param name="newName">新名字</param>
|
| | | /// <param name="mode">是否显示错误</param>
|
| | | public async Task<bool> ReName(CommonDevice device, string newName, ShowErrorMode mode = ShowErrorMode.YES)
|
| | | public bool ReName(CommonDevice device, string newName, ShowErrorMode mode = ShowErrorMode.YES)
|
| | | {
|
| | | //先别管那么多,更改名字后,刷新设备缓存
|
| | | this.SetEpointName(device, newName);
|
| | |
| | | //成员只能修改自己本地的名字
|
| | | if (UserCenterResourse.UserInfo.AuthorityNo != 3)
|
| | | {
|
| | | var result = await device.RenameDeviceNameAsync(device.DeviceAddr, device.DeviceEpoint, newName);
|
| | | var result = this.RenameDeviceNameAsync(device, newName);
|
| | | if (result == null || result.deviceRenameData == null || result.deviceRenameData.Result == 1)
|
| | | {
|
| | | //设备名称修改失败
|
| | |
| | | }
|
| | | return false;
|
| | | }
|
| | | //备份数据
|
| | | await HdlGatewayLogic.Current.UpLoadDeviceBackupDataToGateway(device, GatewayBackupEnum.A端点名称, newName);
|
| | | }
|
| | | //修改设备名字的话,主页需要重新刷新
|
| | | Phone.UserView.UserPage.Instance.RefreshForm = true;
|
| | |
| | | /// <param name="listDevice">设备对象</param>
|
| | | /// <param name="newMacName">新名字</param>
|
| | | /// <param name="mode">是否显示错误</param>
|
| | | public async Task<bool> ReMacName(List<CommonDevice> listDevice, string newMacName, ShowErrorMode mode = ShowErrorMode.YES)
|
| | | public bool ReMacName(List<CommonDevice> listDevice, string newMacName, ShowErrorMode mode = ShowErrorMode.YES)
|
| | | {
|
| | | if (listDevice.Count == 0)
|
| | | {
|
| | |
| | | if (UserCenterResourse.UserInfo.AuthorityNo != 3)
|
| | | {
|
| | | //修改物理名字
|
| | | var result = await device.RenameDeviceMacNameAsync(device.DeviceAddr, device.DeviceEpoint, newMacName);
|
| | | var result = this.RenameDeviceMacNameAsync(device, newMacName);
|
| | | if (result == null || result.renameDeviceMacNameData == null || result.renameDeviceMacNameData.Result != 0)
|
| | | {
|
| | | //设备名称修改失败
|
| | |
| | | }
|
| | | return false;
|
| | | }
|
| | | //备份数据
|
| | | await HdlGatewayLogic.Current.UpLoadDeviceBackupDataToGateway(device, GatewayBackupEnum.AMac名称, newMacName);
|
| | | //如果它只有一个回路,则更改端点名字
|
| | | if (this.dicDeviceEpoint.ContainsKey(device.DeviceAddr) == true)
|
| | | {
|
| | | //只有一个端点
|
| | | if (this.dicDeviceEpoint[device.DeviceAddr].Count == 1)
|
| | | {
|
| | | return await this.ReName(device, newMacName);
|
| | | return this.ReName(device, newMacName);
|
| | | }
|
| | | //如果它有两个端点时,pir传感器特殊处理
|
| | | else if (this.dicDeviceEpoint[device.DeviceAddr].Count == 2)
|
| | |
| | | {
|
| | | if (myDevice.Type == DeviceType.IASZone)
|
| | | {
|
| | | return await this.ReName(myDevice, newMacName);
|
| | | return this.ReName(myDevice, newMacName);
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | }
|
| | | }
|
| | | return true;
|
| | | }
|
| | |
|
| | | ///<summary >
|
| | | /// 修改设备mac名称
|
| | | /// <para>macName:设备名称</para>
|
| | | /// </summary>
|
| | | private CommonDevice.RenameDeviceMacNameAllData RenameDeviceMacNameAsync(CommonDevice device, string macName)
|
| | | {
|
| | | //如果当前是虚拟住宅
|
| | | if (Common.Config.Instance.Home.IsVirtually == true)
|
| | | {
|
| | | return Phone.ModelData.DeviceModelDataLogic.Current.ReDeviceMacName(device, macName, "MacRename");
|
| | | }
|
| | |
|
| | | //获取编辑设备Mac名字的命令字符
|
| | | var sendData = this.GetReDeviceMacNameCommandText(device.DeviceAddr, device.DeviceEpoint, macName);
|
| | | var result = HdlDeviceCommonLogic.Current.SendJobjectDataToGateway(device, "MacRename", sendData, "MacRename_Respon");
|
| | | if (result.ErrorMsg != null || result.ErrorMsgDiv == 0)
|
| | | {
|
| | | return null;
|
| | | }
|
| | | //加缓存
|
| | | Phone.ModelData.DeviceModelDataLogic.Current.ReDeviceMacName(device, macName, "MacRename");
|
| | |
|
| | | var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.RenameDeviceMacNameData>(result.ReceiptData);
|
| | | return new CommonDevice.RenameDeviceMacNameAllData { renameDeviceMacNameData = tempData };
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 修改设备端口(按键)名称
|
| | | /// </summary>
|
| | | /// <param name="device">设备对象</param>
|
| | | /// <param name="deviceName">设备端点名字</param>
|
| | | /// <returns></returns>
|
| | | private CommonDevice.DeviceRenameAllData RenameDeviceNameAsync(CommonDevice device, string deviceName)
|
| | | {
|
| | | //如果当前是虚拟住宅
|
| | | if (Common.Config.Instance.Home.IsVirtually == true)
|
| | | {
|
| | | return Phone.ModelData.DeviceModelDataLogic.Current.ReDeviceEpointName(device, deviceName, "DeviceRename");
|
| | | }
|
| | | //获取编辑设备端点名字的命令字符
|
| | | var sendData = this.GetReDeviceEpointNameCommandText(device.DeviceAddr, device.DeviceEpoint, deviceName);
|
| | | var result = HdlDeviceCommonLogic.Current.SendJobjectDataToGateway(device, "DeviceRename", sendData, "DeviceRenameRespon");
|
| | | if (result.ErrorMsg != null || result.ErrorMsgDiv == 0)
|
| | | {
|
| | | return null;
|
| | | }
|
| | | //加缓存
|
| | | Phone.ModelData.DeviceModelDataLogic.Current.ReDeviceEpointName(device, deviceName, "DeviceRename");
|
| | |
|
| | | var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.DeviceRenameResponseData>(result.ReceiptData);
|
| | | return new CommonDevice.DeviceRenameAllData { deviceRenameData = tempData };
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 获取编辑设备Mac名字的命令字符
|
| | | /// </summary>
|
| | | /// <param name="deviceAddr"></param>
|
| | | /// <param name="deviceEpoint"></param>
|
| | | /// <param name="deviceName"></param>
|
| | | /// <returns></returns>
|
| | | public string GetReDeviceMacNameCommandText(string deviceAddr, int deviceEpoint, string deviceName)
|
| | | {
|
| | | var bytes = new byte[64];
|
| | | var reamarkGwBytes = Encoding.UTF8.GetBytes(deviceName);
|
| | | System.Array.Copy(reamarkGwBytes, 0, bytes, 0, 64 < reamarkGwBytes.Length ? 64 : reamarkGwBytes.Length);
|
| | | deviceName = Encoding.UTF8.GetString(bytes);
|
| | |
|
| | | var jObject = new Newtonsoft.Json.Linq.JObject { { "DeviceAddr", deviceAddr }, { "Epoint", deviceEpoint }, { "Cluster_ID", 0 }, { "Command", 100 } };
|
| | | var data = new Newtonsoft.Json.Linq.JObject { { "MacName", deviceName } };
|
| | | jObject.Add("Data", data);
|
| | | return jObject.ToString();
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 获取编辑设备端点名字的命令字符
|
| | | /// </summary>
|
| | | /// <param name="deviceAddr"></param>
|
| | | /// <param name="deviceEpoint"></param>
|
| | | /// <param name="deviceName"></param>
|
| | | /// <returns></returns>
|
| | | public string GetReDeviceEpointNameCommandText(string deviceAddr, int deviceEpoint, string deviceName)
|
| | | {
|
| | | var bytes = new byte[64];
|
| | | var reamarkGwBytes = Encoding.UTF8.GetBytes(deviceName);
|
| | | System.Array.Copy(reamarkGwBytes, 0, bytes, 0, 64 < reamarkGwBytes.Length ? 64 : reamarkGwBytes.Length);
|
| | | deviceName = Encoding.UTF8.GetString(bytes);
|
| | |
|
| | | var jObject = new Newtonsoft.Json.Linq.JObject { { "DeviceAddr", deviceAddr }, { "Epoint", deviceEpoint }, { "Cluster_ID", 0 }, { "Command", 96 } };
|
| | | var data = new Newtonsoft.Json.Linq.JObject { { "DeviceName", deviceName } };
|
| | | jObject.Add("Data", data);
|
| | |
|
| | | return jObject.ToString();
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | unSelectPath = imageFilePath;
|
| | | selectPath = imageSelectFilePath;
|
| | | }
|
| | |
|
| | |
|
| | | #endregion
|
| | |
|