code: def _controller_buffer(self, port):
          
          # get the address of the controller
          address = _LIB.Controller(self._env, port)
          # create a memory buffer using the ctypes pointer for this vector
          buffer_ = ctypes.cast(address, ctypes.POINTER(CONTROLLER_VECTOR)).contents
          # create a NumPy buffer from the binary data and return it
          return np.frombuffer(buffer_, dtype='uint8')
docs: Find the pointer to a controller and setup a NumPy buffer.
  
          Args:
              port: the port of the controller to setup
  
          Returns:
              a NumPy buffer with the controller's binary data