def __init__(self, *, vsync=True, logger=None): # self._logger = logger or get_logger(name='harvesters') # super().__init__() # self._mutex = QMutex() profile = True if 'HARVESTER_PROFILE' in os.environ else False self._harvester_core = HarvesterCore(profile=profile, logger=self._logger) self._ia = None # Image Acquirer # self._widget_canvas = Canvas2D(vsync=vsync) self._widget_canvas.create_native() self._widget_canvas.native.setParent(self) # self._action_stop_image_acquisition = None # self._observer_widgets = [] # self._widget_device_list = None self._widget_status_bar = None self._widget_main = None self._widget_about = None self._widget_attribute_controller = None # self._signal_update_statistics.connect(self.update_statistics) self._signal_stop_image_acquisition.connect( self._stop_image_acquisition) self._thread_statistics_measurement = _PyQtThread( parent=self, mutex=self._mutex, worker=self._worker_update_statistics, update_cycle_us=250000) # self._initialize_widgets() # for o in self._observer_widgets: o.update()
def action_on_connect(self): # try: self._ia = self.harvester_core.create_image_acquirer( self.device_list.currentIndex()) # We want to hold one buffer to keep the chunk data alive: self._ia.num_buffers += 1 except ( NotInitializedException, InvalidHandleException, InvalidIdException, ResourceInUseException, InvalidParameterException, NotImplementedException, AccessDeniedException, ) as e: self._logger.error(e, exc_info=True) if not self._ia: # The device is not available. return # self.ia.thread_image_acquisition = _PyQtThread(parent=self, mutex=self._mutex) self.ia.signal_stop_image_acquisition = self._signal_stop_image_acquisition try: if self.ia.remote_device.node_map: self._widget_attribute_controller = \ AttributeController( self.ia.remote_device.node_map, parent=self ) except AttributeError: pass # self.canvas.ia = self.ia