code: def request_response(self):
          
          a, b, e = self.pmm[3] & 7, self.pmm[3] >> 3 & 7, self.pmm[3] >> 6
          timeout = 302E-6 * (b + 1 + a + 1) * 4**e
          data = self.send_cmd_recv_rsp(0x04, '', timeout, check_status=False)
          if len(data) != 1:
              log.debug("insufficient data received from tag")
              raise tt3.Type3TagCommandError(tt3.DATA_SIZE_ERROR)
          return data[0]
docs: Verify that a card is still present and get its operating mode.
  
          The Request Response command returns the current operating
          state of the card. The operating state changes with the
          authentication process, a card is in Mode 0 after power-up or
          a Polling command, transitions to Mode 1 with Authentication1,
          to Mode 2 with Authentication2, and Mode 3 with any of the
          card issuance commands. The :meth:`request_response` method
          returns the mode as an integer.
  
          Command execution errors raise
          :exc:`~nfc.tag.TagCommandError`.