code: def ctrl_transfer(self,
                        dev_handle,
                        bmRequestType,
                        bRequest,
                        wValue,
                        wIndex,
                        data,
                        timeout):
          r
          _not_implemented(self.ctrl_transfer)
docs: r"""Perform a control transfer on the endpoint 0.
  
          The direction of the transfer is inferred from the bmRequestType
          field of the setup packet.
  
          dev_handle is the value returned by the open_device() method.
          bmRequestType, bRequest, wValue and wIndex are the same fields
          of the setup packet. data is an array object, for OUT requests
          it contains the bytes to transmit in the data stage and for
          IN requests it is the buffer to hold the data read. The number
          of bytes requested to transmit or receive is equal to the length
          of the array times the data.itemsize field. The timeout parameter
          specifies a time limit to the operation in miliseconds.
  
          Return the number of bytes written (for OUT transfers) or the data
          read (for IN transfers), as an array.array object.