diff --git a/100idPyApp/Db/pyDevCRLsingle.db b/100idPyApp/Db/pyDevCRLsingle.db index 6cb88070cbdde564f0d06576d969380e862cc2ba..6a37ec30422e4a9f1446e15bf0c740d67262b80b 100644 --- a/100idPyApp/Db/pyDevCRLsingle.db +++ b/100idPyApp/Db/pyDevCRLsingle.db @@ -6,20 +6,40 @@ record(ao, "$(P)CRL$(N):energy"){ field(OUT, "@$(OBJ).updateE('VAL')") } +record(ai, "$(P)CRL$(N):energy_RBV"){ + field(DTYP, "pydev") + field(INP, "@pydev.iointr('updated_E')") + field(SCAN, "I/O Intr") + field(PREC, "5") +} + + record(ao, "$(P)CRL$(N):focalSize"){ field(EGU, "m") field(DTYP, "pydev") field(OUT, "@$(OBJ).updateFsize('VAL')") } -record(bo, "$(P)CRL$(N):fSize_twk_up"){ - field(DTYP, "pydev") - field(OUT, "@$(OBJ).tweakUp()") +#record(bo, "$(P)CRL$(N):fSize_twk_up"){ +# field(DTYP, "pydev") +# field(OUT, "@$(OBJ).tweakUp()") +#} +# +#record(bo, "$(P)CRL$(N):fSize_twk_dn"){ +# field(DTYP, "pydev") +# field(OUT, "@$(OBJ).tweakDn()") +#} + +record(calcout, "$(P)CRL$(N):fSize_twk_up"){ + field(INPA, "$(P)CRL$(N):sortedIndex_RBV") + field(CALC, "MIN(A+1,2**$(NUM)-1)") + field(OUT, "$(P)Filter$(N):sortedIndex PP") } -record(bo, "$(P)CRL$(N):fSize_twk_dn"){ - field(DTYP, "pydev") - field(OUT, "@$(OBJ).tweakDn()") +record(calcout, "$(P)CRL$(N):fSize_twk_dn"){ + field(INPA, "$(P)CRL$(N):sortedIndex_RBV") + field(CALC, "MAX(0,A-1)") + field(OUT, "$(P)Filter$(N):sortedIndex PP") } record(ao, "$(P)CRL$(N):slitSize_H"){ @@ -28,6 +48,14 @@ record(ao, "$(P)CRL$(N):slitSize_H"){ field(OMSL, "closed_loop") field(DTYP, "pydev") field(OUT, "@$(OBJ).updateSlitSize('VAL', 'hor')") + field(FLNK, "$(P)CRL$(N):recalc_table.PROC CA") +} + +record(ai, "$(P)CRL$(N):slitSize_H_RBV"){ + field(DTYP, "pydev") + field(INP, "@pydev.iointr('updated_slitSize_H')") + field(SCAN, "I/O Intr") + field(PREC, "5") } record(ao, "$(P)CRL$(N):slitSize_V"){ @@ -36,6 +64,32 @@ record(ao, "$(P)CRL$(N):slitSize_V"){ field(OMSL, "closed_loop") field(DTYP, "pydev") field(OUT, "@$(OBJ).updateSlitSize('VAL', 'vert')") + field(FLNK, "$(P)CRL$(N):recalc_table.PROC CA") +} + +record(ai, "$(P)CRL$(N):slitSize_V_RBV"){ + field(DTYP, "pydev") + field(INP, "@pydev.iointr('updated_slitSize_V')") + field(SCAN, "I/O Intr") + field(PREC, "5") +} + +# Not sure this would work -- how to get a PV to simply trigger code? +record(bo, "$(P)CRL$(N):recalc_table"){ + field(DTYP, "pydev") + field(OUT, "@$(OBJ).construct_lookup_table()") + field(FLNK, "$(P)CRL$(N):refind_config.PROC CA") +} + +# Not sure this would work -- how to get a PV to simply trigger code? +record(bo, "$(P)CRL$(N):refind_config"){ + field(DTYP, "pydev") + field(OUT, "@$(OBJ).find_config()") +} + +record(bo, "$(P)CRL$(N):thickerr_flag"){ + field(DTYP, "pydev") + field(OUT, "@$(OBJ).updateThickerrFlag()") } record(longin, "$(P)CRL$(N):lenses") { @@ -89,8 +143,20 @@ record(ai, "$(P)CRL$(N):fSize_actual"){ field(PREC, "5") } +record(longout, "$(P)CRL$(N):sortedIndex") { + field(DTYP, "pydev") + field(OUT, "@$(OBJ).updateIndex('VAL')") +} + record(longin, "$(P)CRL$(N):sortedIndex_RBV") { field(DTYP, "pydev") field(INP, "@pydev.iointr('new_index')") field(SCAN, "I/O Intr") } + +record(bo, "$(P)CRL$(N):verbosity"){ + field(DTYP, "pydev") + field(OUT, "@$(OBJ).updateVerbosity('VAL')") + field(ZNAM, "Off") + field(ONAM, "On") +} diff --git a/100idPyApp/op/ui/.loglogin b/100idPyApp/op/ui/.loglogin new file mode 100644 index 0000000000000000000000000000000000000000..38e9508f612ad84338091e7776b44bc856a01ce0 --- /dev/null +++ b/100idPyApp/op/ui/.loglogin @@ -0,0 +1 @@ +08/08/2024 - 05:57:01 - ravioli diff --git a/100idPyApp/op/ui/pydev_transfocator_12.ui b/100idPyApp/op/ui/pydev_transfocator_12.ui new file mode 100644 index 0000000000000000000000000000000000000000..7a8e8d9d7b31f91dd884dbf568d65f98d2f491d8 --- /dev/null +++ b/100idPyApp/op/ui/pydev_transfocator_12.ui @@ -0,0 +1,2051 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>MainWindow</class> + <widget class="QMainWindow" name="MainWindow"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>938</width> + <height>639</height> + </rect> + </property> + <property name="windowTitle"> + <string>MainWindow</string> + </property> + <widget class="QWidget" name="centralwidget"> + <widget class="caFrame" name="caframe_8"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>931</width> + <height>31</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="maximumSize"> + <size> + <width>941</width> + <height>16777215</height> + </size> + </property> + <property name="lineWidth"> + <number>0</number> + </property> + <property name="background"> + <color> + <red>0</red> + <green>53</green> + <blue>132</blue> + </color> + </property> + <property name="backgroundMode"> + <enum>caFrame::Filled</enum> + </property> + <layout class="QHBoxLayout" name="horizontalLayout"> + <property name="spacing"> + <number>5</number> + </property> + <property name="leftMargin"> + <number>10</number> + </property> + <property name="topMargin"> + <number>2</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>2</number> + </property> + <item> + <widget class="caLabel" name="calabel"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="maximumSize"> + <size> + <width>941</width> + <height>16777215</height> + </size> + </property> + <property name="font"> + <font> + <family>Verdana</family> + <pointsize>16</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Transfocator $(P)$(TF)$(N)</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::Height</enum> + </property> + <property name="foreground"> + <color> + <red>228</red> + <green>228</green> + <blue>228</blue> + </color> + </property> + <property name="background"> + <color alpha="0"> + <red>160</red> + <green>160</green> + <blue>164</blue> + </color> + </property> + </widget> + </item> + </layout> + </widget> + <widget class="caInclude" name="cainclude"> + <property name="geometry"> + <rect> + <x>10</x> + <y>300</y> + <width>911</width> + <height>151</height> + </rect> + </property> + <property name="macro"> + <string>P=$(P),F=$(F),N=$(N),M=01;P=$(P),F=$(F),N=$(N),M=02;P=$(P),F=$(F),N=$(N),M=03;P=$(P),F=$(F),N=$(N),M=04;P=$(P),F=$(F),N=$(N),M=05;P=$(P),F=$(F),N=$(N),M=06;P=$(P),F=$(F),N=$(N),M=07;P=$(P),F=$(F),N=$(N),M=08;P=$(P),F=$(F),N=$(N),M=09;P=$(P),F=$(F),N=$(N),M=10</string> + </property> + <property name="filename" stdset="0"> + <string notr="true">pydev_transfocator_lens.ui</string> + </property> + <property name="stacking"> + <enum>caInclude::Column</enum> + </property> + <property name="numberOfItems" stdset="0"> + <number>10</number> + </property> + <property name="adjustSizeToContents" stdset="0"> + <bool>false</bool> + </property> + <property name="frameColor"> + <color alpha="0"> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + </widget> + <widget class="QWidget" name="verticalLayoutWidget"> + <property name="geometry"> + <rect> + <x>10</x> + <y>40</y> + <width>521</width> + <height>251</height> + </rect> + </property> + <layout class="QVBoxLayout" name="verticalLayout" stretch="2,1,0,1,1,1,1"> + <property name="spacing"> + <number>1</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>5</number> + </property> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_3" stretch="4,1,10"> + <property name="spacing"> + <number>2</number> + </property> + <item> + <widget class="caChoice" name="caChoice_0"> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):EnergySelect</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="colorMode"> + <enum>caChoice::Static</enum> + </property> + <property name="endBit"> + <number>1</number> + </property> + </widget> + </item> + <item> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <property name="margin"> + <number>5</number> + </property> + <item> + <widget class="caGraphics" name="caRectangle_1"> + <property name="foreground"> + <color> + <red>0</red> + <green>216</green> + <blue>0</blue> + </color> + </property> + <property name="linestyle" stdset="0"> + <enum>caGraphics::Solid</enum> + </property> + <property name="fillstyle" stdset="0"> + <enum>caGraphics::Filled</enum> + </property> + <property name="lineColor"> + <color> + <red>0</red> + <green>216</green> + <blue>0</blue> + </color> + </property> + <property name="visibility"> + <enum>caGraphics::IfZero</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):EnergySelect</string> + </property> + <property name="form"> + <enum>caGraphics::Rectangle</enum> + </property> + </widget> + </item> + <item> + <widget class="caGraphics" name="caRectangle_2"> + <property name="foreground"> + <color> + <red>0</red> + <green>216</green> + <blue>0</blue> + </color> + </property> + <property name="linestyle" stdset="0"> + <enum>caGraphics::Solid</enum> + </property> + <property name="fillstyle" stdset="0"> + <enum>caGraphics::Filled</enum> + </property> + <property name="lineColor"> + <color> + <red>0</red> + <green>216</green> + <blue>0</blue> + </color> + </property> + <property name="visibility"> + <enum>caGraphics::IfNotZero</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):EnergySelect</string> + </property> + <property name="form"> + <enum>caGraphics::Rectangle</enum> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QGridLayout" name="gridLayout_3" columnstretch="3,1,2" rowminimumheight="1,1"> + <property name="margin"> + <number>2</number> + </property> + <property name="spacing"> + <number>2</number> + </property> + <item row="1" column="0"> + <widget class="caTextEntry" name="catextentry_17"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):EnergyLocal</string> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>3</number> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="caLineEdit" name="caLineEdit_19"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):EnergyLocal.EGU</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="caLineEdit" name="caLineEdit_11"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):EnergyBeamline.EGU</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + </widget> + </item> + <item row="0" column="0"> + <widget class="caLineEdit" name="caLineEdit_16"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):EnergyBeamline</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>3</number> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + </widget> + </item> + <item row="0" column="2"> + <spacer name="horizontalSpacer_8"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_2" stretch="1,5,6,2,4"> + <property name="spacing"> + <number>2</number> + </property> + <property name="margin"> + <number>2</number> + </property> + <item> + <spacer name="horizontalSpacer_7"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="caLabel" name="calabel_19"> + <property name="text"> + <string>Lookup Table Energy</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item> + <widget class="caLineEdit" name="caLineEdit_13"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):energy_RBV</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>3</number> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + </widget> + </item> + <item> + <widget class="caLineEdit" name="caLineEdit_10"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):energy.EGU</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_9"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <widget class="Line" name="line_2"> + <property name="frameShadow"> + <enum>QFrame::Plain</enum> + </property> + <property name="lineWidth"> + <number>2</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_4" stretch="3,2,3,3"> + <property name="spacing"> + <number>2</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <item> + <widget class="caLabel" name="calabel_21"> + <property name="text"> + <string>Attenuation</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_3"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Preferred</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="caTextEntry" name="catextentry_15"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation</string> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>3</number> + </property> + <property name="precisionMode"> + <enum>caLineEdit::User</enum> + </property> + <property name="formatType"> + <enum>caLineEdit::compact</enum> + </property> + </widget> + </item> + <item> + <widget class="caLineEdit" name="caLineEdit_15"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation_actual</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>3</number> + </property> + <property name="precisionMode"> + <enum>caLineEdit::User</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + <property name="formatType"> + <enum>caLineEdit::compact</enum> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_5" stretch="3,2,3,3"> + <property name="spacing"> + <number>2</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <item> + <widget class="caLabel" name="calabel_28"> + <property name="text"> + <string>Atten. Index</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_4"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Preferred</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="caTextEntry" name="catextentry_16"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):sortedIndex</string> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>0</number> + </property> + <property name="precisionMode"> + <enum>caLineEdit::User</enum> + </property> + <property name="formatType"> + <enum>caLineEdit::decimal</enum> + </property> + </widget> + </item> + <item> + <widget class="caLineEdit" name="caLineEdit_18"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):sortedIndex_RBV</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>0</number> + </property> + <property name="precisionMode"> + <enum>caLineEdit::User</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + <property name="formatType"> + <enum>caLineEdit::decimal</enum> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_6" stretch="5,3,3"> + <property name="spacing"> + <number>2</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <item> + <spacer name="horizontalSpacer_5"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Preferred</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="caLabel" name="calabel_30"> + <property name="text"> + <string>In Mask</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item> + <widget class="caLineEdit" name="caLineEdit_20"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):inMask_RBV</string> + </property> + <property name="foreground"> + <color> + <red>255</red> + <green>255</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>0</number> + </property> + <property name="precisionMode"> + <enum>caLineEdit::User</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + <property name="formatType"> + <enum>caLineEdit::hexadecimal</enum> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_7" stretch="5,3,3"> + <property name="spacing"> + <number>2</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <item> + <spacer name="horizontalSpacer_6"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Preferred</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="caLabel" name="calabel_31"> + <property name="text"> + <string>Out Mask</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item> + <widget class="caLineEdit" name="caLineEdit_21"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):outMask_RBV</string> + </property> + <property name="foreground"> + <color> + <red>255</red> + <green>255</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>0</number> + </property> + <property name="precisionMode"> + <enum>caLineEdit::User</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + <property name="formatType"> + <enum>caLineEdit::hexadecimal</enum> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + <widget class="QWidget" name="gridLayoutWidget_2"> + <property name="geometry"> + <rect> + <x>10</x> + <y>490</y> + <width>371</width> + <height>81</height> + </rect> + </property> + <layout class="QGridLayout" name="gridLayout_2" rowstretch="1,1" columnstretch="1,1,2"> + <property name="spacing"> + <number>0</number> + </property> + <item row="1" column="0"> + <widget class="caLabel" name="calabel_26"> + <property name="text"> + <string>Attenuation</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item row="0" column="2"> + <widget class="caLineEdit" name="caLineEdit_12"> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="toolTip"> + <string extracomment="Attenuation at 2nd harmonic (2E)"/> + </property> + <property name="statusTip"> + <string extracomment="Attenuation at 2nd harmonic (2E)"/> + </property> + <property name="whatsThis"> + <string extracomment="Attenuation at 2nd harmonic (2E)"/> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation_2E_actual</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>5</number> + </property> + <property name="precisionMode"> + <enum>caLineEdit::User</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + <property name="formatType"> + <enum>caLineEdit::compact</enum> + </property> + </widget> + </item> + <item row="1" column="2"> + <widget class="caLineEdit" name="caLineEdit_14"> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation_3E_actual</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>5</number> + </property> + <property name="precisionMode"> + <enum>caLineEdit::User</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + <property name="formatType"> + <enum>caLineEdit::compact</enum> + </property> + </widget> + </item> + <item row="0" column="0"> + <widget class="caLabel" name="calabel_25"> + <property name="text"> + <string>Harmonic</string> + </property> + <property name="alignment"> + <set>Qt::AlignBottom|Qt::AlignRight|Qt::AlignTrailing</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="caLabel" name="calabel_22"> + <property name="text"> + <string>@ 2E</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="caLabel" name="calabel_23"> + <property name="text"> + <string>@ 3E</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + </layout> + </widget> + <widget class="QWidget" name="gridLayoutWidget"> + <property name="geometry"> + <rect> + <x>560</x> + <y>70</y> + <width>361</width> + <height>161</height> + </rect> + </property> + <layout class="QGridLayout" name="gridLayout" rowstretch="1,0,0,0,0" columnstretch="3,3,1,3"> + <property name="horizontalSpacing"> + <number>2</number> + </property> + <property name="verticalSpacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <item row="0" column="2"> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="3" column="0"> + <widget class="caMessageButton" name="caMessageButton_9"> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenFactor</string> + </property> + <property name="label"> + <string>/2</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string>.5</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="4" column="1"> + <widget class="caMessageButton" name="caMessageButton_16"> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenFactor</string> + </property> + <property name="label"> + <string>+10%</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string>1.1</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="caMessageButton" name="caMessageButton_2"> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenFactor</string> + </property> + <property name="label"> + <string>/1000</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string>0.001</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="0" column="0"> + <widget class="caMessageButton" name="camessagebutton"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>DOWN</string> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation_twk_dn.PROC</string> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string notr="true">1</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="caMessageButton" name="caMessageButton_14"> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenFactor</string> + </property> + <property name="label"> + <string>*10</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string>10</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="4" column="3"> + <widget class="caMessageButton" name="caMessageButton_7"> + <property name="text"> + <string>1e10</string> + </property> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation</string> + </property> + <property name="label"> + <string notr="true">1e10</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string notr="true">1.0e10</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="caMessageButton" name="caMessageButton_13"> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenFactor</string> + </property> + <property name="label"> + <string>*1000</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string>1000</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="3" column="1"> + <widget class="caMessageButton" name="caMessageButton_15"> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenFactor</string> + </property> + <property name="label"> + <string>*2</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string>2</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="2" column="3"> + <widget class="caMessageButton" name="caMessageButton_5"> + <property name="text"> + <string>1e6</string> + </property> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation</string> + </property> + <property name="label"> + <string notr="true">1e6</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string notr="true">1.0e6</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="1" column="3"> + <widget class="caMessageButton" name="caMessageButton_4"> + <property name="text"> + <string>1e4</string> + </property> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation</string> + </property> + <property name="label"> + <string notr="true">1e4</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string notr="true">1.0e4</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="0" column="3"> + <widget class="caMessageButton" name="caMessageButton_3"> + <property name="text"> + <string>1e2</string> + </property> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation</string> + </property> + <property name="label"> + <string notr="true">1e2</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string notr="true">1.0e2</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="caMessageButton" name="caMessageButton_8"> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenFactor</string> + </property> + <property name="label"> + <string>/10</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string>0.1</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="3" column="3"> + <widget class="caMessageButton" name="caMessageButton_6"> + <property name="text"> + <string>1e8</string> + </property> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation</string> + </property> + <property name="label"> + <string notr="true">1e8</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string notr="true">1.0e8</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="caMessageButton" name="camessagebutton_2"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string> UP </string> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation_twk_up.PROC</string> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string notr="true">1</string> + </property> + </widget> + </item> + <item row="4" column="0"> + <widget class="caMessageButton" name="caMessageButton_10"> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenFactor</string> + </property> + <property name="label"> + <string>-10%</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string>0.9</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + </layout> + </widget> + <widget class="Line" name="line"> + <property name="geometry"> + <rect> + <x>10</x> + <y>387</y> + <width>901</width> + <height>2</height> + </rect> + </property> + <property name="frameShadow"> + <enum>QFrame::Plain</enum> + </property> + <property name="lineWidth"> + <number>2</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + <widget class="QWidget" name="gridLayoutWidget_3"> + <property name="geometry"> + <rect> + <x>560</x> + <y>500</y> + <width>361</width> + <height>80</height> + </rect> + </property> + <layout class="QGridLayout" name="gridLayout_4" rowstretch="1,1" columnstretch="0,2,3"> + <item row="1" column="1"> + <widget class="caLabel" name="calabel_27"> + <property name="text"> + <string>Attenuation Preview</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item row="0" column="2"> + <widget class="caTextEntry" name="catextentry_14"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):previewIndex</string> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + </widget> + </item> + <item row="1" column="2"> + <widget class="caLineEdit" name="caLineEdit_17"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation_preview</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>3</number> + </property> + <property name="precisionMode"> + <enum>caLineEdit::User</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + <property name="formatType"> + <enum>caLineEdit::compact</enum> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="caLabel" name="calabel_24"> + <property name="text"> + <string>Preview Index</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + </layout> + </widget> + <widget class="caRelatedDisplay" name="carelateddisplay_48"> + <property name="geometry"> + <rect> + <x>800</x> + <y>590</y> + <width>120</width> + <height>29</height> + </rect> + </property> + <property name="label"> + <string notr="true">-more</string> + </property> + <property name="foreground"> + <color> + <red>228</red> + <green>228</green> + <blue>228</blue> + </color> + </property> + <property name="background"> + <color> + <red>53</red> + <green>132</green> + <blue>0</blue> + </color> + </property> + <property name="labels"> + <string>Alternate UI</string> + </property> + <property name="files"> + <string>pydev_filter_12_more.ui</string> + </property> + <property name="args"> + <string>P=100idWYM:,F=Filter,N=1</string> + </property> + <property name="stackingMode" stdset="0"> + <enum>caRowColMenu::Menu</enum> + </property> + <property name="removeParent" stdset="0"> + <string>true</string> + </property> + </widget> + <widget class="caMessageButton" name="camessagebutton_3"> + <property name="geometry"> + <rect> + <x>850</x> + <y>470</y> + <width>78</width> + <height>21</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>SYNC</string> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):filter_encode.PROC</string> + </property> + <property name="foreground"> + <color> + <red>228</red> + <green>228</green> + <blue>228</blue> + </color> + </property> + <property name="background"> + <color> + <red>53</red> + <green>132</green> + <blue>0</blue> + </color> + </property> + <property name="pressMessage"> + <string notr="true">1</string> + </property> + </widget> + <widget class="caLabel" name="calabel_29"> + <property name="geometry"> + <rect> + <x>590</x> + <y>44</y> + <width>301</width> + <height>21</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>12</pointsize> + </font> + </property> + <property name="text"> + <string>Attenuation Quick Adjustments</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </widget> + <widget class="QStatusBar" name="statusbar"/> + </widget> + <customwidgets> + <customwidget> + <class>caChoice</class> + <extends>QWidget</extends> + <header>caChoice</header> + </customwidget> + <customwidget> + <class>caRelatedDisplay</class> + <extends>QWidget</extends> + <header>caRelatedDisplay</header> + </customwidget> + <customwidget> + <class>caTextEntry</class> + <extends>caLineEdit</extends> + <header>caTextEntry</header> + </customwidget> + <customwidget> + <class>caMessageButton</class> + <extends>QPushButton</extends> + <header>caMessageButton</header> + </customwidget> + <customwidget> + <class>caFrame</class> + <extends>QFrame</extends> + <header>caFrame</header> + <container>1</container> + </customwidget> + <customwidget> + <class>caLabel</class> + <extends>QLabel</extends> + <header>caLabel</header> + </customwidget> + <customwidget> + <class>caGraphics</class> + <extends>QWidget</extends> + <header>caGraphics</header> + </customwidget> + <customwidget> + <class>caInclude</class> + <extends>QWidget</extends> + <header>caInclude</header> + </customwidget> + <customwidget> + <class>caLineEdit</class> + <extends>QLineEdit</extends> + <header>caLineEdit</header> + </customwidget> + </customwidgets> + <resources/> + <connections/> +</ui> diff --git a/100idPyApp/op/ui/pydev_transfocator_12_more.ui b/100idPyApp/op/ui/pydev_transfocator_12_more.ui new file mode 100644 index 0000000000000000000000000000000000000000..6c441d6e1b2de387aadb407f1e0fa5bcf9464427 --- /dev/null +++ b/100idPyApp/op/ui/pydev_transfocator_12_more.ui @@ -0,0 +1,2271 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>MainWindow</class> + <widget class="QMainWindow" name="MainWindow"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>1071</width> + <height>681</height> + </rect> + </property> + <property name="windowTitle"> + <string>MainWindow</string> + </property> + <widget class="QWidget" name="centralwidget"> + <widget class="caFrame" name="caframe_8"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>1071</width> + <height>31</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="maximumSize"> + <size> + <width>1071</width> + <height>16777215</height> + </size> + </property> + <property name="lineWidth"> + <number>0</number> + </property> + <property name="background"> + <color> + <red>0</red> + <green>53</green> + <blue>132</blue> + </color> + </property> + <property name="backgroundMode"> + <enum>caFrame::Filled</enum> + </property> + <layout class="QHBoxLayout" name="horizontalLayout"> + <property name="spacing"> + <number>5</number> + </property> + <property name="leftMargin"> + <number>10</number> + </property> + <property name="topMargin"> + <number>2</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>2</number> + </property> + <item> + <widget class="caLabel" name="calabel"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="maximumSize"> + <size> + <width>1071</width> + <height>16777215</height> + </size> + </property> + <property name="font"> + <font> + <family>Verdana</family> + <pointsize>16</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Transfocator $(P)$(TF)$(N)</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::Height</enum> + </property> + <property name="foreground"> + <color> + <red>228</red> + <green>228</green> + <blue>228</blue> + </color> + </property> + <property name="background"> + <color alpha="0"> + <red>160</red> + <green>160</green> + <blue>164</blue> + </color> + </property> + </widget> + </item> + </layout> + </widget> + <widget class="QWidget" name="gridLayoutWidget_2"> + <property name="geometry"> + <rect> + <x>30</x> + <y>510</y> + <width>371</width> + <height>81</height> + </rect> + </property> + <layout class="QGridLayout" name="gridLayout_2" rowstretch="1,1" columnstretch="1,1,2"> + <property name="spacing"> + <number>0</number> + </property> + <item row="0" column="2"> + <widget class="caLineEdit" name="caLineEdit_12"> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation_2E_actual</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>5</number> + </property> + <property name="precisionMode"> + <enum>caLineEdit::User</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + <property name="formatType"> + <enum>caLineEdit::compact</enum> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="caLabel" name="calabel_23"> + <property name="text"> + <string>3E</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item row="1" column="2"> + <widget class="caLineEdit" name="caLineEdit_14"> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation_3E_actual</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>5</number> + </property> + <property name="precisionMode"> + <enum>caLineEdit::User</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + <property name="formatType"> + <enum>caLineEdit::compact</enum> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="caLabel" name="calabel_22"> + <property name="text"> + <string>2E</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="caLabel" name="calabel_26"> + <property name="text"> + <string>Attenuation</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item row="0" column="0"> + <widget class="caLabel" name="calabel_25"> + <property name="text"> + <string>Harmonic</string> + </property> + <property name="alignment"> + <set>Qt::AlignBottom|Qt::AlignRight|Qt::AlignTrailing</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + </layout> + </widget> + <widget class="QWidget" name="gridLayoutWidget"> + <property name="geometry"> + <rect> + <x>540</x> + <y>40</y> + <width>521</width> + <height>191</height> + </rect> + </property> + <layout class="QGridLayout" name="gridLayout" rowstretch="1,1,1,1,1" columnstretch="3,2,0,2,2,0,2"> + <property name="horizontalSpacing"> + <number>2</number> + </property> + <property name="verticalSpacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <item row="0" column="5"> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="3" column="3"> + <widget class="caMessageButton" name="caMessageButton_9"> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenFactor</string> + </property> + <property name="label"> + <string>/2</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string>.5</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="4" column="4"> + <widget class="caMessageButton" name="caMessageButton_16"> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenFactor</string> + </property> + <property name="label"> + <string>+10%</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string>1.1</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="1" column="3"> + <widget class="caMessageButton" name="caMessageButton_2"> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenFactor</string> + </property> + <property name="label"> + <string>/1000</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string>0.001</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="2" column="4"> + <widget class="caMessageButton" name="caMessageButton_14"> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenFactor</string> + </property> + <property name="label"> + <string>*10</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string>10</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="4" column="6"> + <widget class="caMessageButton" name="caMessageButton_7"> + <property name="text"> + <string>1e10</string> + </property> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation</string> + </property> + <property name="label"> + <string notr="true">1e10</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string notr="true">1.0e10</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="1" column="4"> + <widget class="caMessageButton" name="caMessageButton_13"> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenFactor</string> + </property> + <property name="label"> + <string>*1000</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string>1000</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="4" column="1"> + <widget class="caLineEdit" name="caLineEdit_16"> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):filterConfig_RBV</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="caLineEdit" name="caLineEdit_11"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):filterConfig</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + <property name="formatType"> + <enum>caLineEdit::decimal</enum> + </property> + </widget> + </item> + <item row="3" column="4"> + <widget class="caMessageButton" name="caMessageButton_15"> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenFactor</string> + </property> + <property name="label"> + <string>*2</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string>2</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="2" column="6"> + <widget class="caMessageButton" name="caMessageButton_5"> + <property name="text"> + <string>1e6</string> + </property> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation</string> + </property> + <property name="label"> + <string notr="true">1e6</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string notr="true">1.0e6</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="caLabel" name="calabel_20"> + <property name="text"> + <string>12-bit</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item row="1" column="6"> + <widget class="caMessageButton" name="caMessageButton_4"> + <property name="text"> + <string>1e4</string> + </property> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation</string> + </property> + <property name="label"> + <string notr="true">1e4</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string notr="true">1.0e4</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="0" column="6"> + <widget class="caMessageButton" name="caMessageButton_3"> + <property name="text"> + <string>1e2</string> + </property> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation</string> + </property> + <property name="label"> + <string notr="true">1e2</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string notr="true">1.0e2</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="2" column="3"> + <widget class="caMessageButton" name="caMessageButton_8"> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenFactor</string> + </property> + <property name="label"> + <string>/10</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string>0.1</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="4" column="0"> + <widget class="caLabel" name="calabel_24"> + <property name="font"> + <font> + <pointsize>11</pointsize> + </font> + </property> + <property name="text"> + <string>Readbacks</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item row="3" column="6"> + <widget class="caMessageButton" name="caMessageButton_6"> + <property name="text"> + <string>1e8</string> + </property> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation</string> + </property> + <property name="label"> + <string notr="true">1e8</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string notr="true">1.0e8</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="0" column="2"> + <spacer name="horizontalSpacer_2"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="4" column="3"> + <widget class="caMessageButton" name="caMessageButton_10"> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenFactor</string> + </property> + <property name="label"> + <string>-10%</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string>0.9</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </item> + <item row="3" column="1"> + <widget class="caLineEdit" name="caLineEdit_17"> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):filterConfig_BW</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + </widget> + </item> + <item row="3" column="0"> + <widget class="caLabel" name="calabel_27"> + <property name="font"> + <font> + <pointsize>10</pointsize> + </font> + </property> + <property name="text"> + <string>Ind. Control</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item row="0" column="3"> + <widget class="caMessageButton" name="camessagebutton"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>DOWN</string> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation_twk_dn.PROC</string> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string notr="true">1</string> + </property> + </widget> + </item> + <item row="0" column="4"> + <widget class="caMessageButton" name="camessagebutton_2"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string> UP </string> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation_twk_up.PROC</string> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="pressMessage"> + <string notr="true">1</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="caLabel" name="calabel_32"> + <property name="text"> + <string>Unsorted Indices</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + </layout> + </widget> + <widget class="QWidget" name="gridLayoutWidget_3"> + <property name="geometry"> + <rect> + <x>690</x> + <y>510</y> + <width>361</width> + <height>80</height> + </rect> + </property> + <layout class="QGridLayout" name="gridLayout_4" rowstretch="1,1" columnstretch="0,2,3"> + <item row="1" column="1"> + <widget class="caLabel" name="calabel_29"> + <property name="text"> + <string>Attenuation Preview</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item row="0" column="2"> + <widget class="caTextEntry" name="catextentry_14"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):previewIndex</string> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + </widget> + </item> + <item row="1" column="2"> + <widget class="caLineEdit" name="caLineEdit_19"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation_preview</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>3</number> + </property> + <property name="precisionMode"> + <enum>caLineEdit::User</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + <property name="formatType"> + <enum>caLineEdit::compact</enum> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="caLabel" name="calabel_30"> + <property name="text"> + <string>Preview Index</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + </layout> + </widget> + <widget class="caRelatedDisplay" name="carelateddisplay_48"> + <property name="geometry"> + <rect> + <x>930</x> + <y>600</y> + <width>120</width> + <height>29</height> + </rect> + </property> + <property name="label"> + <string notr="true">-less</string> + </property> + <property name="foreground"> + <color> + <red>228</red> + <green>228</green> + <blue>228</blue> + </color> + </property> + <property name="background"> + <color> + <red>53</red> + <green>132</green> + <blue>0</blue> + </color> + </property> + <property name="labels"> + <string>Alternate UI</string> + </property> + <property name="files"> + <string>pydev_filter_12.ui</string> + </property> + <property name="args"> + <string>P=100idWYM:,F=Filter,N=1</string> + </property> + <property name="stackingMode" stdset="0"> + <enum>caRowColMenu::Menu</enum> + </property> + <property name="removeParent" stdset="0"> + <string>true</string> + </property> + </widget> + <widget class="caMessageButton" name="camessagebutton_3"> + <property name="geometry"> + <rect> + <x>970</x> + <y>470</y> + <width>78</width> + <height>21</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>SYNC</string> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):filter_encode.PROC</string> + </property> + <property name="foreground"> + <color> + <red>228</red> + <green>228</green> + <blue>228</blue> + </color> + </property> + <property name="background"> + <color> + <red>53</red> + <green>132</green> + <blue>0</blue> + </color> + </property> + <property name="pressMessage"> + <string notr="true">1</string> + </property> + </widget> + <widget class="caInclude" name="cainclude"> + <property name="geometry"> + <rect> + <x>11</x> + <y>304</y> + <width>1128</width> + <height>151</height> + </rect> + </property> + <property name="macro"> + <string>P=$(P),F=$(F),N=$(N),M=01;P=$(P),F=$(F),N=$(N),M=02;P=$(P),F=$(F),N=$(N),M=03;P=$(P),F=$(F),N=$(N),M=04;P=$(P),F=$(F),N=$(N),M=05;P=$(P),F=$(F),N=$(N),M=06;P=$(P),F=$(F),N=$(N),M=07;P=$(P),F=$(F),N=$(N),M=08;P=$(P),F=$(F),N=$(N),M=09;P=$(P),F=$(F),N=$(N),M=10</string> + </property> + <property name="filename" stdset="0"> + <string notr="true">pydev_transfocator_lens.ui</string> + </property> + <property name="stacking"> + <enum>caInclude::Column</enum> + </property> + <property name="numberOfItems" stdset="0"> + <number>10</number> + </property> + <property name="adjustSizeToContents" stdset="0"> + <bool>false</bool> + </property> + <property name="frameColor"> + <color alpha="0"> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + </widget> + <widget class="Line" name="line"> + <property name="geometry"> + <rect> + <x>10</x> + <y>391</y> + <width>1041</width> + <height>2</height> + </rect> + </property> + <property name="frameShadow"> + <enum>QFrame::Plain</enum> + </property> + <property name="lineWidth"> + <number>2</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + <widget class="QWidget" name="verticalLayoutWidget"> + <property name="geometry"> + <rect> + <x>10</x> + <y>40</y> + <width>521</width> + <height>251</height> + </rect> + </property> + <layout class="QVBoxLayout" name="verticalLayout" stretch="2,1,0,1,1,1,1"> + <property name="spacing"> + <number>1</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>5</number> + </property> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_3" stretch="4,1,10"> + <property name="spacing"> + <number>2</number> + </property> + <item> + <widget class="caChoice" name="caChoice_0"> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):EnergySelect</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="colorMode"> + <enum>caChoice::Static</enum> + </property> + <property name="endBit"> + <number>1</number> + </property> + </widget> + </item> + <item> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <property name="margin"> + <number>5</number> + </property> + <item> + <widget class="caGraphics" name="caRectangle_1"> + <property name="foreground"> + <color> + <red>0</red> + <green>216</green> + <blue>0</blue> + </color> + </property> + <property name="linestyle" stdset="0"> + <enum>caGraphics::Solid</enum> + </property> + <property name="fillstyle" stdset="0"> + <enum>caGraphics::Filled</enum> + </property> + <property name="lineColor"> + <color> + <red>0</red> + <green>216</green> + <blue>0</blue> + </color> + </property> + <property name="visibility"> + <enum>caGraphics::IfZero</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):EnergySelect</string> + </property> + <property name="form"> + <enum>caGraphics::Rectangle</enum> + </property> + </widget> + </item> + <item> + <widget class="caGraphics" name="caRectangle_2"> + <property name="foreground"> + <color> + <red>0</red> + <green>216</green> + <blue>0</blue> + </color> + </property> + <property name="linestyle" stdset="0"> + <enum>caGraphics::Solid</enum> + </property> + <property name="fillstyle" stdset="0"> + <enum>caGraphics::Filled</enum> + </property> + <property name="lineColor"> + <color> + <red>0</red> + <green>216</green> + <blue>0</blue> + </color> + </property> + <property name="visibility"> + <enum>caGraphics::IfNotZero</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):EnergySelect</string> + </property> + <property name="form"> + <enum>caGraphics::Rectangle</enum> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QGridLayout" name="gridLayout_3" columnstretch="3,1,2" rowminimumheight="1,1"> + <property name="margin"> + <number>2</number> + </property> + <property name="spacing"> + <number>2</number> + </property> + <item row="1" column="0"> + <widget class="caTextEntry" name="catextentry_17"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):EnergyLocal</string> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>3</number> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="caLineEdit" name="caLineEdit_20"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):EnergyLocal.EGU</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="caLineEdit" name="caLineEdit_13"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):EnergyBeamline.EGU</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + </widget> + </item> + <item row="0" column="0"> + <widget class="caLineEdit" name="caLineEdit_18"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):EnergyBeamline</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>3</number> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + </widget> + </item> + <item row="0" column="2"> + <spacer name="horizontalSpacer_8"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_2" stretch="1,5,6,2,4"> + <property name="spacing"> + <number>2</number> + </property> + <property name="margin"> + <number>2</number> + </property> + <item> + <spacer name="horizontalSpacer_7"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="caLabel" name="calabel_19"> + <property name="text"> + <string>Lookup Table Energy</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item> + <widget class="caLineEdit" name="caLineEdit_15"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):energy_RBV</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>3</number> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + </widget> + </item> + <item> + <widget class="caLineEdit" name="caLineEdit_10"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):energy.EGU</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_9"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <widget class="Line" name="line_2"> + <property name="frameShadow"> + <enum>QFrame::Plain</enum> + </property> + <property name="lineWidth"> + <number>2</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_4" stretch="3,2,3,3"> + <property name="spacing"> + <number>2</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <item> + <widget class="caLabel" name="calabel_21"> + <property name="text"> + <string>Attenuation</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_3"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Preferred</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="caTextEntry" name="catextentry_15"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation</string> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>3</number> + </property> + <property name="precisionMode"> + <enum>caLineEdit::User</enum> + </property> + <property name="formatType"> + <enum>caLineEdit::compact</enum> + </property> + </widget> + </item> + <item> + <widget class="caLineEdit" name="caLineEdit_21"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):attenuation_actual</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>3</number> + </property> + <property name="precisionMode"> + <enum>caLineEdit::User</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + <property name="formatType"> + <enum>caLineEdit::compact</enum> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_5" stretch="3,2,3,3"> + <property name="spacing"> + <number>2</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <item> + <widget class="caLabel" name="calabel_28"> + <property name="text"> + <string>Atten. Index</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_4"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Preferred</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="caTextEntry" name="catextentry_16"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):sortedIndex</string> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>0</number> + </property> + <property name="precisionMode"> + <enum>caLineEdit::User</enum> + </property> + <property name="formatType"> + <enum>caLineEdit::decimal</enum> + </property> + </widget> + </item> + <item> + <widget class="caLineEdit" name="caLineEdit_22"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):sortedIndex_RBV</string> + </property> + <property name="foreground"> + <color> + <red>10</red> + <green>0</green> + <blue>184</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>0</number> + </property> + <property name="precisionMode"> + <enum>caLineEdit::User</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + <property name="formatType"> + <enum>caLineEdit::decimal</enum> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_6" stretch="5,3,3"> + <property name="spacing"> + <number>2</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <item> + <spacer name="horizontalSpacer_5"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Preferred</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="caLabel" name="calabel_31"> + <property name="text"> + <string>In Mask</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item> + <widget class="caLineEdit" name="caLineEdit_23"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):inMask_RBV</string> + </property> + <property name="foreground"> + <color> + <red>255</red> + <green>255</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>0</number> + </property> + <property name="precisionMode"> + <enum>caLineEdit::User</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + <property name="formatType"> + <enum>caLineEdit::hexadecimal</enum> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_7" stretch="5,3,3"> + <property name="spacing"> + <number>2</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <item> + <spacer name="horizontalSpacer_6"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Preferred</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="caLabel" name="calabel_33"> + <property name="text"> + <string>Out Mask</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item> + <widget class="caLineEdit" name="caLineEdit_24"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="font"> + <font> + <pointsize>13</pointsize> + </font> + </property> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):outMask_RBV</string> + </property> + <property name="foreground"> + <color> + <red>255</red> + <green>255</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </property> + <property name="colorMode"> + <enum>caLineEdit::Static</enum> + </property> + <property name="precision"> + <number>0</number> + </property> + <property name="precisionMode"> + <enum>caLineEdit::User</enum> + </property> + <property name="fontScaleMode" stdset="0"> + <enum>caLineEdit::None</enum> + </property> + <property name="formatType"> + <enum>caLineEdit::hexadecimal</enum> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + <widget class="QWidget" name="horizontalLayoutWidget"> + <property name="geometry"> + <rect> + <x>730</x> + <y>260</y> + <width>331</width> + <height>31</height> + </rect> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_8" stretch="4,3"> + <item> + <widget class="caLabel" name="calabel_34"> + <property name="text"> + <string>Verbose Console?</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + </widget> + </item> + <item> + <widget class="caChoice" name="caChoice_1"> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):verbosity</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="colorMode"> + <enum>caChoice::Static</enum> + </property> + <property name="stackingMode" stdset="0"> + <enum>caChoice::Column</enum> + </property> + <property name="endBit"> + <number>1</number> + </property> + </widget> + </item> + </layout> + </widget> + </widget> + <widget class="QStatusBar" name="statusbar"/> + </widget> + <customwidgets> + <customwidget> + <class>caChoice</class> + <extends>QWidget</extends> + <header>caChoice</header> + </customwidget> + <customwidget> + <class>caRelatedDisplay</class> + <extends>QWidget</extends> + <header>caRelatedDisplay</header> + </customwidget> + <customwidget> + <class>caTextEntry</class> + <extends>caLineEdit</extends> + <header>caTextEntry</header> + </customwidget> + <customwidget> + <class>caMessageButton</class> + <extends>QPushButton</extends> + <header>caMessageButton</header> + </customwidget> + <customwidget> + <class>caFrame</class> + <extends>QFrame</extends> + <header>caFrame</header> + <container>1</container> + </customwidget> + <customwidget> + <class>caLabel</class> + <extends>QLabel</extends> + <header>caLabel</header> + </customwidget> + <customwidget> + <class>caGraphics</class> + <extends>QWidget</extends> + <header>caGraphics</header> + </customwidget> + <customwidget> + <class>caInclude</class> + <extends>QWidget</extends> + <header>caInclude</header> + </customwidget> + <customwidget> + <class>caLineEdit</class> + <extends>QLineEdit</extends> + <header>caLineEdit</header> + </customwidget> + </customwidgets> + <resources/> + <connections/> +</ui> diff --git a/100idPyApp/op/ui/pydev_transfocator_lens.ui b/100idPyApp/op/ui/pydev_transfocator_lens.ui new file mode 100644 index 0000000000000000000000000000000000000000..dcf84dd407382c6c1cc54296051635a4fb0dea92 --- /dev/null +++ b/100idPyApp/op/ui/pydev_transfocator_lens.ui @@ -0,0 +1,592 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>MainWindow</class> + <widget class="QMainWindow" name="MainWindow"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>78</width> + <height>155</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="styleSheet"> + <string> + +QWidget#centralWidget {background: rgba(200, 200, 200, 255);} + +caTable { + font: 10pt; + background: cornsilk; + alternate-background-color: wheat; +} + +caLineEdit { + border-radius: 1px; + background: lightyellow; + color: black; + } + +caTextEntry { + color: rgb(127, 0, 63); + background-color: cornsilk; + selection-color: #0a214c; + selection-background-color: wheat; + border: 1px groove black; + border-radius: 1px; + padding: 1px; +} + +caTextEntry:focus { + padding: 0px; + border: 2px groove darkred; + border-radius: 1px; +} + +QPushButton { + border-color: #00b; + border-radius: 2px; + padding: 3px; + border-width: 1px; + + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(224, 239, 255, 255), + stop:0.5 rgba(199, 215, 230, 255), + stop:1 rgba(184, 214, 236, 255)); +} +QPushButton:hover { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(201, 226, 255, 255), + stop:0.5 rgba(177, 204, 230, 255), + stop:1 rgba(163, 205, 236, 255)); +} +QPushButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(174, 219, 255, 255), + stop:0.5 rgba(165, 199, 230, 255), + stop:1 rgba(134, 188, 236, 255)); +} + +QPushButton:disabled { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(174, 219, 255, 255), + stop:0.5 rgba(165, 199, 230, 255), + stop:1 rgba(134, 188, 236, 255)); +} + +caChoice { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, + stop: 0 #E1E1E1, stop: 0.4 #DDDDDD, + stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3); +} + +caChoice > QPushButton { + text-align: left; + padding: 1px; +} + +caSlider::groove:horizontal { +border: 1px solid #bbb; +background: lightgrey; +height: 20px; +border-radius: 4px; +} + +caSlider::handle:horizontal { +background: red; +border: 1px solid #777; +width: 13px; +margin-top: -2px; +margin-bottom: -2px; +border-radius: 2px; +} + + + +</string> + </property> + <widget class="QWidget" name="centralWidget"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="Button"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </brush> + </colorrole> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>200</red> + <green>200</green> + <blue>200</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="autoFillBackground"> + <bool>false</bool> + </property> + <widget class="caFrame" name="caFrame_0"> + <property name="geometry"> + <rect> + <x>12</x> + <y>30</y> + <width>16</width> + <height>16</height> + </rect> + </property> + <property name="visibility"> + <enum>caFrame::IfNotZero</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):filter$(M)_Lock</string> + </property> + <widget class="caMessageButton" name="caMessageButton_0"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>14</width> + <height>14</height> + </rect> + </property> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):filter$(M)_Lock</string> + </property> + <property name="label"> + <string>L</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>222</red> + <green>19</green> + <blue>9</blue> + </color> + </property> + <property name="pressMessage"> + <string>0</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </widget> + <widget class="caLabel" name="caLabel_0"> + <property name="geometry"> + <rect> + <x>11</x> + <y>46</y> + <width>20</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>$(M)</string> + </property> + <property name="alignment"> + <set>Qt::AlignAbsolute|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignVCenter</set> + </property> + <property name="fontScaleMode"> + <enum>ESimpleLabel::WidthAndHeight</enum> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color alpha="0"> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="frameShape"> + <enum>QFrame::NoFrame</enum> + </property> + </widget> + <widget class="caGraphics" name="caRectangle_0"> + <property name="geometry"> + <rect> + <x>17</x> + <y>79</y> + <width>8</width> + <height>16</height> + </rect> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>216</green> + <blue>0</blue> + </color> + </property> + <property name="linestyle" stdset="0"> + <enum>caGraphics::Solid</enum> + </property> + <property name="fillstyle" stdset="0"> + <enum>caGraphics::Filled</enum> + </property> + <property name="lineColor"> + <color> + <red>0</red> + <green>216</green> + <blue>0</blue> + </color> + </property> + <property name="visibility"> + <enum>caGraphics::IfNotZero</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(TF)$(N):stack$(M)_RBV</string> + </property> + <property name="form"> + <enum>caGraphics::Rectangle</enum> + </property> + </widget> + <widget class="caChoice" name="caChoice_0"> + <property name="geometry"> + <rect> + <x>0</x> + <y>100</y> + <width>40</width> + <height>28</height> + </rect> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(TF)$(N):stack$(M)</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="colorMode"> + <enum>caChoice::Static</enum> + </property> + <property name="endBit"> + <number>1</number> + </property> + </widget> + <widget class="caFrame" name="caFrame_1"> + <property name="geometry"> + <rect> + <x>12</x> + <y>30</y> + <width>16</width> + <height>16</height> + </rect> + </property> + <property name="visibility"> + <enum>caFrame::IfZero</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(F)$(N):filter$(M)_Lock</string> + </property> + <widget class="caMessageButton" name="caMessageButton_1"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>14</width> + <height>14</height> + </rect> + </property> + <property name="fontScaleMode"> + <enum>EPushButton::WidthAndHeight</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(TF)$(N):stack$(M)_Lock</string> + </property> + <property name="label"> + <string>F</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>0</red> + <green>216</green> + <blue>0</blue> + </color> + </property> + <property name="pressMessage"> + <string>1</string> + </property> + <property name="colorMode"> + <enum>caMessageButton::Static</enum> + </property> + </widget> + </widget> + <widget class="caGraphics" name="caRectangle_1"> + <property name="geometry"> + <rect> + <x>17</x> + <y>63</y> + <width>8</width> + <height>16</height> + </rect> + </property> + <property name="foreground"> + <color> + <red>253</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="linestyle" stdset="0"> + <enum>caGraphics::Solid</enum> + </property> + <property name="fillstyle" stdset="0"> + <enum>caGraphics::Filled</enum> + </property> + <property name="lineColor"> + <color> + <red>253</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="visibility"> + <enum>caGraphics::IfZero</enum> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(TF)$(N):stack$(M)_RBV</string> + </property> + <property name="form"> + <enum>caGraphics::Rectangle</enum> + </property> + </widget> + <widget class="caChoice" name="caChoice_1"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>40</width> + <height>28</height> + </rect> + </property> + <property name="channel" stdset="0"> + <string notr="true">$(P)$(TF)$(N):stack$(M)_Enable</string> + </property> + <property name="foreground"> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </property> + <property name="background"> + <color> + <red>115</red> + <green>223</green> + <blue>255</blue> + </color> + </property> + <property name="colorMode"> + <enum>caChoice::Static</enum> + </property> + <property name="endBit"> + <number>1</number> + </property> + </widget> + <widget class="caRelatedDisplay" name="carelateddisplay_48"> + <property name="geometry"> + <rect> + <x>0</x> + <y>130</y> + <width>41</width> + <height>21</height> + </rect> + </property> + <property name="label"> + <string notr="true">-info</string> + </property> + <property name="foreground"> + <color> + <red>228</red> + <green>228</green> + <blue>228</blue> + </color> + </property> + <property name="background"> + <color> + <red>53</red> + <green>132</green> + <blue>0</blue> + </color> + </property> + <property name="labels"> + <string>Alternate UI</string> + </property> + <property name="files"> + <string>pydev_filter_12.ui</string> + </property> + <property name="args"> + <string>P=100idWYM:,F=Filter,N=1</string> + </property> + <property name="stackingMode" stdset="0"> + <enum>caRowColMenu::Menu</enum> + </property> + <property name="removeParent" stdset="0"> + <string>true</string> + </property> + </widget> + <zorder>caLabel_0</zorder> + <zorder>caRectangle_0</zorder> + <zorder>caRectangle_1</zorder> + <zorder>caChoice_0</zorder> + <zorder>caChoice_1</zorder> + <zorder>caFrame_0</zorder> + <zorder>caFrame_1</zorder> + <zorder>carelateddisplay_48</zorder> + </widget> + </widget> + <customwidgets> + <customwidget> + <class>caChoice</class> + <extends>QWidget</extends> + <header>caChoice</header> + </customwidget> + <customwidget> + <class>caRelatedDisplay</class> + <extends>QWidget</extends> + <header>caRelatedDisplay</header> + </customwidget> + <customwidget> + <class>caMessageButton</class> + <extends>QPushButton</extends> + <header>caMessageButton</header> + </customwidget> + <customwidget> + <class>caFrame</class> + <extends>QFrame</extends> + <header>caFrame</header> + <container>1</container> + </customwidget> + <customwidget> + <class>caLabel</class> + <extends>QLabel</extends> + <header>caLabel</header> + </customwidget> + <customwidget> + <class>caGraphics</class> + <extends>QWidget</extends> + <header>caGraphics</header> + </customwidget> + </customwidgets> + <resources/> + <connections/> +</ui> diff --git a/100idPyApp/python/pyTransfocator_single.py b/100idPyApp/python/pyTransfocator_single.py index 54fa8959cdfb24e952956e5865cab601bf0f1f2f..32c26b6f1a2659a2bc87c4e1bb69d226fa8f513b 100644 --- a/100idPyApp/python/pyTransfocator_single.py +++ b/100idPyApp/python/pyTransfocator_single.py @@ -2,7 +2,7 @@ import numpy as np import tomllib from scipy.optimize import root_scalar import xraylib -from transfocator_calcs import lookup_diameter, materials_to_deltas, materials_to_linear_attenuatio, calc_lookup_tablen +from transfocator_calcs import lookup_diameter, materials_to_deltas, materials_to_linear_attenuatio, calc_lookup_table MAT_MACRO = 'MAT' NLENS_MACRO = 'NUMLENS' @@ -14,23 +14,23 @@ THICKERR_MACRO = 'THICKERR' Config variables Beam Properties - energy : energy in keV - L_und : undulator length in m - sigmaH_e : Sigma electron source size in H direction in m - sigmaV_e : Sigma electron source size in V direction in m - sigmaHp : Sigma electron divergence in H direction in rad - sigmaVp_e : Sigma electron divergence in V direction in rad + energy : energy in keV + L_und : undulator length in m + sigmaH_e : Sigma electron source size in H direction in m + sigmaV_e : Sigma electron source size in V direction in m + sigmaHp : Sigma electron divergence in H direction in rad + sigmaVp_e : Sigma electron divergence in V direction in rad Beamline properties - d_StoL1 : Source-to-CRL1 distance, in m - d_Stof : Source-to-focus distance, in m + d_StoL1 : Source-to-CRL1 distance, in m + d_Stof : Source-to-focus distance, in m CRL properties - d_min : Minimum thickness at the apex in m - stack_d : Stack thickness in m + d_min : Minimum thickness at the apex in m + stack_d : Stack thickness in m ''' -DEFAULT_CONFIG = {'beam':{'energy': 15, 'L_und': 4.7, 'sigmaH_e': 14.8e-6, +DEFAULT_CONFIG = {'beam':{'energy': 15, 'L_und': 4.7, 'sigmaH_e': 14.8e-6, 'sigmaV_e': 3.7e-6, 'sigmaHp_e': 2.8e-6, 'sigmaVp_e': 1.5e-6}, - 'beam_line': {'d_StoL': 51.9, 'd_Stof': 66.2}, - 'crl':{'stack_d': 50.0e-3, 'd_min': 3.0e-5}} + 'beam_line': {'d_StoL': 51.9, 'd_Stof': 66.2}, + 'crl':{'stack_d': 50.0e-3, 'd_min': 3.0e-5}} """ pyDevice TO DO: @@ -40,12 +40,12 @@ WHAT inputs change the search through the arrays? desired focal size, what else? IOC init functions -get lens stack parameters (# of lenses in each stack, radius, location, thickness, thickness error) -- from substitution file but put into PVs? Update with autosave? -get source info - -energy from from ID IOC - -hor/vert sizes and divergence (also energy dependent) + -energy from from ID IOC + -hor/vert sizes and divergence (also energy dependent) -lens diameter table? What is it doing? -desired focal size is changed --> what needs updating? --> nothing, just need to search focal size array again - -multiple flags: is focal size achievable? is it achievable at sample? + -multiple flags: is focal size achievable? is it achievable at sample? recalc function -- should probably be same as init function -energy is updated --> what needs updating? @@ -53,330 +53,130 @@ recalc function -- should probably be same as init function -what else could user/staff change? sample position? """ -# Beamline input block -energy = 15000.0 # Energy in eV -energy_keV = energy/1000.0 # Energy in keV -wl = 1239.84 / (energy * 10**9) -d_StoL1 = 51.9 # Source-to-CRL1 distance, in m -d_StoL2 = 62.1 # Source-to-CRL2 distance, in m -d_Stof = 66.2 # Source-to-focus distance, in m -#slit1_H = 500.0e-6 # H slit size before CRL 1 -#slit1_V = 300.0e-6 # V slit size before CRL 1 - -# CRL input block -d_min = 3.0e-5 # Minimum thickness at the apex in m -stack_d = 50.0e-3 # Stack thickness in m -L1_n = np.array([1, 1, 1, 1, 1, 1, 2, 4, 8, 16]) # CRL1 number of lenses in each stack -L1_R = np.array([2.0e-3, 1.0e-3, 5.0e-4, 3.0e-4, 2.0e-4, 1.0e-4, 1.0e-4, 1.0e-4, 1.0e-4, 1.0e-4]) # CRL1 lens radius in each stack -L1_mater= np.array(["Be", "Be", "Be", "Be", "Be", "Be", "Be", "Be", "Be", "Be"]) # CRL1 lens material in each stack -L1_loc = np.array([4.5, 3.5, 2.5, 1.5, 0.5, -0.5, -1.5, -2.5, -3.5, -4.5])*stack_d # CRL1 lens stack location relative to center stack, positive means upstream -L1_HE = np.array([1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.4e-6, 2.0e-6, 2.8e-6, 4.0e-6]) # CRL1 lens RMS thickness error - - -# Source size input block -L_und = 4.7 # undulator length -sigmaH_e = 14.8e-6 # Sigma electron source size in H direction in m -sigmaV_e = 3.7e-6 # Sigma electron source size in V direction in m -sigmaHp_e = 2.8e-6 # Sigma electron divergence in H direction in rad -sigmaVp_e = 1.5e-6 # Sigma electron divergence in V direction in rad -sigmaH = (sigmaH_e**2 + wl*L_und/2/np.pi/np.pi)**0.5 -sigmaV = (sigmaV_e**2 + wl*L_und/2/np.pi/np.pi)**0.5 -sigmaHp = (sigmaHp_e**2 + wl/L_und/2)**0.5 -sigmaVp = (sigmaVp_e**2 + wl/L_und/2)**0.5 - - - - - - -def absorptionaperture(x, n1mud, sigma, n1mur): - numerator = np.exp(-(x**2/(2*sigma**2))) * np.exp(-n1mur*(x**2) - n1mud) - denominator = np.exp(-n1mud) - return numerator / denominator - 0.5 - -def find_levels(array, levels, direction='forward'): - """ - Find the first indices at which the array crosses specified levels and the corresponding crossed values. - - Parameters: - array (numpy.ndarray): An array of numbers. - levels (float or numpy.ndarray): A number or an array of levels to find crossings. - direction (str, optional): The searching direction. Defaults to 'forward'. - Can be either 'forward' or 'backward'. - - Returns: - tuple: A tuple containing two arrays: - - An array of first indices at which the array crosses the specified levels. - - An array of first crossed values at the corresponding indices. - """ - - # Convert a single level to a numpy array - if isinstance(levels, (int, float)): - levels = np.array([levels]) - - indices = [] - values = [] - - # Compute the max and min of the array ignoring NaNs - max_val = np.nanmax(array) - min_val = np.nanmin(array) - - for level in levels: - # If level is out of bounds - if level > max_val or level < min_val: - indices.append(-1) - values.append(np.nan) - continue - - crossings = [] - - if direction == 'forward': - for i in range(1, len(array)): - if np.isnan(array[i - 1]) or np.isnan(array[i]): - continue - if (array[i - 1] < level <= array[i]) or (array[i - 1] > level >= array[i]): - crossings.append(i - 1) - break - - elif direction == 'backward': - for i in range(len(array) - 2, -1, -1): - if np.isnan(array[i + 1]) or np.isnan(array[i]): - continue - if (array[i + 1] < level <= array[i]) or (array[i + 1] > level >= array[i]): - crossings.append(i) - break - - else: - raise ValueError("Invalid direction. It should be either 'forward' or 'backward'.") - - if len(crossings) > 0: - idx = crossings[0] - indices.append(idx) - values.append(array[idx]) - else: - # In case no crossing is found within the range - indices.append(-1) - values.append(np.nan) - - return np.array(indices), np.array(values) - - -def Single_CRL2D_control(fsize): - - L1_D = np.zeros(L1_R.size) # CRL1 diameters for each stack - for i in range(L1_R.size): - L1_D[i] = lookup_diameter(L1_R[i]) - L1_delta = materials_to_deltas(L1_mater, energy_keV) # delta values for CRL1 stacks - L1_mu = materials_to_linear_attenuation(L1_mater, energy_keV) # mu values for CRL1 stacks - L1_Feq = L1_R/(2*L1_n*L1_delta) + L1_loc # CRL1 equivalent f in m for each stack - - L1_index_n = 2**L1_Feq.size # Total number of combinations for CRL1 - L1_invF_list= np.zeros(L1_index_n) # List of equivalent 1/f in m^-1 for CRL1 - for i in range(L1_index_n): - L1_invF_list[i] = np.sum(index_to_binary_list(i, L1_Feq.size)/L1_Feq) - # Sort the L1_invF list (to avoid zigzagging) - L1_invF_list_sort_indices = np.argsort(L1_invF_list) - L1_invF_list_sorted = L1_invF_list[L1_invF_list_sort_indices] - q1_list = 1/(L1_invF_list_sorted - 1/d_StoL1) # focal position of CRL1 for all configurations (sorted) - dq1_list = q1_list - (d_Stof - d_StoL1) - - # Start generating focal size list as a function of CRL1 setting - sigma1H = (sigmaH**2 + (sigmaHp*d_StoL1)**2)**0.5 # sigma beam size before CRL1 - sigma1V = (sigmaV**2 + (sigmaVp*d_StoL1)**2)**0.5 # sigma beam size before CRL1 - L1_n1mud_list = np.zeros(L1_index_n) # List of n1*mu*d_min for all possible CRL1 configurations - L1_n1muR_list = np.zeros(L1_index_n) # List of n1*mu/R for all possible CRL1 configurations - aperL1H_list = np.zeros(L1_index_n) # absorption H aperture of CRL1 for all configurations - aperL1V_list = np.zeros(L1_index_n) # absorption V aperture of CRL1 for all configurations - diameter1_list = np.zeros(L1_index_n) # CRL1 diameter for all possible configurations - FWHM1H_list = np.zeros(L1_index_n) # H focal size at the focus of CRL1 - FWHM1V_list = np.zeros(L1_index_n) # V focal size at the focus of CRL1 - Strehl_list = np.zeros(L1_index_n) # Strehl ratio based on lens thickness error - - for i in range(L1_index_n): - # absorption aperture is a function of CRL absorption/physical aperture, incident beam size, and physical slits - L1_n1mud_list[i] = np.sum(index_to_binary_list(L1_invF_list_sort_indices[i], L1_Feq.size)*np.array(L1_mu*L1_n*d_min)) - L1_n1muR_list[i] = np.sum(index_to_binary_list(L1_invF_list_sort_indices[i], L1_Feq.size)*np.array(L1_mu*L1_n/L1_R)) - solution = root_scalar(absorptionaperture, args=(L1_n1mud_list[i], sigma1H, L1_n1muR_list[i]), bracket=[0.0, 2*sigma1H], method='bisect') - aperL1H_list[i] = solution.root*2.0 - solution = root_scalar(absorptionaperture, args=(L1_n1mud_list[i], sigma1V, L1_n1muR_list[i]), bracket=[0.0, 2*sigma1V], method='bisect') - aperL1V_list[i] = solution.root*2.0 - mask = (np.array(index_to_binary_list(L1_invF_list_sort_indices[i], L1_Feq.size)) == 1) - if np.all(mask == False): - diameter1_list[i] = np.inf - else: - diameter1_list[i] = np.min(L1_D[mask]) - aperL1H_list[i] = min(aperL1H_list[i], diameter1_list[i], slit1_H) - aperL1V_list[i] = min(aperL1V_list[i], diameter1_list[i], slit1_V) - phase_error_tmp = np.linalg.norm(index_to_binary_list(L1_invF_list_sort_indices[i], L1_Feq.size)*np.array(L1_HE*L1_delta)*2*np.pi/wl) - Strehl_list[i] = np.exp(-phase_error_tmp**2) - - # FWHMbeam size at CRL1 focus - FWHM1H_list = ((0.88*wl*q1_list/aperL1H_list)**2 + (2.355*sigmaH*q1_list/d_StoL1)**2)**0.5 - FWHM1V_list = ((0.88*wl*q1_list/aperL1V_list)**2 + (2.355*sigmaV*q1_list/d_StoL1)**2)**0.5 - if flag_HE: - FWHM1H_list *= (Strehl_list)**(-0.5) - FWHM1V_list *= (Strehl_list)**(-0.5) - FWHM_list = (FWHM1H_list*FWHM1V_list)**0.5 - - indices, values = find_levels(FWHM_list, fsize, direction='backward') - index = indices[0] - if index == -1: - print(f"Cannot achieve the focal size {fsize*1.0e6:.2f} μm") - else: - print("======== Find size at focus ========================================") - print(f"Energy: {energy_keV} keV") - print(f"CRL1 configuration index in sorted list is {index}") - print(f"CRL1 configuration index is {L1_invF_list_sort_indices[index]} or {index_to_binary_list(L1_invF_list_sort_indices[index], L1_Feq.size)}") - print(f"CRL1 f is {1/L1_invF_list_sorted[index]:.2f} m, focus at q1 = {q1_list[index]:.2f} m") - print(f"Focal size is {FWHM1H_list[index]*1.0e6:.2f} μm x {FWHM1V_list[index]*1.0e6:.2f} μm at the focal point ({dq1_list[index]*1e3:.1f} mm from sample)") - - FWHM1H_atsample_list = (FWHM1H_list**2 + (aperL1H_list*dq1_list/q1_list)**2)**0.5 - FWHM1V_atsample_list = (FWHM1V_list**2 + (aperL1V_list*dq1_list/q1_list)**2)**0.5 - FWHM_atsample_list = (FWHM1H_atsample_list*FWHM1V_atsample_list)**0.5 - indices, values = find_levels(FWHM_atsample_list, fsize, direction='forward') - index2 = indices[0] - if index2 == -1: - print(f"Cannot achieve the bame size {fsize*1.0e6:.2f} μm at sample") - else: - print("======== Find size at sample =======================================") - print(f"CRL1 configuration index in sorted list is {index2}") - print(f"CRL1 configuration index is {L1_invF_list_sort_indices[index2]} or {index_to_binary_list(L1_invF_list_sort_indices[index2], L1_Feq.size)}") - print(f"CRL1 f is {1/L1_invF_list_sorted[index2]:.2f} m, focus at q1 = {q1_list[index2]:.2f} m ({dq1_list[index2]*1e3:.1f} mm from sample)") - print(f"Beam size is {FWHM1H_atsample_list[index2]*1.0e6:.2f} μm x {FWHM1V_atsample_list[index2]*1.0e6:.2f} μm at the sample position)") - - indices, values = find_levels(dq1_list, 0.0, direction='backward') - index3 = indices[0] - if index == -1: - print(f"Cannot find combination to focus close to sample") - else: - print("======== Find configuration focus close to the sample ==============") - print(f"CRL1 configuration index in sorted list is {index3}") - print(f"CRL1 configuration index is {L1_invF_list_sort_indices[index3]} or {index_to_binary_list(L1_invF_list_sort_indices[index3], L1_Feq.size)}") - print(f"CRL1 f is {1/L1_invF_list_sorted[index3]:.2f} m, focus at q1 = {q1_list[index3]:.2f} m ({dq1_list[index3]*1e3:.1f} mm from sample)") - print(f"Beam size is {FWHM1H_atsample_list[index3]*1.0e6:.2f} μm x {FWHM1V_atsample_list[index3]*1.0e6:.2f} μm at the sample position)") - - return - - -if __name__ == "__main__": - - flag_HE = True - - fsize = 50.0e-6 # Desired focal size in m (area average of h and v size) - #Single_CRL2D_control(fsize) # Find the best configuration for a single transfocator system - ''' Update the following to accommodate XS code ''' class singleTF(): - - def __init__(self, crl_setup = None, beam_config = DEFAULT_CONFIG['beam'], - beamline_config = DEFAULT_CONFIG['beamline'], - crl_config = DEFAULT_CONFIG['crl'], - slits_config = DEFAULT_CONFIG['slits']): - if crl_setup is None: - beam = beam_config - beamline = beamline_config - crl = crl_config - slits = slits_config - else: - with open(crl_setup, "rb") as f: - config = tomllib.load(f) - beam = config['beam'] - beamline = config['beamline'] - crl = config['crl'] - slits = config['slits'] - - self.setupSource(beam) - - self.setupBeamline(beamline) - - self.setupCRL(crl) - - self.setupSlits(slits) - # Initialize lens variables - self.L1_n = np.array([1, 1, 1, 1, 1, 1, 2, 4, 8, 16]) # CRL1 number of lenses in each stack - self.L1_R = np.array([2.0e-3, 1.0e-3, 5.0e-4, 3.0e-4, 2.0e-4, 1.0e-4, 1.0e-4, 1.0e-4, 1.0e-4, 1.0e-4]) # CRL1 lens radius in each stack - self.L1_mater= np.array(["Be", "Be", "Be", "Be", "Be", "Be", "Be", "Be", "Be", "Be"]) # CRL1 lens material in each stack - self.L1_loc = np.array([4.5, 3.5, 2.5, 1.5, 0.5, -0.5, -1.5, -2.5, -3.5, -4.5])*stack_d # CRL1 lens stack location relative to center stack, positive means upstream - self.L1_HE = np.array([1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.4e-6, 2.0e-6, 2.8e-6, 4.0e-6]) # CRL1 lens RMS thickness error - - self.Lens_diameter_table = [ - (50, 450.0), - (100, 632.0), - (200, 894.0), - (300, 1095.0), - (500, 1414.0), - (1000, 2000.0), - (1500, 2450.0), - ] - # Convert the lookup table to a dictionary for faster lookup - self.Lens_diameter_dict = {int(col1): col2 for col1, col2 in Lens_diameter_table} - - self.energy = 0 # gets value from an ao (incoming beam energy) - self.focalSize = 0 # get value from an ao (desired focal length) - self.lenses = 0 # sets integer (2^12) whose binary representation indicates which lenses are in or out - - self.num_lense = 12 # Number of lenses in system - - self.verbosity = True - - self.lookupTable = [] - - def setupSource(self, beam_properties): - ''' - Beam properties can have entries for the following - - energy : energy in keV - L_und : undulator length in m - sigmaH_e : Sigma electron source size in H direction in m - sigmaV_e : Sigma electron source size in V direction in m - sigmaHp : Sigma electron divergence in H direction in rad - sigmaVp_e : Sigma electron divergence in V direction in rad - ''' - - self.setEnergy(beam_properites['energy']) - self.L_und = beam_properties['L_und'] - self.sigmaH_e = beam_properties['sigmaH_e'] - self.sigmaV_e = beam_properties['sigmaV_e'] - self.sigmaHp_e = beam_properties['sigmaHp_e'] - self.sigmaVp_e = beam_properties['sigmaVp_e'] - - self.sigmaH = (self.sigmaH_e**2 + self.wl*self.L_und/2/np.pi/np.pi)**0.5 - self.sigmaV = (self.sigmaV_e**2 + self.wl*self.L_und/2/np.pi/np.pi)**0.5 - self.sigmaHp = (self.sigmaHp_e**2 + self.wl/self.L_und/2)**0.5 - self.sigmaVp = (self.sigmaVp_e**2 + self.wl/self.L_und/2)**0.5 - - def setupBeamline(self, beamline_properties): - ''' - Beamline properties can contain entries for the following - - d_StoL1 : Source-to-CRL1 distance, in m - d_Stof : Source-to-focus distance, in m - ''' - - self.d_StoL = beam_properties['d_StoL'] - self.d_Stof = beam_properties['d_Stof'] - - - def setupCRL(self, crl_properties): - ''' - CRL properties can contiain entries for the following - - d_min : Minimum thickness at the apex in m - stack_d : Stack thickness in m - ''' - self.d_min = crl_properties['d_min'] - self.stack_d = crl_properties['stack_d'] - - def setLensCount(self, lensCount): - self.numLens = + + def __init__(self, crl_setup = None, beam_config = DEFAULT_CONFIG['beam'], + beamline_config = DEFAULT_CONFIG['beamline'], + crl_config = DEFAULT_CONFIG['crl'], + slits_config = DEFAULT_CONFIG['slits']): + if crl_setup is None: + beam = beam_config + beamline = beamline_config + crl = crl_config + slits = slits_config + else: + with open(crl_setup, "rb") as f: + config = tomllib.load(f) + beam = config['beam'] + beamline = config['beamline'] + crl = config['crl'] + slits = config['slits'] + + self.setupSource(beam) + + self.setupBeamline(beamline) + + self.setupCRL(crl) + + # TODO is setupSlits necessary? + self.setupSlits(slits) + + # Initialize lens variables -- TODO -- this is done via a subs file -- are any of these needed prior to that loading? + self.numlens = np.array([1, 1, 1, 1, 1, 1, 2, 4, 8, 16]) # CRL1 number of lenses in each stack (was L1_n) + self.radius = np.array([2.0e-3, 1.0e-3, 5.0e-4, 3.0e-4, 2.0e-4, 1.0e-4, 1.0e-4, 1.0e-4, 1.0e-4, 1.0e-4]) # CRL1 lens radius in each stack (was L1_R) + self.materials = np.array(["Be", "Be", "Be", "Be", "Be", "Be", "Be", "Be", "Be", "Be"]) # CRL1 lens material in each stack (was L1_mater) + self.lens_loc = np.array([4.5, 3.5, 2.5, 1.5, 0.5, -0.5, -1.5, -2.5, -3.5, -4.5])*stack_d # CRL1 lens stack location relative to center stack, positive means upstream (was L1_Loc) + self.lens_thickerr = np.array([1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.4e-6, 2.0e-6, 2.8e-6, 4.0e-6]) # CRL1 lens RMS thickness error (was L1_HE) + + + #<----- lens diameter stuff done in transfocator calcs, should this be removed from here? + self.Lens_diameter_table = [ + (50, 450.0), + (100, 632.0), + (200, 894.0), + (300, 1095.0), + (500, 1414.0), + (1000, 2000.0), + (1500, 2450.0), + ] + # Convert the lookup table to a dictionary for faster lookup + self.Lens_diameter_dict = {int(col1): col2 for col1, col2 in Lens_diameter_table} + # end lens diameter stuff -------> + + self.energy = 0 # gets value from an ao (incoming beam energy) + self.focalSize = 0 # get value from an ao (desired focal length) + self.lenses = 0 # sets integer (2^12) whose binary representation indicates which lenses are in or out + + self.num_lense = 12 # Number of lenses in system + + self.verbosity = True + + self.lookupTable = [] + + def setupSource(self, beam_properties): + ''' + Beam properties can have entries for the following + + energy : energy in keV + L_und : undulator length in m + sigmaH_e : Sigma electron source size in H direction in m + sigmaV_e : Sigma electron source size in V direction in m + sigmaHp : Sigma electron divergence in H direction in rad + sigmaVp_e : Sigma electron divergence in V direction in rad + ''' + + self.setEnergy(beam_properites['energy']) + self.beam['L_und'] = beam_properties['L_und'] + self.beam['sigmaH_e'] = beam_properties['sigmaH_e'] + self.beam['sigmaV_e'] = beam_properties['sigmaV_e'] + self.beam['sigmaHp_e'] = beam_properties['sigmaHp_e'] + self.beam['sigmaVp_e'] = beam_properties['sigmaVp_e'] + + self.beam['sigmaH'] = (self.sigmaH_e**2 + self.wl*self.L_und/2/np.pi/np.pi)**0.5 + self.beam['sigmaV'] = (self.sigmaV_e**2 + self.wl*self.L_und/2/np.pi/np.pi)**0.5 + self.beam['sigmaHp'] = (self.sigmaHp_e**2 + self.wl/self.L_und/2)**0.5 + self.beam['sigmaVp'] = (self.sigmaVp_e**2 + self.wl/self.L_und/2)**0.5 + + def setupBeamline(self, beamline_properties): + ''' + Beamline properties can contain entries for the following + + d_StoL1 : Source-to-CRL1 distance, in m + d_Stof : Source-to-focus distance, in m + ''' + + self.bl['d_StoL'] = beam_properties['d_StoL'] + self.bl['d_Stof'] = beam_properties['d_Stof'] + + + def setupCRL(self, crl_properties): + ''' + CRL properties can contiain entries for the following + + d_min : Minimum thickness at the apex in m + stack_d : Stack thickness in m + ''' + self.crl['d_min'] = crl_properties['d_min'] + self.crl['stack_d'] = crl_properties['stack_d'] + + def setupSlits(self, slit_properties): + ''' + Slit properties can contiain entries for the following + + ''' + pass + + def setLensCount(self, lensCount): + self.numLens = def setupLookupTable(self, subs_file, n_lenses, energy = 8.0): ''' - lookup table created after IOC startup (after filter materials and + lookup table created after IOC startup (after transfocator materials and thicknesses are set ''' print(80*'#') @@ -396,7 +196,7 @@ class singleTF(): macros = subsFileContent[2].replace('{','').replace('}','').replace(',','').split() lens_properties = {key: [] for key in macros} # dictionary of lists - for i in range(self.num_filters): + for i in range(self.num_lenses): try: xx = subsFileContent[3+i].replace('{','').replace('}','').replace(',','').replace('"','').split() lens_properties[macros[0]].append(xx[0]) @@ -415,7 +215,7 @@ class singleTF(): self.lens_loc = [] self.lens_thickerr = [] - # get number of lens for each lens from lens properties dictionary-list + # get number of lens for each lens from lens properties dictionary-list print('Getting lens materials...') if NLENS_MACRO in macros: self.numlens = lens_properties[NLENS_MACRO] @@ -423,7 +223,7 @@ class singleTF(): else: raise RuntimeError(f"Number of lenses macro ({NLENS_MACRO}) not found in substituion file") - # get radii for each lens from lens properties dictionary-list + # get radii for each lens from lens properties dictionary-list print('Getting lens\' radii...') if RAD_MACRO in macros: self.radius = lens_properties[RAD_MACRO] @@ -443,7 +243,7 @@ class singleTF(): densities = get_densities(self.materials) self.densities = [densities[material] for material in self.materials] - # get location of each lens from lens properties dictionary-list + # get location of each lens from lens properties dictionary-list print('Getting lens\' locations...') if LOC_MACRO in macros: self.lens_loc = lens_properties[LOC_MACRO]*self.stack_d @@ -463,14 +263,16 @@ class singleTF(): self.construct_lookup_table() print('Lookup table calculation complete.\n') - print('Filter control setup complete.') + print('Transfocator control setup complete.') print(80*'#') - def construct_lookup_table(self): - self.lookupTable = calc_lookup_table(self.num_configs, self.radius, - self.material, self.energy, self.numlens, - self.lens_loc) - self.culledTable() + def construct_lookup_table(self): + self.lookupTable = calc_lookup_table(self.num_configs, self.radius, + self.material, self.energy, self.numlens, + self.lens_loc, self.beam, self.bl, + self.crl, self.slit1_H, self.slit1_V, + self.lens_thickerr, flag_HE = self.thickerr_flag) + self.cull_lookup_table() def cull_lookup_table(self): ''' @@ -508,7 +310,7 @@ class singleTF(): self.setFocalSizeActual() self.updateLensRBV() - self.updateFocalSizeRBVs() + self.updateFocalSizeRBVs() def setInMask(self, inMask): ''' @@ -518,7 +320,7 @@ class singleTF(): self.cull_lookup_table() if self.verbose: print(f'Converting culled index via in Mask') self.convertCulledIndex() - if self.verbose: print(f'Updating filter RBV via in Mask') + if self.verbose: print(f'Updating transfocator RBV via in Mask') self.updateLensRBV() if self.verbose: print(f'Setting in mask RBV to {self.inMask}') pydev.iointr('new_inMask', int(self.inMask)) @@ -531,7 +333,7 @@ class singleTF(): self.cull_lookup_table() if self.verbose: print(f'Converting culled index via out Mask') self.convertCulledIndex() - if self.verbose: print(f'Updating filter RBV via out Mask') + if self.verbose: print(f'Updating transfocator RBV via out Mask') self.updateLensRBV() if self.verbose: print(f'Setting out mask RBV to {self.outMask}') pydev.iointr('new_outMask', int(self.outMask)) @@ -553,8 +355,8 @@ class singleTF(): ''' self.focalSize_actual = self.culledTable[self.culledIndex] - def find_config(self): - ''' + def find_config(self): + ''' User selected focal size, this function finds nearest acheivable focal size from the lookup table ''' @@ -570,60 +372,81 @@ class singleTF(): self.setFocalSizeActual() self.updateLensConfigPV() self.updateLensRBV() - self.updateFocalSizeRBVs() + self.updateFocalSizeRBVs() - def setSlitSize(self, size, slit): - ''' - Update proper slit size - ''' - - if slit = 'hor': - self.slit1_H = float(size) # H slit size before CRL 1 - elif slit == 'vert': - self.slit1_V = float(size) # V slit size before CRL 1 - else - # Need error handling - break - - - def updateSlitSize(self, size, slit): - ''' - Slit size updates are propagated to CRL object from EPICS. The beam - size lookup table is then recalculated. - ''' - self.setSlitSize(self, size, slit) - - self.construct_lookup_table() + def setSlitSize(self, size, slit): + ''' + Update proper slit size + ''' + + if slit = 'hor': + self.slit1_H = float(size) # H slit size before CRL 1 + elif slit == 'vert': + self.slit1_V = float(size) # V slit size before CRL 1 + else + # Need error handling + break + + + def updateSlitSize(self, size, slit): + ''' + Slit size updates are propagated to CRL object from EPICS. The beam + size lookup table is then recalculated. + ''' + self.setSlitSize(self, size, slit) + + # Testing calling the lookup table reconstruction in EPICS instead of python + # self.construct_lookup_table() - def setEnergy(self, energy): - ''' - Sets various forms of energy - ''' - self.energy = float(energy) - self.energy_eV = self.energy*1000.0 # Energy in keV - self.wl = 1239.84 / (self.energy_eV * 10**9) #Wavelength in nm(?) - - def updateE(self, energy): - ''' - Beam energy updates are propagated to CRL object from EPICS. The beam - size lookup table is then recalculated. - ''' - # Energy variable sent from IOC as a string - self.setEnergy(energy) + def setEnergy(self, energy): + ''' + Sets various forms of energy + ''' + self.energy = float(energy) + self.energy_eV = self.energy*1000.0 # Energy in keV + self.wl = 1239.84 / (self.energy_eV * 10**9) #Wavelength in nm(?) + + def updateE(self, energy): + ''' + Beam energy updates are propagated to CRL object from EPICS. The beam + size lookup table is then recalculated. + ''' + # Energy variable sent from IOC as a string + self.setEnergy(energy) - self.construct_lookup_table() - # Do I need to find what the current config would produce as far as focal size and location? - # self.focalSizeRBV = + self.construct_lookup_table() + # Do I need to find what the current config would produce as far as focal size and location? + # self.focalSizeRBV = - def updateFsize(self, focalSize): + def updateFsize(self, focalSize): + ''' + User updates desired focal size. Lookup table is traversed to find nearest + to desired. + ''' + # focalPoint variable sent from IOC as a string + self.focalSize = float(focalSize) + self.find_config() + + def updateIndex(self, sortedIndex): + ''' + User has updated desired sorted index + ''' + self.culledIndexSorted = int(sortedIndex) + self.culledIndex = self.sorted_index[self.culledIndexSorted] + + # Update PVs + self.setFocalSizeActual() + self.updateLensConfigPV() + self.updateLensRBV() + self.updateFocalSizeRBVs() + + def updateThickerrFlag(self, flag): ''' - User updates desired focal size. Lookup table is traversed to find nearest - to desired. + User has updated thickness error flag so that ... ''' - # focalPoint variable sent from IOC as a string - self.focalSize = float(focalSize) - self.find_config() - + self.thickerr_flag = flag + + def updateLensConfigPV(self): ''' @@ -636,6 +459,23 @@ class singleTF(): ''' pydev.iointr('new_index', int(self.culledIndexSorted)) + + def updateEnergyRBV(self): + ''' + + ''' + pydev.iointr('updated_E', int(self.energy)) + + def updateSlitSizeRBV(self, size, slit): + ''' + Update proper slit size + ''' + + if slit = 'hor': + pydev.iointr('updated_slitSize_H', int(self.slit1_H)) + elif slit == 'vert': + pydev.iointr('updated_slitSize_V', int(self.slit1_V)) + def updateFocalSizeRBVs(self): ''' @@ -643,10 +483,10 @@ class singleTF(): ''' pydev.iointr('new_fSize', self.focalSize_actual) - + def updateVerbosity(self, verbosity): ''' Turn on minor printing ''' print(f'Verbosity set to {verbosity}') - self.verbose = verbosity + self.verbose = int(verbosity) diff --git a/100idPyApp/python/transfocator_calcs.py b/100idPyApp/python/transfocator_calcs.py index 31d3809d2311e527bfe0bd0ef1b318adffda85c6..33e11b16fb2a25b0140ffc99985887f53f74633f 100644 --- a/100idPyApp/python/transfocator_calcs.py +++ b/100idPyApp/python/transfocator_calcs.py @@ -1,10 +1,10 @@ import xraylib __all__ = """ - lookup_diameter - materials_to_deltas - materials_to_linear_attenuation - calc_lookup_table + lookup_diameter + materials_to_deltas + materials_to_linear_attenuation + calc_lookup_table """.split() # Lookup table where each entry is a tuple (column1, column2) @@ -137,66 +137,90 @@ def materials_to_linear_attenuation(material_list, energy): return mu_list -def calc_lookup_table(num_configs, radii, materials, energy_keV, numlens, lens_loc): - lookupTable = np.empty(num_configs) - - L1_D = np.zeros(len(radii)) # CRL1 diameters for each stack - for i in range(len(radii)): - L1_D[i] = lookup_diameter(radii[i]) - L1_delta = materials_to_deltas(materials, energy_keV) # delta values for CRL1 stacks - L1_mu = materials_to_linear_attenuation(material, energy_keV) # mu values for CRL1 stacks - L1_Feq = radii/(2*numlens*L1_delta) + lens_loc # CRL1 equivalent f in m for each stack - - #------------------> Needs refactoring <-------------------------------- - - - L1_index_n = 2**L1_Feq.size # Total number of combinations for CRL1 - L1_invF_list= np.zeros(L1_index_n) # List of equivalent 1/f in m^-1 for CRL1 - for i in range(L1_index_n): - L1_invF_list[i] = np.sum(index_to_binary_list(i, L1_Feq.size)/L1_Feq) - # Sort the L1_invF list (to avoid zigzagging) - L1_invF_list_sort_indices = np.argsort(L1_invF_list) - L1_invF_list_sorted = L1_invF_list[L1_invF_list_sort_indices] - q1_list = 1/(L1_invF_list_sorted - 1/d_StoL1) # focal position of CRL1 for all configurations (sorted) - dq1_list = q1_list - (d_Stof - d_StoL1) - - # Start generating focal size list as a function of CRL1 setting - sigma1H = (sigmaH**2 + (sigmaHp*d_StoL1)**2)**0.5 # sigma beam size before CRL1 - sigma1V = (sigmaV**2 + (sigmaVp*d_StoL1)**2)**0.5 # sigma beam size before CRL1 - L1_n1mud_list = np.zeros(L1_index_n) # List of n1*mu*d_min for all possible CRL1 configurations - L1_n1muR_list = np.zeros(L1_index_n) # List of n1*mu/R for all possible CRL1 configurations - aperL1H_list = np.zeros(L1_index_n) # absorption H aperture of CRL1 for all configurations - aperL1V_list = np.zeros(L1_index_n) # absorption V aperture of CRL1 for all configurations - diameter1_list = np.zeros(L1_index_n) # CRL1 diameter for all possible configurations - FWHM1H_list = np.zeros(L1_index_n) # H focal size at the focus of CRL1 - FWHM1V_list = np.zeros(L1_index_n) # V focal size at the focus of CRL1 - Strehl_list = np.zeros(L1_index_n) # Strehl ratio based on lens thickness error - - for i in range(L1_index_n): - # absorption aperture is a function of CRL absorption/physical aperture, incident beam size, and physical slits - L1_n1mud_list[i] = np.sum(index_to_binary_list(L1_invF_list_sort_indices[i], L1_Feq.size)*np.array(L1_mu*L1_n*d_min)) - L1_n1muR_list[i] = np.sum(index_to_binary_list(L1_invF_list_sort_indices[i], L1_Feq.size)*np.array(L1_mu*L1_n/L1_R)) - solution = root_scalar(absorptionaperture, args=(L1_n1mud_list[i], sigma1H, L1_n1muR_list[i]), bracket=[0.0, 2*sigma1H], method='bisect') - aperL1H_list[i] = solution.root*2.0 - solution = root_scalar(absorptionaperture, args=(L1_n1mud_list[i], sigma1V, L1_n1muR_list[i]), bracket=[0.0, 2*sigma1V], method='bisect') - aperL1V_list[i] = solution.root*2.0 - mask = (np.array(index_to_binary_list(L1_invF_list_sort_indices[i], L1_Feq.size)) == 1) - if np.all(mask == False): - diameter1_list[i] = np.inf - else: - diameter1_list[i] = np.min(L1_D[mask]) - aperL1H_list[i] = min(aperL1H_list[i], diameter1_list[i], slit1_H) - aperL1V_list[i] = min(aperL1V_list[i], diameter1_list[i], slit1_V) - phase_error_tmp = np.linalg.norm(index_to_binary_list(L1_invF_list_sort_indices[i], L1_Feq.size)*np.array(L1_HE*L1_delta)*2*np.pi/wl) - Strehl_list[i] = np.exp(-phase_error_tmp**2) - - # FWHMbeam size at CRL1 focus - FWHM1H_list = ((0.88*wl*q1_list/aperL1H_list)**2 + (2.355*sigmaH*q1_list/d_StoL1)**2)**0.5 - FWHM1V_list = ((0.88*wl*q1_list/aperL1V_list)**2 + (2.355*sigmaV*q1_list/d_StoL1)**2)**0.5 - if flag_HE: - FWHM1H_list *= (Strehl_list)**(-0.5) - FWHM1V_list *= (Strehl_list)**(-0.5) - FWHM_list = (FWHM1H_list*FWHM1V_list)**0.5 - #------------------> End refactoring <-------------------------------- - - return FWHM_list +def absorptionaperture(x, n1mud, sigma, n1mur): + ''' + Description: + TODO + + Parameters: + TODO + + Returns: + TODO + ''' + + numerator = np.exp(-(x**2/(2*sigma**2))) * np.exp(-n1mur*(x**2) - n1mud) + denominator = np.exp(-n1mud) + return numerator / denominator - 0.5 + + +def calc_lookup_table(num_configs, radii, materials, energy_keV, numlens, lens_loc, beam, bl, crl + slit1_H, slit1_V, thickerr, flag_HE = False): + + lookupTable = np.empty(num_configs) + + sigmaH = beam['sigmaH'] + sigmaV = beam['sigmaV'] + sigmaHp = beam['sigmaHp'] + sigmaVp = beam['sigmaVp'] + + d_StoL1 = bl['d_StoL'] + d_StoF = bl['d_Stof'] + + d_min = crl['d_min'] + + L1_D = np.zeros(len(radii)) # CRL1 diameters for each stack + for i in range(len(radii)): + L1_D[i] = lookup_diameter(radii[i]) + L1_delta = materials_to_deltas(materials, energy_keV) # delta values for CRL1 stacks + L1_mu = materials_to_linear_attenuation(materials, energy_keV) # mu values for CRL1 stacks + L1_Feq = radii/(2*numlens*L1_delta) + lens_loc # CRL1 equivalent f in m for each stack + L1_index_n = 2**L1_Feq.size # Total number of combinations for CRL1 + L1_invF_list= np.zeros(L1_index_n) # List of equivalent 1/f in m^-1 for CRL1 + for i in range(L1_index_n): + L1_invF_list[i] = np.sum(index_to_binary_list(i, L1_Feq.size)/L1_Feq) + # Sort the L1_invF list (to avoid zigzagging) + L1_invF_list_sort_indices = np.argsort(L1_invF_list) + L1_invF_list_sorted = L1_invF_list[L1_invF_list_sort_indices] + q1_list = 1/(L1_invF_list_sorted - 1/d_StoL1) # focal position of CRL1 for all configurations (sorted) + dq1_list = q1_list - (d_Stof - d_StoL1) + + # Start generating focal size list as a function of CRL1 setting + sigma1H = (sigmaH**2 + (sigmaHp*d_StoL1)**2)**0.5 # sigma beam size before CRL1 + sigma1V = (sigmaV**2 + (sigmaVp*d_StoL1)**2)**0.5 # sigma beam size before CRL1 + L1_n1mud_list = np.zeros(L1_index_n) # List of n1*mu*d_min for all possible CRL1 configurations + L1_n1muR_list = np.zeros(L1_index_n) # List of n1*mu/R for all possible CRL1 configurations + aperL1H_list = np.zeros(L1_index_n) # absorption H aperture of CRL1 for all configurations + aperL1V_list = np.zeros(L1_index_n) # absorption V aperture of CRL1 for all configurations + diameter1_list = np.zeros(L1_index_n) # CRL1 diameter for all possible configurations + FWHM1H_list = np.zeros(L1_index_n) # H focal size at the focus of CRL1 + FWHM1V_list = np.zeros(L1_index_n) # V focal size at the focus of CRL1 + Strehl_list = np.zeros(L1_index_n) # Strehl ratio based on lens thickness error + + for i in range(L1_index_n): + # absorption aperture is a function of CRL absorption/physical aperture, incident beam size, and physical slits + L1_n1mud_list[i] = np.sum(index_to_binary_list(L1_invF_list_sort_indices[i], L1_Feq.size)*np.array(L1_mu*numlens*d_min)) + L1_n1muR_list[i] = np.sum(index_to_binary_list(L1_invF_list_sort_indices[i], L1_Feq.size)*np.array(L1_mu*numlens/radii)) + solution = root_scalar(absorptionaperture, args=(L1_n1mud_list[i], sigma1H, L1_n1muR_list[i]), bracket=[0.0, 2*sigma1H], method='bisect') + aperL1H_list[i] = solution.root*2.0 + solution = root_scalar(absorptionaperture, args=(L1_n1mud_list[i], sigma1V, L1_n1muR_list[i]), bracket=[0.0, 2*sigma1V], method='bisect') + aperL1V_list[i] = solution.root*2.0 + mask = (np.array(index_to_binary_list(L1_invF_list_sort_indices[i], L1_Feq.size)) == 1) + if np.all(mask == False): + diameter1_list[i] = np.inf + else: + diameter1_list[i] = np.min(L1_D[mask]) + aperL1H_list[i] = min(aperL1H_list[i], diameter1_list[i], slit1_H) + aperL1V_list[i] = min(aperL1V_list[i], diameter1_list[i], slit1_V) + phase_error_tmp = np.linalg.norm(index_to_binary_list(L1_invF_list_sort_indices[i], L1_Feq.size)*np.array(thickerr*L1_delta)*2*np.pi/wl) + Strehl_list[i] = np.exp(-phase_error_tmp**2) + + # FWHMbeam size at CRL1 focus + FWHM1H_list = ((0.88*wl*q1_list/aperL1H_list)**2 + (2.355*sigmaH*q1_list/d_StoL1)**2)**0.5 + FWHM1V_list = ((0.88*wl*q1_list/aperL1V_list)**2 + (2.355*sigmaV*q1_list/d_StoL1)**2)**0.5 + if flag_HE: + FWHM1H_list *= (Strehl_list)**(-0.5) + FWHM1V_list *= (Strehl_list)**(-0.5) + FWHM_list = (FWHM1H_list*FWHM1V_list)**0.5 + + return FWHM_list