code: def do_WhoIsRequest(self, apdu):
          
          if _debug: WhoIsIAmServices._debug("do_WhoIsRequest %r", apdu)
  
          # ignore this if there's no local device
          if not self.localDevice:
              if _debug: WhoIsIAmServices._debug("    - no local device")
              return
  
          # extract the parameters
          low_limit = apdu.deviceInstanceRangeLowLimit
          high_limit = apdu.deviceInstanceRangeHighLimit
  
          # check for consistent parameters
          if (low_limit is not None):
              if (high_limit is None):
                  raise MissingRequiredParameter("deviceInstanceRangeHighLimit required")
              if (low_limit < 0) or (low_limit > 4194303):
                  raise ParameterOutOfRange("deviceInstanceRangeLowLimit out of range")
          if (high_limit is not None):
              if (low_limit is None):
                  raise MissingRequiredParameter("deviceInstanceRangeLowLimit required")
              if (high_limit < 0) or (high_limit > 4194303):
                  raise ParameterOutOfRange("deviceInstanceRangeHighLimit out of range")
  
          # see we should respond
          if (low_limit is not None):
              if (self.localDevice.objectIdentifier[1] < low_limit):
                  return
          if (high_limit is not None):
              if (self.localDevice.objectIdentifier[1] > high_limit):
                  return
  
          # generate an I-Am
          self.i_am(address=apdu.pduSource)
docs: Respond to a Who-Is request.