code: private void writeOpCode(@NonNull final BluetoothGattCharacteristic characteristic, @NonNull final byte[] value)
  			throws DeviceDisconnectedException, DfuException, UploadAbortedException {
  		writeOpCode(characteristic, value, false);
  	}
docs: Writes the operation code to the characteristic. This method is SYNCHRONOUS and wait until the
  {@link android.bluetooth.BluetoothGattCallback#onCharacteristicWrite(android.bluetooth.BluetoothGatt, android.bluetooth.BluetoothGattCharacteristic, int)}
  will be called or the device gets disconnected.
  If connection state will change, or an error will occur, an exception will be thrown.
  
  @param characteristic the characteristic to write to. Should be the DFU CONTROL POINT.
  @param value          the value to write to the characteristic.
  @throws DeviceDisconnectedException
  @throws DfuException
  @throws UploadAbortedException