Пример #1
0
    def __init__(self,
                 ui,
                 label: str,
                 object,
                 xy_property,
                 unit="nm",
                 multiplier=1E9):
        super().__init__(ui.create_row_widget())

        stage_x_field = ui.create_line_edit_widget()
        stage_x_field.bind_text(
            Control2DBinding(
                object, xy_property, "x",
                Converter.PhysicalValueToStringConverter(unit, multiplier)))

        stage_y_field = ui.create_line_edit_widget()
        stage_y_field.bind_text(
            Control2DBinding(
                object, xy_property, "y",
                Converter.PhysicalValueToStringConverter(unit, multiplier)))

        row = self.content_widget

        row.add_spacing(8)
        row.add(ui.create_label_widget(label))
        row.add_spacing(8)
        row.add(ui.create_label_widget(_("X")))
        row.add_spacing(8)
        row.add(stage_x_field)
        row.add_spacing(8)
        row.add(ui.create_label_widget(_("Y")))
        row.add_spacing(8)
        row.add(stage_y_field)
        row.add_spacing(8)
    def __init__(self,
                 ui: UserInterface.UserInterface,
                 label: str,
                 instrument: InstrumentDevice.Instrument,
                 xy_property: str,
                 unit: str = "nm",
                 multiplier: float = 1E9) -> None:
        row_widget = ui.create_row_widget()
        super().__init__(row_widget)

        stage_x_field = ui.create_line_edit_widget()
        stage_x_field.bind_text(
            Control2DBinding(
                instrument, xy_property, "x",
                Converter.PhysicalValueToStringConverter(unit, multiplier)))

        stage_y_field = ui.create_line_edit_widget()
        stage_y_field.bind_text(
            Control2DBinding(
                instrument, xy_property, "y",
                Converter.PhysicalValueToStringConverter(unit, multiplier)))

        row_widget.add_spacing(8)
        row_widget.add(ui.create_label_widget(label))
        row_widget.add_spacing(8)
        row_widget.add(ui.create_label_widget(_("X")))
        row_widget.add_spacing(8)
        row_widget.add(stage_x_field)
        row_widget.add_spacing(8)
        row_widget.add(ui.create_label_widget(_("Y")))
        row_widget.add_spacing(8)
        row_widget.add(stage_y_field)
        row_widget.add_spacing(8)
Пример #3
0
 def __init__(self, data_item: API_1_0.DataItem, src_data_item: API_1_0.DataItem, offset_graphic: API_1_0.Graphic, second_graphic: API_1_0.Graphic, units='eV'):
     self.ev_converter = Converter.PhysicalValueToStringConverter(units)
     self.property_changed_event = Event.Event()
     self.__data_item = data_item
     self.__src_data_item = src_data_item
     self.__offset_graphic = offset_graphic
     self.__second_graphic = second_graphic
     self.__offset_energy = 0
     self.__graphic_updating = False
     self.__second_point = data_item.display_xdata.dimensional_calibrations[0].convert_to_calibrated_value(second_graphic.position * len(data_item.display_xdata.data))
     self.__offset_changed_listener = offset_graphic._graphic.property_changed_event.listen(self.__offset_graphic_changed)
     self.__second_changed_listener = second_graphic._graphic.property_changed_event.listen(self.__second_graphic_changed)
Пример #4
0
    def __init__(self, document_controller,
                 instrument: InstrumentDevice.Instrument):
        super().__init__(
            document_controller.ui.create_column_widget(properties={
                "margin": 6,
                "spacing": 2
            }))

        self.document_controller = document_controller

        ui = document_controller.ui

        sample_combo_box = ui.create_combo_box_widget(instrument.sample_titles)
        sample_combo_box.current_index = instrument.sample_index
        sample_combo_box.bind_current_index(
            Binding.PropertyBinding(instrument, "sample_index"))

        voltage_field = ui.create_line_edit_widget()
        voltage_field.bind_text(
            Binding.PropertyBinding(
                instrument,
                "voltage",
                converter=Converter.PhysicalValueToStringConverter(
                    units="keV", multiplier=1E-3)))

        beam_current_field = ui.create_line_edit_widget()
        beam_current_field.bind_text(
            ControlBinding(instrument,
                           "BeamCurrent",
                           converter=Converter.PhysicalValueToStringConverter(
                               units="pA", multiplier=1E12)))

        stage_position_widget = PositionWidget(ui, _("Stage"), instrument,
                                               "stage_position_m")
        drift_widget = PositionWidget(ui, _("Drift"), instrument, "Drift")

        beam_shift_widget = PositionWidget(ui, _("Beam"), instrument,
                                           "beam_shift_m")

        defocus_field = ui.create_line_edit_widget()
        defocus_field.bind_text(
            ControlBinding(instrument,
                           "C10",
                           converter=Converter.PhysicalValueToStringConverter(
                               units="nm", multiplier=1E9)))

        c12_widget = PositionWidget(ui, _("C12"), instrument, "C12")

        c21_widget = PositionWidget(ui, _("C21"), instrument, "C21")

        c23_widget = PositionWidget(ui, _("C23"), instrument, "C23")

        c3_field = ui.create_line_edit_widget()
        c3_field.bind_text(
            ControlBinding(instrument,
                           "C30",
                           converter=Converter.PhysicalValueToStringConverter(
                               units="nm", multiplier=1E9)))

        c32_widget = PositionWidget(ui, _("C32"), instrument, "C32")

        c34_widget = PositionWidget(ui, _("C34"), instrument, "C34")

        blanked_checkbox = ui.create_check_box_widget(_("Beam Blanked"))
        blanked_checkbox.bind_checked(
            Binding.PropertyBinding(instrument, "is_blanked"))

        slit_in_checkbox = ui.create_check_box_widget(_("Slit In"))
        slit_in_checkbox.bind_checked(
            Binding.PropertyBinding(instrument, "is_slit_in"))

        voa_in_checkbox = ui.create_check_box_widget(_("VOA In"))
        voa_in_checkbox.bind_checked(ControlBinding(instrument, "S_VOA"))

        convergenve_angle_field = ui.create_line_edit_widget()
        convergenve_angle_field.bind_text(
            ControlBinding(instrument,
                           "ConvergenceAngle",
                           converter=Converter.PhysicalValueToStringConverter(
                               units="mrad", multiplier=1E3)))

        c_aperture_widget = PositionWidget(ui,
                                           _("CAperture"),
                                           instrument,
                                           "CAperture",
                                           unit="mrad",
                                           multiplier=1E3)
        aperture_round_widget = PositionWidget(ui,
                                               _("ApertureRound"),
                                               instrument,
                                               "ApertureRound",
                                               unit="",
                                               multiplier=1)

        energy_offset_field = ui.create_line_edit_widget()
        energy_offset_field.bind_text(
            Binding.PropertyBinding(
                instrument,
                "energy_offset_eV",
                converter=Converter.FloatToStringConverter()))

        energy_dispersion_field = ui.create_line_edit_widget()
        energy_dispersion_field.bind_text(
            Binding.PropertyBinding(
                instrument,
                "energy_per_channel_eV",
                converter=Converter.FloatToStringConverter()))

        beam_row = ui.create_row_widget()
        beam_row.add_spacing(8)
        beam_row.add(blanked_checkbox)
        beam_row.add_spacing(8)
        beam_row.add(voa_in_checkbox)
        beam_row.add_stretch()

        eels_row = ui.create_row_widget()
        eels_row.add_spacing(8)
        eels_row.add(slit_in_checkbox)
        eels_row.add_spacing(8)
        eels_row.add(ui.create_label_widget("+eV"))
        eels_row.add_spacing(4)
        eels_row.add(energy_offset_field)
        eels_row.add_spacing(8)
        eels_row.add(ui.create_label_widget("eV/ch"))
        eels_row.add_spacing(4)
        eels_row.add(energy_dispersion_field)
        eels_row.add_stretch()

        defocus_row = ui.create_row_widget()
        defocus_row.add_spacing(8)
        defocus_row.add_spacing(8)
        defocus_row.add(ui.create_label_widget("Defocus"))
        defocus_row.add(defocus_field)
        defocus_row.add_stretch()

        c3_row = ui.create_row_widget()
        c3_row.add_spacing(8)
        c3_row.add_spacing(8)
        c3_row.add(ui.create_label_widget("Spherical Aberration"))
        c3_row.add(c3_field)
        c3_row.add_stretch()

        sample_row = ui.create_row_widget()
        sample_row.add_spacing(8)
        sample_row.add_spacing(8)
        sample_row.add(sample_combo_box)
        sample_row.add_stretch()

        voltage_row = ui.create_row_widget()
        voltage_row.add_spacing(8)
        voltage_row.add_spacing(8)
        voltage_row.add(ui.create_label_widget("Voltage"))
        voltage_row.add(voltage_field)
        voltage_row.add_stretch()

        beam_current_row = ui.create_row_widget()
        beam_current_row.add_spacing(8)
        beam_current_row.add_spacing(8)
        beam_current_row.add(ui.create_label_widget("Beam Current"))
        beam_current_row.add(beam_current_field)
        beam_current_row.add_stretch()

        convergence_angle_row = ui.create_row_widget()
        convergence_angle_row.add_spacing(8)
        convergence_angle_row.add_spacing(8)
        convergence_angle_row.add(ui.create_label_widget("Convergence Angle"))
        convergence_angle_row.add(convergenve_angle_field)
        convergence_angle_row.add_stretch()

        column = self.content_widget

        column.add(sample_row)
        column.add(voltage_row)
        column.add(beam_current_row)
        column.add(stage_position_widget)
        column.add(drift_widget)
        column.add(beam_shift_widget)
        column.add(defocus_row)
        column.add(c12_widget)
        column.add(c21_widget)
        column.add(c23_widget)
        column.add(c3_row)
        column.add(c32_widget)
        column.add(c34_widget)
        column.add(beam_row)
        column.add(convergence_angle_row)
        column.add(c_aperture_widget)
        column.add(aperture_round_widget)
        column.add(eels_row)
        column.add_stretch()