code: def set_read_events_callback(self, call_back):
          
          logger.info("setting read event callback")
          callback_wrapper = ctypes.CFUNCTYPE(None, ctypes.c_void_p,
                                              ctypes.POINTER(snap7.snap7types.SrvEvent),
                                              ctypes.c_int)
  
          def wrapper(usrptr, pevent, size):
              """
              Wraps python function into a ctypes function
  
              :param usrptr: not used
              :param pevent: pointer to snap7 event struct
              :param size:
              :returns: should return an int
              """
              logger.info("callback event: " + self.event_text(pevent.contents))
              call_back(pevent.contents)
              return 0
  
          self._read_callback = callback_wrapper(wrapper)
          return self.library.Srv_SetReadEventsCallback(self.pointer,
                                                        self._read_callback)
docs: Sets the user callback that the Server object has to call when a Read
          event is created.
  
          :param call_back: a callback function that accepts a pevent argument.