code: def send(self, jlink):
          
          ack = super(ReadRequest, self).send(jlink)
  
          # Write the read command, then read the data and status.
          jlink.swd_write32(0x0, 0x0)
          jlink.swd_write8(0xFC, 0x0)
          status = jlink.swd_read8(ack) & 7
          data = jlink.swd_read32(ack + 3)
  
          if status == Response.STATUS_ACK:
              # Check the parity
              parity = jlink.swd_read8(ack + 35) & 1
              if util.calculate_parity(data) != parity:
                  return Response(-1, data)
  
          return Response(status, data)
docs: Starts the SWD transaction.
  
          Steps for a Read Transaction:
            1.  First phase in which the request is sent.
            2.  Second phase in which an ACK is received.  This phase consists of
                three bits. An OK response has the value ``1``.
            3.  Once the ACK is received, the data phase can begin.  Consists of
                ``32`` data bits followed by ``1`` parity bit calclulated based
                on all ``32`` data bits.
            4.  After the data phase, the interface must be clocked for at least
                eight cycles to clock the transaction through the SW-DP; this is
                done by reading an additional eight bits (eight clocks).
  
          Args:
            self (ReadRequest): the ``ReadRequest`` instance
            jlink (JLink): the ``JLink`` instance to use for write/read
  
          Returns:
            An ``Response`` instance.