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;
    final totalBytes = _progInfo.nBlocks * OADProxy.oadBlockSize;
    mListener?.onProgressChanged(
        _deviceId!, totalBytes, totalBytes, _progInfo.iTimeElapsed);
    mListener?.onFinished(_deviceId!, totalBytes, _progInfo.iTimeElapsed);
  } else {
    if (state == OADState.programming) {
      state = OADState.interrupted;
    } else {
      state = OADState.idle;
    }

    mListener?.onInterrupted(_deviceId!, _progInfo.iBytes,
        _progInfo.nBlocks * OADProxy.oadBlockSize, _progInfo.iTimeElapsed);
  }
}