DAQ: Add throttle down to raster scan
This commit is contained in:
@@ -116,6 +116,12 @@ class SampleCameraImageLabel(QGraphicsView):
|
||||
self.left_click_hold_threshold = 200
|
||||
self.right_click_hold_threshold = 200
|
||||
|
||||
self.raster_timer = QTimer()
|
||||
self.raster_timer.setSingleShot(True)
|
||||
self.raster_timer_interval = 400
|
||||
self.raster_timer.timeout.connect(self.__on_raster_timer_timeout)
|
||||
self.__pending_load_pos = None
|
||||
|
||||
self.__detections = [] # list of dicts from publisher
|
||||
self.__det_shape = None # shape from payload [h,w] so we can scale
|
||||
|
||||
@@ -267,7 +273,11 @@ class SampleCameraImageLabel(QGraphicsView):
|
||||
|
||||
if self.__state == SampleCameraImageState.IDLE:
|
||||
if event.modifiers() & Qt.KeyboardModifier.ShiftModifier:
|
||||
self.load_image.emit(mouse_pos)
|
||||
if not self.raster_timer.isActive():
|
||||
self.load_image.emit(mouse_pos)
|
||||
self.raster_timer.start(self.raster_timer_interval)
|
||||
else:
|
||||
self.__pending_load_pos = mouse_pos
|
||||
else:
|
||||
txt = self.__raster_mgr.is_part_of_completed_grid(mouse_pos)
|
||||
if txt != "":
|
||||
@@ -285,6 +295,12 @@ class SampleCameraImageLabel(QGraphicsView):
|
||||
self._update_grid()
|
||||
self.update()
|
||||
|
||||
def __on_raster_timer_timeout(self):
|
||||
if self.__pending_load_pos is not None:
|
||||
self.load_image.emit(self.__pending_load_pos)
|
||||
self.__pending_load_pos = None
|
||||
self.raster_timer.start(self.raster_timer_interval)
|
||||
|
||||
def mouseReleaseEvent(self, event):
|
||||
if event.button() == Qt.MouseButton.LeftButton:
|
||||
if self.click_timer.isActive():
|
||||
@@ -637,16 +653,12 @@ class SampleCameraImageLabel(QGraphicsView):
|
||||
mouse_global_pos = QCursor.pos()
|
||||
mouse_view_pos = self.mapFromGlobal(mouse_global_pos)
|
||||
mouse_scene_pos = self.mapToScene(mouse_view_pos)
|
||||
smargon_coord = SmargonCoordinate(
|
||||
sh_mm=self.__geom.picture_to_smargon(
|
||||
Coordinate(x=mouse_scene_pos.x(), y=mouse_scene_pos.y())
|
||||
))
|
||||
|
||||
if event.key() == Qt.Key.Key_1:
|
||||
self.set_helical_start.emit(smargon_coord)
|
||||
|
||||
elif event.key() == Qt.Key.Key_2:
|
||||
self.set_helical_end.emit(smargon_coord)
|
||||
if event.key() == Qt.Key.Key_Shift:
|
||||
if self.__state == SampleCameraImageState.IDLE:
|
||||
if not self.raster_timer.isActive():
|
||||
self.load_image.emit(mouse_scene_pos)
|
||||
self.raster_timer.start(self.raster_timer_interval)
|
||||
|
||||
super().keyPressEvent(event)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user