stopProgramming method

  1. @override
void stopProgramming()
override

停止升级

Implementation

@override
void stopProgramming() {
  _cancelTimer();

  if (_deviceId == null) return;

  if (_progInfo.iBlocks != 0 && _progInfo.iBlocks == _progInfo.nBlocks) {
    state = OADState.finished;
    mListener?.onFinished(
        _deviceId!, _fileImgHdr.len, _progInfo.iTimeElapsed);
  } else {
    if (state == OADState.programming) {
      state = OADState.interrupted;
      //升级过程中停止升级,发送取消升级的指令
      _writeCtrlCMD(_ctrlCmdCancelOAD);
    } else {
      state = OADState.idle;
    }

    mListener?.onInterrupted(_deviceId!, _progInfo.iBytes, _fileImgHdr.len,
        _progInfo.iTimeElapsed);
  }
}