def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1089, 309)
        MainWindow.setStyleSheet("")
        MainWindow.setDockNestingEnabled(True)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.centralwidget.sizePolicy().hasHeightForWidth())
        self.centralwidget.setSizePolicy(sizePolicy)
        self.centralwidget.setObjectName("centralwidget")
        MainWindow.setCentralWidget(self.centralwidget)
        self.LoaderDock = QtWidgets.QDockWidget(MainWindow)
        self.LoaderDock.setFeatures(
            QtWidgets.QDockWidget.DockWidgetFloatable
            | QtWidgets.QDockWidget.DockWidgetMovable
            | QtWidgets.QDockWidget.DockWidgetVerticalTitleBar)
        self.LoaderDock.setAllowedAreas(Qt.Qt.BottomDockWidgetArea
                                        | Qt.Qt.TopDockWidgetArea)
        self.LoaderDock.setObjectName("LoaderDock")
        self.dockWidgetContents = QtWidgets.QWidget()
        self.dockWidgetContents.setObjectName("dockWidgetContents")
        self.LoaderDock.setWidget(self.dockWidgetContents)
        MainWindow.addDockWidget(Qt.Qt.DockWidgetArea(4), self.LoaderDock)
        self.TaskDock = QtWidgets.QDockWidget(MainWindow)
        self.TaskDock.setEnabled(True)
        self.TaskDock.setFeatures(
            QtWidgets.QDockWidget.DockWidgetFloatable
            | QtWidgets.QDockWidget.DockWidgetMovable
            | QtWidgets.QDockWidget.DockWidgetVerticalTitleBar)
        self.TaskDock.setAllowedAreas(Qt.Qt.BottomDockWidgetArea
                                      | Qt.Qt.TopDockWidgetArea)
        self.TaskDock.setObjectName("TaskDock")
        self.dockWidgetContents_5 = QtWidgets.QWidget()
        self.dockWidgetContents_5.setObjectName("dockWidgetContents_5")
        self.gridLayout = QtWidgets.QGridLayout(self.dockWidgetContents_5)
        self.gridLayout.setContentsMargins(0, 0, 0, 0)
        self.gridLayout.setHorizontalSpacing(5)
        self.gridLayout.setVerticalSpacing(0)
        self.gridLayout.setObjectName("gridLayout")
        self.label = QtWidgets.QLabel(self.dockWidgetContents_5)
        self.label.setAlignment(Qt.Qt.AlignCenter)
        self.label.setObjectName("label")
        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
        self.protoContinuousCheck = QtWidgets.QCheckBox(
            self.dockWidgetContents_5)
        self.protoContinuousCheck.setEnabled(False)
        self.protoContinuousCheck.setObjectName("protoContinuousCheck")
        self.gridLayout.addWidget(self.protoContinuousCheck, 0, 1, 1, 2)
        self.deviceList = QtWidgets.QListWidget(self.dockWidgetContents_5)
        self.deviceList.setObjectName("deviceList")
        self.gridLayout.addWidget(self.deviceList, 1, 0, 5, 1)
        self.label_8 = QtWidgets.QLabel(self.dockWidgetContents_5)
        self.label_8.setObjectName("label_8")
        self.gridLayout.addWidget(self.label_8, 1, 1, 1, 1)
        self.label_6 = QtWidgets.QLabel(self.dockWidgetContents_5)
        self.label_6.setObjectName("label_6")
        self.gridLayout.addWidget(self.label_6, 2, 1, 1, 1)
        self.protoLoopCheck = QtWidgets.QCheckBox(self.dockWidgetContents_5)
        self.protoLoopCheck.setObjectName("protoLoopCheck")
        self.gridLayout.addWidget(self.protoLoopCheck, 3, 1, 1, 1)
        self.label_7 = QtWidgets.QLabel(self.dockWidgetContents_5)
        self.label_7.setObjectName("label_7")
        self.gridLayout.addWidget(self.label_7, 4, 1, 1, 1)
        spacerItem = QtWidgets.QSpacerItem(20, 91,
                                           QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Expanding)
        self.gridLayout.addItem(spacerItem, 5, 2, 1, 1)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.testSingleBtn = QtWidgets.QPushButton(self.dockWidgetContents_5)
        self.testSingleBtn.setEnabled(True)
        self.testSingleBtn.setObjectName("testSingleBtn")
        self.horizontalLayout_2.addWidget(self.testSingleBtn)
        spacerItem1 = QtWidgets.QSpacerItem(13, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem1)
        self.runTaskBtn = QtWidgets.QPushButton(self.dockWidgetContents_5)
        self.runTaskBtn.setEnabled(True)
        self.runTaskBtn.setObjectName("runTaskBtn")
        self.horizontalLayout_2.addWidget(self.runTaskBtn)
        spacerItem2 = QtWidgets.QSpacerItem(40, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem2)
        self.stopSingleBtn = QtWidgets.QPushButton(self.dockWidgetContents_5)
        self.stopSingleBtn.setObjectName("stopSingleBtn")
        self.horizontalLayout_2.addWidget(self.stopSingleBtn)
        self.gridLayout.addLayout(self.horizontalLayout_2, 6, 0, 1, 4)
        self.protoDurationSpin = SpinBox(self.dockWidgetContents_5)
        self.protoDurationSpin.setMinimumSize(Qt.QSize(60, 0))
        self.protoDurationSpin.setProperty("value", 0.1)
        self.protoDurationSpin.setObjectName("protoDurationSpin")
        self.gridLayout.addWidget(self.protoDurationSpin, 1, 2, 1, 2)
        self.protoLeadTimeSpin = SpinBox(self.dockWidgetContents_5)
        self.protoLeadTimeSpin.setProperty("value", 0.01)
        self.protoLeadTimeSpin.setObjectName("protoLeadTimeSpin")
        self.gridLayout.addWidget(self.protoLeadTimeSpin, 2, 2, 1, 2)
        self.protoCycleTimeSpin = SpinBox(self.dockWidgetContents_5)
        self.protoCycleTimeSpin.setObjectName("protoCycleTimeSpin")
        self.gridLayout.addWidget(self.protoCycleTimeSpin, 4, 2, 1, 2)
        self.TaskDock.setWidget(self.dockWidgetContents_5)
        MainWindow.addDockWidget(Qt.Qt.DockWidgetArea(4), self.TaskDock)
        self.SequenceDock = QtWidgets.QDockWidget(MainWindow)
        self.SequenceDock.setEnabled(True)
        self.SequenceDock.setFeatures(
            QtWidgets.QDockWidget.DockWidgetFloatable
            | QtWidgets.QDockWidget.DockWidgetMovable
            | QtWidgets.QDockWidget.DockWidgetVerticalTitleBar)
        self.SequenceDock.setAllowedAreas(Qt.Qt.BottomDockWidgetArea
                                          | Qt.Qt.TopDockWidgetArea)
        self.SequenceDock.setObjectName("SequenceDock")
        self.dockWidgetContents_7 = QtWidgets.QWidget()
        self.dockWidgetContents_7.setObjectName("dockWidgetContents_7")
        self.gridLayout_2 = QtWidgets.QGridLayout(self.dockWidgetContents_7)
        self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
        self.gridLayout_2.setHorizontalSpacing(5)
        self.gridLayout_2.setVerticalSpacing(0)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.label_10 = QtWidgets.QLabel(self.dockWidgetContents_7)
        self.label_10.setObjectName("label_10")
        self.gridLayout_2.addWidget(self.label_10, 0, 0, 1, 1)
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.label_9 = QtWidgets.QLabel(self.dockWidgetContents_7)
        self.label_9.setObjectName("label_9")
        self.verticalLayout.addWidget(self.label_9)
        self.seqCycleTimeSpin = SpinBox(self.dockWidgetContents_7)
        self.seqCycleTimeSpin.setProperty("value", 1.0)
        self.seqCycleTimeSpin.setObjectName("seqCycleTimeSpin")
        self.verticalLayout.addWidget(self.seqCycleTimeSpin)
        self.label_11 = QtWidgets.QLabel(self.dockWidgetContents_7)
        self.label_11.setObjectName("label_11")
        self.verticalLayout.addWidget(self.label_11)
        self.seqRepetitionSpin = QtWidgets.QSpinBox(self.dockWidgetContents_7)
        self.seqRepetitionSpin.setMinimum(0)
        self.seqRepetitionSpin.setMaximum(1000000)
        self.seqRepetitionSpin.setObjectName("seqRepetitionSpin")
        self.verticalLayout.addWidget(self.seqRepetitionSpin)
        spacerItem3 = QtWidgets.QSpacerItem(17, 18,
                                            QtWidgets.QSizePolicy.Minimum,
                                            QtWidgets.QSizePolicy.Expanding)
        self.verticalLayout.addItem(spacerItem3)
        self.label_2 = QtWidgets.QLabel(self.dockWidgetContents_7)
        self.label_2.setObjectName("label_2")
        self.verticalLayout.addWidget(self.label_2)
        self.paramSpaceLabel = QtWidgets.QLabel(self.dockWidgetContents_7)
        self.paramSpaceLabel.setObjectName("paramSpaceLabel")
        self.verticalLayout.addWidget(self.paramSpaceLabel)
        self.label_4 = QtWidgets.QLabel(self.dockWidgetContents_7)
        self.label_4.setObjectName("label_4")
        self.verticalLayout.addWidget(self.label_4)
        self.seqTimeLabel = QtWidgets.QLabel(self.dockWidgetContents_7)
        self.seqTimeLabel.setObjectName("seqTimeLabel")
        self.verticalLayout.addWidget(self.seqTimeLabel)
        self.seqCurrentLabel = QtWidgets.QLabel(self.dockWidgetContents_7)
        self.seqCurrentLabel.setText("")
        self.seqCurrentLabel.setObjectName("seqCurrentLabel")
        self.verticalLayout.addWidget(self.seqCurrentLabel)
        spacerItem4 = QtWidgets.QSpacerItem(13, 13,
                                            QtWidgets.QSizePolicy.Minimum,
                                            QtWidgets.QSizePolicy.Expanding)
        self.verticalLayout.addItem(spacerItem4)
        self.gridLayout_2.addLayout(self.verticalLayout, 0, 1, 2, 1)
        self.sequenceParamList = ParamList(self.dockWidgetContents_7)
        self.sequenceParamList.setDragEnabled(True)
        self.sequenceParamList.setDragDropMode(
            QtWidgets.QAbstractItemView.InternalMove)
        self.sequenceParamList.setIndentation(10)
        self.sequenceParamList.setRootIsDecorated(True)
        self.sequenceParamList.setAnimated(True)
        self.sequenceParamList.setAllColumnsShowFocus(True)
        self.sequenceParamList.setObjectName("sequenceParamList")
        self.sequenceParamList.header().setDefaultSectionSize(30)
        self.sequenceParamList.header().setMinimumSectionSize(30)
        self.sequenceParamList.header().setStretchLastSection(False)
        self.gridLayout_2.addWidget(self.sequenceParamList, 1, 0, 1, 1)
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.testSequenceBtn = QtWidgets.QPushButton(self.dockWidgetContents_7)
        self.testSequenceBtn.setEnabled(False)
        self.testSequenceBtn.setObjectName("testSequenceBtn")
        self.horizontalLayout_3.addWidget(self.testSequenceBtn)
        spacerItem5 = QtWidgets.QSpacerItem(38, 17,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem5)
        self.runSequenceBtn = QtWidgets.QPushButton(self.dockWidgetContents_7)
        self.runSequenceBtn.setEnabled(False)
        self.runSequenceBtn.setObjectName("runSequenceBtn")
        self.horizontalLayout_3.addWidget(self.runSequenceBtn)
        self.pauseSequenceBtn = QtWidgets.QPushButton(
            self.dockWidgetContents_7)
        self.pauseSequenceBtn.setMinimumSize(Qt.QSize(40, 0))
        self.pauseSequenceBtn.setCheckable(True)
        self.pauseSequenceBtn.setObjectName("pauseSequenceBtn")
        self.horizontalLayout_3.addWidget(self.pauseSequenceBtn)
        spacerItem6 = QtWidgets.QSpacerItem(58, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem6)
        self.stopSequenceBtn = QtWidgets.QPushButton(self.dockWidgetContents_7)
        self.stopSequenceBtn.setObjectName("stopSequenceBtn")
        self.horizontalLayout_3.addWidget(self.stopSequenceBtn)
        self.gridLayout_2.addLayout(self.horizontalLayout_3, 2, 0, 1, 2)
        self.gridLayout_2.setColumnStretch(0, 5)
        self.gridLayout_2.setColumnStretch(1, 1)
        self.SequenceDock.setWidget(self.dockWidgetContents_7)
        MainWindow.addDockWidget(Qt.Qt.DockWidgetArea(4), self.SequenceDock)
        self.dockWidget = QtWidgets.QDockWidget(MainWindow)
        self.dockWidget.setFeatures(
            QtWidgets.QDockWidget.DockWidgetFloatable
            | QtWidgets.QDockWidget.DockWidgetMovable
            | QtWidgets.QDockWidget.DockWidgetVerticalTitleBar)
        self.dockWidget.setAllowedAreas(Qt.Qt.BottomDockWidgetArea
                                        | Qt.Qt.TopDockWidgetArea)
        self.dockWidget.setObjectName("dockWidget")
        self.dockWidgetContents_2 = QtWidgets.QWidget()
        self.dockWidgetContents_2.setObjectName("dockWidgetContents_2")
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout(
            self.dockWidgetContents_2)
        self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_4.setSpacing(0)
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.analysisList = QtWidgets.QListWidget(self.dockWidgetContents_2)
        self.analysisList.setObjectName("analysisList")
        self.horizontalLayout_4.addWidget(self.analysisList)
        self.dockWidget.setWidget(self.dockWidgetContents_2)
        MainWindow.addDockWidget(Qt.Qt.DockWidgetArea(4), self.dockWidget)
        self.statusBar = QtWidgets.QStatusBar(MainWindow)
        self.statusBar.setObjectName("statusBar")
        MainWindow.setStatusBar(self.statusBar)

        self.retranslateUi(MainWindow)
        Qt.QMetaObject.connectSlotsByName(MainWindow)