code: def startInventory(self, proto=None, force_regen_rospec=False):
          
          if self.state == LLRPClient.STATE_INVENTORYING:
              logger.warn('ignoring startInventory() while already inventorying')
              return None
  
          rospec = self.getROSpec(force_new=force_regen_rospec)['ROSpec']
  
          logger.info('starting inventory')
  
          # upside-down chain of callbacks: add, enable, start ROSpec
          # started_rospec = defer.Deferred()
          # started_rospec.addCallback(self._setState_wrapper,
          #                            LLRPClient.STATE_INVENTORYING)
          # started_rospec.addErrback(self.panic, 'START_ROSPEC failed')
          # logger.debug('made started_rospec')
  
          enabled_rospec = defer.Deferred()
          enabled_rospec.addCallback(self._setState_wrapper,
                                     LLRPClient.STATE_INVENTORYING)
          # enabled_rospec.addCallback(self.send_START_ROSPEC, rospec,
          #                            onCompletion=started_rospec)
          enabled_rospec.addErrback(self.panic, 'ENABLE_ROSPEC failed')
          logger.debug('made enabled_rospec')
  
          added_rospec = defer.Deferred()
          added_rospec.addCallback(self.send_ENABLE_ROSPEC, rospec,
                                   onCompletion=enabled_rospec)
          added_rospec.addErrback(self.panic, 'ADD_ROSPEC failed')
          logger.debug('made added_rospec')
  
          self.send_ADD_ROSPEC(rospec, onCompletion=added_rospec)
docs: Add a ROSpec to the reader and enable it.