docs: def pause(self, duration_seconds=0, force=False, force_regen_rospec=False):
          """Pause an inventory operation for a set amount of time."""
          logger.debug('pause(%s)', duration_seconds)
          if self.state != LLRPClient.STATE_INVENTORYING:
              if not force:
                  logger.info('ignoring pause(); not inventorying (state==%s)',
                              self.getStateName(self.state))
                  return None
              else:
                  logger.info('forcing pause()')
  
          if duration_seconds:
              logger.info('pausing for %s seconds', duration_seconds)
  
          rospec = self.getROSpec(force_new=force_regen_rospec)['ROSpec']
  
          self.sendMessage({
              'DISABLE_ROSPEC': {
                  'Ver':  1,
                  'Type': 25,
                  'ID':   0,
                  'ROSpecID': rospec['ROSpecID']
              }})
          self.setState(LLRPClient.STATE_PAUSING)
  
          d = defer.Deferred()
          d.addCallback(self._setState_wrapper, LLRPClient.STATE_PAUSED)
          d.addErrback(self.complain, 'pause() failed')
          self._deferreds['DISABLE_ROSPEC_RESPONSE'].append(d)
  
          if duration_seconds > 0:
              startAgain = task.deferLater(reactor, duration_seconds,
                                           lambda: None)
              startAgain.addCallback(lambda _: self.resume())
  
          return d