| | |
| | | /// <summary>
|
| | | /// HDL设备升级的逻辑
|
| | | /// </summary>
|
| | | public class HdlDeviceUpdateLogic
|
| | | public class HdlDeviceUpdateLogic : HdlDeviceUpdateCommonLogic
|
| | | {
|
| | | #region ■ 变量声明___________________________
|
| | |
|
| | |
| | | /// </summary>
|
| | | public Action<decimal> ProgressEvent = null;
|
| | | /// <summary>
|
| | | /// 当前执行的状态
|
| | | /// </summary>
|
| | | public UpdateStatuMode UpdateStatu = UpdateStatuMode.None;
|
| | | /// <summary>
|
| | | /// 设备新版本的固件信息(多个设备升级时,应该会需要公开这个对象)
|
| | | /// </summary> |
| | | public FirmwareVersionInfo deviceFirmware = null;
|
| | | /// <summary>
|
| | | /// 升级是否完成(出现错误时,它也会变成true)
|
| | | /// </summary>
|
| | | public bool IsFinishUpdate = true;
|
| | |
|
| | | /// <summary>
|
| | | /// 网关
|
| | | /// </summary>
|
| | |
| | | /// <param name="i_deviceFirmware">设备的固件信息</param>
|
| | | public HdlDeviceUpdateLogic(OTADevice i_otaDevice, FirmwareVersionInfo i_deviceFirmware)
|
| | | {
|
| | | this.ClassDiv = 2;
|
| | | this.otaDevice = i_otaDevice;
|
| | | this.deviceFirmware = i_deviceFirmware;
|
| | | this.zbGateway = i_otaDevice.Gateway;
|
| | |
| | | if (this.UpdateStatu == UpdateStatuMode.Wait)
|
| | | {
|
| | | //如果是等待模式,再次点击时,移除列表
|
| | | if (FirmwareUpdateResourse.dicDeviceUpdateList.ContainsKey(otaDevice.DeviceAddr) == true)
|
| | | if (FirmwareUpdateResourse.dicUpdateList.ContainsKey(otaDevice.DeviceAddr) == true)
|
| | | {
|
| | | FirmwareUpdateResourse.dicDeviceUpdateList.Remove(otaDevice.DeviceAddr);
|
| | | FirmwareUpdateResourse.dicUpdateList.Remove(otaDevice.DeviceAddr);
|
| | | }
|
| | | //取消
|
| | | this.UpdateStatu = UpdateStatuMode.None;
|
| | |
| | |
|
| | | //进入等待模式
|
| | | this.UpdateStatu = UpdateStatuMode.Wait;
|
| | | FirmwareUpdateResourse.dicDeviceUpdateList[otaDevice.DeviceAddr] = this;
|
| | | FirmwareUpdateResourse.dicUpdateList[otaDevice.DeviceAddr] = this;
|
| | |
|
| | | //等待中…
|
| | | this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uWaitting));
|
| | |
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 开始执行更新操作
|
| | | /// 开始执行更新操作(FirmwareUpdateLogic调用)
|
| | | /// </summary>
|
| | | public void DoStartUpdate()
|
| | | public override void DoStartUpdate()
|
| | | {
|
| | | //状态变更
|
| | | this.IsFinishUpdate = false;
|
| | |
| | | this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uDeviceUpdating));
|
| | | this.SetProgressValue(0);
|
| | |
|
| | | FirmwareUpdateResourse.dicDeviceUpdateList[otaDevice.DeviceAddr] = this;
|
| | | FirmwareUpdateResourse.dicUpdateList[otaDevice.DeviceAddr] = this;
|
| | | //同步进度
|
| | | this.zbGateway.ReportAction += UpdateDeviceProgress;
|
| | | }
|
| | |
| | | /// <summary>
|
| | | /// 释放缓存
|
| | | /// </summary>
|
| | | public void Dispose()
|
| | | public override void Dispose()
|
| | | {
|
| | | this.ProgressEvent = null;
|
| | | this.UpdateStatuChangedEvent = null;
|