File was renamed from ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceUpdateLogic.cs |
| | |
| | | using System.Text; |
| | | using ZigBee.Device; |
| | | |
| | | namespace Shared.Phone.UserCenter |
| | | namespace Shared.Phone |
| | | { |
| | | /// <summary> |
| | | /// HDL设备升级的逻辑 |
| | | /// </summary> |
| | | public class HdlDeviceUpdateLogic : HdlDeviceUpdateCommonLogic |
| | | public class HdlDeviceUpdateLogic : DeviceUpdateCommon |
| | | { |
| | | #region ■ 变量声明___________________________ |
| | | |
| | |
| | | if (this.UpdateStatu == UpdateStatuMode.Wait) |
| | | { |
| | | //如果是等待模式,再次点击时,移除列表 |
| | | if (FirmwareUpdateResourse.dicUpdateList.ContainsKey(otaDevice.DeviceAddr) == true) |
| | | if (HdlFirmwareUpdateResourse.dicUpdateList.ContainsKey(otaDevice.DeviceAddr) == true) |
| | | { |
| | | FirmwareUpdateResourse.dicUpdateList.Remove(otaDevice.DeviceAddr); |
| | | HdlFirmwareUpdateResourse.dicUpdateList.Remove(otaDevice.DeviceAddr); |
| | | } |
| | | //取消 |
| | | this.UpdateStatu = UpdateStatuMode.None; |
| | |
| | | |
| | | //进入等待模式 |
| | | this.UpdateStatu = UpdateStatuMode.Wait; |
| | | FirmwareUpdateResourse.dicUpdateList[otaDevice.DeviceAddr] = this; |
| | | HdlFirmwareUpdateResourse.dicUpdateList[otaDevice.DeviceAddr] = this; |
| | | |
| | | //等待中… |
| | | this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uWaitting)); |
| | | |
| | | //执行下一个可更新的固件的更新操作 |
| | | HdlFirmwareUpdateLogic.DoUpdateNextFirmware(); |
| | | HdlFirmwareUpdateLogic.Current.DoUpdateNextFirmware(); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uDeviceUpdating)); |
| | | this.SetProgressValue(0); |
| | | |
| | | FirmwareUpdateResourse.dicUpdateList[otaDevice.DeviceAddr] = this; |
| | | HdlFirmwareUpdateResourse.dicUpdateList[otaDevice.DeviceAddr] = this; |
| | | //同步进度 |
| | | this.zbGateway.ReportAction += UpdateDeviceProgress; |
| | | } |
| | |
| | | this.UpdateStatu = UpdateStatuMode.None; |
| | | |
| | | //执行下一个可更新的固件的更新操作 |
| | | HdlFirmwareUpdateLogic.DoUpdateNextFirmware(); |
| | | HdlFirmwareUpdateLogic.Current.DoUpdateNextFirmware(); |
| | | this.UpdateStatuChangedEvent?.Invoke(2, ""); |
| | | }; |
| | | contr.Show(); |
| | |
| | | { |
| | | System.Threading.Thread.Sleep(3000); |
| | | |
| | | string checkKey = Common.LocalDevice.Current.GetDeviceMainKeys(otaDevice.DeviceAddr, otaDevice.DeviceEpoint); |
| | | string checkKey = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(otaDevice.DeviceAddr, otaDevice.DeviceEpoint); |
| | | HdlGatewayReceiveLogic.Current.AddAttributeEvent("HdlDeviceUpdate" + otaDevice.DeviceAddr, ReceiveComandDiv.A设备属性上报, (report) => |
| | | { |
| | | if (report.DeviceStatusReport.CluterID == (int)Cluster_ID.Ota) |
| | | { |
| | | string mainKey = Common.LocalDevice.Current.GetDeviceMainKeys(report.DeviceAddr, report.DeviceEpoint); |
| | | string mainKey = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(report.DeviceAddr, report.DeviceEpoint); |
| | | if (checkKey == mainKey) |
| | | { |
| | | //已经接收得到 |
| | |
| | | }); |
| | | |
| | | //发送命令 |
| | | HdlDeviceImageInfoLogic.Current.SetFirmwareVersionComand(otaDevice); |
| | | HdlDeviceAttributeLogic.Current.ReadDeviceFirmwareVersion(otaDevice); |
| | | |
| | | System.Threading.Thread.Sleep(1500); |
| | | int count = 12; |
| | | while (this.IsFinishUpdate == false && count > 0) |
| | | { |
| | | HdlDeviceImageInfoLogic.Current.SetFirmwareVersionComand(otaDevice); |
| | | HdlDeviceAttributeLogic.Current.ReadDeviceFirmwareVersion(otaDevice); |
| | | //等待一下设备信息的反馈 |
| | | System.Threading.Thread.Sleep(2000); |
| | | count--; |
| | |
| | | //升级完成 |
| | | this.UpdateStatu = UpdateStatuMode.UpdateFinish; |
| | | |
| | | HdlFirmwareUpdateLogic.DoUpdateNextFirmware(); |
| | | HdlFirmwareUpdateLogic.Current.DoUpdateNextFirmware(); |
| | | |
| | | //设备升级成功! |
| | | this.UpdateStatuChangedEvent?.Invoke(1, Language.StringByID(R.MyInternationalizationString.uDeviceUpdateSuccess)); |
| | |
| | | //状态变更 |
| | | this.IsFinishUpdate = true; |
| | | //执行下一个升级 |
| | | HdlFirmwareUpdateLogic.DoUpdateNextFirmware(); |
| | | HdlFirmwareUpdateLogic.Current.DoUpdateNextFirmware(); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | //状态变更 |
| | | this.IsFinishUpdate = true; |
| | | //执行下一个升级 |
| | | HdlFirmwareUpdateLogic.DoUpdateNextFirmware(); |
| | | HdlFirmwareUpdateLogic.Current.DoUpdateNextFirmware(); |
| | | } |
| | | |
| | | #endregion |