def get_custom_config(self):
        """
        Gets a pyforms BaseWidget to complete configuration for LinearAxis
        """

        if self._widget is None:
            widget = BaseWidget("Linear Axis Config")

            widget.device_list = ControlCombo(label="Device")

            widget.device_list += ('None', None)

            for device in DEVICES:
                widget.device_list += device

            if self._linear_stage is not None:
                widget.value = self._linear_stage.serial_number

                print("Stage:", self._linear_stage.serial_number)
                print("Widget:", widget.value)

            widget.device_list.current_index_changed_event = self._update_stage

            widget.formset = ['device_list', '']

            self._widget = widget

            self._update_stage(0)

        if self._linear_stage is not None:
            self._linear_stage.identify()

        return self._widget
Exemple #2
0
    def __init__(self):
        # Begin making the GUI shown when this sensor is selected
        self._widget = BaseWidget()

        self._widget.threshold = ControlSlider(label="Threshold",
                                               default=18,
                                               min=0,
                                               max=255)
        self._widget.threshold.changed_event = self._update_params

        self._widget.min_size = ControlSlider(
            label="Minimum Size",
            default=50,
            min=0,
            max=200,
        )
        self._widget.min_size.changed_event = self._update_params

        self._widget.sample_radius = ControlSlider(label="Sample Radius",
                                                   default=17,
                                                   min=0,
                                                   max=200)
        self._widget.sample_radius.changed_event = self._update_params

        self._widget.show_button = ControlButton(label="Show Camera")
        self._widget.show_button.value = self._show_camera

        self._widget.before_close_event = self._hide_camera
    def __init__(self):
        self._camera = ThorlabsDCx()
        self._measuring = False

        # Begin making the GUI shown when this sensor is selected
        self._widget = BaseWidget()

        self._widget.threshold = ControlSlider(label="Threshold",
                                               default=18,
                                               min=0,
                                               max=255)

        self._widget.min_size = ControlSlider(
            label="Minimum Size",
            default=50,
            min=0,
            max=200,
        )

        self._widget.sample_radius = ControlSlider(label="Sample Radius",
                                                   default=17,
                                                   min=0,
                                                   max=200)

        self._widget.show_button = ControlButton(label="Show Camera")
        self._widget.show_button.value = self._show_camera

        self._widget.before_close_event = self._hide_camera

        self._timer.timeout.connect(self._get_frame)
Exemple #4
0
    def __init__(self):
        # Begin making the GUI shown when this sensor is selected
        self._widget = BaseWidget()

        self._widget.threshold = ControlSlider(
            label="Threshold",
            default=18,
            min=0,
            max=255
        )
        self._widget.threshold.changed_event = self._update_params

        self._widget.min_size = ControlSlider(
            label="Minimum Size",
            default=50,
            min=0,
            max=200,
        )
        self._widget.min_size.changed_event = self._update_params

        self._widget.on_threshold = ControlSlider(
            label="Frequency Threshold",
            default=17,
            min=0,
            max=255
        )
        self._widget.on_threshold.changed_event = self._update_params

        self._widget.x_bounds_label = ControlLabel(
            label="X Bounds"
        )

        self._widget.x_bounds = ControlBoundingSlider(
            label="X Bounds",
            default=[0, 640],
            min=0,
            max=640,
            horizontal=True
        )
        self._widget.x_bounds.convert_2_int = True
        self._widget.x_bounds.changed_event = self._update_params

        self._widget.y_bounds_label = ControlLabel(
            label="Y Bounds"
        )

        self._widget.y_bounds = ControlBoundingSlider(
            label="Y Bounds",
            default=[0, 512],
            min=0,
            max=512,
            horizontal=True
        )
        self._widget.y_bounds.convert_2_int = True
        self._widget.y_bounds.changed_event = self._update_params

        self._widget.save_background = ControlButton(
            label="Save background"
        )
        self._widget.save_background.value = self._save_background
Exemple #5
0
    def __init__(self):
        self._labjack = ljm.openS("T7", "USB", "ANY")

        self._serial_number = ljm.eReadName(self._labjack, 'SERIAL_NUMBER')

        # Start making the GUI to display when this sensor is selected
        self._widget = BaseWidget()

        # Label to show the serial number of the Labjack
        self._widget.serial_number = ControlLabel()
        self._widget.serial_number.value = str(int(self._serial_number))

        # Number input to get the threshold for an 'on' signal
        # for frequency calculations
        self._widget.threshold = ControlNumber(label="Threshold",
                                               default=0.1,
                                               minimum=0,
                                               maximum=float('inf'),
                                               decimals=5)
Exemple #6
0
def laser_custom_config():
    """
    Get the GUI config to configure the laser
    The GUI is the same for each laser axis and for the laser lightsource
    """
    global WIDGET

    if WIDGET is None:
        widget = BaseWidget("Laser Config")

        widget.power_supply = ControlCombo(label="Power Supply")

        widget.power_supply += ('None', None)

        for power in DEVICES['Power Supply']:
            widget.power_supply += power

        widget.power_supply.current_index_changed_event = update_laser

        widget.power_channel = ControlNumber(label="Power Supply Channel",
                                             default=1,
                                             minimum=1,
                                             maximum=4)

        widget.signal_generator = ControlCombo(label="Signal Generator")

        widget.signal_generator += ('None', None)

        for signal in DEVICES['Signal Generator']:
            widget.signal_generator += signal

        widget.signal_generator.current_index_changed_event = update_laser

        widget.formset = [
            "h5:Laser Using", 'power_supply', 'power_channel',
            'signal_generator', "(All laser axis use the same laser)"
        ]

        WIDGET = widget

    return WIDGET
    def get_custom_config(self):
        """
        Gets a pyforms BaseWidget to complete configuration for RotationAxis
        """

        if self._widget is None:
            widget = BaseWidget("Rotate Axis Config")

            widget.device_list = ControlCombo(label="Device")

            widget.device_list += ('None', None)

            for device in DEVICES:
                widget.device_list += device

            if self._rotation_stage is not None:
                widget.value = self._rotation_stage.serial_number

            widget.device_list.current_index_changed_event = self._update_stage

            widget.distance_field = ControlNumber(
                label="Distance to Surface",
                default=self._distance_to_surface,
                minimum=0,
                maximum=float('inf'),
                decimals=5)

            widget.distance_field.key_pressed_event = self._update_distance_to_surface

            widget.formset = ['device_list', 'distance_field', '']

            self._widget = widget

            self._update_stage(0)

        if self._rotation_stage is not None:
            self._rotation_stage.identify()

        return self._widget