ZigbeeApp/GateWay.Droid/Assets/DeviceName.ini
@@ -139,9 +139,9 @@ ;模块ID=DeviceConcreteType的值 / 设备的官方名字 / 设备默认备注名字 / DeviceBeloneType的值 /设备所属种类的名字 / 设备类型名字 ;智能门锁(H06C)〆 H06C = 2800 / S-one 智能门锁 / H06C 智能门锁 / 2800 / 门锁 / 智能门锁 H06C = 2800 / H06C 智能门锁 / H06C 智能门锁 / 2800 / 门锁 / 智能门锁 ;智能门锁(S-one)〆 S-one = 2802 / H06C 智能门锁 / S-one 智能门锁 / 2800 / 门锁 / 智能门锁 S-one = 2802 / S-one 智能门锁 / S-one 智能门锁 / 2800 / 门锁 / 智能门锁 ;*************************************************************** ; 空调设备 ZigbeeApp/GateWay.Droid/Assets/Language.ini
@@ -2039,6 +2039,7 @@ 16164=过户成功 16165=过户失败 16166=恭喜{0}成为「{1}」管理员 16167=检测到还没有备份,请先备份 ;★★★★下面这些是接口的返回信息翻译,从18000开始★★★★ 18004=指定网关已经被绑定 ZigbeeApp/Shared/Common/CommonPage.cs
@@ -42,7 +42,7 @@ /// <summary> /// 版本号 /// </summary> public static string CodeIDString = "1.1.0120092101"; public static string CodeIDString = "1.1.0120092301"; /// <summary> /// 注册来源(0:HDL On 1:Zigbee) /// </summary> ZigbeeApp/Shared/Phone/CommonForm/EditorCommonForm.cs
@@ -330,6 +330,44 @@ #endregion #region ■ 显示弹窗输入界面___________________ /// <summary> /// <para>显示一个Dialog的弹窗输入界面,它不会自动关闭,需要手动关闭</para> /// <para>.CloseDialog()为关闭弹窗</para> /// <para>如果输入框的内容为空,并且设置有【i_TipText】,则不会调用回调函数,并且提示【i_TipText】的内容</para> /// </summary> /// <param name="i_TitleText">弹窗的标题信息</param> /// <param name="i_InputText">输入框初始化值(忽略请设置为null)</param> /// <param name="i_TipText">输入框灰色字体说明(忽略请设置为null)</param> /// <param name="i_ComfirmClickEvent">确认按钮事件</param> /// <returns></returns> public void ShowDialogInputForm(string i_TitleText, string i_InputText, string i_TipText, Action<DialogInputControl, string> i_ComfirmClickEvent) { //生成一个弹窗画面 var dialogForm = new DialogInputControl(); //标题 dialogForm.SetTitleText(i_TitleText); //输入框灰色字体说明 if (i_TipText != null) { dialogForm.SetTipText(i_TipText); } //输入框初始值 if (i_InputText != null) { dialogForm.Text = i_InputText; } //按下确认按钮 dialogForm.ComfirmClickEvent += ((textValue) => { i_ComfirmClickEvent?.Invoke(dialogForm, textValue); }); } #endregion #region ■ 显示没有数据的图像显示特效_________ /// <summary> ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs
@@ -507,7 +507,7 @@ public class FirmwareVersionInfo { /// <summary> /// 云端上面的那个名字 /// 云端上面的那个名字,如果是本地空调的模块时,它为全路径 /// </summary> public string Name = string.Empty; /// <summary> @@ -535,7 +535,7 @@ /// </summary> public string HardwareVersion = string.Empty; /// <summary> /// 镜像类型 /// 镜像类型(当等于-100时,代表它是空调的本地模块) /// </summary> public string ImagType = string.Empty; /// <summary> ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlACZbGatewayUpdateLogic.cs
@@ -172,8 +172,16 @@ await System.Threading.Tasks.Task.Delay(1000); //下载固件资源 if (this.deviceFirmware.ImagType != "-100") { var pra = new { RequestVersion = Common.CommonPage.RequestVersion, DistributedMark = this.deviceFirmware.DistributedMark }; this.deviceFirmwareByte = Common.CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync("FirmwareMana/DownloadPlatformUploadFirmware", Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(pra))); } else { //取本地模板 this.deviceFirmwareByte = HdlFileLogic.Current.ReadFileByteContent(this.deviceFirmware.Name); } if (this.deviceFirmwareByte == null) { //设备固件资源下载失败 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs
@@ -445,7 +445,11 @@ //获取需要下载的固件数据 var listVersion = GetNeedToDownLoadVersionData(listTempDevice, listTempGateway); if (listVersion.Count == 0) //获取需要下载的空调模块 var listAcOta = new List<OTADevice>(); var listAcUpdate = GetNeedDownLoadAirConditionerModule(listTempDevice, ref listAcOta); if (listVersion.Count == 0 && listAcUpdate.Count == 0) { return 0; } @@ -468,6 +472,8 @@ //固件存储路径 string firmwareDir = DirNameResourse.FirmwareUpdateDirectory; int nowCount = 0; int macCount = listVersion.Count + listAcUpdate.Count; foreach (var versionData in listVersion) { nowCount++; @@ -476,6 +482,8 @@ if (result == -1) { ProgressFormBar.Current.Close(); //保存列表名字 HdlFileLogic.Current.SaveFileContent(DirNameResourse.FirmwareUpdateList, dicFirmwareName); return -1; } //获取当前这个版本的固件信息 @@ -483,15 +491,17 @@ if (versionFirmware == null) { //云端没有这个版本 进度值 ProgressFormBar.Current.SetValue(nowCount, listVersion.Count); ProgressFormBar.Current.SetValue(nowCount, macCount); continue; } //去下载这个固件 var pra = new { RequestVersion = Common.CommonPage.RequestVersion, DistributedMark = versionFirmware.DistributedMark }; var byteData = UserCenterLogic.GetByteResponseDataByRequestHttps("FirmwareMana/DownloadPlatformUploadFirmware", false, pra, null, true); var byteData = UserCenterLogic.GetByteResponseDataByRequestHttps("FirmwareMana/DownloadPlatformUploadFirmware", false, pra, new List<string> { "NotCheck" }, true); if (byteData == null) { ProgressFormBar.Current.Close(); //保存列表名字 HdlFileLogic.Current.SaveFileContent(DirNameResourse.FirmwareUpdateList, dicFirmwareName); return -1; } //保存固件 @@ -500,8 +510,29 @@ dicFirmwareName[saveFile] = versionFirmware.Name; //进度值 ProgressFormBar.Current.SetValue(nowCount, listVersion.Count); ProgressFormBar.Current.SetValue(nowCount, macCount); } for (int i = 0; i < listAcUpdate.Count; i++) { //下载空调模块 var pra = new { RequestVersion = Common.CommonPage.RequestVersion, DistributedMark = listAcUpdate[i].DistributedMark }; var deviceFirmwareByte = UserCenterLogic.GetByteResponseDataByRequestHttps("FirmwareMana/DownloadPlatformUploadFirmware", false, pra, new List<string> { "NotCheck" }, true); if (deviceFirmwareByte == null) { ProgressFormBar.Current.Close(); //保存列表名字 HdlFileLogic.Current.SaveFileContent(DirNameResourse.FirmwareUpdateList, dicFirmwareName); return -1; } //保存固件 string fileName = "AC_" + listAcOta[i].HwVersion + "_" + listAcOta[i].ImgTypeId + "_" + listAcUpdate[i].Name; var saveFile = System.IO.Path.Combine(firmwareDir, fileName); HdlFileLogic.Current.SaveByteToFile(saveFile, deviceFirmwareByte); //进度值 ProgressFormBar.Current.SetValue(nowCount, macCount); } //保存列表名字 HdlFileLogic.Current.SaveFileContent(DirNameResourse.FirmwareUpdateList, dicFirmwareName); ProgressFormBar.Current.Close(); @@ -601,6 +632,39 @@ } /// <summary> /// 获取需要下载的空调模块 /// </summary> /// <param name="listDevice">设备列表</param> /// <param name="listTaget">与返回值对应的东西</param> private static List<FirmwareVersionInfo> GetNeedDownLoadAirConditionerModule(List<OTADevice> listDevice, ref List<OTADevice> listTaget) { var listUpdate = new List<FirmwareVersionInfo>(); //固件存储路径 string firmwareDir = DirNameResourse.FirmwareUpdateDirectory; foreach (var otaDevice in listDevice) { var myType = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice> { otaDevice }); if (myType.ConcreteType != Common.DeviceConcreteType.AirConditioner_ZbGateway) { //只处理中央空调 continue; } var list = GetFirmwareVersionListInfo(FirmwareLevelType.A设备, otaDevice.HwVersion.ToString(), otaDevice.ImgTypeId.ToString()); foreach (var data in list) { if (data.Name.EndsWith(".bin") == true && System.IO.File.Exists(firmwareDir) == false) { //只要.bin文件 listUpdate.Add(data); listTaget.Add(otaDevice); } } } return listUpdate; } /// <summary> /// 模板设备的版本信息 /// </summary> private class TemplateDeviceVersion ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayModuleUpdateForm.cs
@@ -77,16 +77,7 @@ /// </summary> private void InitAirConditioningModuleList(VerticalListControl listView) { var list = HdlFirmwareUpdateLogic.GetFirmwareVersionListInfo(FirmwareLevelType.A设备, otaDevice.HwVersion.ToString(), otaDevice.ImgTypeId.ToString()); var listUpdate = new List<FirmwareVersionInfo>(); foreach (var data in list) { if (data.Name.EndsWith(".bin") == true) { //只要.bin文件 listUpdate.Add(data); } } var listUpdate = this.GetAirConditioningModuleData(); if (listUpdate.Count == 0) { //没有可升级的空调模块 @@ -214,6 +205,47 @@ #endregion #region ■ 获取空调模块数据___________________ /// <summary> /// 获取空调模块数据 /// </summary> /// <returns></returns> private List<FirmwareVersionInfo> GetAirConditioningModuleData() { var listUpdate = new List<FirmwareVersionInfo>(); var list = HdlFirmwareUpdateLogic.GetFirmwareVersionListInfo(FirmwareLevelType.A设备, otaDevice.HwVersion.ToString(), otaDevice.ImgTypeId.ToString()); foreach (var data in list) { if (data.Name.EndsWith(".bin") == true) { //只要.bin文件 listUpdate.Add(data); } } if (Common.Config.Instance.Home.TemplateMode == 2 && listUpdate.Count == 0) { //从本地获取 var listFile = HdlFileLogic.Current.GetFileFromDirectory(DirNameResourse.FirmwareUpdateDirectory); string otaKey = otaDevice.HwVersion.ToString() + "_" + otaDevice.ImgTypeId.ToString(); foreach (var file in listFile) { if (file.StartsWith("AC_" + otaKey) == true && file.EndsWith(".bin") == true) { var info = new FirmwareVersionInfo(); info.Name = System.IO.Path.Combine(DirNameResourse.FirmwareUpdateDirectory, file); info.ImagType = "-100"; listUpdate.Add(info); } } } return listUpdate; } #endregion #region ■ 一般方法___________________________ /// <summary> ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionDirectoryListForm.cs
ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionSearchAllFile.cs
@@ -65,7 +65,7 @@ nextDir += Arry[i] + "/"; } //初始化中部信息 this.InitMiddleFrame(nextDir.Trim('/')); this.InitMiddleFrame(nextDir); }; } @@ -89,8 +89,6 @@ //} //else { try { var files = System.IO.Directory.GetDirectories(directory); foreach (var file in files) { @@ -101,11 +99,6 @@ listAllFile = HdlFileLogic.Current.GetFileFromDirectory(directory.TrimEnd('/')); listAllFile.Sort(); } catch { this.ShowMassage(ShowMsgType.Tip, "读取文件夹内容失败"); } } var listView = new VerticalListControl(23); ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceListMainForm.cs
@@ -258,11 +258,11 @@ btnTransfer.TextID = R.MyInternationalizationString.uTransfer; btnTransfer.ButtonClickEvent += (sender, e) => { rowLayout.HideMenu(); HdlCheckLogic.Current.CheckSecondarySecurity(() => { //验证成功 var form = new Transfer.TransferResidenceMainForm(); form.AddForm(1); //执行过户操作 this.DoTransferResidence(); }, () => { @@ -576,6 +576,85 @@ #endregion #region ■ 过户_______________________________ /// <summary> /// 执行过户操作 /// </summary> private void DoTransferResidence() { this.ShowProgressBar(); HdlThreadLogic.Current.RunThread(() => { //检测它有没有备份 var listBack = HdlBackupLogic.Current.GetBackupListNameFromDB(); this.CloseProgressBar(); if (listBack == null) { return; } HdlThreadLogic.Current.RunMain(() => { if (listBack.Count > 0) { var form = new Transfer.TransferResidenceMainForm(); form.AddForm(1); } else { //检测到还没有备份,请先备份 this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uIsNotHadBackupByCheckPleaseBackup)); //生成一个弹窗画面 this.ShowDialogInputForm(Language.StringByID(R.MyInternationalizationString.uAddBackup), Config.Instance.Home.Name, Language.StringByID(R.MyInternationalizationString.uPleaseInpuBackupName), (dialogForm, textValue) => { //画面关闭 dialogForm.CloseDialog(); HdlThreadLogic.Current.RunThread(() => { //创建一个备份名字 string backupClassId = HdlBackupLogic.Current.CreatNewBackupNameToDB(textValue); if (backupClassId == null) { //创建备份名字失败 string msg = Language.StringByID(R.MyInternationalizationString.uCreatBackupNameFail); this.ShowMassage(ShowMsgType.Error, msg); return; } //上传数据到云端 bool result = HdlBackupLogic.Current.UpLoadBackupFileToDB(backupClassId); if (result == false) { //文件上传失败 string msg = Language.StringByID(R.MyInternationalizationString.uFileUpLoadFail); this.ShowMassage(ShowMsgType.Error, msg); //如果上传失败的话,就把它删除 HdlBackupLogic.Current.DeleteDbBackupData(backupClassId); return; } HdlThreadLogic.Current.RunMain(() => { var form = new Transfer.TransferResidenceMainForm(); form.AddForm(1); }); }); }); } }); }); } #endregion #region ■ 一般方法___________________________ /// <summary> ZigbeeApp/Shared/R.cs
@@ -6480,6 +6480,10 @@ /// 恭喜XXXXX成为「NNNNN」管理员 /// </summary> public const int uCongratulationsXXBecomingNNAdministrator = 16166; /// <summary> /// 检测到还没有备份,请先备份 /// </summary> public const int uIsNotHadBackupByCheckPleaseBackup = 16167; //★★★★下面这些是接口的返回信息翻译,从18000开始★★★★