From dd3205275f2c08e97aec7c8138b8f673cf9ad35f Mon Sep 17 00:00:00 2001 From: Giacomo Strangolino <giacomo.strangolino@elettra.eu> Date: Thu, 5 Aug 2021 16:25:55 +0200 Subject: [PATCH] cumbia porting - ticket 14825 --- CHANGELOG | 5 +- mscr.pro | 74 +- src/main.cpp | 45 +- src/mscr.cpp | 328 ++--- src/mscr.h | 46 +- src/mscr.ui | 3939 ++++++++++++++++++++++---------------------------- 6 files changed, 2041 insertions(+), 2396 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 3365ad9..0565655 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,7 @@ - +1.0.2 a. cumbia porting + b. layouts + c. fixes to writers in polar Polar attenuation + d. avoid setSource if elements are invisible release_13: porting to qtango6 (installed in /usr/local/qtango) and qt5 diff --git a/mscr.pro b/mscr.pro index 90ee061..d60a8e5 100644 --- a/mscr.pro +++ b/mscr.pro @@ -1,12 +1,78 @@ -include (/usr/local/qtango/include/qtango6/qtango.pri) +isEmpty(CUMBIA_ROOT) { + CUMBIA_ROOT=/usr/local/cumbia-libs +} +include($${CUMBIA_ROOT}/include/quapps/quapps.pri) -RESOURCES = mscr.qrc +# CONFIG += debug | release + +DEFINES -= QT_NO_DEBUG_OUTPUT + +RESOURCES += mscr.qrc SOURCES += src/mscr.cpp \ src/main.cpp HEADERS += src/mscr.h -FORMS = src/mscr.ui +# cuuimake runs uic +# FORMS = src/mscr.ui +# + +# but we need to include ui_xxxx.h file amongst the headers +# in order to be recompiled when it changes +# +HEADERS += \ + ui_mscr.h + +# - ui: where to find cuuimake ui_*.h files +# since FORMS is not used +# - src: where to find headers included by +# ui_*.h (e.g. for custom widget promoted +# from the Qt designer) +# +INCLUDEPATH += ui src + +TARGET = mscr-gui + +!wasm-emscripten { + TARGET = bin/$${TARGET} +} else { + TARGET = wasm/$${TARGET} +} + +# +# make install works if INSTALL_DIR is given to qmake +# +!isEmpty(INSTALL_DIR) { + wasm-emscripten { + inst.files = wasm/* + } else { + inst.files = $${TARGET} + } + inst.path = $${INSTALL_DIR} + INSTALLS += inst + message("-") + message("INSTALLATION") + message(" execute `make install` to install '$PROJECT_NAME$' under $${INSTALL_DIR} ") + message("-") +} else { + message("-") + message("INSTALLATION") + message(" call qmake INSTALL_DIR=/usr/local/bin to install $PROJECT_NAME$ later with `make install` ") + message("-") +} + +# unix:LIBS += -L. -lmylib + +# unix:INCLUDEPATH += . ../../src + +message("-") +message("NOTE") +message("You need to run cuuimake in order to build the project") +message("-") +message(" cuuimake --show-config to see cuuimake configuration options") +message(" cuuimake --configure to configure cuuimake") +message(" cuuimake -jN to execute cuuimake and then make -jN") +message(" cuuimake --make to run cuuimake and then make") +message("-") -TARGET = bin/mscr-gui diff --git a/src/main.cpp b/src/main.cpp index bb2378e..fbae1ff 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -30,37 +30,40 @@ * your version. * ***************************************************************************/ -#include <TApplication> +// #include <TApplication> +// cumbia +#include <cumbiapool.h> +#include <cuthreadfactoryimpl.h> +#include <qthreadseventbridgefactory.h> +// cumbia + +#include <quapplication.h> #include "mscr.h" -#include <tutil.h> #include <X11/Xlib.h> #include <QX11Info> -#include <TSplashScreen> -#include <elettracolors.h> - -#define CVSVERSION "$Name: $" int main(int argc, char ** argv) { - const char *cvs_version = CVSVERSION; - TApplication a(argc, argv); - a.setPalette(EPalette("fermi")); - a.setApplicationVersion(cvs_version); - TUtil::instance()->setLoggingTarget(argv[0]); - TSplashScreen splash; - - mscr mw; + QuApplication qu_app(argc, argv); + CumbiaPool *cu_p = new CumbiaPool(); + mscr *w = new mscr(cu_p, 0); if (argc > 1) { - mw.setWindowTitle(TApplication::instance()->arguments()[1].split('/').last()); + w->setWindowTitle(QuApplication::instance()->arguments()[1].split('/').last());// TApplication is mapped into QuApplication. DBus connection is provided by cumbia dbus plugin // ## added by qumbiaprojectwizard } else { - mw.setWindowTitle("mscr"); + w->setWindowTitle("mscr"); } - mw.show(); - splash.finish(&mw); + w->show(); - /* register to window manager */ Display *disp = QX11Info::display(); - Window root_win = (Window) mw.winId(); + Window root_win = (Window) w->winId(); XSetCommand(disp, root_win, argv, argc); - return a.exec(); +// exec application loop + int ret = qu_app.exec(); + // delete resources and return + delete w; + for(std::string n : cu_p->names()) + if(cu_p->get(n)) + delete cu_p->get(n); + return ret; } + diff --git a/src/mscr.cpp b/src/mscr.cpp index 93a327d..91372bf 100644 --- a/src/mscr.cpp +++ b/src/mscr.cpp @@ -30,53 +30,68 @@ * your version. * ***************************************************************************/ +// cumbia +#include <cumbiapool.h> +#include <cuserviceprovider.h> +#include <cumacros.h> +#include <quapps.h> +#include <quwatcher.h> +#include <quwriter.h> +// cumbia + #include "mscr.h" -#include <qtango.h> - -mscr::mscr(QWidget *parent) : QWidget(parent) { - ui.setupUi(this); - timer = new QTimer(this); - - connect(timer, SIGNAL(timeout()), this, SLOT(refresh())); - connect(ui.position0_radioButton, SIGNAL(clicked()), this, SLOT(setPosition0())); - connect(ui.position1_radioButton, SIGNAL(clicked()), this, SLOT(setPosition1())); - connect(ui.position2_radioButton, SIGNAL(clicked()), this, SLOT(setPosition2())); - connect(ui.position3_radioButton, SIGNAL(clicked()), this, SLOT(setPosition3())); - connect(ui.position4_radioButton, SIGNAL(clicked()), this, SLOT(setPosition4())); - connect(ui.lightLevel_comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(setLightLevel(int))); - connect(ui.lightLevel_comboBox_2, SIGNAL(currentIndexChanged(int)), this, SLOT(setLightLevel2(int))); - - DeviceData dd; +#include <QTimer> + +mscr::mscr(CumbiaPool *cumbia_pool, QWidget *parent) : QWidget(parent) { + // cumbia + CuModuleLoader mloader(cumbia_pool, &m_ctrl_factory_pool, &m_log_impl); + cu_pool = cumbia_pool; + ui = new Ui::mscr; + ui->setupUi(this, cu_pool, m_ctrl_factory_pool); + foreach(QString s, QStringList() << "gbLightLevel2" << "attenuator2_groupBox" + << "verSlit_groupBox" << "horSlit_groupBox") + findChild<QGroupBox *>(s)->setVisible(false); + + // wait for mscr status and instrument list ready + QTimer *tmr_checkConfigReady = new QTimer(this); + tmr_checkConfigReady->setInterval(500); + tmr_checkConfigReady->setObjectName("checkConfigTmr"); + connect(tmr_checkConfigReady, SIGNAL(timeout()), this, SLOT(checkConfigReady())); + tmr_checkConfigReady->start(); + + // mloader.modules() to get the list of loaded modules + // cumbia + if (QApplication::arguments().size() > 1) { - try { - tangodev = QApplication::arguments()[1]; - server = DeviceFactory::instance()->create(tangodev); - server->read_attribute("MscrStatus") >> mscrStatus; - dd = server->command_inout("GetInstrumentList"); - dd >> instruments; - setPolarAttenuation(); - std::string contr_type; - server->read_attribute("ControllerType") >> contr_type; - if (contr_type.substr(0,5) != "IFC-B"){ - //ui.tabWidget->setTabEnabled(3,false); - ui.tabWidget->removeTab(3); - } - - } catch (Tango::DevFailed& ex) { - simpleLog::error("mscr::mscr", ex.errors); - exit(1); - } catch (...) { - simpleLog::error("mscr::mscr", "Unexpected exception occurred."); - exit(1); - } + QuWatcher *w = new QuWatcher(this, cumbia_pool, m_ctrl_factory_pool); + w->attach(this, SLOT(onMscrStatus(const QVector<bool>&))); + w->setSource("$1/MscrStatus"); + + Qu1TWatcher *w1 = new Qu1TWatcher(this, cumbia_pool, m_ctrl_factory_pool); + w1->attach(this, SLOT(onControllerType(const QString&))); + w1->setSource("$1/ControllerType"); + + Qu1TWatcher *w2 = new Qu1TWatcher(this, cumbia_pool, m_ctrl_factory_pool); + w2->attach(&m_instruments); + w2->setSource("$1->GetInstrumentList"); + + Qu1TWatcher *llw = new Qu1TWatcher(this, cumbia_pool, m_ctrl_factory_pool); + llw->attach(this, SLOT(onLightLevelReady(int))); + llw->setSource("$1/LightLevel"); + + // position + QuWatcher *pos_w = new QuWatcher(this, cumbia_pool, m_ctrl_factory_pool); + pos_w->attach(this, SLOT(onPositionReady(int))); + // onPositionReady connects radio buttons + pos_w->setSource("$1/Selector"); + + ui->qio_polar1Attenuation->setSource("$1/Polar1Attenuation"); + } else { usage(); exit(1); } - - initWidgets(); - refresh(); - timer->start(1000); + resize(minimumSizeHint()); } mscr::~mscr() { @@ -90,162 +105,133 @@ void mscr::usage() { } void mscr::initWidgets() { + qDebug() << __PRETTY_FUNCTION__ << m_mscrStatus << m_instruments; + + // light level (straight) + ui->gbLightLevel2->setVisible(m_mscrStatus[3]); + ui->attenuator2_groupBox->setVisible(m_mscrStatus[3]);//2 + + if(ui->gbLightLevel2->isVisible()) { + ui->qulLightLevel2->setSource("$1/LightLevel2"); + ui->qio_polar2Attenuation->setSource("$1/Polar2Attenuation"); + + QuWatcher *ll2w = new QuWatcher(this, cu_pool, m_ctrl_factory_pool); + ll2w->attach(this, SLOT(onLightLevel2Ready(int))); + ll2w->setSource("$1/LightLevel2"); + } + + + ui->verSlit_groupBox->setEnabled(m_mscrStatus[6]);//5 + ui->verSlit_groupBox->setVisible(m_mscrStatus[5]);//4 + if(ui->verSlit_groupBox->isVisible()) + ui->qioVSlit->setSource("$1/VerSlitPosition"); + + ui->stepperHorStatus_groupBox->setVisible(m_mscrStatus[5]);//4 + ui->horSlit_groupBox->setEnabled(m_mscrStatus[7]);//4 + ui->horSlit_groupBox->setVisible(m_mscrStatus[5]);//4 + if(ui->horSlit_groupBox->isVisible()) + ui->qioHSlit->setSource("$1/HorSlitPosition"); + + // Status tab + ui->polar2Status_groupBox->setVisible(m_mscrStatus[3]);//2 + if(ui->polar2Status_groupBox->isVisible()) + ui->qutable_polar2Status->setSource("$1/Polar2Status"); + + ui->stepperVerStatus_groupBox->setVisible(m_mscrStatus[5]);//4 + if(ui->stepperVerStatus_groupBox->isVisible()) + ui->qutable_stepperVerStatus->setSource("$1/StepperVerStatus"); - ui.polar2Status_groupBox->setVisible(mscrStatus[3]);//2 - ui.attenuator2_groupBox->setVisible(mscrStatus[3]);//2 - ui.lightLevel_comboBox_2->setVisible(mscrStatus[3]);//2 - ui.tLabelLightLevel_2->setVisible(mscrStatus[3]);//2 - ui.label_41->setVisible(mscrStatus[3]);//2 - - ui.stepperVerStatus_groupBox->setVisible(mscrStatus[5]);//4 - ui.verSlit_groupBox->setVisible(mscrStatus[5]);//4 - ui.verSlit_groupBox->setEnabled(mscrStatus[6]);//5 - ui.stepperHorStatus_groupBox->setVisible(mscrStatus[5]);//4 - ui.horSlit_groupBox->setVisible(mscrStatus[5]);//4 - ui.horSlit_groupBox->setEnabled(mscrStatus[7]);//4 - - ui.position0_radioButton->setText(QString(instruments[0].c_str())); - ui.position1_radioButton->setText(QString(instruments[1].c_str())); - if (instruments.size() > 2) { - ui.position2_radioButton->setText(QString(instruments[2].c_str())); + ui->stepperHorStatus_groupBox->setVisible(m_mscrStatus[5]);//4 + if(ui->stepperHorStatus_groupBox->isVisible()) + ui->qutable_stepperHorStatus->setSource("$1/StepperHorStatus"); + + + ui->rbp0->setText(QString(m_instruments[0])); + ui->rbp1->setText(QString(m_instruments[1])); + if (m_instruments.size() > 2) { + ui->rbp2->setText(QString(m_instruments[2])); } else { - ui.position2_radioButton->setHidden(true); + ui->rbp2->setHidden(true); } - if (instruments.size() > 3) { - ui.position3_radioButton->setText(QString(instruments[3].c_str())); + if (m_instruments.size() > 3) { + ui->rbp3->setText(QString(m_instruments[3])); } else { - ui.position3_radioButton->setHidden(true); + ui->rbp3->setHidden(true); } - if (instruments.size() > 4) { - ui.position4_radioButton->setText(QString(instruments[4].c_str())); + if (m_instruments.size() > 4) { + ui->rbp4->setText(QString(m_instruments[4])); } else { - ui.position4_radioButton->setHidden(true); + ui->rbp4->setHidden(true); } } -void mscr::setPolarAttenuation() { - // #1 - if (mscrStatus[1]) { // discrete - ui.polar1Attenuation_tReaderWriter->setWriterType(TReaderWriter::ComboBox); +void mscr::onControllerType(const QString &contr_type) { + if (!contr_type.startsWith("IFC-B")){ + ui->tabWidget->removeTab(3); } - ui.polar1Attenuation_tReaderWriter->setSource("$1/Polar1Attenuation"); - - // #2 - if (mscrStatus[2] and mscrStatus[3]) { // present & discrete - ui.polar2Attenuation_tReaderWriter->setWriterType(TReaderWriter::ComboBox); - } - ui.polar2Attenuation_tReaderWriter->setSource("$1/Polar2Attenuation"); } -void mscr::refresh() { - try { - // position ------------- - server->read_attribute("Selector") >> position; - QFont fontNorma, fontBold; - fontNorma.setBold(false); - fontBold.setBold(true); - qDebug() << "mscr::refresh position=" << position; - - ui.position0_radioButton->setFont(fontNorma); - ui.position1_radioButton->setFont(fontNorma); - ui.position2_radioButton->setFont(fontNorma); - ui.position3_radioButton->setFont(fontNorma); - ui.position4_radioButton->setFont(fontNorma); - - switch (position) { - case 0: - ui.position0_radioButton->setChecked(true); - ui.position0_radioButton->setFont(fontBold); - break; - case 1: - ui.position1_radioButton->setChecked(true); - ui.position1_radioButton->setFont(fontBold); - break; - case 2: - ui.position2_radioButton->setChecked(true); - ui.position2_radioButton->setFont(fontBold); - break; - case 3: - ui.position3_radioButton->setChecked(true); - ui.position3_radioButton->setFont(fontBold); - break; - case 4: - ui.position4_radioButton->setChecked(true); - ui.position4_radioButton->setFont(fontBold); - } - // light ------------- - short lightLevel; - server->read_attribute("LightLevel") >> lightLevel; - ui.lightLevel_comboBox->setCurrentIndex((int)lightLevel); - - // light 2 ------------- - if (ui.lightLevel_comboBox_2->isVisible()){ - short lightLevel2; - server->read_attribute("LightLevel2") >> lightLevel2; - ui.lightLevel_comboBox_2->setCurrentIndex((int)lightLevel2); - } - // slits ------------- - vector<bool> mscrStatus; - server->read_attribute("MscrStatus") >> mscrStatus; - ui.verSlit_groupBox->setEnabled(mscrStatus[5]); - ui.horSlit_groupBox->setEnabled(mscrStatus[6]); - } catch (Tango::DevFailed& ex) { - simpleLog::error("mscr::refresh", ex.errors); - } catch (...) { - simpleLog::error("mscr::refresh", "Unexpected exception occurred on reading the attribute."); +void mscr::checkConfigReady() { + printf("mscr::checkConfigReady() enter\n"); + // init widgets when both instrument list and mscr status are ready + if(m_instruments.size() > 0 && this->m_mscrStatus.size() > 0) { + delete findChild<QTimer* >("checkConfigTmr"); + initWidgets(); } } - -void mscr::setPosition0() { - if (position != 0) { - setPosition(0); - } -} -void mscr::setPosition1() { - if (position != 1) { - setPosition(1); - } +void mscr::onLightLevelReady(int ll) { + ui->lightLevel_comboBox->setCurrentIndex(ll); + connect(ui->lightLevel_comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(setLightLevel(int))); } -void mscr::setPosition2() { - if (position != 2) { - setPosition(2); - } + +void mscr::onLightLevel2Ready(int ll) { + ui->lightLevel_comboBox_2->setCurrentIndex(ll); + connect(ui->lightLevel_comboBox_2, SIGNAL(currentIndexChanged(int)), this, SLOT(setLightLevel2(int))); } -void mscr::setPosition3() { - if (position != 3) { - setPosition(3); + +void mscr::onPositionReady(int position) { + QFont fontNorma, fontBold; + fontNorma.setBold(false); + fontBold.setBold(true); + for(int i = 0; i < 5; i++) { + QRadioButton *rb = ui->selector_groupBox->findChild<QRadioButton *>(QString("rbp%1").arg(i)); + rb->disconnect(); + position == i ? rb->setFont(fontBold) : rb->setFont(fontNorma); + rb->setChecked(position == i); + connect(rb, SIGNAL(toggled(bool)), this, SLOT(onPositionRbChecked(bool))); } } -void mscr::setPosition4() { - if (position != 4) { - setPosition(4); - } + +void mscr::onMscrStatus(const QVector<bool>& s) { + m_mscrStatus = std::move(s); + ui->verSlit_groupBox->setEnabled(m_mscrStatus[5]); + ui->horSlit_groupBox->setEnabled(m_mscrStatus[6]); } -void mscr::setPosition(short newPosition) { - try { - Tango::DeviceAttribute attr("Selector", newPosition); - server->write_attribute(attr); - } catch (...) { - simpleLog::error("mscr::setPosition", "Unexpected exception occurred on writing the attribute 'Selector'."); + +void mscr::onPositionRbChecked(bool c) { + if(c) { + printf("mscr::onPositionRbChecked %s checked %d\n", qstoc(sender()->objectName()), c); + int p = sender()->objectName().remove("rbp").toInt(); + QuWriter *w = new QuWriter(this, cu_pool, m_ctrl_factory_pool); + w->setAutoDestroy(true); + w->setTarget("$1/Selector"); + w->execute(p); } } void mscr::setLightLevel(int newLevel) { - try { - Tango::DeviceAttribute attr("LightLevel", (short int)newLevel); - server->write_attribute(attr); - } catch (...) { - simpleLog::error("mscr::setLightLevel", "Unexpected exception occurred on writing the attribute 'LightLevel'."); - } + QuWriter *w = new QuWriter(this, cu_pool, m_ctrl_factory_pool); + w->setAutoDestroy(true); + w->setTarget("$1/LightLevel"); + w->execute(newLevel); } void mscr::setLightLevel2(int newLevel) { - try { - Tango::DeviceAttribute attr("LightLevel2", (short int)newLevel); - server->write_attribute(attr); - } catch (...) { - simpleLog::error("mscr::setLightLevel2", "Unexpected exception occurred on writing the attribute 'LightLevel2'."); - } + QuWriter *w = new QuWriter(this, cu_pool, m_ctrl_factory_pool); + w->setAutoDestroy(true); + w->setTarget("$1/LightLevel2"); + w->execute(newLevel); } + diff --git a/src/mscr.h b/src/mscr.h index 9da72d1..5f6e59b 100644 --- a/src/mscr.h +++ b/src/mscr.h @@ -33,41 +33,53 @@ #ifndef mscr_H #define mscr_H +// cumbia +#include <qulogimpl.h> +#include <cucontrolsfactorypool.h> +class CumbiaPool; +// cumbia + #include "ui_mscr.h" -#include "simpleLog.h" -#include <device_factory.h> class mscr: public QWidget { Q_OBJECT public slots: - void refresh(); - void setPosition0(); - void setPosition1(); - void setPosition2(); - void setPosition3(); - void setPosition4(); void setLightLevel(int); void setLightLevel2(int); public: - mscr(QWidget * =NULL); + mscr(CumbiaPool *cu_p, QWidget * =NULL); ~mscr(); void usage(); private: - Ui::mscr ui; - QString tangodev; - Tango::DeviceProxy *server; - QTimer *timer; - short position; - void setPosition(short); + // Ui::mscr ui; + Ui::mscr * ui; + void initWidgets(); - vector<bool> mscrStatus; - vector<string> instruments; void setPolarAttenuation(); + // cumbia + CumbiaPool *cu_pool; + QuLogImpl m_log_impl; + CuControlsFactoryPool m_ctrl_factory_pool; + // cumbia + + + QVector<bool> m_mscrStatus; + QStringList m_instruments; + +private slots: + void onControllerType(const QString&); + void checkConfigReady(); + void onLightLevelReady(int ll); + void onLightLevel2Ready(int ll); + void onPositionReady(int position); + void onMscrStatus(const QVector<bool>& s); + void onPositionRbChecked(bool c); }; #endif + diff --git a/src/mscr.ui b/src/mscr.ui index 0c42ef9..e8e37c5 100644 --- a/src/mscr.ui +++ b/src/mscr.ui @@ -1,2182 +1,1757 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>mscr</class> - <widget class="QWidget" name="mscr"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>640</width> - <height>640</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>640</width> - <height>640</height> - </size> - </property> - <property name="maximumSize"> - <size> - <width>640</width> - <height>640</height> - </size> - </property> - <property name="windowTitle"> - <string>mscr</string> - </property> - <widget class="QTabWidget" name="tabWidget"> - <property name="geometry"> - <rect> - <x>9</x> - <y>9</y> - <width>615</width> - <height>507</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="currentIndex"> - <number>0</number> - </property> - <widget class="QWidget" name="tab_main"> - <attribute name="title"> - <string>Main</string> - </attribute> - <widget class="QComboBox" name="lightLevel_comboBox"> - <property name="geometry"> - <rect> - <x>240</x> - <y>40</y> - <width>90</width> - <height>23</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <item> - <property name="text"> - <string>off</string> - </property> - </item> - <item> - <property name="text"> - <string>high</string> - </property> - </item> - <item> - <property name="text"> - <string>medium</string> - </property> - </item> - <item> - <property name="text"> - <string>low</string> - </property> - </item> - </widget> - <widget class="QLabel" name="label_37"> - <property name="geometry"> - <rect> - <x>240</x> - <y>20</y> - <width>90</width> - <height>20</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Light level</string> - </property> - </widget> - <widget class="QGroupBox" name="selector_groupBox"> - <property name="geometry"> - <rect> - <x>30</x> - <y>20</y> - <width>150</width> - <height>170</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="font"> - <font> - <weight>75</weight> - <bold>true</bold> - </font> - </property> - <property name="title"> - <string>selector</string> - </property> - <widget class="QRadioButton" name="position0_radioButton"> - <property name="geometry"> - <rect> - <x>20</x> - <y>20</y> - <width>120</width> - <height>24</height> - </rect> - </property> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>0</string> - </property> - </widget> - <widget class="QRadioButton" name="position3_radioButton"> - <property name="geometry"> - <rect> - <x>20</x> - <y>110</y> - <width>120</width> - <height>24</height> - </rect> - </property> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>3</string> - </property> - </widget> - <widget class="QRadioButton" name="position2_radioButton"> - <property name="geometry"> - <rect> - <x>20</x> - <y>80</y> - <width>120</width> - <height>24</height> - </rect> - </property> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>2</string> - </property> - </widget> - <widget class="QRadioButton" name="position1_radioButton"> - <property name="geometry"> - <rect> - <x>20</x> - <y>50</y> - <width>120</width> - <height>24</height> - </rect> - </property> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>1</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - <widget class="QRadioButton" name="position4_radioButton"> - <property name="geometry"> - <rect> - <x>20</x> - <y>140</y> - <width>120</width> - <height>24</height> - </rect> - </property> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>4</string> - </property> - </widget> - </widget> - <widget class="QGroupBox" name="attenuator1_groupBox"> - <property name="geometry"> - <rect> - <x>10</x> - <y>230</y> - <width>290</width> - <height>100</height> - </rect> - </property> - <property name="font"> - <font> - <weight>75</weight> - <bold>true</bold> - </font> - </property> - <property name="title"> - <string>attenuator #1</string> - </property> - <widget class="QLabel" name="label_38"> - <property name="geometry"> - <rect> - <x>10</x> - <y>24</y> - <width>100</width> - <height>28</height> - </rect> - </property> - <property name="font"> - <font> - <pointsize>10</pointsize> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>attenuation %</string> - </property> - </widget> - <widget class="TReaderWriter" name="polar1Attenuation_tReaderWriter"> - <property name="geometry"> - <rect> - <x>110</x> - <y>24</y> - <width>160</width> - <height>28</height> - </rect> - </property> - <property name="font"> - <font> - <family>Arial</family> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - <property name="zoomEnabled"> - <bool>false</bool> - </property> - </widget> - <widget class="QLabel" name="label_10"> - <property name="geometry"> - <rect> - <x>10</x> - <y>60</y> - <width>161</width> - <height>17</height> - </rect> - </property> - <property name="font"> - <font> - <pointsize>10</pointsize> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>max. abs. val. 10^-4</string> - </property> - </widget> - </widget> - <widget class="QGroupBox" name="attenuator2_groupBox"> - <property name="geometry"> - <rect> - <x>320</x> - <y>230</y> - <width>290</width> - <height>100</height> - </rect> - </property> - <property name="font"> - <font> - <weight>75</weight> - <bold>true</bold> - </font> - </property> - <property name="title"> - <string>attenuator #2</string> - </property> - <widget class="QLabel" name="label_39"> - <property name="geometry"> - <rect> - <x>10</x> - <y>24</y> - <width>100</width> - <height>28</height> - </rect> - </property> - <property name="font"> - <font> - <pointsize>10</pointsize> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>attenuation %</string> - </property> - </widget> - <widget class="TReaderWriter" name="polar2Attenuation_tReaderWriter"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="geometry"> - <rect> - <x>110</x> - <y>24</y> - <width>160</width> - <height>28</height> - </rect> - </property> - <property name="font"> - <font> - <family>Arial</family> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - <property name="source"> - <string>$1/Polar2Attenuation</string> - </property> - <property name="zoomEnabled"> - <bool>false</bool> - </property> - </widget> - <widget class="QLabel" name="label_11"> - <property name="geometry"> - <rect> - <x>16</x> - <y>58</y> - <width>181</width> - <height>17</height> - </rect> - </property> - <property name="font"> - <font> - <pointsize>10</pointsize> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>max. abs. val. 10^-4</string> - </property> - </widget> - </widget> - <widget class="QGroupBox" name="verSlit_groupBox"> - <property name="geometry"> - <rect> - <x>10</x> - <y>350</y> - <width>290</width> - <height>100</height> - </rect> - </property> - <property name="font"> - <font> - <weight>75</weight> - <bold>true</bold> - </font> - </property> - <property name="title"> - <string>Vertical slit</string> - </property> - <widget class="TApplyNumeric" name="tApplyNumeric"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="geometry"> - <rect> - <x>120</x> - <y>40</y> - <width>160</width> - <height>41</height> - </rect> - </property> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="maximum"> - <double>9999.000000000000000</double> - </property> - <property name="minimum"> - <double>-9999.000000000000000</double> - </property> - <property name="buttonPos" stdset="0"> - <enum>Qt::Horizontal</enum> - </property> - <property name="buttonText"> - <string>APPLY</string> - </property> - <property name="numericFont"> - <font> - <family>Arial</family> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="targets"> - <string>$1/VerSlitPosition;;;</string> - </property> - </widget> - <widget class="TLabel" name="polar1Attenuation_tLabel_2"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="geometry"> - <rect> - <x>10</x> - <y>50</y> - <width>110</width> - <height>28</height> - </rect> - </property> - <property name="font"> - <font> - <family>Arial</family> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - <property name="source"> - <string>$1/VerSlitPosition</string> - </property> - </widget> - <widget class="QLabel" name="label_40"> - <property name="geometry"> - <rect> - <x>10</x> - <y>20</y> - <width>110</width> - <height>30</height> - </rect> - </property> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>position</string> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - </widget> - <widget class="QGroupBox" name="horSlit_groupBox"> - <property name="geometry"> - <rect> - <x>320</x> - <y>350</y> - <width>290</width> - <height>100</height> - </rect> - </property> - <property name="font"> - <font> - <weight>75</weight> - <bold>true</bold> - </font> - </property> - <property name="title"> - <string>Horizontal slit</string> - </property> - <widget class="QLabel" name="label_42"> - <property name="geometry"> - <rect> - <x>10</x> - <y>20</y> - <width>110</width> - <height>30</height> - </rect> - </property> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>position</string> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - <widget class="TApplyNumeric" name="tApplyNumeric_2"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="geometry"> - <rect> - <x>120</x> - <y>40</y> - <width>160</width> - <height>41</height> - </rect> - </property> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="buttonPos" stdset="0"> - <enum>Qt::Horizontal</enum> - </property> - <property name="buttonText"> - <string>APPLY</string> - </property> - <property name="numericFont"> - <font> - <family>Arial</family> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="targets"> - <string>$1/HorSlitPosition;;</string> - </property> - </widget> - <widget class="TLabel" name="polar1Attenuation_tLabel_3"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="geometry"> - <rect> - <x>10</x> - <y>50</y> - <width>110</width> - <height>28</height> - </rect> - </property> - <property name="font"> - <font> - <family>Arial</family> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - <property name="source"> - <string>$1/HorSlitPosition</string> - </property> - </widget> - </widget> - <widget class="QLabel" name="label_41"> - <property name="geometry"> - <rect> - <x>408</x> - <y>20</y> - <width>127</width> - <height>17</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Light level (straigth)</string> - </property> - </widget> - <widget class="QComboBox" name="lightLevel_comboBox_2"> - <property name="geometry"> - <rect> - <x>408</x> - <y>40</y> - <width>90</width> - <height>23</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <item> - <property name="text"> - <string>off</string> - </property> - </item> - <item> - <property name="text"> - <string>high</string> - </property> - </item> - <item> - <property name="text"> - <string>medium</string> - </property> - </item> - <item> - <property name="text"> - <string>low</string> - </property> - </item> - </widget> - <widget class="TLabel" name="tLabelLightLevel"> - <property name="geometry"> - <rect> - <x>194</x> - <y>39</y> - <width>39</width> - <height>25</height> - </rect> - </property> - <property name="source"> - <string>$1/LightLevel</string> - </property> - </widget> - <widget class="TLabel" name="tLabelLightLevel_2"> - <property name="geometry"> - <rect> - <x>360</x> - <y>39</y> - <width>39</width> - <height>23</height> - </rect> - </property> - <property name="source"> - <string>$1/LightLevel2</string> - </property> - </widget> - </widget> - <widget class="QWidget" name="tab_expert"> - <attribute name="title"> - <string>Expert</string> - </attribute> - <layout class="QGridLayout" name="gridLayout_3"> - <item row="0" column="0"> - <widget class="TPushButton" name="tPushButton_2"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>INIT STEPPER -( init motor + fault reset )</string> - </property> - <property name="targets"> - <string>$1->StepperInit;;;</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="TLogButton" name="tLogButton"/> - </item> - <item row="1" column="0"> - <widget class="TPushButton" name="tPushButton"> - <property name="text"> - <string>RESET CAMERA -( power off + power on )</string> - </property> - <property name="targets"> - <string>$1->CameraReset;;</string> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="TPushButton" name="tPushButton_3"> - <property name="text"> - <string>INIT ATTENUATOR(s) -( motor homing )</string> - </property> - <property name="targets"> - <string>$1->PolarInit;;;</string> - </property> - </widget> - </item> - <item row="3" column="0"> - <widget class="TPushButton" name="tPushButton_4"> - <property name="text"> - <string>RESET ATTENUATOR(s) -( power off + power on )</string> - </property> - <property name="targets"> - <string>$1->PolarReset;;;;</string> - </property> - </widget> - </item> - <item row="4" column="0"> - <widget class="TPushButton" name="tPushButton_5"> - <property name="text"> - <string>CAMERA ON -( power on )</string> - </property> - <property name="targets"> - <string>$1->CameraOn;;;</string> - </property> - </widget> - </item> - <item row="4" column="1"> - <widget class="TPushButton" name="tPushButton_13"> - <property name="text"> - <string>AUXILIARY OUTPUT ON</string> - </property> - <property name="targets"> - <string>$1->AuxiliaryOutOn;;;;;;</string> - </property> - </widget> - </item> - <item row="5" column="0"> - <widget class="TPushButton" name="tPushButton_6"> - <property name="text"> - <string>CAMERA OFF -( power off )</string> - </property> - <property name="targets"> - <string>$1->CameraOff;;;;</string> - </property> - </widget> - </item> - <item row="5" column="1"> - <widget class="TPushButton" name="tPushButton_14"> - <property name="text"> - <string>AUXILIARY OUTPUT OFF</string> - </property> - <property name="targets"> - <string>$1->AuxiliaryOutOff;;;;;;</string> - </property> - </widget> - </item> - </layout> - </widget> - <widget class="QWidget" name="tab_status"> - <attribute name="title"> - <string>Status</string> - </attribute> - <widget class="QGroupBox" name="mscrStatus_groupBox"> - <property name="geometry"> - <rect> - <x>9</x> - <y>9</y> - <width>311</width> - <height>371</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>5</verstretch> - </sizepolicy> - </property> - <property name="title"> - <string>global status</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout"> - <property name="spacing"> - <number>5</number> - </property> - <property name="leftMargin"> - <number>5</number> - </property> - <property name="topMargin"> - <number>5</number> - </property> - <property name="rightMargin"> - <number>5</number> - </property> - <property name="bottomMargin"> - <number>5</number> - </property> - <item> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <widget class="QLabel" name="label"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>movement</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_2"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>attenuator #1</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_12"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>attenuator #1</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_3"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>attenuator #2</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_4"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>attenuator #2</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_20"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>slits</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_6"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>vertical slit</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_5"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>horizontal slit</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_7"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>light</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_8"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>safety switch</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_9"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>pneumatic piston</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_19"> - <property name="minimumSize"> - <size> - <width>135</width> - <height>0</height> - </size> - </property> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>pneumatic piston</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="TTable" name="mscrStatus_tTable"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="numRows"> - <number>12</number> - </property> - <property name="numColumns"> - <number>1</number> - </property> - <property name="trueColors"> - <string>4290494403;4290494403;4290494403;4290494403;4290494403;4290494403;4284344910;4284344910;4294556167;4290494403;4278228181;4293342999</string> - </property> - <property name="falseColors"> - <string>4290494403;4290494403;4290494403;4290494403;4290494403;4290494403;4294556167;4294556167;4290494403;4290494403;4290494403;4284344910</string> - </property> - <property name="trueStrings"> - <string>pneumatic;present;discrete;present;discrete;present;allowed to move;allowed to move;on;touched;moving;reach error</string> - </property> - <property name="falseStrings"> - <string>stepper;not preset;continuos;not present;continuos;not present;not allowed to move;not allowed to move;off;not touched;not moving;reached position</string> - </property> - <property name="displayMask"> - <string>0,1,2,3,4,5,6,7,8,9,10,11</string> - </property> - <property name="source"> - <string>$1/MscrStatus</string> - </property> - </widget> - </item> - </layout> - </widget> - <widget class="QGroupBox" name="stepperVerStatus_groupBox"> - <property name="geometry"> - <rect> - <x>9</x> - <y>376</y> - <width>301</width> - <height>101</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>1</verstretch> - </sizepolicy> - </property> - <property name="maximumSize"> - <size> - <width>16777215</width> - <height>109</height> - </size> - </property> - <property name="title"> - <string>VER stepper motor status</string> - </property> - <layout class="QGridLayout" name="gridLayout_2"> - <property name="leftMargin"> - <number>5</number> - </property> - <property name="topMargin"> - <number>5</number> - </property> - <property name="rightMargin"> - <number>5</number> - </property> - <property name="bottomMargin"> - <number>5</number> - </property> - <item row="0" column="0"> - <layout class="QVBoxLayout" name="verticalLayout_5"> - <item> - <widget class="QLabel" name="label_34"> - <property name="minimumSize"> - <size> - <width>135</width> - <height>0</height> - </size> - </property> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>motor</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_35"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>motor</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_36"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>communication</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - </layout> - </item> - <item row="0" column="1"> - <widget class="TTable" name="stepperVerStatus_tTable"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="numRows"> - <number>3</number> - </property> - <property name="numColumns"> - <number>1</number> - </property> - <property name="trueColors"> - <string>4293342999;4278228181;4293342999</string> - </property> - <property name="falseColors"> - <string>4284344910;4290494403;4284344910</string> - </property> - <property name="trueStrings"> - <string>error;moving;error</string> - </property> - <property name="falseStrings"> - <string>ok;not moving;ok</string> - </property> - <property name="displayMask"> - <string>0,1,2</string> - </property> - <property name="source"> - <string>$1/StepperVerStatus</string> - </property> - </widget> - </item> - </layout> - </widget> - <widget class="QGroupBox" name="stepperHorStatus_groupBox"> - <property name="geometry"> - <rect> - <x>316</x> - <y>376</y> - <width>291</width> - <height>101</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>1</verstretch> - </sizepolicy> - </property> - <property name="maximumSize"> - <size> - <width>16777215</width> - <height>109</height> - </size> - </property> - <property name="title"> - <string>HOR stepper motor status</string> - </property> - <layout class="QGridLayout" name="gridLayout_4"> - <item row="0" column="0"> - <layout class="QVBoxLayout" name="verticalLayout_4"> - <item> - <widget class="QLabel" name="label_31"> - <property name="minimumSize"> - <size> - <width>130</width> - <height>0</height> - </size> - </property> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>motor</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_32"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>motor</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_33"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>communication</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - </layout> - </item> - <item row="0" column="1"> - <widget class="TTable" name="stepperHorStatus_tTable"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="numRows"> - <number>3</number> - </property> - <property name="numColumns"> - <number>1</number> - </property> - <property name="trueColors"> - <string>4293342999;4278228181;4293342999</string> - </property> - <property name="falseColors"> - <string>4284344910;4290494403;4284344910</string> - </property> - <property name="trueStrings"> - <string>error;moving;error</string> - </property> - <property name="falseStrings"> - <string>ok;not moving;ok</string> - </property> - <property name="displayMask"> - <string>0,1,2</string> - </property> - <property name="source"> - <string>$1/StepperHorStatus</string> - </property> - </widget> - </item> - </layout> - </widget> - <widget class="QGroupBox" name="polar1Status_groupBox"> - <property name="geometry"> - <rect> - <x>340</x> - <y>10</y> - <width>261</width> - <height>141</height> - </rect> - </property> - <property name="title"> - <string>polarimeter #1 motor status</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <property name="spacing"> - <number>5</number> - </property> - <property name="leftMargin"> - <number>5</number> - </property> - <property name="topMargin"> - <number>5</number> - </property> - <property name="rightMargin"> - <number>5</number> - </property> - <property name="bottomMargin"> - <number>5</number> - </property> - <item> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <item> - <widget class="QLabel" name="label_21"> - <property name="minimumSize"> - <size> - <width>130</width> - <height>0</height> - </size> - </property> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>motor</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_22"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>position</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_23"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>communication</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_24"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>left limit switch</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_25"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>right limit switch</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="TTable" name="polar1Status_tTable"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="numRows"> - <number>5</number> - </property> - <property name="numColumns"> - <number>1</number> - </property> - <property name="trueColors"> - <string>4278228181;4293342999;4293342999;4290494403;4290494403</string> - </property> - <property name="falseColors"> - <string>4290494403;4290494403;4284344910;4290494403;4290494403</string> - </property> - <property name="trueStrings"> - <string>moving;not reached;error;touched;touched</string> - </property> - <property name="falseStrings"> - <string>not moving;reached;ok;not touched;not touched</string> - </property> - <property name="displayMask"> - <string>0,1,2,3,4</string> - </property> - <property name="source"> - <string>$1/Polar1Status</string> - </property> - </widget> - </item> - </layout> - </widget> - <widget class="QGroupBox" name="polar2Status_groupBox"> - <property name="geometry"> - <rect> - <x>340</x> - <y>160</y> - <width>261</width> - <height>151</height> - </rect> - </property> - <property name="title"> - <string>polarimeter #2 motor status</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <property name="spacing"> - <number>5</number> - </property> - <property name="leftMargin"> - <number>5</number> - </property> - <property name="topMargin"> - <number>5</number> - </property> - <property name="rightMargin"> - <number>5</number> - </property> - <property name="bottomMargin"> - <number>5</number> - </property> - <item> - <layout class="QVBoxLayout" name="verticalLayout_3"> - <item> - <widget class="QLabel" name="label_26"> - <property name="minimumSize"> - <size> - <width>130</width> - <height>0</height> - </size> - </property> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>motor</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_27"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>position</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_28"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>communication</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_29"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>left limit switch</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_30"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>right limit switch</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="TTable" name="polar2Status_tTable"> - <property name="font"> - <font> - <weight>50</weight> - <bold>false</bold> - </font> - </property> - <property name="numRows"> - <number>5</number> - </property> - <property name="numColumns"> - <number>1</number> - </property> - <property name="trueColors"> - <string>4278228181;4293342999;4293342999;4290494403;4290494403</string> - </property> - <property name="falseColors"> - <string>4290494403;4290494403;4284344910;4290494403;4290494403</string> - </property> - <property name="trueStrings"> - <string>moving;not reached;error;touched;touched</string> - </property> - <property name="falseStrings"> - <string>not moving;reached;ok;not touched;not touched</string> - </property> - <property name="displayMask"> - <string>0,1,2,3,4</string> - </property> - <property name="source"> - <string>$1/Polar2Status</string> - </property> - </widget> - </item> - </layout> - </widget> - </widget> - <widget class="QWidget" name="tab_lensctrl"> - <attribute name="title"> - <string>LensCtrl</string> - </attribute> - <layout class="QGridLayout" name="gridLayout"> - <item row="0" column="1"> - <spacer name="verticalSpacer_2"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>127</height> - </size> - </property> - </spacer> - </item> - <item row="1" column="0"> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>103</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="1" column="1"> - <layout class="QHBoxLayout" name="horizontalLayout_6"> - <property name="spacing"> - <number>12</number> - </property> - <property name="leftMargin"> - <number>6</number> - </property> - <property name="topMargin"> - <number>6</number> - </property> - <property name="rightMargin"> - <number>6</number> - </property> - <property name="bottomMargin"> - <number>6</number> - </property> - <item> - <widget class="QGroupBox" name="groupBox_Focus_4"> - <property name="font"> - <font> - <pointsize>11</pointsize> - </font> - </property> - <property name="title"> - <string>Focus</string> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - <layout class="QVBoxLayout" name="verticalLayout_6"> - <item> - <widget class="TPushButton" name="tPushFocusPlus10_4"> - <property name="font"> - <font> - <pointsize>12</pointsize> - </font> - </property> - <property name="text"> - <string>+ 10</string> - </property> - <property name="targets"> - <string>$1->SetFocusPlus(10);;;</string> - </property> - </widget> - </item> - <item> - <widget class="TPushButton" name="tPushFocusPlusOne_4"> - <property name="font"> - <font> - <pointsize>12</pointsize> - </font> - </property> - <property name="text"> - <string>+1</string> - </property> - <property name="targets"> - <string>$1->SetFocusPlus(1);;</string> - </property> - </widget> - </item> - <item> - <widget class="TPushButton" name="tPushFocusMinusOne_4"> - <property name="font"> - <font> - <pointsize>12</pointsize> - </font> - </property> - <property name="text"> - <string>-1</string> - </property> - <property name="targets"> - <string>$1->SetFocusMinus(1);;</string> - </property> - </widget> - </item> - <item> - <widget class="TPushButton" name="tPushFocusMinus10_4"> - <property name="font"> - <font> - <pointsize>12</pointsize> - </font> - </property> - <property name="text"> - <string>- 10</string> - </property> - <property name="targets"> - <string>$1->SetFocusMinus(10);;</string> - </property> - </widget> - </item> - <item> - <widget class="TLabel" name="tLabel"> - <property name="source"> - <string>$1/Focuspulses</string> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_13"> - <property name="text"> - <string>max. pulses</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="groupBox_Zoom_4"> - <property name="font"> - <font> - <pointsize>11</pointsize> - </font> - </property> - <property name="title"> - <string>Zoom</string> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - <layout class="QVBoxLayout" name="verticalLayout_7"> - <item> - <widget class="TPushButton" name="tPushZoomPlus10_4"> - <property name="font"> - <font> - <pointsize>12</pointsize> - </font> - </property> - <property name="text"> - <string>+ 10</string> - </property> - <property name="targets"> - <string>$1->SetZoomPlus(10);;</string> - </property> - </widget> - </item> - <item> - <widget class="TPushButton" name="tPushZoomPlusOne_4"> - <property name="font"> - <font> - <pointsize>12</pointsize> - </font> - </property> - <property name="text"> - <string>+1</string> - </property> - <property name="targets"> - <string>$1->SetZoomPlus(1);;;</string> - </property> - </widget> - </item> - <item> - <widget class="TPushButton" name="tPushZoomMinusOne_4"> - <property name="font"> - <font> - <pointsize>12</pointsize> - </font> - </property> - <property name="text"> - <string>-1</string> - </property> - <property name="targets"> - <string>$1->SetZoomMinus(1);;</string> - </property> - </widget> - </item> - <item> - <widget class="TPushButton" name="tPushZoomMinus10_4"> - <property name="font"> - <font> - <pointsize>12</pointsize> - </font> - </property> - <property name="text"> - <string>- 10</string> - </property> - <property name="targets"> - <string>$1->SetZoomMinus(10);</string> - </property> - </widget> - </item> - <item> - <widget class="TLabel" name="tLabel_2"> - <property name="source"> - <string>$1/Zoompulses</string> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_14"> - <property name="text"> - <string>max. pulses</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="groupBox_Diaph_4"> - <property name="font"> - <font> - <pointsize>11</pointsize> - </font> - </property> - <property name="layoutDirection"> - <enum>Qt::LeftToRight</enum> - </property> - <property name="title"> - <string>Diaphragm</string> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - <layout class="QVBoxLayout" name="verticalLayout_8"> - <item> - <widget class="TPushButton" name="tPushDiaPlus10_4"> - <property name="maximumSize"> - <size> - <width>16777215</width> - <height>16777215</height> - </size> - </property> - <property name="font"> - <font> - <pointsize>12</pointsize> - </font> - </property> - <property name="text"> - <string>+ 10</string> - </property> - <property name="targets"> - <string>$1->SetDiaphPlus(10);;</string> - </property> - </widget> - </item> - <item> - <widget class="TPushButton" name="tPushDiaPlusOne_4"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="maximumSize"> - <size> - <width>16777215</width> - <height>16777215</height> - </size> - </property> - <property name="font"> - <font> - <pointsize>12</pointsize> - </font> - </property> - <property name="text"> - <string>+1</string> - </property> - <property name="targets"> - <string>$1->SetDiaphPlus(1);</string> - </property> - </widget> - </item> - <item> - <widget class="TPushButton" name="tPushDiaMinusOne_4"> - <property name="font"> - <font> - <pointsize>12</pointsize> - </font> - </property> - <property name="text"> - <string>-1</string> - </property> - <property name="targets"> - <string>$1->SetDiaphMinus(1);;</string> - </property> - </widget> - </item> - <item> - <widget class="TPushButton" name="tPushDiaMinus10_4"> - <property name="font"> - <font> - <pointsize>12</pointsize> - </font> - </property> - <property name="text"> - <string>- 10</string> - </property> - <property name="targets"> - <string>$1->SetDiaphMinus(10);;</string> - </property> - </widget> - </item> - <item> - <widget class="TLabel" name="tLabel_3"> - <property name="source"> - <string>$1/Diaphpulses</string> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_15"> - <property name="text"> - <string>max. pulses</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - </layout> - </item> - <item row="1" column="2"> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>118</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="2" column="1"> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>127</height> - </size> - </property> - </spacer> - </item> - </layout> - </widget> - </widget> - <widget class="QWidget" name="widget" native="true"> - <property name="geometry"> - <rect> - <x>9</x> - <y>530</y> - <width>620</width> - <height>101</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>550</width> - <height>101</height> - </size> - </property> - <widget class="EContextHelp" name="eContextHelp"> - <property name="geometry"> - <rect> - <x>550</x> - <y>72</y> - <width>70</width> - <height>28</height> - </rect> - </property> - <property name="text"> - <string>?</string> - </property> - </widget> - <widget class="TLabel" name="status_tLabel"> - <property name="geometry"> - <rect> - <x>19</x> - <y>0</y> - <width>520</width> - <height>100</height> - </rect> - </property> - <property name="text"> - <string/> - </property> - <property name="margin"> - <number>3</number> - </property> - <property name="source"> - <string>$1/Status</string> - </property> - </widget> - <widget class="TPushButton" name="emergencyStop_tPushButton"> - <property name="geometry"> - <rect> - <x>550</x> - <y>0</y> - <width>70</width> - <height>70</height> - </rect> - </property> - <property name="whatsThis"> - <string>Emergency STOP</string> - </property> - <property name="text"> - <string/> - </property> - <property name="icon"> - <iconset resource="../mscr.qrc"> - <normaloff>:/images/Stop_sign_MUTCD.svg</normaloff>:/images/Stop_sign_MUTCD.svg</iconset> - </property> - <property name="iconSize"> - <size> - <width>67</width> - <height>67</height> - </size> - </property> - <property name="flat"> - <bool>false</bool> - </property> - <property name="targets"> - <string>$1->EmergencyStop</string> - </property> - </widget> - <widget class="TLed" name="state_tLed"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>20</width> - <height>100</height> - </rect> - </property> - <property name="rectangular"> - <bool>true</bool> - </property> - <property name="gradientEnabled"> - <bool>false</bool> - </property> - <property name="ledWidth"> - <number>18</number> - </property> - <property name="ledHeight"> - <number>98</number> - </property> - <property name="source"> - <string>$1/State</string> - </property> - <property name="ledHheight" stdset="0"> - <number>24</number> - </property> - </widget> - </widget> - </widget> - <layoutdefault spacing="6" margin="11"/> - <customwidgets> - <customwidget> - <class>TLabel</class> - <extends>ELabel</extends> - <header>TLabel</header> - </customwidget> - <customwidget> - <class>TTable</class> - <extends>EFlag</extends> - <header>TTable</header> - </customwidget> - <customwidget> - <class>TLed</class> - <extends>ELed</extends> - <header>TLed</header> - </customwidget> - <customwidget> - <class>TApplyNumeric</class> - <extends>EApplyNumeric</extends> - <header>TApplyNumeric</header> - </customwidget> - <customwidget> - <class>TPushButton</class> - <extends>QPushButton</extends> - <header>TPushButton</header> - </customwidget> - <customwidget> - <class>TLogButton</class> - <extends>QPushButton</extends> - <header>TLogButton</header> - </customwidget> - <customwidget> - <class>TReaderWriter</class> - <extends>TLabel</extends> - <header>TReaderWriter</header> - </customwidget> - <customwidget> - <class>ELabel</class> - <extends>QLabel</extends> - <header>elabel.h</header> - </customwidget> - <customwidget> - <class>EFlag</class> - <extends>QWidget</extends> - <header>eflag.h</header> - </customwidget> - <customwidget> - <class>ELed</class> - <extends>QWidget</extends> - <header>eled.h</header> - </customwidget> - <customwidget> - <class>EApplyNumeric</class> - <extends>QWidget</extends> - <header>eapplynumeric.h</header> - </customwidget> - <customwidget> - <class>EContextHelp</class> - <extends>QPushButton</extends> - <header>econtexthelp.h</header> - </customwidget> - </customwidgets> - <resources> - <include location="../mscr.qrc"/> - </resources> - <connections/> -</ui> +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>mscr</class> + <widget class="QWidget" name="mscr"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>462</width> + <height>587</height> + </rect> + </property> + <property name="windowTitle"> + <string>mscr</string> + </property> + <layout class="QGridLayout" name="gridLayout_11"> + <item row="1" column="1"> + <widget class="QuLabel" name="status_tLabel"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>1</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="margin"> + <number>3</number> + </property> + <property name="source"> + <string>$1/Status</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QuLed" name="state_tLed"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="rectangular"> + <bool>true</bool> + </property> + <property name="gradientEnabled"> + <bool>false</bool> + </property> + <property name="ledWidth"> + <number>18</number> + </property> + <property name="ledHeight"> + <number>98</number> + </property> + <property name="source"> + <string>$1/State</string> + </property> + <property name="ledHheight" stdset="0"> + <number>24</number> + </property> + </widget> + </item> + <item row="0" column="0" colspan="3"> + <widget class="QTabWidget" name="tabWidget"> + <property name="currentIndex"> + <number>0</number> + </property> + <widget class="QWidget" name="tab_main"> + <attribute name="title"> + <string>Main</string> + </attribute> + <layout class="QGridLayout" name="gridLayout_9"> + <item row="4" column="3" colspan="3"> + <widget class="QGroupBox" name="horSlit_groupBox"> + <property name="font"> + <font> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="title"> + <string>Horizontal slit</string> + </property> + <layout class="QGridLayout" name="gridLayout_8"> + <item row="0" column="0"> + <widget class="QLabel" name="label_42"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>position</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QuInputOutput" name="qioHSlit"/> + </item> + </layout> + </widget> + </item> + <item row="0" column="0" rowspan="3"> + <widget class="QGroupBox" name="selector_groupBox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="title"> + <string>selector</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_10"> + <item> + <widget class="QRadioButton" name="rbp0"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>0</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="rbp1"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>1</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="rbp2"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>2</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="rbp3"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>3</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="rbp4"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>4</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item row="0" column="5"> + <widget class="QGroupBox" name="gbLightLevel2"> + <property name="title"> + <string>Light Level (straight)</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_5"> + <item> + <widget class="QuLabel" name="qulLightLevel2"/> + </item> + <item> + <widget class="QComboBox" name="lightLevel_comboBox_2"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <item> + <property name="text"> + <string>off</string> + </property> + </item> + <item> + <property name="text"> + <string>high</string> + </property> + </item> + <item> + <property name="text"> + <string>medium</string> + </property> + </item> + <item> + <property name="text"> + <string>low</string> + </property> + </item> + </widget> + </item> + </layout> + </widget> + </item> + <item row="4" column="0" colspan="3"> + <widget class="QGroupBox" name="verSlit_groupBox"> + <property name="font"> + <font> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="title"> + <string>Vertical slit</string> + </property> + <layout class="QGridLayout" name="gridLayout_7"> + <item row="0" column="0"> + <widget class="QLabel" name="label_40"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>position</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QuInputOutput" name="qioVSlit"/> + </item> + </layout> + </widget> + </item> + <item row="3" column="3" colspan="3"> + <widget class="QGroupBox" name="attenuator2_groupBox"> + <property name="font"> + <font> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="title"> + <string>attenuator #2</string> + </property> + <layout class="QGridLayout" name="gridLayout_6"> + <item row="0" column="0"> + <widget class="QLabel" name="label_39"> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>attenuation %</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QuInputOutput" name="qio_polar2Attenuation"> + <property name="font"> + <font> + <family>Arial</family> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="zoomEnabled" stdset="0"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="1" column="0" colspan="2"> + <widget class="QLabel" name="label_11"> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>max. abs. val. 10^-4</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item row="0" column="1" colspan="2"> + <widget class="QGroupBox" name="gbLightLevel"> + <property name="title"> + <string>Light Level</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_4"> + <item> + <widget class="QuLabel" name="tLabelLightLevel"> + <property name="source"> + <string>$1/LightLevel</string> + </property> + </widget> + </item> + <item> + <widget class="QComboBox" name="lightLevel_comboBox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <item> + <property name="text"> + <string>off</string> + </property> + </item> + <item> + <property name="text"> + <string>high</string> + </property> + </item> + <item> + <property name="text"> + <string>medium</string> + </property> + </item> + <item> + <property name="text"> + <string>low</string> + </property> + </item> + </widget> + </item> + </layout> + </widget> + </item> + <item row="3" column="0" colspan="3"> + <widget class="QGroupBox" name="attenuator1_groupBox"> + <property name="font"> + <font> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="title"> + <string>attenuator #1</string> + </property> + <layout class="QGridLayout" name="gridLayout_5"> + <item row="0" column="0"> + <widget class="QLabel" name="label_38"> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>attenuation %</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QuInputOutput" name="qio_polar1Attenuation"> + <property name="font"> + <font> + <family>Arial</family> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="zoomEnabled" stdset="0"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="1" column="0" colspan="2"> + <widget class="QLabel" name="label_10"> + <property name="font"> + <font> + <pointsize>10</pointsize> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>max. abs. val. 10^-4</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + <widget class="QWidget" name="tab_expert"> + <attribute name="title"> + <string>Expert</string> + </attribute> + <layout class="QGridLayout" name="gridLayout_3"> + <item row="0" column="0"> + <widget class="QuButton" name="tPushButton_2"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>INIT STEPPER +( init motor + fault reset )</string> + </property> + <property name="target"> + <string>$1->StepperInit</string> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QuButton" name="tPushButton_3"> + <property name="text"> + <string>INIT ATTENUATOR(s) +( motor homing )</string> + </property> + <property name="target"> + <string>$1->PolarInit</string> + </property> + </widget> + </item> + <item row="4" column="0"> + <widget class="QuButton" name="tPushButton_5"> + <property name="text"> + <string>CAMERA ON +( power on )</string> + </property> + <property name="target"> + <string>$1->CameraOn</string> + </property> + </widget> + </item> + <item row="4" column="1"> + <widget class="QuButton" name="tPushButton_13"> + <property name="text"> + <string>AUXILIARY OUTPUT ON</string> + </property> + <property name="target"> + <string>$1->AuxiliaryOutOn</string> + </property> + </widget> + </item> + <item row="5" column="0"> + <widget class="QuButton" name="tPushButton_6"> + <property name="text"> + <string>CAMERA OFF +( power off )</string> + </property> + <property name="target"> + <string>$1->CameraOff</string> + </property> + </widget> + </item> + <item row="5" column="1"> + <widget class="QuButton" name="tPushButton_14"> + <property name="text"> + <string>AUXILIARY OUTPUT OFF</string> + </property> + <property name="target"> + <string>$1->AuxiliaryOutOff</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QuButton" name="tPushButton_4"> + <property name="text"> + <string>RESET ATTENUATOR(s) +( power off + power on )</string> + </property> + <property name="target"> + <string>$1->PolarReset</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QuButton" name="tPushButton"> + <property name="text"> + <string>RESET CAMERA +( power off + power on )</string> + </property> + <property name="target"> + <string>$1->CameraReset</string> + </property> + </widget> + </item> + </layout> + </widget> + <widget class="QWidget" name="tab_status"> + <attribute name="title"> + <string>Status</string> + </attribute> + <layout class="QVBoxLayout" name="verticalLayout_9"> + <item> + <widget class="QScrollArea" name="scrollArea"> + <property name="widgetResizable"> + <bool>true</bool> + </property> + <widget class="QWidget" name="scrollAreaWidgetContents"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>469</width> + <height>618</height> + </rect> + </property> + <layout class="QGridLayout" name="gridLayout_10"> + <item row="0" column="0" rowspan="2"> + <widget class="QGroupBox" name="mscrStatus_groupBox"> + <property name="title"> + <string>global status</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout"> + <property name="spacing"> + <number>5</number> + </property> + <property name="leftMargin"> + <number>5</number> + </property> + <property name="topMargin"> + <number>5</number> + </property> + <property name="rightMargin"> + <number>5</number> + </property> + <property name="bottomMargin"> + <number>5</number> + </property> + <item> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QLabel" name="label"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>movement</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_2"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>attenuator #1</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_12"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>attenuator #1</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_3"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>attenuator #2</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_4"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>attenuator #2</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_20"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>slits</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_6"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>vertical slit</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_5"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>horizontal slit</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_7"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>light</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_8"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>safety switch</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_9"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>pneumatic piston</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_19"> + <property name="minimumSize"> + <size> + <width>135</width> + <height>0</height> + </size> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>pneumatic piston</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QuTable" name="mscrStatus_tTable"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="numRows"> + <number>12</number> + </property> + <property name="numColumns"> + <number>1</number> + </property> + <property name="trueColors"> + <string>4290494403;4290494403;4290494403;4290494403;4290494403;4290494403;4284344910;4284344910;4294556167;4290494403;4278228181;4293342999</string> + </property> + <property name="falseColors"> + <string>4290494403;4290494403;4290494403;4290494403;4290494403;4290494403;4294556167;4294556167;4290494403;4290494403;4290494403;4284344910</string> + </property> + <property name="trueStrings"> + <string>pneumatic;present;discrete;present;discrete;present;allowed to move;allowed to move;on;touched;moving;reach error</string> + </property> + <property name="falseStrings"> + <string>stepper;not preset;continuos;not present;continuos;not present;not allowed to move;not allowed to move;off;not touched;not moving;reached position</string> + </property> + <property name="displayMask"> + <string>0,1,2,3,4,5,6,7,8,9,10,11</string> + </property> + <property name="source"> + <string>$1/MscrStatus</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item row="0" column="1"> + <widget class="QGroupBox" name="polar1Status_groupBox"> + <property name="title"> + <string>polarimeter #1 motor status</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <property name="spacing"> + <number>5</number> + </property> + <property name="leftMargin"> + <number>5</number> + </property> + <property name="topMargin"> + <number>5</number> + </property> + <property name="rightMargin"> + <number>5</number> + </property> + <property name="bottomMargin"> + <number>5</number> + </property> + <item> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <item> + <widget class="QLabel" name="label_21"> + <property name="minimumSize"> + <size> + <width>130</width> + <height>0</height> + </size> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>motor</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_22"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>position</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_23"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>communication</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_24"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>left limit switch</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_25"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>right limit switch</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QuTable" name="polar1Status_tTable"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="numRows"> + <number>5</number> + </property> + <property name="numColumns"> + <number>1</number> + </property> + <property name="trueColors"> + <string>4278228181;4293342999;4293342999;4290494403;4290494403</string> + </property> + <property name="falseColors"> + <string>4290494403;4290494403;4284344910;4290494403;4290494403</string> + </property> + <property name="trueStrings"> + <string>moving;not reached;error;touched;touched</string> + </property> + <property name="falseStrings"> + <string>not moving;reached;ok;not touched;not touched</string> + </property> + <property name="displayMask"> + <string>0,1,2,3,4</string> + </property> + <property name="source"> + <string>$1/Polar1Status</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item row="1" column="1"> + <widget class="QGroupBox" name="polar2Status_groupBox"> + <property name="title"> + <string>polarimeter #2 motor status</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <property name="spacing"> + <number>5</number> + </property> + <property name="leftMargin"> + <number>5</number> + </property> + <property name="topMargin"> + <number>5</number> + </property> + <property name="rightMargin"> + <number>5</number> + </property> + <property name="bottomMargin"> + <number>5</number> + </property> + <item> + <layout class="QVBoxLayout" name="verticalLayout_3"> + <item> + <widget class="QLabel" name="label_26"> + <property name="minimumSize"> + <size> + <width>130</width> + <height>0</height> + </size> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>motor</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_27"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>position</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_28"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>communication</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_29"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>left limit switch</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_30"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>right limit switch</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QuTable" name="qutable_polar2Status"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="numRows"> + <number>5</number> + </property> + <property name="numColumns"> + <number>1</number> + </property> + <property name="trueColors"> + <string>4278228181;4293342999;4293342999;4290494403;4290494403</string> + </property> + <property name="falseColors"> + <string>4290494403;4290494403;4284344910;4290494403;4290494403</string> + </property> + <property name="trueStrings"> + <string>moving;not reached;error;touched;touched</string> + </property> + <property name="falseStrings"> + <string>not moving;reached;ok;not touched;not touched</string> + </property> + <property name="displayMask"> + <string>0,1,2,3,4</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item row="2" column="0"> + <widget class="QGroupBox" name="stepperVerStatus_groupBox"> + <property name="title"> + <string>VER stepper motor status</string> + </property> + <layout class="QGridLayout" name="gridLayout_2"> + <property name="leftMargin"> + <number>5</number> + </property> + <property name="topMargin"> + <number>5</number> + </property> + <property name="rightMargin"> + <number>5</number> + </property> + <property name="bottomMargin"> + <number>5</number> + </property> + <item row="0" column="0"> + <layout class="QVBoxLayout" name="verticalLayout_5"> + <item> + <widget class="QLabel" name="label_34"> + <property name="minimumSize"> + <size> + <width>135</width> + <height>0</height> + </size> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>motor</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_35"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>motor</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_36"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>communication</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item row="0" column="1"> + <widget class="QuTable" name="qutable_stepperVerStatus"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="numRows"> + <number>3</number> + </property> + <property name="numColumns"> + <number>1</number> + </property> + <property name="trueColors"> + <string>4293342999;4278228181;4293342999</string> + </property> + <property name="falseColors"> + <string>4284344910;4290494403;4284344910</string> + </property> + <property name="trueStrings"> + <string>error;moving;error</string> + </property> + <property name="falseStrings"> + <string>ok;not moving;ok</string> + </property> + <property name="displayMask"> + <string>0,1,2</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item row="2" column="1"> + <widget class="QGroupBox" name="stepperHorStatus_groupBox"> + <property name="title"> + <string>HOR stepper motor status</string> + </property> + <layout class="QGridLayout" name="gridLayout_4"> + <item row="0" column="0"> + <layout class="QVBoxLayout" name="verticalLayout_4"> + <item> + <widget class="QLabel" name="label_31"> + <property name="minimumSize"> + <size> + <width>130</width> + <height>0</height> + </size> + </property> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>motor</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_32"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>motor</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_33"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="text"> + <string>communication</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item row="0" column="1"> + <widget class="QuTable" name="qutable_stepperHorStatus"> + <property name="font"> + <font> + <weight>50</weight> + <bold>false</bold> + </font> + </property> + <property name="numRows"> + <number>3</number> + </property> + <property name="numColumns"> + <number>1</number> + </property> + <property name="trueColors"> + <string>4293342999;4278228181;4293342999</string> + </property> + <property name="falseColors"> + <string>4284344910;4290494403;4284344910</string> + </property> + <property name="trueStrings"> + <string>error;moving;error</string> + </property> + <property name="falseStrings"> + <string>ok;not moving;ok</string> + </property> + <property name="displayMask"> + <string>0,1,2</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </widget> + </item> + </layout> + </widget> + <widget class="QWidget" name="tab_lensctrl"> + <attribute name="title"> + <string>LensCtrl</string> + </attribute> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="1"> + <spacer name="verticalSpacer_2"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>127</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="0"> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>103</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="1"> + <layout class="QHBoxLayout" name="horizontalLayout_6"> + <property name="spacing"> + <number>12</number> + </property> + <property name="leftMargin"> + <number>6</number> + </property> + <property name="topMargin"> + <number>6</number> + </property> + <property name="rightMargin"> + <number>6</number> + </property> + <property name="bottomMargin"> + <number>6</number> + </property> + <item> + <widget class="QGroupBox" name="groupBox_Focus_4"> + <property name="font"> + <font> + <pointsize>11</pointsize> + </font> + </property> + <property name="title"> + <string>Focus</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_6"> + <item> + <widget class="QuButton" name="tPushFocusPlus10_4"> + <property name="font"> + <font> + <pointsize>12</pointsize> + </font> + </property> + <property name="text"> + <string>+ 10</string> + </property> + <property name="target"> + <string>$1->SetFocusPlus(10)</string> + </property> + </widget> + </item> + <item> + <widget class="QuButton" name="tPushFocusPlusOne_4"> + <property name="font"> + <font> + <pointsize>12</pointsize> + </font> + </property> + <property name="text"> + <string>+1</string> + </property> + <property name="target"> + <string>$1->SetFocusPlus(1)</string> + </property> + </widget> + </item> + <item> + <widget class="QuButton" name="tPushFocusMinusOne_4"> + <property name="font"> + <font> + <pointsize>12</pointsize> + </font> + </property> + <property name="text"> + <string>-1</string> + </property> + <property name="target"> + <string>$1->SetFocusMinus(1)</string> + </property> + </widget> + </item> + <item> + <widget class="QuButton" name="tPushFocusMinus10_4"> + <property name="font"> + <font> + <pointsize>12</pointsize> + </font> + </property> + <property name="text"> + <string>- 10</string> + </property> + <property name="target"> + <string>$1->SetFocusMinus(10)</string> + </property> + </widget> + </item> + <item> + <widget class="QuLabel" name="tLabel"> + <property name="source"> + <string>$1/Focuspulses</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_13"> + <property name="text"> + <string>max. pulses</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox_Zoom_4"> + <property name="font"> + <font> + <pointsize>11</pointsize> + </font> + </property> + <property name="title"> + <string>Zoom</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_7"> + <item> + <widget class="QuButton" name="tPushZoomPlus10_4"> + <property name="font"> + <font> + <pointsize>12</pointsize> + </font> + </property> + <property name="text"> + <string>+ 10</string> + </property> + <property name="target"> + <string>$1->SetZoomPlus(10)</string> + </property> + </widget> + </item> + <item> + <widget class="QuButton" name="tPushZoomPlusOne_4"> + <property name="font"> + <font> + <pointsize>12</pointsize> + </font> + </property> + <property name="text"> + <string>+1</string> + </property> + <property name="target"> + <string>$1->SetZoomPlus(1)</string> + </property> + </widget> + </item> + <item> + <widget class="QuButton" name="tPushZoomMinusOne_4"> + <property name="font"> + <font> + <pointsize>12</pointsize> + </font> + </property> + <property name="text"> + <string>-1</string> + </property> + <property name="target"> + <string>$1->SetZoomMinus(1)</string> + </property> + </widget> + </item> + <item> + <widget class="QuButton" name="tPushZoomMinus10_4"> + <property name="font"> + <font> + <pointsize>12</pointsize> + </font> + </property> + <property name="text"> + <string>- 10</string> + </property> + <property name="target"> + <string>$1->SetZoomMinus(10)</string> + </property> + </widget> + </item> + <item> + <widget class="QuLabel" name="tLabel_2"> + <property name="source"> + <string>$1/Zoompulses</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_14"> + <property name="text"> + <string>max. pulses</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox_Diaph_4"> + <property name="font"> + <font> + <pointsize>11</pointsize> + </font> + </property> + <property name="layoutDirection"> + <enum>Qt::LeftToRight</enum> + </property> + <property name="title"> + <string>Diaphragm</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <layout class="QVBoxLayout" name="verticalLayout_8"> + <item> + <widget class="QuButton" name="tPushDiaPlus10_4"> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>16777215</height> + </size> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + </font> + </property> + <property name="text"> + <string>+ 10</string> + </property> + <property name="target"> + <string>$1->SetDiaphPlus(10)</string> + </property> + </widget> + </item> + <item> + <widget class="QuButton" name="tPushDiaPlusOne_4"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="maximumSize"> + <size> + <width>16777215</width> + <height>16777215</height> + </size> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + </font> + </property> + <property name="text"> + <string>+1</string> + </property> + <property name="target"> + <string>$1->SetDiaphPlus(1)</string> + </property> + </widget> + </item> + <item> + <widget class="QuButton" name="tPushDiaMinusOne_4"> + <property name="font"> + <font> + <pointsize>12</pointsize> + </font> + </property> + <property name="text"> + <string>-1</string> + </property> + <property name="target"> + <string>$1->SetDiaphMinus(1)</string> + </property> + </widget> + </item> + <item> + <widget class="QuButton" name="tPushDiaMinus10_4"> + <property name="font"> + <font> + <pointsize>12</pointsize> + </font> + </property> + <property name="text"> + <string>- 10</string> + </property> + <property name="target"> + <string>$1->SetDiaphMinus(10)</string> + </property> + </widget> + </item> + <item> + <widget class="QuLabel" name="tLabel_3"> + <property name="source"> + <string>$1/Diaphpulses</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_15"> + <property name="text"> + <string>max. pulses</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </item> + <item row="1" column="2"> + <spacer name="horizontalSpacer_2"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>118</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="2" column="1"> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>127</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </widget> + </item> + <item row="1" column="2"> + <widget class="QuButton" name="emergencyStop_tPushButton"> + <property name="whatsThis"> + <string>Emergency STOP</string> + </property> + <property name="text"> + <string/> + </property> + <property name="icon"> + <iconset resource="../mscr.qrc"> + <normaloff>:/images/Stop_sign_MUTCD.svg</normaloff>:/images/Stop_sign_MUTCD.svg</iconset> + </property> + <property name="iconSize"> + <size> + <width>64</width> + <height>64</height> + </size> + </property> + <property name="target"> + <string>$1->EmergencyStop</string> + </property> + </widget> + </item> + </layout> + </widget> + <layoutdefault spacing="6" margin="11"/> + <customwidgets> + <customwidget> + <class>QuLabel</class> + <extends>QLabel</extends> + <header>qulabel.h</header> + </customwidget> + <customwidget> + <class>QuLed</class> + <extends>QWidget</extends> + <header>quled.h</header> + </customwidget> + <customwidget> + <class>QuTable</class> + <extends>EFlag</extends> + <header>qutable.h</header> + </customwidget> + <customwidget> + <class>QuButton</class> + <extends>QPushButton</extends> + <header>qubutton.h</header> + </customwidget> + <customwidget> + <class>QuInputOutput</class> + <extends>QFrame</extends> + <header>quinputoutput.h</header> + </customwidget> + <customwidget> + <class>EFlag</class> + <extends>QWidget</extends> + <header>eflag.h</header> + </customwidget> + </customwidgets> + <resources> + <include location="../mscr.qrc"/> + </resources> + <connections/> +</ui> -- GitLab