Files
scanengine-3/sc3-aui-main.ui
T
Thomas Ales ef8c0feb91 Expose burst acquisition in the app; refresh scan_format acquisition docs
Wires the burst_mode flag through QtScanController to ScanEngine and adds a
checkbox to the scan panel. The setting persists via ScanDefaults like the
other scan fields, defaulting to off — per-row acquisition stays the default
path until burst mode has run on the rig and the gate-off preflight has
settled which TRIGOUT value idles the pin low.

scan_format.md — the acquisition settings table had drifted from the code it
claimed to describe: it attributed the settings to sc3_aui_app.py (they moved
to core/scope_sras.py in the Phase 2 extraction), listed a 1.24 V trigger
level and 0 % offset where the code sets 0.500 V and HORizontal:POSition 30,
and did not mention the logic-AND scan trigger at all. Corrected, pointed at
the module that actually owns them, and noted that none of it affects byte
layout — only where the acoustic packet lands inside a frame.

Added an acquisition-paths section: the two paths write byte-identical files
and the choice is a runtime flag that is not recorded in the file, so a
reader never needs to care which produced it. Documents where row boundaries
come from in a burst and that either path squares rows up to n_frames.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 12:18:23 -05:00

1074 lines
33 KiB
XML
Executable File

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1016</width>
<height>1184</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label">
<property name="font">
<font>
<family>Noto Sans Condensed Medium</family>
<pointsize>36</pointsize>
</font>
</property>
<property name="text">
<string>Scanengine3 - AUI</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_8">
<property name="font">
<font>
<family>Noto Sans Condensed SemiBold</family>
<pointsize>16</pointsize>
</font>
</property>
<property name="text">
<string>Geometry Data</string>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="3" column="3">
<widget class="QLabel" name="label_26">
<property name="text">
<string>Scan Save Directory:</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLineEdit" name="y_start_edit">
<property name="maximumSize">
<size>
<width>150</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLineEdit" name="x_start_edit">
<property name="maximumSize">
<size>
<width>150</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_3">
<property name="text">
<string>YS:</string>
</property>
</widget>
</item>
<item row="1" column="4">
<widget class="QLineEdit" name="y_delta_edit">
<property name="maximumSize">
<size>
<width>150</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QLabel" name="label_5">
<property name="text">
<string>YD:</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QLabel" name="label_4">
<property name="text">
<string>XD:</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLineEdit" name="num_angles_edit">
<property name="maximumSize">
<size>
<width>150</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_25">
<property name="text">
<string>Scan File Prefix:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="label_6">
<property name="text">
<string>NumAngles:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_2">
<property name="text">
<string>XS:</string>
</property>
</widget>
</item>
<item row="3" column="1" colspan="2">
<widget class="QLineEdit" name="scan_prefix_edit">
<property name="maximumSize">
<size>
<width>350</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item row="2" column="4">
<widget class="QLineEdit" name="row_spacing_edit">
<property name="maximumSize">
<size>
<width>150</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QLabel" name="label_7">
<property name="text">
<string>RowSpacing:</string>
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="QLineEdit" name="x_delta_edit">
<property name="maximumSize">
<size>
<width>150</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item row="1" column="0">
<spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="4" colspan="2">
<widget class="QLineEdit" name="scan_save_dir_edit">
<property name="maximumSize">
<size>
<width>350</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item row="3" column="6">
<widget class="QPushButton" name="save_dir_browse_btn">
<property name="text">
<string>Browse</string>
</property>
</widget>
</item>
<item row="1" column="5">
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="label_16">
<property name="font">
<font>
<family>Noto Sans Condensed SemiBold</family>
<pointsize>16</pointsize>
</font>
</property>
<property name="text">
<string>Communication Settings:</string>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_2">
<item row="1" column="2">
<widget class="QPushButton" name="bbd202_connect_toggle">
<property name="text">
<string>Connect</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="t3r_comport_edit"/>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="bbd202_comport_edit"/>
</item>
<item row="2" column="2">
<widget class="QPushButton" name="oscope_connect_toggle">
<property name="text">
<string>Connect</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_9">
<property name="text">
<string>T3R Port:</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="t3r_connect_toggle">
<property name="text">
<string>Connect</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>BBD202 Port:</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_22">
<property name="text">
<string>Oscilloscope IP Address:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="oscope_ip_edit"/>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="label_17">
<property name="font">
<font>
<family>Noto Sans Condensed SemiBold</family>
<pointsize>16</pointsize>
</font>
</property>
<property name="text">
<string>T3RSL Manual Controls:</string>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="t3r_enable_t1_btn">
<property name="text">
<string>Enable T1</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="2" alignment="Qt::AlignmentFlag::AlignHCenter">
<widget class="QPushButton" name="t3r_enable_t2_btn">
<property name="maximumSize">
<size>
<width>150</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>Enable T2</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="t3r_enable_t3_btn">
<property name="text">
<string>Enable T3</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="4">
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_12">
<property name="text">
<string>T1 Axis</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLabel" name="label_13">
<property name="text">
<string>T2 Axis</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QLabel" name="label_14">
<property name="text">
<string>T3 Axis</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="jog_t1_up_btn">
<property name="text">
<string>Up</string>
</property>
</widget>
</item>
<item row="2" column="2" alignment="Qt::AlignmentFlag::AlignHCenter">
<widget class="QPushButton" name="jog_t2_up_btn">
<property name="maximumSize">
<size>
<width>150</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>Up</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QPushButton" name="jog_t3_up_btn">
<property name="text">
<string>Up</string>
</property>
</widget>
</item>
<item row="3" column="2">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="sizeConstraint">
<enum>QLayout::SizeConstraint::SetDefaultConstraint</enum>
</property>
<item>
<widget class="QLabel" name="label_20">
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>Jog Speed:</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="t3r_jog_speed_edit">
<property name="maximumSize">
<size>
<width>75</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
<item row="4" column="1">
<widget class="QPushButton" name="jog_t1_down_btn">
<property name="text">
<string>Down</string>
</property>
</widget>
</item>
<item row="4" column="2" alignment="Qt::AlignmentFlag::AlignHCenter">
<widget class="QPushButton" name="jog_t2_down_btn">
<property name="maximumSize">
<size>
<width>150</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>Down</string>
</property>
</widget>
</item>
<item row="4" column="3">
<widget class="QPushButton" name="jog_t3_down_btn">
<property name="text">
<string>Down</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QPushButton" name="jog_gr_ccw_btn">
<property name="text">
<string>CCW</string>
</property>
</widget>
</item>
<item row="5" column="2">
<widget class="QLabel" name="label_15">
<property name="text">
<string>GR Axis</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignCenter</set>
</property>
</widget>
</item>
<item row="5" column="3">
<widget class="QPushButton" name="jog_gr_cw_btn">
<property name="text">
<string>CW</string>
</property>
</widget>
</item>
<item row="5" column="4">
<widget class="QPushButton" name="t3r_enable_gr_btn">
<property name="text">
<string>Enable GR</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_t3r_current">
<item row="0" column="0">
<widget class="QLabel" name="label_t3r_cur_header">
<property name="text">
<string>Motor Current (mA):</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_t3r_cur_t1">
<property name="text">
<string>T1</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignCenter</set>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QSpinBox" name="t3r_current_t1_spin">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>2000</number>
</property>
<property name="value">
<number>600</number>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QPushButton" name="t3r_set_current_t1_btn">
<property name="text">
<string>Set T1</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_t3r_cur_t2">
<property name="text">
<string>T2</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignCenter</set>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="t3r_current_t2_spin">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>2000</number>
</property>
<property name="value">
<number>600</number>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QPushButton" name="t3r_set_current_t2_btn">
<property name="text">
<string>Set T2</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLabel" name="label_t3r_cur_t3">
<property name="text">
<string>T3</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignCenter</set>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QSpinBox" name="t3r_current_t3_spin">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>2000</number>
</property>
<property name="value">
<number>600</number>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QPushButton" name="t3r_set_current_t3_btn">
<property name="text">
<string>Set T3</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QLabel" name="label_t3r_cur_gr">
<property name="text">
<string>GR</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignCenter</set>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QSpinBox" name="t3r_current_gr_spin">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>2000</number>
</property>
<property name="value">
<number>600</number>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QPushButton" name="t3r_set_current_gr_btn">
<property name="text">
<string>Set GR</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="label_18">
<property name="font">
<font>
<family>Noto Sans Condensed SemiBold</family>
<pointsize>16</pointsize>
</font>
</property>
<property name="text">
<string>MLS203-1 Manual Controls:</string>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="4">
<widget class="QPushButton" name="bbd_enable_all_btn">
<property name="minimumSize">
<size>
<width>0</width>
<height>36</height>
</size>
</property>
<property name="text">
<string>Toggle Axes Enable</string>
</property>
</widget>
</item>
<item row="2" column="2">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_19">
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>Jog Speed:</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_10">
<property name="maximumSize">
<size>
<width>75</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
<item row="4" column="4" alignment="Qt::AlignmentFlag::AlignLeft">
<widget class="QLabel" name="bbd_current_y_position_indicator">
<property name="minimumSize">
<size>
<width>170</width>
<height>44</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>220</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<family>Noto Sans Condensed SemiBold</family>
<pointsize>24</pointsize>
</font>
</property>
<property name="text">
<string>000.00</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="1" colspan="3">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0">
<widget class="QPushButton" name="bbd_home_all_btn">
<property name="minimumSize">
<size>
<width>0</width>
<height>36</height>
</size>
</property>
<property name="text">
<string>Home All Axes</string>
</property>
</widget>
</item>
<item row="1" column="2" alignment="Qt::AlignmentFlag::AlignHCenter">
<widget class="QPushButton" name="bbd_jog_y_pos_btn">
<property name="minimumSize">
<size>
<width>0</width>
<height>44</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>190</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string>Y+</string>
</property>
</widget>
</item>
<item row="4" column="0" alignment="Qt::AlignmentFlag::AlignRight">
<widget class="QLabel" name="label_21">
<property name="maximumSize">
<size>
<width>130</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>X Position:</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
</item>
<item row="4" column="1" alignment="Qt::AlignmentFlag::AlignLeft">
<widget class="QLabel" name="bbd_current_x_position_indicator">
<property name="minimumSize">
<size>
<width>170</width>
<height>44</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>220</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<family>Noto Sans Condensed SemiBold</family>
<pointsize>24</pointsize>
</font>
</property>
<property name="text">
<string>000.00</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="bbd_jog_x_neg_btn">
<property name="minimumSize">
<size>
<width>0</width>
<height>44</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>190</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string>X-</string>
</property>
</widget>
</item>
<item row="2" column="0">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="2" alignment="Qt::AlignmentFlag::AlignHCenter">
<widget class="QPushButton" name="bbd_jog_y_neg_btn">
<property name="minimumSize">
<size>
<width>0</width>
<height>44</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>190</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string>Y-</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QPushButton" name="bbd_jog_x_pos_btn">
<property name="minimumSize">
<size>
<width>0</width>
<height>44</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>190</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string>X+</string>
</property>
</widget>
</item>
<item row="2" column="4">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="3" alignment="Qt::AlignmentFlag::AlignRight">
<widget class="QLabel" name="label_23">
<property name="maximumSize">
<size>
<width>130</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>Y Position:</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QPushButton" name="bbd_set_current_start_btn">
<property name="minimumSize">
<size>
<width>0</width>
<height>36</height>
</size>
</property>
<property name="text">
<string>Set Current Coords as Start Coords</string>
</property>
</widget>
</item>
<item row="5" column="4">
<widget class="QPushButton" name="bbd_set_delta_current_btn">
<property name="minimumSize">
<size>
<width>0</width>
<height>36</height>
</size>
</property>
<property name="text">
<string>Calculate Delta (Current - Start)</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QPushButton" name="show_camera_toggle">
<property name="text">
<string>Show Camera Window</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="show_helios_toggle">
<property name="text">
<string>Show Helios Panel</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="burst_mode_check">
<property name="toolTip">
<string>Acquire as many whole rows per FastFrame acquisition as the scope can hold, and transfer each burst in one CURVe? transaction. The stage trigger output is gated off for the flyback between rows.</string>
</property>
<property name="text">
<string>Burst acquisition (multi-row FastFrame)</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="start_scan_btn">
<property name="text">
<string>Start Scanning</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<tabstops>
<tabstop>x_start_edit</tabstop>
<tabstop>y_start_edit</tabstop>
<tabstop>x_delta_edit</tabstop>
<tabstop>y_delta_edit</tabstop>
<tabstop>num_angles_edit</tabstop>
<tabstop>row_spacing_edit</tabstop>
<tabstop>scan_prefix_edit</tabstop>
<tabstop>scan_save_dir_edit</tabstop>
<tabstop>save_dir_browse_btn</tabstop>
<tabstop>t3r_comport_edit</tabstop>
<tabstop>t3r_connect_toggle</tabstop>
<tabstop>bbd202_comport_edit</tabstop>
<tabstop>bbd202_connect_toggle</tabstop>
<tabstop>oscope_ip_edit</tabstop>
<tabstop>oscope_connect_toggle</tabstop>
<tabstop>t3r_enable_t1_btn</tabstop>
<tabstop>t3r_enable_t2_btn</tabstop>
<tabstop>t3r_enable_t3_btn</tabstop>
<tabstop>jog_t1_up_btn</tabstop>
<tabstop>jog_t2_up_btn</tabstop>
<tabstop>jog_t3_up_btn</tabstop>
<tabstop>t3r_jog_speed_edit</tabstop>
<tabstop>jog_t1_down_btn</tabstop>
<tabstop>jog_t2_down_btn</tabstop>
<tabstop>jog_t3_down_btn</tabstop>
<tabstop>jog_gr_ccw_btn</tabstop>
<tabstop>jog_gr_cw_btn</tabstop>
<tabstop>t3r_enable_gr_btn</tabstop>
<tabstop>t3r_current_t1_spin</tabstop>
<tabstop>t3r_set_current_t1_btn</tabstop>
<tabstop>t3r_current_t2_spin</tabstop>
<tabstop>t3r_set_current_t2_btn</tabstop>
<tabstop>t3r_current_t3_spin</tabstop>
<tabstop>t3r_set_current_t3_btn</tabstop>
<tabstop>t3r_current_gr_spin</tabstop>
<tabstop>t3r_set_current_gr_btn</tabstop>
<tabstop>bbd_enable_all_btn</tabstop>
<tabstop>lineEdit_10</tabstop>
<tabstop>bbd_home_all_btn</tabstop>
<tabstop>bbd_jog_y_pos_btn</tabstop>
<tabstop>bbd_jog_x_neg_btn</tabstop>
<tabstop>bbd_jog_y_neg_btn</tabstop>
<tabstop>bbd_jog_x_pos_btn</tabstop>
<tabstop>bbd_set_current_start_btn</tabstop>
<tabstop>bbd_set_delta_current_btn</tabstop>
<tabstop>show_camera_toggle</tabstop>
<tabstop>start_scan_btn</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>