diff --git a/.loglogin b/.loglogin
index 35b1ec71154ea73fceccacd990fe2d2a27d612cb..e0ba8004f3c4eb8416494d9f8e61330794ad39e0 100644
--- a/.loglogin
+++ b/.loglogin
@@ -18,3 +18,4 @@
 03/27/2024 - 16:49:12 - ravioli
 03/27/2024 - 16:49:47 - ravioli
 03/27/2024 - 16:50:03 - ravioli
+04/09/2024 - 08:10:01 - ravioli
diff --git a/100idPyApp/Db/pyDevSBL.db b/100idPyApp/Db/pyDevSBL.db
index 5289f663b632af8f387db39d3ecffe14745aa9f5..bdf045a58960ebe7283b17f3511e1b5a1f60f3b6 100644
--- a/100idPyApp/Db/pyDevSBL.db
+++ b/100idPyApp/Db/pyDevSBL.db
@@ -4,60 +4,112 @@
 #
 ################################################################################
 
-record(busy, "$(P)$(INSTANCE):det0d:Acquire"){
+
+record(sseq, "$(P)$(INSTANCE):det:FullTrigger"){
+#  field(DO1, "1")
+#  field(LNK1, "$(P)$(INSTANCE):DimCalc.PROC PP")
+  field(STR2, "Set")
+  field(LNK2, "$(P)NDSA:NewArray PP")
+  field(STR3, "Acquire")
+  field(LNK3, "$(P)NDSA:Acquire PP") 
+  field(STR4, "Acquiring")
+  field(LNK4, "$(P)$(INSTANCE):det:Acquire PP")
+}
+
+record(acalcout, "$(P)$(INSTANCE):DimCalc")
+{
+	field(DTYP, "Soft Channel")
+	field(DESC, "Setting Dims of NDSA")
+	field(A, "$(XSIZE)")
+	field(B, "$(YSIZE)")
+	field(CALC, "ARR(A){0,0}+ARR(B)>>1")
+    field(SIZE, "NELM")	
+	field(OUT, "$(P)$(NDSA):Dimensions PP NMS")
+	field(DISV, "1")
+	field(NELM, "2")
+}
+
+record(busy, "$(P)$(INSTANCE):det:Acquire"){
 	field(ZNAM, "Done")
 	field(ONAM, "Acquiring")	
 }
 
-record(calcout, "$(P)$(INSTANCE):det0d:triggerCalc")
+record(calcout, "$(P)$(INSTANCE):det:triggerCalc")
 {
-  field(INPA, "$(P)$(INSTANCE):det0d:Acquire CP")
+  field(INPA, "$(P)$(INSTANCE):det:Acquire CP")
   field(CALC, "A")
   field(OOPT, "Transition To Non-zero")
-  field(OUT,  "$(P)$(INSTANCE):det0d:triggerPyDEV.RVAL PP")
-#  field(FLNK, "$(P)$(INSTANCE):det0d:triggerPyDEV.PROC")
+  field(OUT,  "$(P)$(INSTANCE):det:triggerPyDEV.RVAL PP")
+  field(FLNK, "$(P)$(INSTANCE):det:triggerPyDEV.PROC")
 }
 
-record(bo, "$(P)$(INSTANCE):det0d:triggerPyDEV"){
+#TODO make XSIZE here a PV? And then same PV could be used for DimCalc
+record(bo, "$(P)$(INSTANCE):det:triggerPyDEV"){
   field(DTYP, "pydev")
-  field(OUT, "@$(OBJ).detectorUpdate()")
+  field(OUT, "@$(OBJ).detectorUpdate(zeroD = False, nbins=$(XSIZE))")
 }
 
 
-record(ai, "$(P)$(INSTANCE):det0d:intensity"){
+record(ai, "$(P)$(INSTANCE):det:intensity"){
   field(DTYP, "pydev")
   field(INP,  "@pydev.iointr('new_intensity')")
   field(SCAN, "I/O Intr")
   field(PREC, "4")
-  field(FLNK, "$(P)$(INSTANCE):det0d:AcquireDone")
+  field(FLNK, "$(P)$(INSTANCE):det:AcquireDone")
 }
 
-record(dfanout, "$(P)$(INSTANCE):det0d:AcquireDone"){
+record(dfanout, "$(P)$(INSTANCE):det:AcquireDone"){
 	field(DOL, "0")
-	field(OUTA, "$(P)$(INSTANCE):det0d:Acquire PP")
+	field(OUTA, "$(P)$(INSTANCE):det:Acquire PP")
 }
 
 ################################################################################
 #
 #  Detector: 2-d Image
 #
-# TODO: once 0-d triggering sorted, can implement trigger setup for 2-d; will 
-#       also need to sort NDSA chain so that pydev-produced flattened image
-#       can be piped in and treated as a AD-produced image 
 #
 ################################################################################
 
 
-#!record(waveform, "$(P)$(INSTANCE):raw_image"){
-#!  field(DTYP, "pydev")
-#!  field(INP,  "@pydev.iointr('raw_image')")
-#!  field(SCAN, "I/O Intr")
-#!  field(PREC, "4")
-#!  field(NELM, "$(SIZE)")
-#!  field(FTVL, "$(TYPE)")
-#! # Need to sort value type
-#! # how to link to NDSA 
-#!}
+record(waveform, "$(P)$(INSTANCE):raw_image"){
+  field(DTYP, "pydev")
+  field(INP,  "@pydev.iointr('raw_image')")
+  field(SCAN, "I/O Intr")
+  field(PREC, "4")
+  field(NELM, "$(SIZE)")
+  field(FTVL, "$(FTVL)")
+  field(FLNK, "$(P)$(INSTANCE):imageTransfer")
+}
 
+record(acalcout, "$(P)$(INSTANCE):imageTransfer")
+{
+	field(DTYP, "Soft Channel")
+	field(DESC, "")
+	field(INAA, "$(P)$(INSTANCE):raw_image")
+	field(CALC, "AA")
+    field(SIZE, "NELM")	
+	field(OUT, "$(P)$(NDSA):ArrayIn PP NMS")
+	field(DISV, "1")
+	field(NELM, "$(SIZE)")
+}
+
+
+record(waveform, "$(P)$(INSTANCE):h_coord"){
+  field(DTYP, "pydev")
+  field(INP,  "@pydev.iointr('h_coord')")
+  field(SCAN, "I/O Intr")
+  field(PREC, "4")
+  field(NELM, "$(XSIZE)")
+  field(FTVL, "FLOAT")
+}
+
+record(waveform, "$(P)$(INSTANCE):v_coord"){
+  field(DTYP, "pydev")
+  field(INP,  "@pydev.iointr('v_coord')")
+  field(SCAN, "I/O Intr")
+  field(PREC, "4")
+  field(NELM, "$(YSIZE)")
+  field(FTVL, "FLOAT") 
+}
 
 
diff --git a/100idPyApp/op/ui/100idSBL.ui b/100idPyApp/op/ui/100idSBL.ui
index e29b2d13d26dc86162d71f5ec1b8c5d791a4823f..e2c24ed2b4ff67b4b23dfa4db4c2b4d9981e5cbe 100644
--- a/100idPyApp/op/ui/100idSBL.ui
+++ b/100idPyApp/op/ui/100idSBL.ui
@@ -170,7 +170,7 @@ QTabBar::tab:selected
 QWidget[Fill=&quot;True&quot;] { background: rgba(0,0,0,0); }</string>
          </property>
          <property name="currentIndex">
-          <number>0</number>
+          <number>2</number>
          </property>
          <widget class="QWidget" name="tab">
           <property name="Fill" stdset="0">
@@ -1850,10 +1850,10 @@ QWidget[Fill=&quot;True&quot;] { background: rgba(0,0,0,0); }</string>
               <string>Simulator #1 General;Simulator #1 Specific;Simulator #1 Image;---;Simulator #2 General;Simulator #2 Specific;Simulator #2 Image</string>
              </property>
              <property name="files">
-              <string>ADBase.ui;simDetector.ui;ad_cam_image.ui;;ADBase.ui;simDetector.ui;ad_cam_image.ui</string>
+              <string>ADBase.ui;simDetector.ui;ad_cam_image.ui</string>
              </property>
              <property name="args">
-              <string>P=100idPySBL:, R=cam1:;P=100idPySBL:, R=cam1:;P=100idPySBL:, R=cam1:;;P=100idPySBL:, R=cam2:;P=100idPySBL:, R=cam2:;P=100idPySBL:, R=cam2:</string>
+              <string>P=100idPySBL:, R=SIM1:;P=100idPySBL:, R=SIM1:;P=100idPySBL:, R=SIM1:</string>
              </property>
              <property name="stackingMode" stdset="0">
               <enum>caRowColMenu::Menu</enum>
@@ -2273,9 +2273,9 @@ QWidget[Fill=&quot;True&quot;] { background: rgba(0,0,0,0); }</string>
             </widget>
            </item>
            <item row="1" column="2">
-            <widget class="caRelatedDisplay" name="carelateddisplay_13">
+            <widget class="caRelatedDisplay" name="carelateddisplay_22">
              <property name="label">
-              <string notr="true">-</string>
+              <string notr="true">-  NDSA AD  </string>
              </property>
              <property name="foreground">
               <color>
@@ -2291,6 +2291,15 @@ QWidget[Fill=&quot;True&quot;] { background: rgba(0,0,0,0); }</string>
                <blue>0</blue>
               </color>
              </property>
+             <property name="labels">
+              <string>NDSA General;NDSA Specific;NDSA Image</string>
+             </property>
+             <property name="files">
+              <string>ADBase_100idWYM.ui;NDDriverStdArrays_100idWYM.ui;ad_cam_image.ui</string>
+             </property>
+             <property name="args">
+              <string>P=100idPySBL:, R=NDSA:;P=100idPySBL:, R=NDSA:;P=100idPySBL:, R=,IMAGE=image1</string>
+             </property>
              <property name="stackingMode" stdset="0">
               <enum>caRowColMenu::Menu</enum>
              </property>
diff --git a/100idPyApp/op/ui/ADBase_100idWYM.ui b/100idPyApp/op/ui/ADBase_100idWYM.ui
new file mode 100644
index 0000000000000000000000000000000000000000..4d0d66bae574c6eb9073f2fbe46f1ac67d723ad1
--- /dev/null
+++ b/100idPyApp/op/ui/ADBase_100idWYM.ui
@@ -0,0 +1,327 @@
+<?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>715</width>
+    <height>970</height>
+   </rect>
+  </property>
+  <property name="styleSheet">
+   <string>
+
+QWidget#centralWidget {background: rgba(187, 187, 187, 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 &gt; 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">
+   <widget class="caGraphics" name="caRectangle_0">
+    <property name="geometry">
+     <rect>
+      <x>0</x>
+      <y>4</y>
+      <width>715</width>
+      <height>25</height>
+     </rect>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>218</red>
+      <green>218</green>
+      <blue>218</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>218</red>
+      <green>218</green>
+      <blue>218</blue>
+     </color>
+    </property>
+    <property name="form">
+     <enum>caGraphics::Rectangle</enum>
+    </property>
+   </widget>
+   <widget class="caInclude" name="caInclude_0">
+    <property name="geometry">
+     <rect>
+      <x>6</x>
+      <y>35</y>
+      <width>350</width>
+      <height>340</height>
+     </rect>
+    </property>
+    <property name="macro">
+     <string/>
+    </property>
+    <property name="filename" stdset="0">
+     <string>ADSetup.ui</string>
+    </property>
+   </widget>
+   <widget class="caInclude" name="caInclude_1">
+    <property name="geometry">
+     <rect>
+      <x>360</x>
+      <y>35</y>
+      <width>350</width>
+      <height>165</height>
+     </rect>
+    </property>
+    <property name="macro">
+     <string/>
+    </property>
+    <property name="filename" stdset="0">
+     <string>ADShutter.ui</string>
+    </property>
+   </widget>
+   <widget class="caInclude" name="caInclude_2">
+    <property name="geometry">
+     <rect>
+      <x>360</x>
+      <y>855</y>
+      <width>350</width>
+      <height>110</height>
+     </rect>
+    </property>
+    <property name="macro">
+     <string/>
+    </property>
+    <property name="filename" stdset="0">
+     <string>ADAttrFile.ui</string>
+    </property>
+   </widget>
+   <widget class="caInclude" name="caInclude_3">
+    <property name="geometry">
+     <rect>
+      <x>5</x>
+      <y>850</y>
+      <width>350</width>
+      <height>60</height>
+     </rect>
+    </property>
+    <property name="macro">
+     <string/>
+    </property>
+    <property name="filename" stdset="0">
+     <string>ADDriverFile.ui</string>
+    </property>
+   </widget>
+   <widget class="caInclude" name="caInclude_4">
+    <property name="geometry">
+     <rect>
+      <x>5</x>
+      <y>465</y>
+      <width>350</width>
+      <height>380</height>
+     </rect>
+    </property>
+    <property name="macro">
+     <string/>
+    </property>
+    <property name="filename" stdset="0">
+     <string>ADReadout.ui</string>
+    </property>
+   </widget>
+   <widget class="caInclude" name="caInclude_5">
+    <property name="geometry">
+     <rect>
+      <x>360</x>
+      <y>205</y>
+      <width>350</width>
+      <height>480</height>
+     </rect>
+    </property>
+    <property name="macro">
+     <string/>
+    </property>
+    <property name="filename" stdset="0">
+     <string>ADCollect.ui</string>
+    </property>
+   </widget>
+   <widget class="caInclude" name="caInclude_6">
+    <property name="geometry">
+     <rect>
+      <x>5</x>
+      <y>380</y>
+      <width>350</width>
+      <height>80</height>
+     </rect>
+    </property>
+    <property name="macro">
+     <string/>
+    </property>
+    <property name="filename" stdset="0">
+     <string notr="true">ADPlugins_100idWYM.ui</string>
+    </property>
+   </widget>
+   <widget class="caInclude" name="caInclude_7">
+    <property name="geometry">
+     <rect>
+      <x>360</x>
+      <y>690</y>
+      <width>350</width>
+      <height>160</height>
+     </rect>
+    </property>
+    <property name="macro">
+     <string/>
+    </property>
+    <property name="filename" stdset="0">
+     <string>ADBuffers.ui</string>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_0">
+    <property name="geometry">
+     <rect>
+      <x>0</x>
+      <y>5</y>
+      <width>715</width>
+      <height>25</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Area Detector Control - $(P)$(R)</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>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color alpha="0">
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="frameShape">
+     <enum>QFrame::NoFrame</enum>
+    </property>
+   </widget>
+  </widget>
+ </widget>
+ <customwidgets>
+  <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>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/100idPyApp/op/ui/ADPlugins_100idWYM.ui b/100idPyApp/op/ui/ADPlugins_100idWYM.ui
new file mode 100644
index 0000000000000000000000000000000000000000..ca672e2071c500a087d6fef650d7bd34709b8f93
--- /dev/null
+++ b/100idPyApp/op/ui/ADPlugins_100idWYM.ui
@@ -0,0 +1,630 @@
+<?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>350</width>
+    <height>80</height>
+   </rect>
+  </property>
+  <property name="styleSheet">
+   <string>
+
+QWidget#centralWidget {background: rgba(187, 187, 187, 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 &gt; 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">
+   <widget class="caLabel" name="caLabel_0">
+    <property name="geometry">
+     <rect>
+      <x>122</x>
+      <y>10</y>
+      <width>1</width>
+      <height>40</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+    </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>0</x>
+      <y>0</y>
+      <width>350</width>
+      <height>80</height>
+     </rect>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>0</red>
+      <green>0</green>
+      <blue>0</blue>
+     </color>
+    </property>
+    <property name="linestyle" stdset="0">
+     <enum>caGraphics::Solid</enum>
+    </property>
+    <property name="lineColor">
+     <color>
+      <red>0</red>
+      <green>0</green>
+      <blue>0</blue>
+     </color>
+    </property>
+    <property name="form">
+     <enum>caGraphics::Rectangle</enum>
+    </property>
+    <property name="background" stdset="0">
+     <color alpha="0">
+      <red>0</red>
+      <green>0</green>
+      <blue>0</blue>
+     </color>
+    </property>
+   </widget>
+   <widget class="caGraphics" name="caRectangle_1">
+    <property name="geometry">
+     <rect>
+      <x>120</x>
+      <y>2</y>
+      <width>107</width>
+      <height>21</height>
+     </rect>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>218</red>
+      <green>218</green>
+      <blue>218</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>218</red>
+      <green>218</green>
+      <blue>218</blue>
+     </color>
+    </property>
+    <property name="form">
+     <enum>caGraphics::Rectangle</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_1">
+    <property name="geometry">
+     <rect>
+      <x>140</x>
+      <y>3</y>
+      <width>70</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Plugins</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>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color alpha="0">
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="frameShape">
+     <enum>QFrame::NoFrame</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_2">
+    <property name="geometry">
+     <rect>
+      <x>90</x>
+      <y>29</y>
+      <width>40</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>File</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|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="caLabel" name="caLabel_3">
+    <property name="geometry">
+     <rect>
+      <x>230</x>
+      <y>29</y>
+      <width>30</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>ROI</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|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="caRelatedDisplay" name="caRelatedDisplay_0">
+    <property name="geometry">
+     <rect>
+      <x>135</x>
+      <y>29</y>
+      <width>64</width>
+      <height>20</height>
+     </rect>
+    </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="labels">
+     <string>netCDF file #1;TIFF file #1;TIFF file #2;TIFF file #3;TIFF file #4;JPEG file #1;NeXus file #1;Magick file #1;HDF5 file #1;HDF5 file #2;HDF5 file #3;HDF5 file #4;Null file #1</string>
+    </property>
+    <property name="files">
+     <string>NDFileNetCDF.adl;NDFileTIFF.adl;NDFileTIFF.adl;NDFileTIFF.adl;NDFileTIFF.adl;NDFileJPEG.adl;NDFileNexus.adl;NDFileMagick.adl;NDFileHDF5.adl;NDFileHDF5.adl;NDFileHDF5.adl;NDFileHDF5.adl;NDFileNull.adl</string>
+    </property>
+    <property name="args">
+     <string>P=$(P), R=netCDF1:, EXT=nc;P=$(P), R=TIFF1:, EXT=tif;P=$(P), R=TIFF2:, EXT=tif;P=$(P), R=TIFF3:, EXT=tif;P=$(P), R=TIFF4:, EXT=tif;P=$(P), R=JPEG1:, EXT=jpg;P=$(P), R=Nexus1:, EXT=h5;P=$(P), R=Magick1:, EXT=tif;P=$(P), R=HDF1:, EXT=h5;P=$(P), R=HDF2:, EXT=h5;P=$(P), R=HDF3:, EXT=h5;P=$(P), R=HDF4:, EXT=h5;P=$(P), R=Null1:, EXT=null</string>
+    </property>
+    <property name="stackingMode" stdset="0">
+     <enum>caRowColMenu::Menu</enum>
+    </property>
+    <property name="removeParent" stdset="0">
+     <string>false;false;false;false;false;false;false</string>
+    </property>
+   </widget>
+   <widget class="caRelatedDisplay" name="caRelatedDisplay_1">
+    <property name="geometry">
+     <rect>
+      <x>265</x>
+      <y>29</y>
+      <width>64</width>
+      <height>20</height>
+     </rect>
+    </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="labels">
+     <string>ROI #1;ROI #2;ROI #3;ROI #4;ROI 1-4 combined</string>
+    </property>
+    <property name="files">
+     <string>NDROI.adl;NDROI.adl;NDROI.adl;NDROI.adl;NDROI4.adl</string>
+    </property>
+    <property name="args">
+     <string>P=$(P), R=ROI1:;P=$(P), R=ROI2:;P=$(P), R=ROI3:;P=$(P), R=ROI4:;P=$(P), R1=ROI1:,R2=ROI2:, R3=ROI3:,R4=ROI4:</string>
+    </property>
+    <property name="stackingMode" stdset="0">
+     <enum>caRowColMenu::Menu</enum>
+    </property>
+    <property name="removeParent" stdset="0">
+     <string>false;false;false;false;false</string>
+    </property>
+   </widget>
+   <widget class="caRelatedDisplay" name="caRelatedDisplay_2">
+    <property name="geometry">
+     <rect>
+      <x>10</x>
+      <y>29</y>
+      <width>64</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="label">
+     <string>-All</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="labels">
+     <string>Common plugins</string>
+    </property>
+    <property name="files">
+     <string>commonPlugins_100idWYM.ui</string>
+    </property>
+    <property name="args">
+     <string>P=$(P)</string>
+    </property>
+    <property name="stackingMode" stdset="0">
+     <enum>caRowColMenu::Menu</enum>
+    </property>
+    <property name="removeParent" stdset="0">
+     <string>false</string>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_4">
+    <property name="geometry">
+     <rect>
+      <x>10</x>
+      <y>55</y>
+      <width>50</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Stats</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|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="caRelatedDisplay" name="caRelatedDisplay_3">
+    <property name="geometry">
+     <rect>
+      <x>65</x>
+      <y>55</y>
+      <width>64</width>
+      <height>20</height>
+     </rect>
+    </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="labels">
+     <string>Statistics #1;Statistics #2;Statistics #3;Statistics #4;Statistics #5;Statistics 1-5</string>
+    </property>
+    <property name="files">
+     <string>NDStats.ui;NDStats.ui;NDStats.ui;NDStats.ui;NDStats.ui;NDStats5.ui</string>
+    </property>
+    <property name="args">
+     <string>P=$(P), R=Stats1:;P=$(P), R=Stats2:;P=$(P), R=Stats3:;P=$(P), R=Stats4:;P=$(P), R=Stats5:;P=$(P), R1=Stats1:,R2=Stats2:,R3=Stats3:,R4=Stats4:,R5=Stats5:</string>
+    </property>
+    <property name="stackingMode" stdset="0">
+     <enum>caRowColMenu::Menu</enum>
+    </property>
+    <property name="removeParent" stdset="0">
+     <string>false;false;false;false;false;false</string>
+    </property>
+   </widget>
+   <widget class="caRelatedDisplay" name="caRelatedDisplay_4">
+    <property name="geometry">
+     <rect>
+      <x>177</x>
+      <y>55</y>
+      <width>80</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="label">
+     <string>Other #1</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="labels">
+     <string>Image #1;Pva #1;Process #1;Transform #1;Color convert #1;Color convert #2;Overlay #1;Overlays 1-8;Circular buffer #1;ROI Statistics #1;Attribute #1;FFT #1;Scatter #1;Gather #1;Codec #1;Codec #2</string>
+    </property>
+    <property name="files">
+     <string>NDStdArrays.adl;NDPva.adl;NDProcess.adl;NDTransform.adl;NDColorConvert.adl;NDColorConvert.adl;NDOverlay.adl;NDOverlay8.adl;NDCircularBuff.adl;NDROIStat.adl;NDPluginAttribute.adl;NDFFT.adl;NDScatter.adl;NDGather8.adl;NDCodec.adl;NDCodec.adl</string>
+    </property>
+    <property name="args">
+     <string>P=$(P), R=image1:;P=$(P), R=Pva1:;P=$(P), R=Proc1:;P=$(P), R=Trans1:;P=$(P), R=CC1:;P=$(P), R=CC2:;P=$(P), R=Over1:;P=$(P), R=Over1:,O1=Over1:1:,O2=Over1:2:,O3=Over1:3:,O4=Over1:4:,O5=Over1:5:,O6=Over1:6:,O7=Over1:7:,O8=Over1:8:;P=$(P), R=CB1:;P=$(P), R=ROIStat1:;P=$(P), R=Attr1:;P=$(P), R=FFT1:;P=$(P), R=Scatter1:;P=$(P), R=Gather1:;P=$(P), R=Codec1:;P=$(P), R=Codec2:</string>
+    </property>
+    <property name="stackingMode" stdset="0">
+     <enum>caRowColMenu::Menu</enum>
+    </property>
+    <property name="removeParent" stdset="0">
+     <string>false;false;false;false;false;false;false;false;false;false;false;false;false;false;false;false</string>
+    </property>
+   </widget>
+   <widget class="caRelatedDisplay" name="caRelatedDisplay_5">
+    <property name="geometry">
+     <rect>
+      <x>264</x>
+      <y>55</y>
+      <width>80</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="label">
+     <string>Other #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="labels">
+     <string>Image #2;Scan #1;Acquire Sequence;devIocStats;Open CV #1;Edge #1</string>
+    </property>
+    <property name="files">
+     <string>NDStdArrays.adl;scan_more.adl;yySseq.adl;ioc_stats_soft.adl;ADCompVision.adl;NDPluginEdge.adl</string>
+    </property>
+    <property name="args">
+     <string>P=$(P), R=image2:;P=$(P), S=scan1, N=1;P=$(P), S=AcquireSequence;ioc=$(P);P=$(P), R=CV1:;P=$(P), R=Edge1:</string>
+    </property>
+    <property name="stackingMode" stdset="0">
+     <enum>caRowColMenu::Menu</enum>
+    </property>
+    <property name="removeParent" stdset="0">
+     <string>false;false;false;false;false;false</string>
+    </property>
+   </widget>
+   <zorder>caLabel_0</zorder>
+   <zorder>caRectangle_0</zorder>
+   <zorder>caRectangle_1</zorder>
+   <zorder>caLabel_1</zorder>
+   <zorder>caLabel_2</zorder>
+   <zorder>caLabel_3</zorder>
+   <zorder>caLabel_4</zorder>
+   <zorder>caRelatedDisplay_0</zorder>
+   <zorder>caRelatedDisplay_1</zorder>
+   <zorder>caRelatedDisplay_2</zorder>
+   <zorder>caRelatedDisplay_3</zorder>
+   <zorder>caRelatedDisplay_4</zorder>
+   <zorder>caRelatedDisplay_5</zorder>
+  </widget>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>caRelatedDisplay</class>
+   <extends>QWidget</extends>
+   <header>caRelatedDisplay</header>
+  </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/op/ui/NDDriverStdArrays_100idWYM.ui b/100idPyApp/op/ui/NDDriverStdArrays_100idWYM.ui
new file mode 100644
index 0000000000000000000000000000000000000000..a40fc6052d803921461eb0ab0d49498a8175fae2
--- /dev/null
+++ b/100idPyApp/op/ui/NDDriverStdArrays_100idWYM.ui
@@ -0,0 +1,3550 @@
+<?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>715</width>
+    <height>760</height>
+   </rect>
+  </property>
+  <property name="styleSheet">
+   <string>
+
+QWidget#centralWidget {background: rgba(187, 187, 187, 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 &gt; 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">
+   <widget class="caGraphics" name="caRectangle_0">
+    <property name="geometry">
+     <rect>
+      <x>0</x>
+      <y>4</y>
+      <width>715</width>
+      <height>25</height>
+     </rect>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>218</red>
+      <green>218</green>
+      <blue>218</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>218</red>
+      <green>218</green>
+      <blue>218</blue>
+     </color>
+    </property>
+    <property name="form">
+     <enum>caGraphics::Rectangle</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_0">
+    <property name="geometry">
+     <rect>
+      <x>0</x>
+      <y>5</y>
+      <width>715</width>
+      <height>25</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>NDDriverStdArrays - $(P)$(R)</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>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color alpha="0">
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="frameShape">
+     <enum>QFrame::NoFrame</enum>
+    </property>
+   </widget>
+   <widget class="caInclude" name="caInclude_0">
+    <property name="geometry">
+     <rect>
+      <x>5</x>
+      <y>35</y>
+      <width>352</width>
+      <height>342</height>
+     </rect>
+    </property>
+    <property name="macro">
+     <string/>
+    </property>
+    <property name="filename" stdset="0">
+     <string>ADSetup.ui</string>
+    </property>
+   </widget>
+   <widget class="caInclude" name="caInclude_1">
+    <property name="geometry">
+     <rect>
+      <x>360</x>
+      <y>645</y>
+      <width>352</width>
+      <height>112</height>
+     </rect>
+    </property>
+    <property name="macro">
+     <string/>
+    </property>
+    <property name="filename" stdset="0">
+     <string>ADAttrFile.ui</string>
+    </property>
+   </widget>
+   <widget class="caInclude" name="caInclude_2">
+    <property name="geometry">
+     <rect>
+      <x>5</x>
+      <y>380</y>
+      <width>352</width>
+      <height>82</height>
+     </rect>
+    </property>
+    <property name="macro">
+     <string>P=$(P);</string>
+    </property>
+    <property name="filename" stdset="0">
+     <string notr="true">ADPlugins_100idWYM.ui</string>
+    </property>
+   </widget>
+   <widget class="caInclude" name="caInclude_3">
+    <property name="geometry">
+     <rect>
+      <x>360</x>
+      <y>315</y>
+      <width>352</width>
+      <height>162</height>
+     </rect>
+    </property>
+    <property name="macro">
+     <string/>
+    </property>
+    <property name="filename" stdset="0">
+     <string>ADBuffers.ui</string>
+    </property>
+   </widget>
+   <widget class="caGraphics" name="caRectangle_1">
+    <property name="geometry">
+     <rect>
+      <x>360</x>
+      <y>35</y>
+      <width>350</width>
+      <height>275</height>
+     </rect>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>0</red>
+      <green>0</green>
+      <blue>0</blue>
+     </color>
+    </property>
+    <property name="linestyle" stdset="0">
+     <enum>caGraphics::Solid</enum>
+    </property>
+    <property name="lineColor">
+     <color>
+      <red>0</red>
+      <green>0</green>
+      <blue>0</blue>
+     </color>
+    </property>
+    <property name="form">
+     <enum>caGraphics::Rectangle</enum>
+    </property>
+    <property name="background" stdset="0">
+     <color alpha="0">
+      <red>0</red>
+      <green>0</green>
+      <blue>0</blue>
+     </color>
+    </property>
+   </widget>
+   <widget class="caGraphics" name="caRectangle_2">
+    <property name="geometry">
+     <rect>
+      <x>483</x>
+      <y>37</y>
+      <width>105</width>
+      <height>21</height>
+     </rect>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>218</red>
+      <green>218</green>
+      <blue>218</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>218</red>
+      <green>218</green>
+      <blue>218</blue>
+     </color>
+    </property>
+    <property name="form">
+     <enum>caGraphics::Rectangle</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_1">
+    <property name="geometry">
+     <rect>
+      <x>500</x>
+      <y>38</y>
+      <width>70</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Collect</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>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color alpha="0">
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="frameShape">
+     <enum>QFrame::NoFrame</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_2">
+    <property name="geometry">
+     <rect>
+      <x>455</x>
+      <y>63</y>
+      <width>80</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string># Images</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caTextEntry" name="caTextEntry_0">
+    <property name="geometry">
+     <rect>
+      <x>540</x>
+      <y>63</y>
+      <width>60</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)NumImages</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>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_0">
+    <property name="geometry">
+     <rect>
+      <x>605</x>
+      <y>64</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)NumImages_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_1">
+    <property name="geometry">
+     <rect>
+      <x>605</x>
+      <y>89</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)NumImagesCounter_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_3">
+    <property name="geometry">
+     <rect>
+      <x>365</x>
+      <y>88</y>
+      <width>170</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string># Images complete</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caLabel" name="caLabel_4">
+    <property name="geometry">
+     <rect>
+      <x>385</x>
+      <y>113</y>
+      <width>100</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Image mode</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caMenu" name="caMenu_0">
+    <property name="geometry">
+     <rect>
+      <x>490</x>
+      <y>113</y>
+      <width>120</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)ImageMode</string>
+    </property>
+    <property name="colorMode">
+     <enum>caMenu::Static</enum>
+    </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>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_2">
+    <property name="geometry">
+     <rect>
+      <x>615</x>
+      <y>115</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)ImageMode_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::string</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_5">
+    <property name="geometry">
+     <rect>
+      <x>583</x>
+      <y>138</y>
+      <width>40</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Done</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>40</red>
+      <green>147</green>
+      <blue>21</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color alpha="0">
+      <red>40</red>
+      <green>147</green>
+      <blue>21</blue>
+     </color>
+    </property>
+    <property name="frameShape">
+     <enum>QFrame::NoFrame</enum>
+    </property>
+    <property name="visibility">
+     <enum>caLabel::IfZero</enum>
+    </property>
+    <property name="visibilityCalc">
+     <string>A</string>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)Acquire</string>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_6">
+    <property name="geometry">
+     <rect>
+      <x>554</x>
+      <y>138</y>
+      <width>100</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Collecting</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>251</red>
+      <green>243</green>
+      <blue>74</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color alpha="0">
+      <red>251</red>
+      <green>243</green>
+      <blue>74</blue>
+     </color>
+    </property>
+    <property name="frameShape">
+     <enum>QFrame::NoFrame</enum>
+    </property>
+    <property name="visibility">
+     <enum>caLabel::IfNotZero</enum>
+    </property>
+    <property name="visibilityCalc">
+     <string>A</string>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)Acquire</string>
+    </property>
+   </widget>
+   <widget class="caMessageButton" name="caMessageButton_0">
+    <property name="geometry">
+     <rect>
+      <x>540</x>
+      <y>158</y>
+      <width>59</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="fontScaleMode">
+     <enum>EPushButton::WidthAndHeight</enum>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)Acquire</string>
+    </property>
+    <property name="label">
+     <string>Start</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</string>
+    </property>
+    <property name="colorMode">
+     <enum>caMessageButton::Static</enum>
+    </property>
+   </widget>
+   <widget class="caMessageButton" name="caMessageButton_1">
+    <property name="geometry">
+     <rect>
+      <x>607</x>
+      <y>158</y>
+      <width>59</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="fontScaleMode">
+     <enum>EPushButton::WidthAndHeight</enum>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)Acquire</string>
+    </property>
+    <property name="label">
+     <string>Stop</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</string>
+    </property>
+    <property name="colorMode">
+     <enum>caMessageButton::Static</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_7">
+    <property name="geometry">
+     <rect>
+      <x>465</x>
+      <y>158</y>
+      <width>70</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Acquire</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caLabel" name="caLabel_8">
+    <property name="geometry">
+     <rect>
+      <x>395</x>
+      <y>183</y>
+      <width>140</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Detector state</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caLineEdit" name="caLineEdit_3">
+    <property name="geometry">
+     <rect>
+      <x>540</x>
+      <y>183</y>
+      <width>158</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)DetectorState_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>218</red>
+      <green>218</green>
+      <blue>218</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Alarm_Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::string</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_9">
+    <property name="geometry">
+     <rect>
+      <x>365</x>
+      <y>208</y>
+      <width>60</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Status</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caLineEdit" name="caLineEdit_4">
+    <property name="geometry">
+     <rect>
+      <x>430</x>
+      <y>208</y>
+      <width>275</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)StatusMessage_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>218</red>
+      <green>218</green>
+      <blue>218</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::string</enum>
+    </property>
+   </widget>
+   <widget class="caTextEntry" name="caTextEntry_1">
+    <property name="geometry">
+     <rect>
+      <x>540</x>
+      <y>233</y>
+      <width>60</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)ArrayCounter</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>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_10">
+    <property name="geometry">
+     <rect>
+      <x>405</x>
+      <y>233</y>
+      <width>130</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Image counter</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caLineEdit" name="caLineEdit_5">
+    <property name="geometry">
+     <rect>
+      <x>605</x>
+      <y>234</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)ArrayCounter_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_11">
+    <property name="geometry">
+     <rect>
+      <x>435</x>
+      <y>258</y>
+      <width>100</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Image rate</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caLineEdit" name="caLineEdit_6">
+    <property name="geometry">
+     <rect>
+      <x>540</x>
+      <y>259</y>
+      <width>100</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)ArrayRate_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_12">
+    <property name="geometry">
+     <rect>
+      <x>365</x>
+      <y>283</y>
+      <width>150</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Array callbacks</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caMenu" name="caMenu_1">
+    <property name="geometry">
+     <rect>
+      <x>520</x>
+      <y>283</y>
+      <width>90</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)ArrayCallbacks</string>
+    </property>
+    <property name="colorMode">
+     <enum>caMenu::Static</enum>
+    </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>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_7">
+    <property name="geometry">
+     <rect>
+      <x>615</x>
+      <y>285</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)ArrayCallbacks_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::string</enum>
+    </property>
+   </widget>
+   <widget class="caGraphics" name="caRectangle_3">
+    <property name="geometry">
+     <rect>
+      <x>122</x>
+      <y>467</y>
+      <width>117</width>
+      <height>21</height>
+     </rect>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>218</red>
+      <green>218</green>
+      <blue>218</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>218</red>
+      <green>218</green>
+      <blue>218</blue>
+     </color>
+    </property>
+    <property name="form">
+     <enum>caGraphics::Rectangle</enum>
+    </property>
+   </widget>
+   <widget class="caGraphics" name="caRectangle_4">
+    <property name="geometry">
+     <rect>
+      <x>5</x>
+      <y>465</y>
+      <width>350</width>
+      <height>280</height>
+     </rect>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>0</red>
+      <green>0</green>
+      <blue>0</blue>
+     </color>
+    </property>
+    <property name="linestyle" stdset="0">
+     <enum>caGraphics::Solid</enum>
+    </property>
+    <property name="lineColor">
+     <color>
+      <red>0</red>
+      <green>0</green>
+      <blue>0</blue>
+     </color>
+    </property>
+    <property name="form">
+     <enum>caGraphics::Rectangle</enum>
+    </property>
+    <property name="background" stdset="0">
+     <color alpha="0">
+      <red>0</red>
+      <green>0</green>
+      <blue>0</blue>
+     </color>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_13">
+    <property name="geometry">
+     <rect>
+      <x>101</x>
+      <y>468</y>
+      <width>159</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Readout</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>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color alpha="0">
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="frameShape">
+     <enum>QFrame::NoFrame</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_14">
+    <property name="geometry">
+     <rect>
+      <x>10</x>
+      <y>493</y>
+      <width>120</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string># Dimensions</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caTextEntry" name="caTextEntry_2">
+    <property name="geometry">
+     <rect>
+      <x>135</x>
+      <y>493</y>
+      <width>80</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)NDimensions</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>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_8">
+    <property name="geometry">
+     <rect>
+      <x>220</x>
+      <y>494</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)NDimensions_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_15">
+    <property name="geometry">
+     <rect>
+      <x>30</x>
+      <y>544</y>
+      <width>100</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string># elements</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caLineEdit" name="caLineEdit_9">
+    <property name="geometry">
+     <rect>
+      <x>135</x>
+      <y>545</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)NumElements_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_16">
+    <property name="geometry">
+     <rect>
+      <x>10</x>
+      <y>569</y>
+      <width>120</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Next element</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caTextEntry" name="caTextEntry_3">
+    <property name="geometry">
+     <rect>
+      <x>135</x>
+      <y>569</y>
+      <width>80</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)NextElement</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>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_10">
+    <property name="geometry">
+     <rect>
+      <x>220</x>
+      <y>570</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)NextElement_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_17">
+    <property name="geometry">
+     <rect>
+      <x>10</x>
+      <y>518</y>
+      <width>100</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Array size</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caLineEdit" name="caLineEdit_11">
+    <property name="geometry">
+     <rect>
+      <x>169</x>
+      <y>519</y>
+      <width>40</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)ArraySize1</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_12">
+    <property name="geometry">
+     <rect>
+      <x>124</x>
+      <y>519</y>
+      <width>40</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)ArraySize0</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_13">
+    <property name="geometry">
+     <rect>
+      <x>214</x>
+      <y>519</y>
+      <width>40</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)ArraySize2</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_14">
+    <property name="geometry">
+     <rect>
+      <x>259</x>
+      <y>519</y>
+      <width>40</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)ArraySize3</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_15">
+    <property name="geometry">
+     <rect>
+      <x>304</x>
+      <y>519</y>
+      <width>40</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)ArraySize4</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_16">
+    <property name="geometry">
+     <rect>
+      <x>135</x>
+      <y>720</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)ColorMode_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::string</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_18">
+    <property name="geometry">
+     <rect>
+      <x>30</x>
+      <y>719</y>
+      <width>100</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Color mode</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caLineEdit" name="caLineEdit_17">
+    <property name="geometry">
+     <rect>
+      <x>135</x>
+      <y>695</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)DataType_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::string</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_19">
+    <property name="geometry">
+     <rect>
+      <x>40</x>
+      <y>694</y>
+      <width>90</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Data type</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caLabel" name="caLabel_20">
+    <property name="geometry">
+     <rect>
+      <x>10</x>
+      <y>669</y>
+      <width>180</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Image size (bytes)</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caLineEdit" name="caLineEdit_18">
+    <property name="geometry">
+     <rect>
+      <x>195</x>
+      <y>670</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)ArraySize_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_21">
+    <property name="geometry">
+     <rect>
+      <x>10</x>
+      <y>644</y>
+      <width>110</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Actual size</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caFrame" name="caFrame_4">
+    <property name="geometry">
+     <rect>
+      <x>124</x>
+      <y>645</y>
+      <width>222</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <widget class="caLineEdit" name="caLineEdit_19">
+     <property name="geometry">
+      <rect>
+       <x>45</x>
+       <y>0</y>
+       <width>40</width>
+       <height>18</height>
+      </rect>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+     </property>
+     <property name="channel" stdset="0">
+      <string>$(P)$(R)ArraySize1_RBV</string>
+     </property>
+     <property name="foreground">
+      <color>
+       <red>10</red>
+       <green>0</green>
+       <blue>184</blue>
+      </color>
+     </property>
+     <property name="background">
+      <color>
+       <red>187</red>
+       <green>187</green>
+       <blue>187</blue>
+      </color>
+     </property>
+     <property name="colorMode">
+      <enum>caLineEdit::Static</enum>
+     </property>
+     <property name="precisionMode">
+      <enum>caLineEdit::Channel</enum>
+     </property>
+     <property name="limitsMode">
+      <enum>caLineEdit::Channel</enum>
+     </property>
+     <property name="maxValue">
+      <double>1.000000000000000</double>
+     </property>
+     <property name="minValue">
+      <double>0.000000000000000</double>
+     </property>
+     <property name="fontScaleMode" stdset="0">
+      <enum>caLineEdit::WidthAndHeight</enum>
+     </property>
+     <property name="formatType">
+      <enum>caLineEdit::decimal</enum>
+     </property>
+    </widget>
+    <widget class="caLineEdit" name="caLineEdit_20">
+     <property name="geometry">
+      <rect>
+       <x>0</x>
+       <y>0</y>
+       <width>40</width>
+       <height>18</height>
+      </rect>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+     </property>
+     <property name="channel" stdset="0">
+      <string>$(P)$(R)ArraySize0_RBV</string>
+     </property>
+     <property name="foreground">
+      <color>
+       <red>10</red>
+       <green>0</green>
+       <blue>184</blue>
+      </color>
+     </property>
+     <property name="background">
+      <color>
+       <red>187</red>
+       <green>187</green>
+       <blue>187</blue>
+      </color>
+     </property>
+     <property name="colorMode">
+      <enum>caLineEdit::Static</enum>
+     </property>
+     <property name="precisionMode">
+      <enum>caLineEdit::Channel</enum>
+     </property>
+     <property name="limitsMode">
+      <enum>caLineEdit::Channel</enum>
+     </property>
+     <property name="maxValue">
+      <double>1.000000000000000</double>
+     </property>
+     <property name="minValue">
+      <double>0.000000000000000</double>
+     </property>
+     <property name="fontScaleMode" stdset="0">
+      <enum>caLineEdit::WidthAndHeight</enum>
+     </property>
+     <property name="formatType">
+      <enum>caLineEdit::decimal</enum>
+     </property>
+    </widget>
+    <widget class="caLineEdit" name="caLineEdit_21">
+     <property name="geometry">
+      <rect>
+       <x>90</x>
+       <y>0</y>
+       <width>40</width>
+       <height>18</height>
+      </rect>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+     </property>
+     <property name="channel" stdset="0">
+      <string>$(P)$(R)ArraySize2_RBV</string>
+     </property>
+     <property name="foreground">
+      <color>
+       <red>10</red>
+       <green>0</green>
+       <blue>184</blue>
+      </color>
+     </property>
+     <property name="background">
+      <color>
+       <red>187</red>
+       <green>187</green>
+       <blue>187</blue>
+      </color>
+     </property>
+     <property name="colorMode">
+      <enum>caLineEdit::Static</enum>
+     </property>
+     <property name="precisionMode">
+      <enum>caLineEdit::Channel</enum>
+     </property>
+     <property name="limitsMode">
+      <enum>caLineEdit::Channel</enum>
+     </property>
+     <property name="maxValue">
+      <double>1.000000000000000</double>
+     </property>
+     <property name="minValue">
+      <double>0.000000000000000</double>
+     </property>
+     <property name="fontScaleMode" stdset="0">
+      <enum>caLineEdit::WidthAndHeight</enum>
+     </property>
+     <property name="formatType">
+      <enum>caLineEdit::decimal</enum>
+     </property>
+    </widget>
+    <widget class="caLineEdit" name="caLineEdit_22">
+     <property name="geometry">
+      <rect>
+       <x>135</x>
+       <y>0</y>
+       <width>40</width>
+       <height>18</height>
+      </rect>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+     </property>
+     <property name="channel" stdset="0">
+      <string>$(P)$(R)ArraySize3_RBV</string>
+     </property>
+     <property name="foreground">
+      <color>
+       <red>10</red>
+       <green>0</green>
+       <blue>184</blue>
+      </color>
+     </property>
+     <property name="background">
+      <color>
+       <red>187</red>
+       <green>187</green>
+       <blue>187</blue>
+      </color>
+     </property>
+     <property name="colorMode">
+      <enum>caLineEdit::Static</enum>
+     </property>
+     <property name="precisionMode">
+      <enum>caLineEdit::Channel</enum>
+     </property>
+     <property name="limitsMode">
+      <enum>caLineEdit::Channel</enum>
+     </property>
+     <property name="maxValue">
+      <double>1.000000000000000</double>
+     </property>
+     <property name="minValue">
+      <double>0.000000000000000</double>
+     </property>
+     <property name="fontScaleMode" stdset="0">
+      <enum>caLineEdit::WidthAndHeight</enum>
+     </property>
+     <property name="formatType">
+      <enum>caLineEdit::decimal</enum>
+     </property>
+    </widget>
+    <widget class="caLineEdit" name="caLineEdit_23">
+     <property name="geometry">
+      <rect>
+       <x>180</x>
+       <y>0</y>
+       <width>40</width>
+       <height>18</height>
+      </rect>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+     </property>
+     <property name="channel" stdset="0">
+      <string>$(P)$(R)ArraySize4_RBV</string>
+     </property>
+     <property name="foreground">
+      <color>
+       <red>10</red>
+       <green>0</green>
+       <blue>184</blue>
+      </color>
+     </property>
+     <property name="background">
+      <color>
+       <red>187</red>
+       <green>187</green>
+       <blue>187</blue>
+      </color>
+     </property>
+     <property name="colorMode">
+      <enum>caLineEdit::Static</enum>
+     </property>
+     <property name="precisionMode">
+      <enum>caLineEdit::Channel</enum>
+     </property>
+     <property name="limitsMode">
+      <enum>caLineEdit::Channel</enum>
+     </property>
+     <property name="maxValue">
+      <double>1.000000000000000</double>
+     </property>
+     <property name="minValue">
+      <double>0.000000000000000</double>
+     </property>
+     <property name="fontScaleMode" stdset="0">
+      <enum>caLineEdit::WidthAndHeight</enum>
+     </property>
+     <property name="formatType">
+      <enum>caLineEdit::decimal</enum>
+     </property>
+    </widget>
+   </widget>
+   <widget class="caLabel" name="caLabel_22">
+    <property name="geometry">
+     <rect>
+      <x>10</x>
+      <y>594</y>
+      <width>120</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Stride</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caTextEntry" name="caTextEntry_4">
+    <property name="geometry">
+     <rect>
+      <x>135</x>
+      <y>594</y>
+      <width>80</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)Stride</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>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_24">
+    <property name="geometry">
+     <rect>
+      <x>220</x>
+      <y>595</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)Stride_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_23">
+    <property name="geometry">
+     <rect>
+      <x>10</x>
+      <y>619</y>
+      <width>120</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Fill value</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caTextEntry" name="caTextEntry_5">
+    <property name="geometry">
+     <rect>
+      <x>135</x>
+      <y>619</y>
+      <width>80</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)FillValue</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>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_25">
+    <property name="geometry">
+     <rect>
+      <x>220</x>
+      <y>620</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)FillValue_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caGraphics" name="caRectangle_5">
+    <property name="geometry">
+     <rect>
+      <x>360</x>
+      <y>480</y>
+      <width>350</width>
+      <height>160</height>
+     </rect>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>0</red>
+      <green>0</green>
+      <blue>0</blue>
+     </color>
+    </property>
+    <property name="linestyle" stdset="0">
+     <enum>caGraphics::Solid</enum>
+    </property>
+    <property name="lineColor">
+     <color>
+      <red>0</red>
+      <green>0</green>
+      <blue>0</blue>
+     </color>
+    </property>
+    <property name="form">
+     <enum>caGraphics::Rectangle</enum>
+    </property>
+    <property name="background" stdset="0">
+     <color alpha="0">
+      <red>0</red>
+      <green>0</green>
+      <blue>0</blue>
+     </color>
+    </property>
+   </widget>
+   <widget class="caGraphics" name="caRectangle_6">
+    <property name="geometry">
+     <rect>
+      <x>495</x>
+      <y>482</y>
+      <width>80</width>
+      <height>21</height>
+     </rect>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>218</red>
+      <green>218</green>
+      <blue>218</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>218</red>
+      <green>218</green>
+      <blue>218</blue>
+     </color>
+    </property>
+    <property name="form">
+     <enum>caGraphics::Rectangle</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_24">
+    <property name="geometry">
+     <rect>
+      <x>510</x>
+      <y>483</y>
+      <width>50</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Other</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>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color alpha="0">
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="frameShape">
+     <enum>QFrame::NoFrame</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_25">
+    <property name="geometry">
+     <rect>
+      <x>385</x>
+      <y>510</y>
+      <width>110</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Append mode</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caLabel" name="caLabel_26">
+    <property name="geometry">
+     <rect>
+      <x>365</x>
+      <y>535</y>
+      <width>130</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Callback mode</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caMenu" name="caMenu_2">
+    <property name="geometry">
+     <rect>
+      <x>500</x>
+      <y>510</y>
+      <width>100</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)AppendMode</string>
+    </property>
+    <property name="colorMode">
+     <enum>caMenu::Static</enum>
+    </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>
+   </widget>
+   <widget class="caMenu" name="caMenu_3">
+    <property name="geometry">
+     <rect>
+      <x>500</x>
+      <y>535</y>
+      <width>100</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)CallbackMode</string>
+    </property>
+    <property name="colorMode">
+     <enum>caMenu::Static</enum>
+    </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>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_26">
+    <property name="geometry">
+     <rect>
+      <x>605</x>
+      <y>510</y>
+      <width>90</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)AppendMode_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::string</enum>
+    </property>
+   </widget>
+   <widget class="caMessageButton" name="caMessageButton_2">
+    <property name="geometry">
+     <rect>
+      <x>450</x>
+      <y>560</y>
+      <width>120</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="fontScaleMode">
+     <enum>EPushButton::WidthAndHeight</enum>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)DoCallbacks</string>
+    </property>
+    <property name="label">
+     <string>Do callbacks</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</string>
+    </property>
+    <property name="colorMode">
+     <enum>caMessageButton::Static</enum>
+    </property>
+   </widget>
+   <widget class="caMessageButton" name="caMessageButton_3">
+    <property name="geometry">
+     <rect>
+      <x>450</x>
+      <y>585</y>
+      <width>120</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="fontScaleMode">
+     <enum>EPushButton::WidthAndHeight</enum>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)NewArray</string>
+    </property>
+    <property name="label">
+     <string>New array</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</string>
+    </property>
+    <property name="colorMode">
+     <enum>caMessageButton::Static</enum>
+    </property>
+   </widget>
+   <widget class="caMessageButton" name="caMessageButton_4">
+    <property name="geometry">
+     <rect>
+      <x>450</x>
+      <y>610</y>
+      <width>120</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="fontScaleMode">
+     <enum>EPushButton::WidthAndHeight</enum>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)ArrayComplete</string>
+    </property>
+    <property name="label">
+     <string>Array complete</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</string>
+    </property>
+    <property name="colorMode">
+     <enum>caMessageButton::Static</enum>
+    </property>
+   </widget>
+   <widget class="caMenu" name="caMenu_4">
+    <property name="geometry">
+     <rect>
+      <x>575</x>
+      <y>560</y>
+      <width>90</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="channel" stdset="0">
+     <string>$(P)$(R)DoCallbacksScan.SCAN</string>
+    </property>
+    <property name="colorMode">
+     <enum>caMenu::Static</enum>
+    </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>
+   </widget>
+   <zorder>caRectangle_0</zorder>
+   <zorder>caLabel_0</zorder>
+   <zorder>caInclude_0</zorder>
+   <zorder>caInclude_1</zorder>
+   <zorder>caInclude_2</zorder>
+   <zorder>caInclude_3</zorder>
+   <zorder>caRectangle_1</zorder>
+   <zorder>caRectangle_2</zorder>
+   <zorder>caLabel_1</zorder>
+   <zorder>caLabel_2</zorder>
+   <zorder>caLabel_3</zorder>
+   <zorder>caLabel_4</zorder>
+   <zorder>caLabel_5</zorder>
+   <zorder>caLabel_6</zorder>
+   <zorder>caLabel_7</zorder>
+   <zorder>caLabel_8</zorder>
+   <zorder>caLabel_9</zorder>
+   <zorder>caLabel_10</zorder>
+   <zorder>caLabel_11</zorder>
+   <zorder>caLabel_12</zorder>
+   <zorder>caRectangle_3</zorder>
+   <zorder>caRectangle_4</zorder>
+   <zorder>caLabel_13</zorder>
+   <zorder>caLabel_14</zorder>
+   <zorder>caLabel_15</zorder>
+   <zorder>caLabel_16</zorder>
+   <zorder>caLabel_17</zorder>
+   <zorder>caLabel_18</zorder>
+   <zorder>caLabel_19</zorder>
+   <zorder>caLabel_20</zorder>
+   <zorder>caLabel_21</zorder>
+   <zorder>caFrame_4</zorder>
+   <zorder>caLabel_22</zorder>
+   <zorder>caLabel_23</zorder>
+   <zorder>caRectangle_5</zorder>
+   <zorder>caRectangle_6</zorder>
+   <zorder>caLabel_24</zorder>
+   <zorder>caLabel_25</zorder>
+   <zorder>caLabel_26</zorder>
+   <zorder>caTextEntry_0</zorder>
+   <zorder>caLineEdit_0</zorder>
+   <zorder>caLineEdit_1</zorder>
+   <zorder>caMenu_0</zorder>
+   <zorder>caLineEdit_2</zorder>
+   <zorder>caMessageButton_0</zorder>
+   <zorder>caMessageButton_1</zorder>
+   <zorder>caLineEdit_3</zorder>
+   <zorder>caLineEdit_4</zorder>
+   <zorder>caTextEntry_1</zorder>
+   <zorder>caLineEdit_5</zorder>
+   <zorder>caLineEdit_6</zorder>
+   <zorder>caMenu_1</zorder>
+   <zorder>caLineEdit_7</zorder>
+   <zorder>caTextEntry_2</zorder>
+   <zorder>caLineEdit_8</zorder>
+   <zorder>caLineEdit_9</zorder>
+   <zorder>caTextEntry_3</zorder>
+   <zorder>caLineEdit_10</zorder>
+   <zorder>caLineEdit_11</zorder>
+   <zorder>caLineEdit_12</zorder>
+   <zorder>caLineEdit_13</zorder>
+   <zorder>caLineEdit_14</zorder>
+   <zorder>caLineEdit_15</zorder>
+   <zorder>caLineEdit_16</zorder>
+   <zorder>caLineEdit_17</zorder>
+   <zorder>caLineEdit_18</zorder>
+   <zorder>caTextEntry_4</zorder>
+   <zorder>caLineEdit_24</zorder>
+   <zorder>caTextEntry_5</zorder>
+   <zorder>caLineEdit_25</zorder>
+   <zorder>caMenu_2</zorder>
+   <zorder>caMenu_3</zorder>
+   <zorder>caLineEdit_26</zorder>
+   <zorder>caMessageButton_2</zorder>
+   <zorder>caMessageButton_3</zorder>
+   <zorder>caMessageButton_4</zorder>
+   <zorder>caMenu_4</zorder>
+  </widget>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>caMenu</class>
+   <extends>QComboBox</extends>
+   <header>caMenu</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/commonPlugins_100idWYM.ui b/100idPyApp/op/ui/commonPlugins_100idWYM.ui
new file mode 100644
index 0000000000000000000000000000000000000000..87097e83a7b51e961a44c10b9e27b1c1add6b691
--- /dev/null
+++ b/100idPyApp/op/ui/commonPlugins_100idWYM.ui
@@ -0,0 +1,555 @@
+<?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>935</width>
+    <height>584</height>
+   </rect>
+  </property>
+  <property name="styleSheet">
+   <string>
+
+QWidget#centralWidget {background: rgba(187, 187, 187, 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 &gt; 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">
+   <widget class="caGraphics" name="caRectangle_0">
+    <property name="geometry">
+     <rect>
+      <x>0</x>
+      <y>5</y>
+      <width>935</width>
+      <height>25</height>
+     </rect>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>218</red>
+      <green>218</green>
+      <blue>218</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>218</red>
+      <green>218</green>
+      <blue>218</blue>
+     </color>
+    </property>
+    <property name="form">
+     <enum>caGraphics::Rectangle</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_0">
+    <property name="geometry">
+     <rect>
+      <x>0</x>
+      <y>6</y>
+      <width>935</width>
+      <height>25</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>$(P) Common Plugins</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>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color alpha="0">
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="frameShape">
+     <enum>QFrame::NoFrame</enum>
+    </property>
+   </widget>
+   <widget class="caLabel" name="caLabel_1">
+    <property name="geometry">
+     <rect>
+      <x>10</x>
+      <y>40</y>
+      <width>110</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Plugin name</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caLabel" name="caLabel_2">
+    <property name="geometry">
+     <rect>
+      <x>150</x>
+      <y>40</y>
+      <width>110</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Plugin type</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caLabel" name="caLabel_3">
+    <property name="geometry">
+     <rect>
+      <x>300</x>
+      <y>40</y>
+      <width>40</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Port</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caLabel" name="caLabel_4">
+    <property name="geometry">
+     <rect>
+      <x>407</x>
+      <y>40</y>
+      <width>60</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Enable</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caLabel" name="caLabel_5">
+    <property name="geometry">
+     <rect>
+      <x>525</x>
+      <y>40</y>
+      <width>80</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Blocking</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caLabel" name="caLabel_6">
+    <property name="geometry">
+     <rect>
+      <x>800</x>
+      <y>40</y>
+      <width>40</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Rate</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caLabel" name="caLabel_7">
+    <property name="geometry">
+     <rect>
+      <x>730</x>
+      <y>40</y>
+      <width>40</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Free</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caLabel" name="caLabel_8">
+    <property name="geometry">
+     <rect>
+      <x>615</x>
+      <y>40</y>
+      <width>70</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Dropped</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|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="caFrame" name="caframe">
+    <property name="geometry">
+     <rect>
+      <x>5</x>
+      <y>60</y>
+      <width>921</width>
+      <height>514</height>
+     </rect>
+    </property>
+    <property name="sizePolicy">
+     <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+      <horstretch>0</horstretch>
+      <verstretch>0</verstretch>
+     </sizepolicy>
+    </property>
+    <layout class="QVBoxLayout" name="verticalLayout">
+     <property name="spacing">
+      <number>0</number>
+     </property>
+     <property name="margin">
+      <number>0</number>
+     </property>
+     <item>
+      <widget class="caInclude" name="cainclude">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+         <horstretch>0</horstretch>
+         <verstretch>19</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="macro">
+        <string>P=$(P),R=image1,file=NDStdArrays;P=$(P)simDet:,R=image2,file=NDStdArrays;P=$(P)simDet:,R=image3,file=NDStdArrays;P=$(P)ndsa:,R=image4,file=NDStdArrays;P=$(P)ndsa:,R=image5,file=NDStdArrays;P=$(P)ndsa:,R=image6,file=NDStdArrays;P=$(P)ndsa:,R=image7,file=NDStdArrays;P=$(P),R=Proc1,file=NDProcess;P=$(P),R=Trans1,file=NDTransform;P=$(P),R=ROI1,file=NDROI;P=$(P),R=ROI2,file=NDROI;P=$(P),R=Stats1,file=NDStats;P=$(P),R=Stats2,file=NDStats;P=$(P),R=Stats3,file=NDStats;P=$(P),R=Stats4,file=NDStats;P=$(P),R=Stats5,file=NDStats;P=$(P),R=TIFF1,file=NDFileTIFF;P=$(P),R=HDF1,file=NDFileHDF5;P=$(P),R=netCDF1,file=NDFileNetCDF</string>
+       </property>
+       <property name="filename" stdset="0">
+        <string notr="true">commonPlugins_base.ui</string>
+       </property>
+       <property name="numberOfItems" stdset="0">
+        <number>19</number>
+       </property>
+       <property name="adjustSizeToContents" stdset="0">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="caInclude" name="cainclude_2">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+         <horstretch>0</horstretch>
+         <verstretch>1</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="macro">
+        <string>P=100idWYM:simDet:,R=Attr1,file=NDPluginAttribute</string>
+       </property>
+       <property name="filename" stdset="0">
+        <string notr="true">commonPlugins_base_ATTR.ui</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </widget>
+  </widget>
+ </widget>
+ <customwidgets>
+  <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>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/100idPyApp/op/ui/commonPlugins_base.ui b/100idPyApp/op/ui/commonPlugins_base.ui
new file mode 100644
index 0000000000000000000000000000000000000000..3353e1bc630081af929cba6c0e46417dd4a03be3
--- /dev/null
+++ b/100idPyApp/op/ui/commonPlugins_base.ui
@@ -0,0 +1,591 @@
+<?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>935</width>
+    <height>36</height>
+   </rect>
+  </property>
+  <property name="styleSheet">
+   <string>
+
+QWidget#centralWidget {background: rgba(187, 187, 187, 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 &gt; 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">
+   <widget class="caLineEdit" name="caLineEdit_0">
+    <property name="geometry">
+     <rect>
+      <x>10</x>
+      <y>10</y>
+      <width>110</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string notr="true">$(P)$(R):PortName_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::string</enum>
+    </property>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_1">
+    <property name="geometry">
+     <rect>
+      <x>125</x>
+      <y>10</y>
+      <width>160</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string notr="true">$(P)$(R):PluginType_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::string</enum>
+    </property>
+   </widget>
+   <widget class="caTextEntry" name="caTextEntry_0">
+    <property name="geometry">
+     <rect>
+      <x>290</x>
+      <y>9</y>
+      <width>60</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="channel" stdset="0">
+     <string notr="true">$(P)$(R):NDArrayPort</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>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caMenu" name="caMenu_0">
+    <property name="geometry">
+     <rect>
+      <x>355</x>
+      <y>9</y>
+      <width>80</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="channel" stdset="0">
+     <string notr="true">$(P)$(R):EnableCallbacks</string>
+    </property>
+    <property name="colorMode">
+     <enum>caMenu::Static</enum>
+    </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>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_2">
+    <property name="geometry">
+     <rect>
+      <x>440</x>
+      <y>10</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string notr="true">$(P)$(R):EnableCallbacks_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>70</red>
+      <green>70</green>
+      <blue>70</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Alarm_Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::string</enum>
+    </property>
+   </widget>
+   <widget class="caMenu" name="caMenu_1">
+    <property name="geometry">
+     <rect>
+      <x>525</x>
+      <y>9</y>
+      <width>80</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="channel" stdset="0">
+     <string notr="true">$(P)$(R):BlockingCallbacks</string>
+    </property>
+    <property name="colorMode">
+     <enum>caMenu::Static</enum>
+    </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>
+   </widget>
+   <widget class="caRelatedDisplay" name="caRelatedDisplay_0">
+    <property name="geometry">
+     <rect>
+      <x>865</x>
+      <y>9</y>
+      <width>60</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="label">
+     <string>More</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="labels">
+     <string>$(R):;$(R):</string>
+    </property>
+    <property name="files">
+     <string>$(file).ui;$(file).ui</string>
+    </property>
+    <property name="args">
+     <string>P=$(P),R=$(R):;P=$(P),R=$(R):</string>
+    </property>
+    <property name="stackingMode" stdset="0">
+     <enum>caRowColMenu::Menu</enum>
+    </property>
+    <property name="removeParent" stdset="0">
+     <string>false</string>
+    </property>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_3">
+    <property name="geometry">
+     <rect>
+      <x>780</x>
+      <y>10</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string notr="true">$(P)$(R):ArrayRate_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_4">
+    <property name="geometry">
+     <rect>
+      <x>695</x>
+      <y>10</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string notr="true">$(P)$(R):QueueFree</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>70</red>
+      <green>70</green>
+      <blue>70</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Alarm_Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_5">
+    <property name="geometry">
+     <rect>
+      <x>610</x>
+      <y>10</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string notr="true">$(P)$(R):DroppedArrays_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+  </widget>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>caMenu</class>
+   <extends>QComboBox</extends>
+   <header>caMenu</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>caLineEdit</class>
+   <extends>QLineEdit</extends>
+   <header>caLineEdit</header>
+  </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/100idPyApp/op/ui/commonPlugins_base_ATTR.ui b/100idPyApp/op/ui/commonPlugins_base_ATTR.ui
new file mode 100644
index 0000000000000000000000000000000000000000..b463f11748324c99292ca76e59a8b6a5e0e9439b
--- /dev/null
+++ b/100idPyApp/op/ui/commonPlugins_base_ATTR.ui
@@ -0,0 +1,591 @@
+<?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>935</width>
+    <height>36</height>
+   </rect>
+  </property>
+  <property name="styleSheet">
+   <string>
+
+QWidget#centralWidget {background: rgba(187, 187, 187, 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 &gt; 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">
+   <widget class="caLineEdit" name="caLineEdit_0">
+    <property name="geometry">
+     <rect>
+      <x>10</x>
+      <y>10</y>
+      <width>110</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string notr="true">$(P)$(R):PortName_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::string</enum>
+    </property>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_1">
+    <property name="geometry">
+     <rect>
+      <x>125</x>
+      <y>10</y>
+      <width>160</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string notr="true">$(P)$(R):PluginType_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::string</enum>
+    </property>
+   </widget>
+   <widget class="caTextEntry" name="caTextEntry_0">
+    <property name="geometry">
+     <rect>
+      <x>290</x>
+      <y>9</y>
+      <width>60</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="channel" stdset="0">
+     <string notr="true">$(P)$(R):NDArrayPort</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>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caMenu" name="caMenu_0">
+    <property name="geometry">
+     <rect>
+      <x>355</x>
+      <y>9</y>
+      <width>80</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="channel" stdset="0">
+     <string notr="true">$(P)$(R):EnableCallbacks</string>
+    </property>
+    <property name="colorMode">
+     <enum>caMenu::Static</enum>
+    </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>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_2">
+    <property name="geometry">
+     <rect>
+      <x>440</x>
+      <y>10</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string notr="true">$(P)$(R):EnableCallbacks_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>70</red>
+      <green>70</green>
+      <blue>70</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Alarm_Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::string</enum>
+    </property>
+   </widget>
+   <widget class="caMenu" name="caMenu_1">
+    <property name="geometry">
+     <rect>
+      <x>525</x>
+      <y>9</y>
+      <width>80</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="channel" stdset="0">
+     <string notr="true">$(P)$(R):BlockingCallbacks</string>
+    </property>
+    <property name="colorMode">
+     <enum>caMenu::Static</enum>
+    </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>
+   </widget>
+   <widget class="caRelatedDisplay" name="caRelatedDisplay_0">
+    <property name="geometry">
+     <rect>
+      <x>865</x>
+      <y>9</y>
+      <width>60</width>
+      <height>20</height>
+     </rect>
+    </property>
+    <property name="label">
+     <string>More</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="labels">
+     <string>$(R):;Attributes 1-8</string>
+    </property>
+    <property name="files">
+     <string>$(file).ui;NDPluginAttribute8.ui</string>
+    </property>
+    <property name="args">
+     <string>P=$(P),R=$(R):;P=$(P),R=$(R):,A1=1:,A2=2:,A3=3:,A4=4:,A5=5:,A6=6:,A7=7:,A8=8:</string>
+    </property>
+    <property name="stackingMode" stdset="0">
+     <enum>caRowColMenu::Menu</enum>
+    </property>
+    <property name="removeParent" stdset="0">
+     <string>false</string>
+    </property>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_3">
+    <property name="geometry">
+     <rect>
+      <x>780</x>
+      <y>10</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string notr="true">$(P)$(R):ArrayRate_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_4">
+    <property name="geometry">
+     <rect>
+      <x>695</x>
+      <y>10</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string notr="true">$(P)$(R):QueueFree</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>70</red>
+      <green>70</green>
+      <blue>70</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Alarm_Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+   <widget class="caLineEdit" name="caLineEdit_5">
+    <property name="geometry">
+     <rect>
+      <x>610</x>
+      <y>10</y>
+      <width>80</width>
+      <height>18</height>
+     </rect>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignAbsolute|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignVCenter</set>
+    </property>
+    <property name="channel" stdset="0">
+     <string notr="true">$(P)$(R):DroppedArrays_RBV</string>
+    </property>
+    <property name="foreground">
+     <color>
+      <red>10</red>
+      <green>0</green>
+      <blue>184</blue>
+     </color>
+    </property>
+    <property name="background">
+     <color>
+      <red>187</red>
+      <green>187</green>
+      <blue>187</blue>
+     </color>
+    </property>
+    <property name="colorMode">
+     <enum>caLineEdit::Static</enum>
+    </property>
+    <property name="precisionMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="limitsMode">
+     <enum>caLineEdit::Channel</enum>
+    </property>
+    <property name="maxValue">
+     <double>1.000000000000000</double>
+    </property>
+    <property name="minValue">
+     <double>0.000000000000000</double>
+    </property>
+    <property name="fontScaleMode" stdset="0">
+     <enum>caLineEdit::WidthAndHeight</enum>
+    </property>
+    <property name="formatType">
+     <enum>caLineEdit::decimal</enum>
+    </property>
+   </widget>
+  </widget>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>caMenu</class>
+   <extends>QComboBox</extends>
+   <header>caMenu</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>caLineEdit</class>
+   <extends>QLineEdit</extends>
+   <header>caLineEdit</header>
+  </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/100idPyApp/op/ui/pydev_sbl.ui b/100idPyApp/op/ui/pydev_sbl.ui
index e6a5d21cf5171686adf0f49f396bd4037f43a238..9b39968524ef887c3a153d40a504420bede37e59 100644
--- a/100idPyApp/op/ui/pydev_sbl.ui
+++ b/100idPyApp/op/ui/pydev_sbl.ui
@@ -222,7 +222,7 @@
        </sizepolicy>
       </property>
       <property name="channel" stdset="0">
-       <string notr="true">$(P)$(INSTANCE):det0d:Acquire</string>
+       <string notr="true">$(P)$(INSTANCE):det:FullTrigger.PROC</string>
       </property>
       <property name="label">
        <string notr="true">Acquire</string>
@@ -259,7 +259,7 @@
        <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
       </property>
       <property name="channel" stdset="0">
-       <string notr="true">$(P)$(INSTANCE):det0d:Acquire</string>
+       <string notr="true">$(P)$(INSTANCE):det:Acquire</string>
       </property>
       <property name="foreground">
        <color>
@@ -329,7 +329,7 @@
        <set>Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
       </property>
       <property name="channel" stdset="0">
-       <string notr="true">$(P)$(INSTANCE):det0d:intensity</string>
+       <string notr="true">$(P)$(INSTANCE):det:intensity</string>
       </property>
       <property name="foreground">
        <color>
diff --git a/100idPyApp/python/__pycache__/beamline_29.cpython-311.pyc b/100idPyApp/python/__pycache__/beamline_29.cpython-311.pyc
index 9ec32a4b232b6510b15dd781b0e837273c8b1df7..5030551bc954af7e1c78277c288ccf0337741a89 100644
Binary files a/100idPyApp/python/__pycache__/beamline_29.cpython-311.pyc and b/100idPyApp/python/__pycache__/beamline_29.cpython-311.pyc differ
diff --git a/100idPyApp/python/__pycache__/pyDevSBL.cpython-311.pyc b/100idPyApp/python/__pycache__/pyDevSBL.cpython-311.pyc
index 52b2fc5b7469ada5caba3dfee2e51314e5318a2d..dd8669e64ba2b07322f892c8a1e6d1d1dbc2b9c0 100644
Binary files a/100idPyApp/python/__pycache__/pyDevSBL.cpython-311.pyc and b/100idPyApp/python/__pycache__/pyDevSBL.cpython-311.pyc differ
diff --git a/100idPyApp/python/pyDevSBL.py b/100idPyApp/python/pyDevSBL.py
index ccabc42ac7a6645f8895cad539561adc72e9cbd7..6a186086d0181927d7425368c565d09d2e570bf8 100644
--- a/100idPyApp/python/pyDevSBL.py
+++ b/100idPyApp/python/pyDevSBL.py
@@ -1,8 +1,6 @@
 import numpy as np
 import os
 
-IMAGE = False
-
 class surrogateBL():
     
     def __init__(self, beamline):
@@ -38,7 +36,7 @@ class surrogateBL():
         if self.verbose: print(f'Setting complete')
      
         
-    def detectorUpdate(self):
+    def detectorUpdate(self, zeroD = True, nbins = 64):
         '''
         Update detector(s)
         '''
@@ -50,18 +48,28 @@ class surrogateBL():
         
         # Trigger ray tracing
         if self.verbose: print(f'Running Shadow simulation')        
-        results = self.beamline.run() 
+        if zeroD:
+            results = self.beamline.run()
+        else:
+            results = self.beamline.run(nbins = nbins, nolost=1) 
         if self.verbose: 
             print(f'Run complete')
             print(f'Results: {results}')
+
+        if zeroD:
+            self.intensity = int(results)       
+            pydev.iointr('new_intensity', self.intensity)
+        else:     
+            self.image_data = results['histogram']
+            self.flattened_data = self.image_data.flatten() # need to flatten for waveform
+            self.h_edges = results['bin_h_edges']
+            self.v_edges = results['bin_v_edges']
+            pydev.iointr('raw_image', self.flattened_data.tolist())
+            pydev.iointr('h_coord', self.h_edges.tolist())
+            pydev.iointr('v_coord', self.v_edges.tolist())
+            self.intensity = int(results['good_rays'])
+            pydev.iointr('new_intensity', self.intensity)
             
-        pydev.iointr('new_intensity', int(results))     
-             
-        if IMAGE:
-            image_data = np.zeros(128,128) # need to add screen to shadow simulation
-            flattened_data = image_date.flatten() # need to flatten for waveform
-            pydev.iointr('raw_image', flattened_data)
-        
     def updateVerbosity(self, verbosity):
         '''
         Turn on minor printing
diff --git a/configure/RELEASE b/configure/RELEASE
index cc6313d2e7bd96e4b46b5a4cff737f30021508f7..206e29cbe62a870b38de781f1c9575fa5ce89411 100644
--- a/configure/RELEASE
+++ b/configure/RELEASE
@@ -38,6 +38,7 @@ EPICS_BASE=/APSshare/epics/base-7.0.8
 #FLY = $(SUPPORT)/../nonSynAppsSupport/fly-0-0
 PYDEVICE=$(LOCAL_SUPPORT)/PyDevice-git
 NDDRIVERSTDARRAYS=$(AREA_DETECTOR)/NDDriverStdArrays
+ADSIMDETECTOR=$(AREA_DETECTOR)/ADSimDetector
 
 # For a local, custom configuration; copy $(SUPPORT)/configure/RELEASE
 # to this directory as the file MASTER_RELEASE, edit the file, comment out
diff --git a/iocBoot/.iocsh_history b/iocBoot/.iocsh_history
new file mode 100644
index 0000000000000000000000000000000000000000..47a88ebf85c156386ecca94eb4f4cbb20c5d2e8f
--- /dev/null
+++ b/iocBoot/.iocsh_history
@@ -0,0 +1,52 @@
+#set_requestfile_path("$(ADPLUGINEDGE)/db")
+# Optional: load NDPluginCV plugin
+#NDCVConfigure("CV1", $(QSIZE), 0, "$(PORT)", 0, 0, 0, 0, 0, $(MAX_THREADS=5))
+#dbLoadRecords("$(ADCOMPVISION)/db/NDCV.template",  "P=$(PREFIX),R=CV1:, PORT=CV1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT)")
+#set_requestfile_path("$(ADCOMPVISION)/adcvApp/Db")
+# Optional: load NDPluginBar plugin
+#NDBarConfigure("BAR1", $(QSIZE), 0, "$(PORT)", 0, 0, 0, 0, 0, $(MAX_THREADS=5))
+#dbLoadRecords("$(ADPLUGINBAR)/db/NDBar.template",  "P=$(PREFIX),R=Bar1:, PORT=BAR1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT)")
+#set_requestfile_path("$(ADPLUGINBAR)/barApp/Db")
+# Optional: load scan records
+#dbLoadRecords("$(SSCAN)/sscanApp/Db/scan.db", "P=$(PREFIX),MAXPTS1=2000,MAXPTS2=200,MAXPTS3=20,MAXPTS4=10,MAXPTSH=10")
+#set_requestfile_path("$(SSCAN)/sscanApp/Db")
+# Optional: load sseq record for acquisition sequence
+#dbLoadRecords("$(CALC)/calcApp/Db/sseqRecord.db", "P=$(PREFIX), S=AcquireSequence")
+#set_requestfile_path("$(CALC)/calcApp/Db")
+# Optional: load devIocStats records (requires DEVIOCSTATS module)
+#dbLoadRecords("$(DEVIOCSTATS)/db/iocAdminSoft.db", "IOC=$(PREFIX)")
+# Optional: load alive record (requires ALIVE module)
+#dbLoadRecords("$(ALIVE)/aliveApp/Db/alive.db", "P=$(PREFIX),RHOST=164.54.100.11")
+# Set the callback queue size to 5000, up from default of 2000 in base.
+# This can be needed to avoid errors "callbackRequest: cbLow ring buffer full".
+callbackSetQueueSize(5000)
+#- INSTANCE  - Used for Camera Port Name and detector pv name
+#- XSIZE     - Image Width
+#- YSIZE     - Image Height
+#- TYPE      - Image Datatype, default: Int8
+epicsEnvSet("EPICS_DB_INCLUDE_PATH", "$(EPICS_DB_INCLUDE_PATH):$(ADCORE)/db:$(ADSIMDETECTOR)/db")
+# Create a simDetector driver, need to determine index from data type
+iocshRun('simDetectorConfig("$(INSTANCE)", $(XSIZE), $(YSIZE), $($(TYPE=Int8)_VAL), 50, 0)', "Int8_VAL=0, UInt8_VAL=1, Int16_VAL=2, UInt16_VAL=3, Int32_VAL=4, UInt32_VAL=5, Float32_VAL=6, Float64_VAL=7")
+dbLoadRecords("$(ADSIMDETECTOR)/db/simDetector.template","P=$(PREFIX),R=$(INSTANCE):,PORT=$(INSTANCE),ADDR=0,TIMEOUT=1")
+# Create a standard arrays plugin, set it to get data from first simDetector driver.
+NDStdArraysConfigure("$(INSTANCE)Image", 3, 0, "$(INSTANCE)", 0, 2000000)
+# Need to determine certain values from input parameters
+iocshRun('epicsEnvSet("__FTVL", "$($(TYPE=Int8)_VAL)")', "Int8_VAL=UCHAR, UInt8_VAL=UCHAR, Int16_VAL=SHORT, UInt16_VAL=SHORT, Int32_VAL=LONG, UInt32_VAL=LONG, Float32_VAL=DOUBLE, Float64_VAL=DOUBLE")
+iocshRun('epicsEnvSet("__TYPE", "$($(TYPE=Int8)_VAL)")', "Int8_VAL=Int8, UInt8_VAL=Int8, Int16_VAL=Int16, UInt16_VAL=Int16, Int32_VAL=Int32, UInt32_VAL=Int32, Float32_VAL=Float32, Float64_VAL=Float64")
+luaCmd("epicsEnvSet('__SIZE', tostring((XSIZE*YSIZE)|0))", "XSIZE=$(XSIZE), YSIZE=$(YSIZE)")
+dbLoadRecords("$(ADCORE)/ADApp/Db/NDStdArrays.template", "P=$(PREFIX),R=image1:,PORT=$(INSTANCE)Image,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(INSTANCE),TYPE=$(__TYPE),FTVL=$(__FTVL),NELEMENTS=$(__SIZE)")
+epicsEnvUnset("__FTVL")
+epicsEnvUnset("__TYPE")
+epicsEnvUnset("__SIZE")
+#! iocshLoad("$(ADCORE)/iocBoot/commonPlugins.cmd", "PREFIX=$(PREFIX), PORT=$(INSTANCE), QSIZE=20, XSIZE=$(XSIZE), YSIZE=$(YSIZE), NCHANS=1024, CBUFFS=20, MAX_THREADS=5")
+###############################################################################
+iocInit
+###############################################################################
+# write all the PV names to a local file
+dbl > dbl-all.txt
+# Diagnostic: CA links in all records
+dbcar(0,1)
+# print the time our boot was finished
+date
+cd ..
+exit
diff --git a/iocBoot/ioc100idPySBL/.iocsh_history b/iocBoot/ioc100idPySBL/.iocsh_history
index 06251d5e357a4f0668eaf61644981a31551ff6cf..c6beecd1a4a776740a778a3e78d263d0979ac625 100644
--- a/iocBoot/ioc100idPySBL/.iocsh_history
+++ b/iocBoot/ioc100idPySBL/.iocsh_history
@@ -1,658 +1,43 @@
-epicsEnvSet("ETHERIP","/APSshare/epics/synApps_6_3/support/ether_ip-ether_ip-3-3")
-epicsEnvSet("GALIL","/APSshare/epics/synApps_6_3/support/Galil-3-0-V3-5")
-epicsEnvSet("IP","/APSshare/epics/synApps_6_3/support/ip-R2-22")
-epicsEnvSet("IP330","/APSshare/epics/synApps_6_3/support/ip330-R2-10")
-epicsEnvSet("IPAC","/APSshare/epics/synApps_6_3/support/ipac-2-16")
-epicsEnvSet("IPUNIDIG","/APSshare/epics/synApps_6_3/support/ipUnidig-R2-12")
-epicsEnvSet("LABJACK","/APSshare/epics/synApps_6_3/support/LabJack-R3-0")
-epicsEnvSet("LOVE","/APSshare/epics/synApps_6_3/support/love-R3-2-9")
-epicsEnvSet("LUA","/APSshare/epics/synApps_6_3/support/lua-R3-1")
-epicsEnvSet("MCA","/APSshare/epics/synApps_6_3/support/mca-R7-10")
-epicsEnvSet("MEASCOMP","/APSshare/epics/synApps_6_3/support/measComp-R4-2")
-epicsEnvSet("MODBUS","/APSshare/epics/synApps_6_3/support/modbus-R3-3")
-epicsEnvSet("MOTOR","/APSshare/epics/synApps_6_3/support/motor-R7-3-1")
-epicsEnvSet("OPTICS","/APSshare/epics/synApps_6_3/support/optics-R2-14")
-epicsEnvSet("QUADEM","/APSshare/epics/synApps_6_3/support/quadEM-R9-5")
-epicsEnvSet("SCALER","/APSshare/epics/synApps_6_3/support/scaler-4-1")
-epicsEnvSet("SNCSEQ","/APSshare/epics/synApps_6_3/support/sequencer-mirror-R2-2-9")
-epicsEnvSet("SOFTGLUE","/APSshare/epics/synApps_6_3/support/softGlue-R2-8-4")
-epicsEnvSet("SOFTGLUEZYNQ","/APSshare/epics/synApps_6_3/support/softGlueZynq-R2-0-5")
-epicsEnvSet("SSCAN","/APSshare/epics/synApps_6_3/support/sscan-R2-11-6")
-epicsEnvSet("STD","/APSshare/epics/synApps_6_3/support/std-R3-6-4")
-epicsEnvSet("STREAM","/APSshare/epics/synApps_6_3/support/StreamDevice-2-8-24")
-epicsEnvSet("VAC","/APSshare/epics/synApps_6_3/support/vac-R1-9-2")
-epicsEnvSet("VME","/APSshare/epics/synApps_6_3/support/vme-R2-9-5")
-epicsEnvSet("XSPRESS3","/APSshare/epics/synApps_6_3/support/xspress3-3-2-8")
-epicsEnvSet("XXX","/APSshare/epics/synApps_6_3/support/xxx-R6-3")
-epicsEnvSet("YOKOGAWA_DAS","/APSshare/epics/synApps_6_3/support/Yokogawa_DAS-R2-0-2")
-epicsEnvSet("ALLENBRADLEY","/APSshare/epics/synApps_6_3/support/allenBradley-2-3")
-epicsEnvSet("ADCORE","/APSshare/epics/synApps_6_3/support/areaDetector-R3-13/ADCore")
-epicsEnvSet("ADSUPPORT","/APSshare/epics/synApps_6_3/support/areaDetector-R3-13/ADSupport")
-epicsEnvSet("ULDAQ","/APSshare/epics/synApps_6_3/support/measComp-R4-2/libuldaq-1.2.1")
-epicsEnvSet("PYDEVICE","/net/s100dserv/xorApps/epics/synApps_6_3/support/PyDevice-git")
-epicsEnvSet("NDDRIVERSTDARRAYS","/APSshare/epics/synApps_6_3/support/areaDetector-R3-13/NDDriverStdArrays")
-# Shell prompt
-epicsEnvSet("IOCSH_PS1", "$(IOC)> ")
-# prefix used for all PVs in this IOC
-epicsEnvSet("PREFIX", "100idPySBL:")
-#For devIocStats
-epicsEnvSet("ENGINEER", "M. Wyman")
-epicsEnvSet("LOCATION", "100id")
-epicsEnvSet("GROUP", "BCDA")
-# search path for database files
-epicsEnvSet("EPICS_DB_INCLUDE_PATH", ".")
-# search path for streamDevice protocol files
-epicsEnvSet("STREAM_PROTOCOL_PATH", ".")
-# search path for lua scripts
-# epicsEnvSet("LUA_SCRIPT_PATH", "./scripts")
-# Specify largest array CA will transport
-# Note for N doubles, need N*8 bytes+some overhead
-epicsEnvSet("EPICS_CA_MAX_ARRAY_BYTES", 64010)
-< common.iocsh
-# ### motorSim.iocsh ###
-#- ###################################################
-#- PREFIX           - IOC Prefix
-#- INSTANCE         - Instance name, used to create the low-level driver drvet name
-#-                    Combined with the controller number to create the asyn port name
-#-
-#- SUB              - Optional: Subsitutions file (asyn_motor.db), Macros P, DTYP, PORT, 
-#-                              DHLM, DLLM, and INIT will be predefined.
-#-                    Default: $(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions
-#-
-#- CONTROLLER       - Optional: Which controller is being configured
-#-                    Default: 0
-#-
-#- NUM_AXES         - Optional: Number of axes on this controller
-#-                    Default: 1
-#-
-#- LOW_LIM          - Optional: Low Limit (in steps)
-#-                    Default: -32000
-#-
-#- HIGH_LIM         - Optional: High Limit (in steps)
-#-                    Default: 32000
-#- 
-#- DLLM             - Optional: Motor Record Low Limit (in EGU)
-#-                    Default: -320.0
-#-
-#- DHLM             - Optional: Motor Record High Limit (in EGU)
-#-                    Default: 320.0
-#-
-#- HOME_POS         - Optional: Home position
-#-                    Default: 0
-#- ###################################################
-# Create simulated motors: ( start card , start axis , low limit, high limit, home posn, # cards, # axes to setup)
-motorSimCreate($(CONTROLLER=0), 0, $(LOW_LIM=-32000), $(HIGH_LIM=32000), $(HOME_POS=0), 1, $(NUM_AXES=12))
-# Setup the Asyn layer (portname, low-level driver drvet name, card, number of axes on card)
-drvAsynMotorConfigure("$(INSTANCE)$(CONTROLLER=0)", "$(INSTANCE)", $(CONTROLLER=0), $(NUM_AXES=12))
-dbLoadTemplate("$(SUB=$(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions)", "P=$(PREFIX), DTYP='asynMotor', PORT=$(INSTANCE)$(CONTROLLER=0),DHLM=$(DHLM=320.0),DLLM=$(DLLM=-320.0)")
-###############################################################################
-# Area detector -- NDSA, simDet
-#!iocshLoad("iocsh/NDSA.iocsh", "PREFIX=$(PREFIX), INSTANCE=NDSA, TYPE=$(TYPE)")
-#Shouldn't need a simdet as NDSA comes with image plugin
-#iocshLoad("iocsh/ADSimDetector.iocsh", "PREFIX=$(PREFIX), INSTANCE=SIM1")
-###############################################################################
-iocInit
-###############################################################################
-# write all the PV names to a local file
-dbl > dbl-all.txt
-# Diagnostic: CA links in all records
-dbcar(0,1)
-# print the time our boot was finished
-date
-exit
-# Linux startup script
-< envPaths
-# ### motorSim.iocsh ###
-#- ###################################################
-#- PREFIX           - IOC Prefix
-#- INSTANCE         - Instance name, used to create the low-level driver drvet name
-#-                    Combined with the controller number to create the asyn port name
-#-
-#- SUB              - Optional: Subsitutions file (asyn_motor.db), Macros P, DTYP, PORT, 
-#-                              DHLM, DLLM, and INIT will be predefined.
-#-                    Default: $(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions
-#-
-#- CONTROLLER       - Optional: Which controller is being configured
-#-                    Default: 0
-#-
-#- NUM_AXES         - Optional: Number of axes on this controller
-#-                    Default: 1
-#-
-#- LOW_LIM          - Optional: Low Limit (in steps)
-#-                    Default: -32000
-#-
-#- HIGH_LIM         - Optional: High Limit (in steps)
-#-                    Default: 32000
-#- 
-#- DLLM             - Optional: Motor Record Low Limit (in EGU)
-#-                    Default: -320.0
-#-
-#- DHLM             - Optional: Motor Record High Limit (in EGU)
-#-                    Default: 320.0
-#-
-#- HOME_POS         - Optional: Home position
-#-                    Default: 0
-#- ###################################################
-# Create simulated motors: ( start card , start axis , low limit, high limit, home posn, # cards, # axes to setup)
-motorSimCreate($(CONTROLLER=0), 0, $(LOW_LIM=-32000), $(HIGH_LIM=32000), $(HOME_POS=0), 1, $(NUM_AXES=12))
-# Setup the Asyn layer (portname, low-level driver drvet name, card, number of axes on card)
-drvAsynMotorConfigure("$(INSTANCE)$(CONTROLLER=0)", "$(INSTANCE)", $(CONTROLLER=0), $(NUM_AXES=12))
-dbLoadTemplate("$(SUB=$(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions)", "P=$(PREFIX), DTYP='asynMotor', PORT=$(INSTANCE)$(CONTROLLER=0),DHLM=$(DHLM=320.0),DLLM=$(DLLM=-320.0)")
-###############################################################################
-# Area detector -- NDSA, simDet
-#!iocshLoad("iocsh/NDSA.iocsh", "PREFIX=$(PREFIX), INSTANCE=NDSA, TYPE=$(TYPE)")
-#Shouldn't need a simdet as NDSA comes with image plugin
-#iocshLoad("iocsh/ADSimDetector.iocsh", "PREFIX=$(PREFIX), INSTANCE=SIM1")
-###############################################################################
-iocInit
-###############################################################################
-# write all the PV names to a local file
-dbl > dbl-all.txt
-# Diagnostic: CA links in all records
-dbcar(0,1)
-# print the time our boot was finished
-date
-exit
-epicsEnvSet("IOC","ioc100idPySBL")
-epicsEnvSet("TOP","/net/s100dserv/xorApps/epics/synApps_6_3/ioc/100idPy")
-epicsEnvSet("SUPPORT","/APSshare/epics/synApps_6_3/support")
-epicsEnvSet("LOCAL_SUPPORT","/net/s100dserv/xorApps/epics/synApps_6_3/support")
-epicsEnvSet("EPICS_BASE","/APSshare/epics/base-7.0.8")
-epicsEnvSet("ALIVE","/APSshare/epics/synApps_6_3/support/alive-R1-4-1")
-epicsEnvSet("AREA_DETECTOR","/APSshare/epics/synApps_6_3/support/areaDetector-R3-13")
-epicsEnvSet("ASYN","/APSshare/epics/synApps_6_3/support/asyn-R4-44-2")
-epicsEnvSet("AUTOSAVE","/APSshare/epics/synApps_6_3/support/autosave-R5-11")
-epicsEnvSet("BUSY","/APSshare/epics/synApps_6_3/support/busy-R1-7-4")
-epicsEnvSet("CALC","/APSshare/epics/synApps_6_3/support/calc-R3-7-5")
-epicsEnvSet("CAMAC","/APSshare/epics/synApps_6_3/support/camac-R2-7-5")
-epicsEnvSet("CAPUTRECORDER","/APSshare/epics/synApps_6_3/support/caputRecorder-R1-7-6")
-epicsEnvSet("DAC128V","/APSshare/epics/synApps_6_3/support/dac128V-R2-10-1")
-epicsEnvSet("DANTE","/APSshare/epics/synApps_6_3/support/Dante-R1-1")
-epicsEnvSet("DELAYGEN","/APSshare/epics/synApps_6_3/support/delaygen-R1-2-4")
-epicsEnvSet("DEVIOCSTATS","/APSshare/epics/synApps_6_3/support/iocStats-3-1-16")
-epicsEnvSet("DXP","/APSshare/epics/synApps_6_3/support/dxp-R6-1")
-epicsEnvSet("DXPSITORO","/APSshare/epics/synApps_6_3/support/dxpSITORO-R1-3")
-epicsEnvSet("ETHERIP","/APSshare/epics/synApps_6_3/support/ether_ip-ether_ip-3-3")
-epicsEnvSet("GALIL","/APSshare/epics/synApps_6_3/support/Galil-3-0-V3-5")
-epicsEnvSet("IP","/APSshare/epics/synApps_6_3/support/ip-R2-22")
-epicsEnvSet("IP330","/APSshare/epics/synApps_6_3/support/ip330-R2-10")
-epicsEnvSet("IPAC","/APSshare/epics/synApps_6_3/support/ipac-2-16")
-epicsEnvSet("IPUNIDIG","/APSshare/epics/synApps_6_3/support/ipUnidig-R2-12")
-epicsEnvSet("LABJACK","/APSshare/epics/synApps_6_3/support/LabJack-R3-0")
-epicsEnvSet("LOVE","/APSshare/epics/synApps_6_3/support/love-R3-2-9")
-epicsEnvSet("LUA","/APSshare/epics/synApps_6_3/support/lua-R3-1")
-epicsEnvSet("MCA","/APSshare/epics/synApps_6_3/support/mca-R7-10")
-epicsEnvSet("MEASCOMP","/APSshare/epics/synApps_6_3/support/measComp-R4-2")
-epicsEnvSet("MODBUS","/APSshare/epics/synApps_6_3/support/modbus-R3-3")
-epicsEnvSet("MOTOR","/APSshare/epics/synApps_6_3/support/motor-R7-3-1")
-epicsEnvSet("OPTICS","/APSshare/epics/synApps_6_3/support/optics-R2-14")
-epicsEnvSet("QUADEM","/APSshare/epics/synApps_6_3/support/quadEM-R9-5")
-epicsEnvSet("SCALER","/APSshare/epics/synApps_6_3/support/scaler-4-1")
-epicsEnvSet("SNCSEQ","/APSshare/epics/synApps_6_3/support/sequencer-mirror-R2-2-9")
-epicsEnvSet("SOFTGLUE","/APSshare/epics/synApps_6_3/support/softGlue-R2-8-4")
-epicsEnvSet("SOFTGLUEZYNQ","/APSshare/epics/synApps_6_3/support/softGlueZynq-R2-0-5")
-epicsEnvSet("SSCAN","/APSshare/epics/synApps_6_3/support/sscan-R2-11-6")
-epicsEnvSet("STD","/APSshare/epics/synApps_6_3/support/std-R3-6-4")
-epicsEnvSet("STREAM","/APSshare/epics/synApps_6_3/support/StreamDevice-2-8-24")
-epicsEnvSet("VAC","/APSshare/epics/synApps_6_3/support/vac-R1-9-2")
-epicsEnvSet("VME","/APSshare/epics/synApps_6_3/support/vme-R2-9-5")
-epicsEnvSet("XSPRESS3","/APSshare/epics/synApps_6_3/support/xspress3-3-2-8")
-epicsEnvSet("XXX","/APSshare/epics/synApps_6_3/support/xxx-R6-3")
-epicsEnvSet("YOKOGAWA_DAS","/APSshare/epics/synApps_6_3/support/Yokogawa_DAS-R2-0-2")
-epicsEnvSet("ALLENBRADLEY","/APSshare/epics/synApps_6_3/support/allenBradley-2-3")
-epicsEnvSet("ADCORE","/APSshare/epics/synApps_6_3/support/areaDetector-R3-13/ADCore")
-epicsEnvSet("ADSUPPORT","/APSshare/epics/synApps_6_3/support/areaDetector-R3-13/ADSupport")
-epicsEnvSet("ULDAQ","/APSshare/epics/synApps_6_3/support/measComp-R4-2/libuldaq-1.2.1")
-epicsEnvSet("PYDEVICE","/net/s100dserv/xorApps/epics/synApps_6_3/support/PyDevice-git")
-epicsEnvSet("NDDRIVERSTDARRAYS","/APSshare/epics/synApps_6_3/support/areaDetector-R3-13/NDDriverStdArrays")
-# Increase size of buffer for error logging from default 1256
-errlogInit(20000)
-################################################################################
-# PYTHONPATH points to folders where Python modules are.
-# Needs to be done before dbd load, so moved to st.cmd
-epicsEnvSet("PYTHONPATH","$(TOP)/100idPyApp/python")
-################################################################################
-# Tell EPICS all about the record types, device-support modules, drivers,
-# etc. in the software we just loaded (100idPy.munch)
-dbLoadDatabase("../../dbd/ioc100idPyLinux.dbd")
-ioc100idPyLinux_registerRecordDeviceDriver(pdbbase)
-< settings.iocsh
-# ### motorSim.iocsh ###
-#- ###################################################
-#- PREFIX           - IOC Prefix
-#- INSTANCE         - Instance name, used to create the low-level driver drvet name
-#-                    Combined with the controller number to create the asyn port name
-#-
-#- SUB              - Optional: Subsitutions file (asyn_motor.db), Macros P, DTYP, PORT, 
-#-                              DHLM, DLLM, and INIT will be predefined.
-#-                    Default: $(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions
-#-
-#- CONTROLLER       - Optional: Which controller is being configured
-#-                    Default: 0
-#-
-#- NUM_AXES         - Optional: Number of axes on this controller
-#-                    Default: 1
-#-
-#- LOW_LIM          - Optional: Low Limit (in steps)
-#-                    Default: -32000
-#-
-#- HIGH_LIM         - Optional: High Limit (in steps)
-#-                    Default: 32000
-#- 
-#- DLLM             - Optional: Motor Record Low Limit (in EGU)
-#-                    Default: -320.0
-#-
-#- DHLM             - Optional: Motor Record High Limit (in EGU)
-#-                    Default: 320.0
-#-
-#- HOME_POS         - Optional: Home position
-#-                    Default: 0
-#- ###################################################
-# Create simulated motors: ( start card , start axis , low limit, high limit, home posn, # cards, # axes to setup)
-motorSimCreate($(CONTROLLER=0), 0, $(LOW_LIM=-32000), $(HIGH_LIM=32000), $(HOME_POS=0), 1, $(NUM_AXES=12))
-# Setup the Asyn layer (portname, low-level driver drvet name, card, number of axes on card)
-drvAsynMotorConfigure("$(INSTANCE)$(CONTROLLER=0)", "$(INSTANCE)", $(CONTROLLER=0), $(NUM_AXES=12))
-dbLoadTemplate("$(SUB=$(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions)", "P=$(PREFIX), DTYP='asynMotor', PORT=$(INSTANCE)$(CONTROLLER=0),DHLM=$(DHLM=320.0),DLLM=$(DLLM=-320.0)")
-###############################################################################
-# Area detector -- NDSA, simDet
-#!iocshLoad("iocsh/NDSA.iocsh", "PREFIX=$(PREFIX), INSTANCE=NDSA, TYPE=$(TYPE)")
-#Shouldn't need a simdet as NDSA comes with image plugin
-#iocshLoad("iocsh/ADSimDetector.iocsh", "PREFIX=$(PREFIX), INSTANCE=SIM1")
-###############################################################################
-iocInit
-###############################################################################
-# write all the PV names to a local file
-dbl > dbl-all.txt
-# Diagnostic: CA links in all records
-dbcar(0,1)
-# print the time our boot was finished
-date
-exit
-# Linux startup script
-< envPaths
-# ### motorSim.iocsh ###
-#- ###################################################
-#- PREFIX           - IOC Prefix
-#- INSTANCE         - Instance name, used to create the low-level driver drvet name
-#-                    Combined with the controller number to create the asyn port name
-#-
-#- SUB              - Optional: Subsitutions file (asyn_motor.db), Macros P, DTYP, PORT, 
-#-                              DHLM, DLLM, and INIT will be predefined.
-#-                    Default: $(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions
-#-
-#- CONTROLLER       - Optional: Which controller is being configured
-#-                    Default: 0
-#-
-#- NUM_AXES         - Optional: Number of axes on this controller
-#-                    Default: 1
-#-
-#- LOW_LIM          - Optional: Low Limit (in steps)
-#-                    Default: -32000
-#-
-#- HIGH_LIM         - Optional: High Limit (in steps)
-#-                    Default: 32000
-#- 
-#- DLLM             - Optional: Motor Record Low Limit (in EGU)
-#-                    Default: -320.0
-#-
-#- DHLM             - Optional: Motor Record High Limit (in EGU)
-#-                    Default: 320.0
-#-
-#- HOME_POS         - Optional: Home position
-#-                    Default: 0
-#- ###################################################
-# Create simulated motors: ( start card , start axis , low limit, high limit, home posn, # cards, # axes to setup)
-motorSimCreate($(CONTROLLER=0), 0, $(LOW_LIM=-32000), $(HIGH_LIM=32000), $(HOME_POS=0), 1, $(NUM_AXES=12))
-# Setup the Asyn layer (portname, low-level driver drvet name, card, number of axes on card)
-drvAsynMotorConfigure("$(INSTANCE)$(CONTROLLER=0)", "$(INSTANCE)", $(CONTROLLER=0), $(NUM_AXES=12))
-dbLoadTemplate("$(SUB=$(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions)", "P=$(PREFIX), DTYP='asynMotor', PORT=$(INSTANCE)$(CONTROLLER=0),DHLM=$(DHLM=320.0),DLLM=$(DLLM=-320.0)")
-###############################################################################
-# Area detector -- NDSA, simDet
-#!iocshLoad("iocsh/NDSA.iocsh", "PREFIX=$(PREFIX), INSTANCE=NDSA, TYPE=$(TYPE)")
-#Shouldn't need a simdet as NDSA comes with image plugin
-#iocshLoad("iocsh/ADSimDetector.iocsh", "PREFIX=$(PREFIX), INSTANCE=SIM1")
-###############################################################################
-iocInit
-###############################################################################
-# write all the PV names to a local file
-dbl > dbl-all.txt
-# Diagnostic: CA links in all records
-dbcar(0,1)
-# print the time our boot was finished
-date
-exit
-epicsEnvSet("IOC","ioc100idPySBL")
-epicsEnvSet("TOP","/net/s100dserv/xorApps/epics/synApps_6_3/ioc/100idPy")
-epicsEnvSet("SUPPORT","/APSshare/epics/synApps_6_3/support")
-epicsEnvSet("LOCAL_SUPPORT","/net/s100dserv/xorApps/epics/synApps_6_3/support")
-epicsEnvSet("EPICS_BASE","/APSshare/epics/base-7.0.8")
-epicsEnvSet("ALIVE","/APSshare/epics/synApps_6_3/support/alive-R1-4-1")
-epicsEnvSet("AREA_DETECTOR","/APSshare/epics/synApps_6_3/support/areaDetector-R3-13")
-epicsEnvSet("ASYN","/APSshare/epics/synApps_6_3/support/asyn-R4-44-2")
-epicsEnvSet("AUTOSAVE","/APSshare/epics/synApps_6_3/support/autosave-R5-11")
-epicsEnvSet("BUSY","/APSshare/epics/synApps_6_3/support/busy-R1-7-4")
-epicsEnvSet("CALC","/APSshare/epics/synApps_6_3/support/calc-R3-7-5")
-epicsEnvSet("CAMAC","/APSshare/epics/synApps_6_3/support/camac-R2-7-5")
-epicsEnvSet("CAPUTRECORDER","/APSshare/epics/synApps_6_3/support/caputRecorder-R1-7-6")
-epicsEnvSet("DAC128V","/APSshare/epics/synApps_6_3/support/dac128V-R2-10-1")
-epicsEnvSet("DANTE","/APSshare/epics/synApps_6_3/support/Dante-R1-1")
-epicsEnvSet("DELAYGEN","/APSshare/epics/synApps_6_3/support/delaygen-R1-2-4")
-epicsEnvSet("DEVIOCSTATS","/APSshare/epics/synApps_6_3/support/iocStats-3-1-16")
-epicsEnvSet("DXP","/APSshare/epics/synApps_6_3/support/dxp-R6-1")
-epicsEnvSet("DXPSITORO","/APSshare/epics/synApps_6_3/support/dxpSITORO-R1-3")
-epicsEnvSet("ETHERIP","/APSshare/epics/synApps_6_3/support/ether_ip-ether_ip-3-3")
-epicsEnvSet("GALIL","/APSshare/epics/synApps_6_3/support/Galil-3-0-V3-5")
-epicsEnvSet("IP","/APSshare/epics/synApps_6_3/support/ip-R2-22")
-epicsEnvSet("IP330","/APSshare/epics/synApps_6_3/support/ip330-R2-10")
-epicsEnvSet("IPAC","/APSshare/epics/synApps_6_3/support/ipac-2-16")
-epicsEnvSet("IPUNIDIG","/APSshare/epics/synApps_6_3/support/ipUnidig-R2-12")
-epicsEnvSet("LABJACK","/APSshare/epics/synApps_6_3/support/LabJack-R3-0")
-epicsEnvSet("LOVE","/APSshare/epics/synApps_6_3/support/love-R3-2-9")
-epicsEnvSet("LUA","/APSshare/epics/synApps_6_3/support/lua-R3-1")
-epicsEnvSet("MCA","/APSshare/epics/synApps_6_3/support/mca-R7-10")
-epicsEnvSet("MEASCOMP","/APSshare/epics/synApps_6_3/support/measComp-R4-2")
-epicsEnvSet("MODBUS","/APSshare/epics/synApps_6_3/support/modbus-R3-3")
-epicsEnvSet("MOTOR","/APSshare/epics/synApps_6_3/support/motor-R7-3-1")
-epicsEnvSet("OPTICS","/APSshare/epics/synApps_6_3/support/optics-R2-14")
-epicsEnvSet("QUADEM","/APSshare/epics/synApps_6_3/support/quadEM-R9-5")
-epicsEnvSet("SCALER","/APSshare/epics/synApps_6_3/support/scaler-4-1")
-epicsEnvSet("SNCSEQ","/APSshare/epics/synApps_6_3/support/sequencer-mirror-R2-2-9")
-epicsEnvSet("SOFTGLUE","/APSshare/epics/synApps_6_3/support/softGlue-R2-8-4")
-epicsEnvSet("SOFTGLUEZYNQ","/APSshare/epics/synApps_6_3/support/softGlueZynq-R2-0-5")
-epicsEnvSet("SSCAN","/APSshare/epics/synApps_6_3/support/sscan-R2-11-6")
-epicsEnvSet("STD","/APSshare/epics/synApps_6_3/support/std-R3-6-4")
-epicsEnvSet("STREAM","/APSshare/epics/synApps_6_3/support/StreamDevice-2-8-24")
-epicsEnvSet("VAC","/APSshare/epics/synApps_6_3/support/vac-R1-9-2")
-epicsEnvSet("VME","/APSshare/epics/synApps_6_3/support/vme-R2-9-5")
-epicsEnvSet("XSPRESS3","/APSshare/epics/synApps_6_3/support/xspress3-3-2-8")
-epicsEnvSet("XXX","/APSshare/epics/synApps_6_3/support/xxx-R6-3")
-epicsEnvSet("YOKOGAWA_DAS","/APSshare/epics/synApps_6_3/support/Yokogawa_DAS-R2-0-2")
-epicsEnvSet("ALLENBRADLEY","/APSshare/epics/synApps_6_3/support/allenBradley-2-3")
-epicsEnvSet("ADCORE","/APSshare/epics/synApps_6_3/support/areaDetector-R3-13/ADCore")
-epicsEnvSet("ADSUPPORT","/APSshare/epics/synApps_6_3/support/areaDetector-R3-13/ADSupport")
-epicsEnvSet("ULDAQ","/APSshare/epics/synApps_6_3/support/measComp-R4-2/libuldaq-1.2.1")
-epicsEnvSet("PYDEVICE","/net/s100dserv/xorApps/epics/synApps_6_3/support/PyDevice-git")
-epicsEnvSet("NDDRIVERSTDARRAYS","/APSshare/epics/synApps_6_3/support/areaDetector-R3-13/NDDriverStdArrays")
-# Shell prompt
-epicsEnvSet("IOCSH_PS1", "$(IOC)> ")
-# prefix used for all PVs in this IOC
-epicsEnvSet("PREFIX", "100idPySBL:")
-#For devIocStats
-epicsEnvSet("ENGINEER", "M. Wyman")
-epicsEnvSet("LOCATION", "100id")
-epicsEnvSet("GROUP", "BCDA")
-# search path for database files
-epicsEnvSet("EPICS_DB_INCLUDE_PATH", ".")
-# search path for streamDevice protocol files
-epicsEnvSet("STREAM_PROTOCOL_PATH", ".")
-# search path for lua scripts
-# epicsEnvSet("LUA_SCRIPT_PATH", "./scripts")
-# Specify largest array CA will transport
-# Note for N doubles, need N*8 bytes+some overhead
-epicsEnvSet("EPICS_CA_MAX_ARRAY_BYTES", 64010)
-### save_restore setup, change SAVE_PATH if you are having autosave manage its own NFS mount
-iocshLoad("$(AUTOSAVE)/iocsh/autosave_settings.iocsh", "PREFIX=$(PREFIX), SAVE_PATH=$(TOP)/iocBoot/$(IOC)")
-# ### motorSim.iocsh ###
-#- ###################################################
-#- PREFIX           - IOC Prefix
-#- INSTANCE         - Instance name, used to create the low-level driver drvet name
-#-                    Combined with the controller number to create the asyn port name
-#-
-#- SUB              - Optional: Subsitutions file (asyn_motor.db), Macros P, DTYP, PORT, 
-#-                              DHLM, DLLM, and INIT will be predefined.
-#-                    Default: $(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions
-#-
-#- CONTROLLER       - Optional: Which controller is being configured
-#-                    Default: 0
-#-
-#- NUM_AXES         - Optional: Number of axes on this controller
-#-                    Default: 1
-#-
-#- LOW_LIM          - Optional: Low Limit (in steps)
-#-                    Default: -32000
-#-
-#- HIGH_LIM         - Optional: High Limit (in steps)
-#-                    Default: 32000
-#- 
-#- DLLM             - Optional: Motor Record Low Limit (in EGU)
-#-                    Default: -320.0
-#-
-#- DHLM             - Optional: Motor Record High Limit (in EGU)
-#-                    Default: 320.0
-#-
-#- HOME_POS         - Optional: Home position
-#-                    Default: 0
-#- ###################################################
-# Create simulated motors: ( start card , start axis , low limit, high limit, home posn, # cards, # axes to setup)
-motorSimCreate($(CONTROLLER=0), 0, $(LOW_LIM=-32000), $(HIGH_LIM=32000), $(HOME_POS=0), 1, $(NUM_AXES=12))
-# Setup the Asyn layer (portname, low-level driver drvet name, card, number of axes on card)
-drvAsynMotorConfigure("$(INSTANCE)$(CONTROLLER=0)", "$(INSTANCE)", $(CONTROLLER=0), $(NUM_AXES=12))
-dbLoadTemplate("$(SUB=$(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions)", "P=$(PREFIX), DTYP='asynMotor', PORT=$(INSTANCE)$(CONTROLLER=0),DHLM=$(DHLM=320.0),DLLM=$(DLLM=-320.0)")
-###############################################################################
-# Area detector -- NDSA, simDet
-#!iocshLoad("iocsh/NDSA.iocsh", "PREFIX=$(PREFIX), INSTANCE=NDSA, TYPE=$(TYPE)")
-#Shouldn't need a simdet as NDSA comes with image plugin
-#iocshLoad("iocsh/ADSimDetector.iocsh", "PREFIX=$(PREFIX), INSTANCE=SIM1")
-###############################################################################
-iocInit
-###############################################################################
-# write all the PV names to a local file
-dbl > dbl-all.txt
-# Diagnostic: CA links in all records
-dbcar(0,1)
-# print the time our boot was finished
-date
-exit
-# Linux startup script
-< envPaths
-# ### motorSim.iocsh ###
-#- ###################################################
-#- PREFIX           - IOC Prefix
-#- INSTANCE         - Instance name, used to create the low-level driver drvet name
-#-                    Combined with the controller number to create the asyn port name
-#-
-#- SUB              - Optional: Subsitutions file (asyn_motor.db), Macros P, DTYP, PORT, 
-#-                              DHLM, DLLM, and INIT will be predefined.
-#-                    Default: $(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions
-#-
-#- CONTROLLER       - Optional: Which controller is being configured
-#-                    Default: 0
-#-
-#- NUM_AXES         - Optional: Number of axes on this controller
-#-                    Default: 1
-#-
-#- LOW_LIM          - Optional: Low Limit (in steps)
-#-                    Default: -32000
-#-
-#- HIGH_LIM         - Optional: High Limit (in steps)
-#-                    Default: 32000
-#- 
-#- DLLM             - Optional: Motor Record Low Limit (in EGU)
-#-                    Default: -320.0
-#-
-#- DHLM             - Optional: Motor Record High Limit (in EGU)
-#-                    Default: 320.0
-#-
-#- HOME_POS         - Optional: Home position
-#-                    Default: 0
-#- ###################################################
-# Create simulated motors: ( start card , start axis , low limit, high limit, home posn, # cards, # axes to setup)
-motorSimCreate($(CONTROLLER=0), 0, $(LOW_LIM=-32000), $(HIGH_LIM=32000), $(HOME_POS=0), 1, $(NUM_AXES=12))
-# Setup the Asyn layer (portname, low-level driver drvet name, card, number of axes on card)
-drvAsynMotorConfigure("$(INSTANCE)$(CONTROLLER=0)", "$(INSTANCE)", $(CONTROLLER=0), $(NUM_AXES=12))
-dbLoadTemplate("$(SUB=$(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions)", "P=$(PREFIX), DTYP='asynMotor', PORT=$(INSTANCE)$(CONTROLLER=0),DHLM=$(DHLM=320.0),DLLM=$(DLLM=-320.0)")
-###############################################################################
-# Area detector -- NDSA, simDet
-#!iocshLoad("iocsh/NDSA.iocsh", "PREFIX=$(PREFIX), INSTANCE=NDSA, TYPE=$(TYPE)")
-#Shouldn't need a simdet as NDSA comes with image plugin
-#iocshLoad("iocsh/ADSimDetector.iocsh", "PREFIX=$(PREFIX), INSTANCE=SIM1")
-###############################################################################
-iocInit
-###############################################################################
-# write all the PV names to a local file
-dbl > dbl-all.txt
-# Diagnostic: CA links in all records
-dbcar(0,1)
-# print the time our boot was finished
-date
-exit
-epicsEnvSet("IOC","ioc100idPySBL")
-epicsEnvSet("TOP","/net/s100dserv/xorApps/epics/synApps_6_3/ioc/100idPy")
-epicsEnvSet("SUPPORT","/APSshare/epics/synApps_6_3/support")
-epicsEnvSet("LOCAL_SUPPORT","/net/s100dserv/xorApps/epics/synApps_6_3/support")
-epicsEnvSet("EPICS_BASE","/APSshare/epics/base-7.0.8")
-epicsEnvSet("ALIVE","/APSshare/epics/synApps_6_3/support/alive-R1-4-1")
-epicsEnvSet("AREA_DETECTOR","/APSshare/epics/synApps_6_3/support/areaDetector-R3-13")
-epicsEnvSet("ASYN","/APSshare/epics/synApps_6_3/support/asyn-R4-44-2")
-epicsEnvSet("AUTOSAVE","/APSshare/epics/synApps_6_3/support/autosave-R5-11")
-epicsEnvSet("BUSY","/APSshare/epics/synApps_6_3/support/busy-R1-7-4")
-epicsEnvSet("CALC","/APSshare/epics/synApps_6_3/support/calc-R3-7-5")
-epicsEnvSet("CAMAC","/APSshare/epics/synApps_6_3/support/camac-R2-7-5")
-epicsEnvSet("CAPUTRECORDER","/APSshare/epics/synApps_6_3/support/caputRecorder-R1-7-6")
-epicsEnvSet("DAC128V","/APSshare/epics/synApps_6_3/support/dac128V-R2-10-1")
-epicsEnvSet("DANTE","/APSshare/epics/synApps_6_3/support/Dante-R1-1")
-epicsEnvSet("DELAYGEN","/APSshare/epics/synApps_6_3/support/delaygen-R1-2-4")
-epicsEnvSet("DEVIOCSTATS","/APSshare/epics/synApps_6_3/support/iocStats-3-1-16")
-epicsEnvSet("DXP","/APSshare/epics/synApps_6_3/support/dxp-R6-1")
-epicsEnvSet("DXPSITORO","/APSshare/epics/synApps_6_3/support/dxpSITORO-R1-3")
-epicsEnvSet("ETHERIP","/APSshare/epics/synApps_6_3/support/ether_ip-ether_ip-3-3")
-epicsEnvSet("GALIL","/APSshare/epics/synApps_6_3/support/Galil-3-0-V3-5")
-epicsEnvSet("IP","/APSshare/epics/synApps_6_3/support/ip-R2-22")
-epicsEnvSet("IP330","/APSshare/epics/synApps_6_3/support/ip330-R2-10")
-epicsEnvSet("IPAC","/APSshare/epics/synApps_6_3/support/ipac-2-16")
-epicsEnvSet("IPUNIDIG","/APSshare/epics/synApps_6_3/support/ipUnidig-R2-12")
-epicsEnvSet("LABJACK","/APSshare/epics/synApps_6_3/support/LabJack-R3-0")
-epicsEnvSet("LOVE","/APSshare/epics/synApps_6_3/support/love-R3-2-9")
-epicsEnvSet("LUA","/APSshare/epics/synApps_6_3/support/lua-R3-1")
-epicsEnvSet("MCA","/APSshare/epics/synApps_6_3/support/mca-R7-10")
-epicsEnvSet("MEASCOMP","/APSshare/epics/synApps_6_3/support/measComp-R4-2")
-epicsEnvSet("MODBUS","/APSshare/epics/synApps_6_3/support/modbus-R3-3")
-epicsEnvSet("MOTOR","/APSshare/epics/synApps_6_3/support/motor-R7-3-1")
-epicsEnvSet("OPTICS","/APSshare/epics/synApps_6_3/support/optics-R2-14")
-epicsEnvSet("QUADEM","/APSshare/epics/synApps_6_3/support/quadEM-R9-5")
-epicsEnvSet("SCALER","/APSshare/epics/synApps_6_3/support/scaler-4-1")
-epicsEnvSet("SNCSEQ","/APSshare/epics/synApps_6_3/support/sequencer-mirror-R2-2-9")
-epicsEnvSet("SOFTGLUE","/APSshare/epics/synApps_6_3/support/softGlue-R2-8-4")
-epicsEnvSet("SOFTGLUEZYNQ","/APSshare/epics/synApps_6_3/support/softGlueZynq-R2-0-5")
-epicsEnvSet("SSCAN","/APSshare/epics/synApps_6_3/support/sscan-R2-11-6")
-epicsEnvSet("STD","/APSshare/epics/synApps_6_3/support/std-R3-6-4")
-epicsEnvSet("STREAM","/APSshare/epics/synApps_6_3/support/StreamDevice-2-8-24")
-epicsEnvSet("VAC","/APSshare/epics/synApps_6_3/support/vac-R1-9-2")
-epicsEnvSet("VME","/APSshare/epics/synApps_6_3/support/vme-R2-9-5")
-epicsEnvSet("XSPRESS3","/APSshare/epics/synApps_6_3/support/xspress3-3-2-8")
-epicsEnvSet("XXX","/APSshare/epics/synApps_6_3/support/xxx-R6-3")
-epicsEnvSet("YOKOGAWA_DAS","/APSshare/epics/synApps_6_3/support/Yokogawa_DAS-R2-0-2")
-epicsEnvSet("ALLENBRADLEY","/APSshare/epics/synApps_6_3/support/allenBradley-2-3")
-epicsEnvSet("ADCORE","/APSshare/epics/synApps_6_3/support/areaDetector-R3-13/ADCore")
-epicsEnvSet("ADSUPPORT","/APSshare/epics/synApps_6_3/support/areaDetector-R3-13/ADSupport")
-epicsEnvSet("ULDAQ","/APSshare/epics/synApps_6_3/support/measComp-R4-2/libuldaq-1.2.1")
-epicsEnvSet("PYDEVICE","/net/s100dserv/xorApps/epics/synApps_6_3/support/PyDevice-git")
-epicsEnvSet("NDDRIVERSTDARRAYS","/APSshare/epics/synApps_6_3/support/areaDetector-R3-13/NDDriverStdArrays")
-# Increase size of buffer for error logging from default 1256
-errlogInit(20000)
-################################################################################
-# PYTHONPATH points to folders where Python modules are.
-# Needs to be done before dbd load, so moved to st.cmd
-epicsEnvSet("PYTHONPATH","$(TOP)/100idPyApp/python")
-################################################################################
-# Tell EPICS all about the record types, device-support modules, drivers,
-# etc. in the software we just loaded (100idPy.munch)
-dbLoadDatabase("../../dbd/ioc100idPyLinux.dbd")
-ioc100idPyLinux_registerRecordDeviceDriver(pdbbase)
-< settings.iocsh
-# ### motorSim.iocsh ###
-#- ###################################################
-#- PREFIX           - IOC Prefix
-#- INSTANCE         - Instance name, used to create the low-level driver drvet name
-#-                    Combined with the controller number to create the asyn port name
-#-
-#- SUB              - Optional: Subsitutions file (asyn_motor.db), Macros P, DTYP, PORT, 
-#-                              DHLM, DLLM, and INIT will be predefined.
-#-                    Default: $(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions
-#-
-#- CONTROLLER       - Optional: Which controller is being configured
-#-                    Default: 0
-#-
-#- NUM_AXES         - Optional: Number of axes on this controller
-#-                    Default: 1
-#-
-#- LOW_LIM          - Optional: Low Limit (in steps)
-#-                    Default: -32000
-#-
-#- HIGH_LIM         - Optional: High Limit (in steps)
-#-                    Default: 32000
-#- 
-#- DLLM             - Optional: Motor Record Low Limit (in EGU)
-#-                    Default: -320.0
-#-
-#- DHLM             - Optional: Motor Record High Limit (in EGU)
-#-                    Default: 320.0
-#-
-#- HOME_POS         - Optional: Home position
-#-                    Default: 0
-#- ###################################################
-# Create simulated motors: ( start card , start axis , low limit, high limit, home posn, # cards, # axes to setup)
-motorSimCreate($(CONTROLLER=0), 0, $(LOW_LIM=-32000), $(HIGH_LIM=32000), $(HOME_POS=0), 1, $(NUM_AXES=12))
-# Setup the Asyn layer (portname, low-level driver drvet name, card, number of axes on card)
-drvAsynMotorConfigure("$(INSTANCE)$(CONTROLLER=0)", "$(INSTANCE)", $(CONTROLLER=0), $(NUM_AXES=12))
-dbLoadTemplate("$(SUB=$(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions)", "P=$(PREFIX), DTYP='asynMotor', PORT=$(INSTANCE)$(CONTROLLER=0),DHLM=$(DHLM=320.0),DLLM=$(DLLM=-320.0)")
-###############################################################################
-# Area detector -- NDSA, simDet
-#!iocshLoad("iocsh/NDSA.iocsh", "PREFIX=$(PREFIX), INSTANCE=NDSA, TYPE=$(TYPE)")
-#Shouldn't need a simdet as NDSA comes with image plugin
-#iocshLoad("iocsh/ADSimDetector.iocsh", "PREFIX=$(PREFIX), INSTANCE=SIM1")
-###############################################################################
-iocInit
-###############################################################################
-# write all the PV names to a local file
-dbl > dbl-all.txt
-# Diagnostic: CA links in all records
-dbcar(0,1)
-# print the time our boot was finished
-date
-exit
-# Linux startup script
-< envPaths
-# ### motorSim.iocsh ###
-#- ###################################################
-#- PREFIX           - IOC Prefix
-#- INSTANCE         - Instance name, used to create the low-level driver drvet name
-#-                    Combined with the controller number to create the asyn port name
-#-
-#- SUB              - Optional: Subsitutions file (asyn_motor.db), Macros P, DTYP, PORT, 
-#-                              DHLM, DLLM, and INIT will be predefined.
-#-                    Default: $(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions
-#-
-#- CONTROLLER       - Optional: Which controller is being configured
-#-                    Default: 0
-#-
-#- NUM_AXES         - Optional: Number of axes on this controller
-#-                    Default: 1
-#-
-#- LOW_LIM          - Optional: Low Limit (in steps)
-#-                    Default: -32000
-#-
-#- HIGH_LIM         - Optional: High Limit (in steps)
-#-                    Default: 32000
-#- 
-#- DLLM             - Optional: Motor Record Low Limit (in EGU)
-#-                    Default: -320.0
-#-
-#- DHLM             - Optional: Motor Record High Limit (in EGU)
-#-                    Default: 320.0
-#-
-#- HOME_POS         - Optional: Home position
-#-                    Default: 0
-#- ###################################################
-# Create simulated motors: ( start card , start axis , low limit, high limit, home posn, # cards, # axes to setup)
-motorSimCreate($(CONTROLLER=0), 0, $(LOW_LIM=-32000), $(HIGH_LIM=32000), $(HOME_POS=0), 1, $(NUM_AXES=12))
-# Setup the Asyn layer (portname, low-level driver drvet name, card, number of axes on card)
-drvAsynMotorConfigure("$(INSTANCE)$(CONTROLLER=0)", "$(INSTANCE)", $(CONTROLLER=0), $(NUM_AXES=12))
-dbLoadTemplate("$(SUB=$(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions)", "P=$(PREFIX), DTYP='asynMotor', PORT=$(INSTANCE)$(CONTROLLER=0),DHLM=$(DHLM=320.0),DLLM=$(DLLM=-320.0)")
-###############################################################################
-# Area detector -- NDSA, simDet
-#!iocshLoad("iocsh/NDSA.iocsh", "PREFIX=$(PREFIX), INSTANCE=NDSA, TYPE=$(TYPE)")
-#Shouldn't need a simdet as NDSA comes with image plugin
+dbLoadRecords("$(AUTOSAVE)/db/configMenu.db", "P=$(PREFIX), CONFIG=ADAutoSave")
+# Optional: load NDPluginPva plugin
+NDPvaConfigure("PVA1", $(QSIZE), 0, "$(PORT)", 0, $(PREFIX)Pva1:Image, 0, 0, 0)
+dbLoadRecords("NDPva.template",  "P=$(PREFIX),R=Pva1:, PORT=PVA1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT)")
+# Must start PVA server if this is enabled
+startPVAServer
+# Optional: load ffmpegServer plugin
+#ffmpegServerConfigure(8081)
+#ffmpegStreamConfigure("FfmStream1", 2, 0, "$(PORT)", 0, -1, 0)
+#dbLoadRecords("$(FFMPEGSERVER)/db/ffmpegStream.template", "P=$(PREFIX),R=ffmstream1:,PORT=FfmStream1,NDARRAY_PORT=$(PORT)")
+#ffmpegFileConfigure("FfmFile1", 16, 0, "$(PORT)", 0, -1, 0)
+#dbLoadRecords("$(FFMPEGSERVER)/db/ffmpegFile.template", "P=$(PREFIX),R=ffmfile1:,PORT=FfmFile1,NDARRAY_PORT=$(PORT)")
+# Optional: load NDPluginEdge plugin
+#NDEdgeConfigure("EDGE1", $(QSIZE), 0, "$(PORT)", 0, 0, 0, 0)
+#dbLoadRecords("$(ADPLUGINEDGE)/db/NDEdge.template",  "P=$(PREFIX),R=Edge1:, PORT=EDGE1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT)")
+#set_requestfile_path("$(ADPLUGINEDGE)/db")
+# Optional: load NDPluginCV plugin
+#NDCVConfigure("CV1", $(QSIZE), 0, "$(PORT)", 0, 0, 0, 0, 0, $(MAX_THREADS=5))
+#dbLoadRecords("$(ADCOMPVISION)/db/NDCV.template",  "P=$(PREFIX),R=CV1:, PORT=CV1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT)")
+#set_requestfile_path("$(ADCOMPVISION)/adcvApp/Db")
+# Optional: load NDPluginBar plugin
+#NDBarConfigure("BAR1", $(QSIZE), 0, "$(PORT)", 0, 0, 0, 0, 0, $(MAX_THREADS=5))
+#dbLoadRecords("$(ADPLUGINBAR)/db/NDBar.template",  "P=$(PREFIX),R=Bar1:, PORT=BAR1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT)")
+#set_requestfile_path("$(ADPLUGINBAR)/barApp/Db")
+# Optional: load scan records
+#dbLoadRecords("$(SSCAN)/sscanApp/Db/scan.db", "P=$(PREFIX),MAXPTS1=2000,MAXPTS2=200,MAXPTS3=20,MAXPTS4=10,MAXPTSH=10")
+#set_requestfile_path("$(SSCAN)/sscanApp/Db")
+# Optional: load sseq record for acquisition sequence
+#dbLoadRecords("$(CALC)/calcApp/Db/sseqRecord.db", "P=$(PREFIX), S=AcquireSequence")
+#set_requestfile_path("$(CALC)/calcApp/Db")
+# Optional: load devIocStats records (requires DEVIOCSTATS module)
+#dbLoadRecords("$(DEVIOCSTATS)/db/iocAdminSoft.db", "IOC=$(PREFIX)")
+# Optional: load alive record (requires ALIVE module)
+#dbLoadRecords("$(ALIVE)/aliveApp/Db/alive.db", "P=$(PREFIX),RHOST=164.54.100.11")
+# Set the callback queue size to 5000, up from default of 2000 in base.
+# This can be needed to avoid errors "callbackRequest: cbLow ring buffer full".
+callbackSetQueueSize(5000)
+doAfterIocInit("dbpf('100idPySBL:NDSA:NDimensions', '2')")
+#Shouldn't need a simdet as NDSA comes with image plugin; however, adding 
+#one to test some pycalc ideas
 #iocshLoad("iocsh/ADSimDetector.iocsh", "PREFIX=$(PREFIX), INSTANCE=SIM1")
 ###############################################################################
 iocInit
@@ -664,361 +49,3 @@ dbcar(0,1)
 # print the time our boot was finished
 date
 exit
-epicsEnvSet("IOC","ioc100idPySBL")
-epicsEnvSet("TOP","/net/s100dserv/xorApps/epics/synApps_6_3/ioc/100idPy")
-epicsEnvSet("SUPPORT","/APSshare/epics/synApps_6_3/support")
-epicsEnvSet("LOCAL_SUPPORT","/net/s100dserv/xorApps/epics/synApps_6_3/support")
-epicsEnvSet("EPICS_BASE","/APSshare/epics/base-7.0.8")
-epicsEnvSet("ALIVE","/APSshare/epics/synApps_6_3/support/alive-R1-4-1")
-epicsEnvSet("AREA_DETECTOR","/APSshare/epics/synApps_6_3/support/areaDetector-R3-13")
-epicsEnvSet("ASYN","/APSshare/epics/synApps_6_3/support/asyn-R4-44-2")
-epicsEnvSet("AUTOSAVE","/APSshare/epics/synApps_6_3/support/autosave-R5-11")
-epicsEnvSet("BUSY","/APSshare/epics/synApps_6_3/support/busy-R1-7-4")
-epicsEnvSet("CALC","/APSshare/epics/synApps_6_3/support/calc-R3-7-5")
-epicsEnvSet("CAMAC","/APSshare/epics/synApps_6_3/support/camac-R2-7-5")
-epicsEnvSet("CAPUTRECORDER","/APSshare/epics/synApps_6_3/support/caputRecorder-R1-7-6")
-epicsEnvSet("DAC128V","/APSshare/epics/synApps_6_3/support/dac128V-R2-10-1")
-epicsEnvSet("DANTE","/APSshare/epics/synApps_6_3/support/Dante-R1-1")
-epicsEnvSet("DELAYGEN","/APSshare/epics/synApps_6_3/support/delaygen-R1-2-4")
-epicsEnvSet("DEVIOCSTATS","/APSshare/epics/synApps_6_3/support/iocStats-3-1-16")
-epicsEnvSet("DXP","/APSshare/epics/synApps_6_3/support/dxp-R6-1")
-epicsEnvSet("DXPSITORO","/APSshare/epics/synApps_6_3/support/dxpSITORO-R1-3")
-epicsEnvSet("ETHERIP","/APSshare/epics/synApps_6_3/support/ether_ip-ether_ip-3-3")
-epicsEnvSet("GALIL","/APSshare/epics/synApps_6_3/support/Galil-3-0-V3-5")
-epicsEnvSet("IP","/APSshare/epics/synApps_6_3/support/ip-R2-22")
-epicsEnvSet("IP330","/APSshare/epics/synApps_6_3/support/ip330-R2-10")
-epicsEnvSet("IPAC","/APSshare/epics/synApps_6_3/support/ipac-2-16")
-epicsEnvSet("IPUNIDIG","/APSshare/epics/synApps_6_3/support/ipUnidig-R2-12")
-epicsEnvSet("LABJACK","/APSshare/epics/synApps_6_3/support/LabJack-R3-0")
-epicsEnvSet("LOVE","/APSshare/epics/synApps_6_3/support/love-R3-2-9")
-epicsEnvSet("LUA","/APSshare/epics/synApps_6_3/support/lua-R3-1")
-epicsEnvSet("MCA","/APSshare/epics/synApps_6_3/support/mca-R7-10")
-epicsEnvSet("MEASCOMP","/APSshare/epics/synApps_6_3/support/measComp-R4-2")
-epicsEnvSet("MODBUS","/APSshare/epics/synApps_6_3/support/modbus-R3-3")
-epicsEnvSet("MOTOR","/APSshare/epics/synApps_6_3/support/motor-R7-3-1")
-epicsEnvSet("OPTICS","/APSshare/epics/synApps_6_3/support/optics-R2-14")
-epicsEnvSet("QUADEM","/APSshare/epics/synApps_6_3/support/quadEM-R9-5")
-epicsEnvSet("SCALER","/APSshare/epics/synApps_6_3/support/scaler-4-1")
-epicsEnvSet("SNCSEQ","/APSshare/epics/synApps_6_3/support/sequencer-mirror-R2-2-9")
-epicsEnvSet("SOFTGLUE","/APSshare/epics/synApps_6_3/support/softGlue-R2-8-4")
-epicsEnvSet("SOFTGLUEZYNQ","/APSshare/epics/synApps_6_3/support/softGlueZynq-R2-0-5")
-epicsEnvSet("SSCAN","/APSshare/epics/synApps_6_3/support/sscan-R2-11-6")
-epicsEnvSet("STD","/APSshare/epics/synApps_6_3/support/std-R3-6-4")
-epicsEnvSet("STREAM","/APSshare/epics/synApps_6_3/support/StreamDevice-2-8-24")
-epicsEnvSet("VAC","/APSshare/epics/synApps_6_3/support/vac-R1-9-2")
-epicsEnvSet("VME","/APSshare/epics/synApps_6_3/support/vme-R2-9-5")
-epicsEnvSet("XSPRESS3","/APSshare/epics/synApps_6_3/support/xspress3-3-2-8")
-epicsEnvSet("XXX","/APSshare/epics/synApps_6_3/support/xxx-R6-3")
-epicsEnvSet("YOKOGAWA_DAS","/APSshare/epics/synApps_6_3/support/Yokogawa_DAS-R2-0-2")
-epicsEnvSet("ALLENBRADLEY","/APSshare/epics/synApps_6_3/support/allenBradley-2-3")
-epicsEnvSet("ADCORE","/APSshare/epics/synApps_6_3/support/areaDetector-R3-13/ADCore")
-epicsEnvSet("ADSUPPORT","/APSshare/epics/synApps_6_3/support/areaDetector-R3-13/ADSupport")
-epicsEnvSet("ULDAQ","/APSshare/epics/synApps_6_3/support/measComp-R4-2/libuldaq-1.2.1")
-epicsEnvSet("PYDEVICE","/net/s100dserv/xorApps/epics/synApps_6_3/support/PyDevice-git")
-epicsEnvSet("NDDRIVERSTDARRAYS","/APSshare/epics/synApps_6_3/support/areaDetector-R3-13/NDDriverStdArrays")
-# Shell prompt
-epicsEnvSet("IOCSH_PS1", "$(IOC)> ")
-# prefix used for all PVs in this IOC
-epicsEnvSet("PREFIX", "100idPySBL:")
-#For devIocStats
-epicsEnvSet("ENGINEER", "M. Wyman")
-epicsEnvSet("LOCATION", "100id")
-epicsEnvSet("GROUP", "BCDA")
-# search path for database files
-epicsEnvSet("EPICS_DB_INCLUDE_PATH", ".")
-# search path for streamDevice protocol files
-epicsEnvSet("STREAM_PROTOCOL_PATH", ".")
-# search path for lua scripts
-# epicsEnvSet("LUA_SCRIPT_PATH", "./scripts")
-# Specify largest array CA will transport
-# Note for N doubles, need N*8 bytes+some overhead
-epicsEnvSet("EPICS_CA_MAX_ARRAY_BYTES", 64010)
-# ### autosave_settings.iocsh ###
-#- ###################################################
-#- PREFIX         - IOC Prefix
-#- AUTOSAVE       - Location of autosave module
-#- SAVE_PATH      - Location to create autosave directory where files will be saved
-#- INCOMPLETE     - Optional: Ok to save/restore save sets with missing values?
-#-                  Default: 1
-#-
-#- DATED_BACKUP   - Optional: Save dated backup files?
-#-                  Default: 1
-#-
-#- CA_RECONNECT   - Optional: Retry connecting to PVs whose initial connection attempt failed?
-#-                  Default: 1
-#-
-#- NUM_SEQ        - Optional: Number of sequenced backup files to write
-#-                  Default: 3
-#-
-#- SEQ_PERIOD     - Optional: Time interval in seconds between sequenced backups
-#-                - Default: 300
-#- ###################################################
-set_savefile_path("$(SAVE_PATH)", "autosave")
-#- Add save path and autosave to list of directories to find files
-set_requestfile_path("$(SAVE_PATH)", "")
-set_requestfile_path("$(AUTOSAVE)", "asApp/Db")
-save_restoreSet_status_prefix("$(PREFIX)")
-save_restoreSet_CAReconnect($(CA_RECONNECT=1))
-save_restoreSet_IncompleteSetsOk($(INCOMPLETE=1))
-save_restoreSet_DatedBackupFiles($(DATED_BACKUP=1))
-save_restoreSet_NumSeqFiles($(NUM_SEQ=3))
-save_restoreSet_SeqPeriodInSeconds($(SEQ_PERIOD=300))
-#- Time interval in seconds between forced save-file writes.  (-1 means forever).
-#- This is intended to get save files written even if the normal trigger mechanism is broken.
-save_restoreSet_CallbackTimeout(-1)
-dbLoadRecords("$(AUTOSAVE)/asApp/Db/save_restoreStatus.db", "P=$(PREFIX), DEAD_SECONDS=5")
-# ### save_restore.iocsh ###
-#- ###################################################
-#- PREFIX         - IOC Prefix
-#- POSITIONS_FILE - Name of positions file, script will search for $(POSITIONS_FILE).req, 
-#-                  saved positions will be in $(POSITIONS_FILE).sav
-#-                  macro PREFIX will be defined for the file
-#- SETTINGS_FILE  - Name of settings file, script will search for $(SETTINGS_FILE).req, 
-#-                  saved settings will be in $(SETTINGS_FILE).sav
-#-                  macro PREFIX will be defined for the file
-#- AUTOSAVE       - Location of Autosave module
-#- POSITION_PERIOD- Optional: Time interval in seconds between saving positions
-#-                - Default: 5
-#- 
-#- SETTING_PERIOD - Optional: Time interval in seconds between saving settings
-#-                - Default: 30
-#- ###################################################
-#- Specify what save files should be restored.  Note these files must be
-#- in the directory specified in set_savefile_path(), or, if that function
-#- has not been called, from the directory current when iocInit is invoked
-set_pass0_restoreFile("$(POSITIONS_FILE).sav")
-set_pass0_restoreFile("$(SETTINGS_FILE).sav")
-set_pass1_restoreFile("$(SETTINGS_FILE).sav")
-#- Note doAfterIocInit() supplied by std module.
-doAfterIocInit("create_monitor_set('$(POSITIONS_FILE).req',$(POSITION_PERIOD=5),'P=$(PREFIX)')")
-doAfterIocInit("create_monitor_set('$(SETTINGS_FILE).req',$(SETTING_PERIOD=30),'P=$(PREFIX)')")
-#- Debug-output level
-save_restoreSet_Debug(0)
-# ### autosaveBuild.iocsh ###
-#- ###################################################
-#- PREFIX         - IOC Prefix
-#- BUILD_PATH     - Optional: Location to create BUILT_SETTINGS and BUILT_POSITIONS
-#-                  Default: Current Directory
-#- AUTOSAVE       - Location of Autosave module
-#- POSITION_PERIOD- Optional: Time interval in seconds between saving positions
-#-                - Default: 5
-#- 
-#- SETTING_PERIOD - Optional: Time interval in seconds between saving settings
-#-                - Default: 30
-#- ###################################################
-#- Specify what save files should be restored.  Note these files must be
-#- in the directory specified in set_savefile_path(), or, if that function
-#- has not been called, from the directory current when iocInit is invoked
-set_pass0_restoreFile("built_positions.sav")
-set_pass0_restoreFile("built_settings.sav")
-set_pass1_restoreFile("built_settings.sav")
-#- Note doAfterIocInit() supplied by std module.
-doAfterIocInit("create_monitor_set('built_positions.req',$(POSITION_PERIOD=5), P=$(PREFIX))")
-doAfterIocInit("create_monitor_set('built_settings.req',$(SETTING_PERIOD=30), P=$(PREFIX))")
-#- Debug-output level
-save_restoreSet_Debug(0)
-#- Tell autosave to automatically build built_settings.req and
-#- built_positions.req from databases and macros supplied to dbLoadRecords()
-#- (and dbLoadTemplate(), which calls dbLoadRecords()).
-#- This requires EPICS 3.15.1 or later, or 3.14 patched as described in
-#- autosave R5-5 documentation.
-epicsEnvSet("BUILT_SETTINGS", "built_settings.req")
-epicsEnvSet("BUILT_POSITIONS", "built_positions.req")
-autosaveBuild("$(BUILD_PATH=.)/$(BUILT_SETTINGS)", "_settings.req", 1)
-autosaveBuild("$(BUILD_PATH=.)/$(BUILT_POSITIONS)", "_positions.req", 1)
-set_requestfile_path("$(BUILD_PATH=.)")
-# ### caputRecorder.iocsh ###
-#- ###################################################
-#- PREFIX         - IOC Prefix
-#- CAPUTRECORDER  - Location of caputRecorder module
-#-
-#- SIZE           - Optional: Manages the size of certain elements
-#-                            in the caputRecorder database
-#-                  Default: 300
-#- ###################################################
-#- trap listener
-dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputPoster.db","P=$(PREFIX),N=300")
-doAfterIocInit("registerCaputRecorderTrapListener('$(PREFIX)caputRecorderCommand')")
-#- GUI database
-dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputRecorder.db","P=$(PREFIX),N=300")
-# ### sscan.iocsh ###
-#- ###################################################
-#- PREFIX         - IOC Prefix
-#- SSCAN          - Location of sscan module
-#- MAX_PTS        - Optional: Maximum number of scan points 
-#-                            for all dimensions
-#-                  Default: 1000
-#-
-#- MAX_PTS1       - Optional: Maximum number of scan points
-#-                            for first dimension
-#-                  Default: $(MAX_PTS)
-#-
-#- MAX_PTS2       - Optional: Maximum number of scan points
-#-                            for second dimension
-#-                  Default: $(MAX_PTS)
-#-
-#- MAX_PTS3       - Optional: Maximum number of scan points
-#-                            for third dimension
-#-                  Default: $(MAX_PTS)
-#-
-#- MAX_PTS4       - Optional: Maximum number of scan points
-#-                            for fourth dimension
-#-                  Default: $(MAX_PTS)
-#-
-#- MAX_PTSH       - Optional: Maximum number of scan points
-#-                            for H dimension
-#-                  Default: $(MAX_PTS)
-#-
-#- REQ_FILE       - Optional: Name of saveData req file
-#-                  Default: saveData.req
-#- ###################################################
-#- ### Scan-support software
-#- crate-resident scan.  This executes 1D, 2D, 3D, and 4D scans, and caches
-#- 1D data, but it doesn't store anything to disk.  (See 'saveData' below for that.)
-dbLoadRecords("$(SSCAN)/sscanApp/Db/standardScans.db","P=$(PREFIX),MAXPTS1=$(MAX_PTS1=$(MAX_PTS=1000)),MAXPTS2=$(MAX_PTS2=$(MAX_PTS=1000)),MAXPTS3=$(MAX_PTS3=$(MAX_PTS=1000)),MAXPTS4=$(MAX_PTS4=$(MAX_PTS=1000)),MAXPTSH=$(MAX_PTSH=$(MAX_PTS=1000))")
-#- Start the saveData task.  If you start this task, scan records mentioned
-#- in saveData.req will *always* write data files.  There is no programmable
-#- disable for this software.
-dbLoadRecords("$(SSCAN)/sscanApp/Db/saveData.db","P=$(PREFIX)")
-doAfterIocInit("saveData_Init('$(REQ_FILE=saveData.req)', 'P=$(PREFIX)')")
-dbLoadRecords("$(SSCAN)/sscanApp/Db/scanProgress.db","P=$(PREFIX)scanProgress:")
-doAfterIocInit("seq &scanProgress, 'S=$(PREFIX), P=$(PREFIX)scanProgress:'")
-# ### configMenu.iocsh ###
-#- ###################################################
-#- PREFIX         - IOC Prefix
-#- CONFIG         - Menu name, will search for $(CONFIG)Menu.req
-#- AUTOSAVE       - Location of autosave module
-#- ###################################################
-#- configMenu example.
-dbLoadRecords("$(AUTOSAVE)/asApp/Db/configMenu.db","P=$(PREFIX),CONFIG=$(CONFIG)")
-#- Note that the request file MUST be named $(CONFIG)Menu.req
-#- If the macro CONFIGMENU is defined with any value, backup (".savB") and
-#- sequence files (".savN") will not be written.  We don't want these for configMenu.
-#- Run this after iocInit:
-doAfterIocInit("create_manual_set('$(CONFIG)Menu.req','P=$(PREFIX),CONFIG=$(CONFIG),CONFIGMENU=1')")
-# ### userCalc.iocsh ###
-#- ###################################################
-#- PREFIX         - IOC Prefix
-#- CALC           - Location of Calc module
-#- ARRAY_SIZE     - Optional: Size of userArrayCalc array
-#-                  Default:  8000
-#- ###################################################
-#- ## Stuff for user programming ###
-dbLoadRecords("$(CALC)/db/userCalcGlobalEnable.db", "P=$(PREFIX)")
-dbLoadRecords("$(CALC)/db/userCalcs10.db",          "P=$(PREFIX)")
-dbLoadRecords("$(CALC)/db/userCalcOuts10.db",       "P=$(PREFIX)")
-dbLoadRecords("$(CALC)/db/userStringCalcs10.db",    "P=$(PREFIX)")
-dbLoadRecords("$(CALC)/db/userArrayCalcs10.db",     "P=$(PREFIX), N=$(ARRAY_SIZE=8000)")
-dbLoadRecords("$(CALC)/db/userTransforms10.db",     "P=$(PREFIX)")
-dbLoadRecords("$(CALC)/db/userAve10.db",            "P=$(PREFIX)")
-# ### userCalc.iocsh ###
-#- ###################################################
-#- PREFIX         - IOC Prefix
-#- CALC           - Location of Calc module
-#- N              - Additional calcs index (Ex: N=1 creates calcs 10-19)
-#- ARRAY_SIZE     - Optional: Size of userArrayCalc array
-#-                  Default:  8000
-#- ###################################################
-#- ## Stuff for user programming ###
-dbLoadRecords("$(CALC)/db/userCalcs10more.db","P=$(PREFIX),N10=$(N)0,N1=$(N)1,N2=$(N)2,N3=$(N)3,N4=$(N)4,N5=$(N)5,N6=$(N)6,N7=$(N)7,N8=$(N)8,N9=$(N)9")
-dbLoadRecords("$(CALC)/db/userCalcOuts10more.db","P=$(PREFIX),N10=$(N)0,N1=$(N)1,N2=$(N)2,N3=$(N)3,N4=$(N)4,N5=$(N)5,N6=$(N)6,N7=$(N)7,N8=$(N)8,N9=$(N)9")
-dbLoadRecords("$(CALC)/db/userStringCalcs10more.db","P=$(PREFIX),N10=$(N)0,N1=$(N)1,N2=$(N)2,N3=$(N)3,N4=$(N)4,N5=$(N)5,N6=$(N)6,N7=$(N)7,N8=$(N)8,N9=$(N)9")
-dbLoadRecords("$(CALC)/db/userArrayCalcs10more.db","P=$(PREFIX),N10=$(N)0,N1=$(N)1,N2=$(N)2,N3=$(N)3,N4=$(N)4,N5=$(N)5,N6=$(N)6,N7=$(N)7,N8=$(N)8,N9=$(N)9,N=$(ARRAY_SIZE=8000)")
-dbLoadRecords("$(CALC)/db/userTransforms10more.db","P=$(PREFIX),N10=$(N)0,N1=$(N)1,N2=$(N)2,N3=$(N)3,N4=$(N)4,N5=$(N)5,N6=$(N)6,N7=$(N)7,N8=$(N)8,N9=$(N)9")
-dbLoadRecords("$(CALC)/db/userAve10more.db","P=$(PREFIX),N10=$(N)0,N1=$(N)1,N2=$(N)2,N3=$(N)3,N4=$(N)4,N5=$(N)5,N6=$(N)6,N7=$(N)7,N8=$(N)8,N9=$(N)9")
-# ### sseq.iocsh ###
-#- ###################################################
-#- PREFIX         - IOC Prefix
-#- INSTANCE       - Instance Prefix
-#- CALC           - Location of Calc module
-#- ###################################################
-#- string sequence (sseq) records
-dbLoadRecords("$(CALC)/db/userStringSeqs10.db","P=$(PREFIX)")
-#- editSseq - edit any sseq or seq record
-dbLoadRecords("$(CALC)/db/editSseq.db", "P=$(PREFIX),Q=$(INSTANCE)")
-doAfterIocInit("seq &editSseq, 'P=$(PREFIX),Q=$(INSTANCE)'")
-#- interpolation
-dbLoadRecords("$(CALC)/calcApp/Db/interp.db", "P=$(PREFIX),N=2000")
-dbLoadRecords("$(CALC)/calcApp/Db/interpNew.db", "P=$(PREFIX),Q=1,N=2000")
-#- busy record
-dbLoadRecords("$(BUSY)/busyApp/Db/busyRecord.db", "P=$(PREFIX),R=mybusy1")
-dbLoadRecords("$(BUSY)/busyApp/Db/busyRecord.db", "P=$(PREFIX),R=mybusy2")
-#- Soft function generator
-#dbLoadRecords("$(CALC)/calcApp/Db/FuncGen.db","P=$(PREFIX),Q=fgen,OUT=$(PREFIX)m7.VAL")
-### Load database record for alive heartbeating support.
-#- IOCNM is name of IOC, RHOST specifies the remote server accepting hearbeats
-dbLoadRecords("$(ALIVE)/aliveApp/Db/alive.db", "P=$(PREFIX),IOCNM=$(IOC),RHOST=164.54.100.11")
-dbLoadRecords("$(ALIVE)/aliveApp/Db/aliveMSGCalc.db", "P=$(PREFIX)")
-#- A set of scan parameters for each positioner.  This is a convenience
-#- for the user.  It can contain an entry for each scannable thing in the
-#- crate.
-#dbLoadTemplate("substitutions/scanParms.substitutions", "P=$(PREFIX)")
-################################################################################
-# PyDevice Support for a simulated beamline
-################################################################################
-# load template of simulated motors
-# load db for detector
-# AD stuff (NDSA? image? is simDet needed?)
-iocshRun('epicsEnvSet("__FTVL", "$($(TYPE=Int8)_VAL)")', "Int8_VAL=UCHAR, UInt8_VAL=UCHAR, Int16_VAL=SHORT, UInt16_VAL=SHORT, Int32_VAL=LONG, UInt32_VAL=LONG, Float32_VAL=DOUBLE, Float64_VAL=DOUBLE")
-iocshRun('epicsEnvSet("__TYPE", "$($(TYPE=Int8)_VAL)")', "Int8_VAL=Int8, UInt8_VAL=Int8, Int16_VAL=Int16, UInt16_VAL=Int16, Int32_VAL=Int32, UInt32_VAL=Int32, Float32_VAL=Float32, Float64_VAL=Float64")
-luaCmd("epicsEnvSet('__SIZE', tostring((XSIZE*YSIZE)|0))", "XSIZE=$(XSIZE=1024), YSIZE=$(YSIZE=1024)")
-# load python code for simulated beamline (detector(s) -- intensity, image(?))
-pydev("from beamline_29 import IEX")
-pydev("from pyDevSBL import surrogateBL")
-pydev("sbl = surrogateBL(IEX)")
-# load db file for simulated detectors
-dbLoadRecords("${TOP}/db/pyDevSBL.db","P=$(PREFIX), INSTANCE=SBL, OBJ=sbl, SIZE=$(__SIZE),TYPE=$(__TYPE),FTVL=$(__FTVL)")
-# load db file for optical elements
-dbLoadTemplate("substitutions/pyDevSBL_element.substitutions","P=$(PREFIX), INSTANCE=SBL, OBJ=sbl")
-# Any commands to carry out after ioc init?
-#doAfterIocInit("pydev('sbl.setupMotorLimits()')") # Shouldn't need this line for now as manually put limits in subs file
-# ### motorSim.iocsh ###
-#- ###################################################
-#- PREFIX           - IOC Prefix
-#- INSTANCE         - Instance name, used to create the low-level driver drvet name
-#-                    Combined with the controller number to create the asyn port name
-#-
-#- SUB              - Optional: Subsitutions file (asyn_motor.db), Macros P, DTYP, PORT, 
-#-                              DHLM, DLLM, and INIT will be predefined.
-#-                    Default: $(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions
-#-
-#- CONTROLLER       - Optional: Which controller is being configured
-#-                    Default: 0
-#-
-#- NUM_AXES         - Optional: Number of axes on this controller
-#-                    Default: 1
-#-
-#- LOW_LIM          - Optional: Low Limit (in steps)
-#-                    Default: -32000
-#-
-#- HIGH_LIM         - Optional: High Limit (in steps)
-#-                    Default: 32000
-#- 
-#- DLLM             - Optional: Motor Record Low Limit (in EGU)
-#-                    Default: -320.0
-#-
-#- DHLM             - Optional: Motor Record High Limit (in EGU)
-#-                    Default: 320.0
-#-
-#- HOME_POS         - Optional: Home position
-#-                    Default: 0
-#- ###################################################
-# Create simulated motors: ( start card , start axis , low limit, high limit, home posn, # cards, # axes to setup)
-motorSimCreate($(CONTROLLER=0), 0, $(LOW_LIM=-32000), $(HIGH_LIM=32000), $(HOME_POS=0), 1, $(NUM_AXES=12))
-# Setup the Asyn layer (portname, low-level driver drvet name, card, number of axes on card)
-drvAsynMotorConfigure("$(INSTANCE)$(CONTROLLER=0)", "$(INSTANCE)", $(CONTROLLER=0), $(NUM_AXES=12))
-dbLoadTemplate("$(SUB=$(MOTOR)/iocsh/EXAMPLE_motorSim.substitutions)", "P=$(PREFIX), DTYP='asynMotor', PORT=$(INSTANCE)$(CONTROLLER=0),DHLM=$(DHLM=320.0),DLLM=$(DLLM=-320.0)")
-###############################################################################
-# Area detector -- NDSA, simDet
-#!iocshLoad("iocsh/NDSA.iocsh", "PREFIX=$(PREFIX), INSTANCE=NDSA, TYPE=$(TYPE)")
-#Shouldn't need a simdet as NDSA comes with image plugin
-#iocshLoad("iocsh/ADSimDetector.iocsh", "PREFIX=$(PREFIX), INSTANCE=SIM1")
-###############################################################################
-iocInit
-###############################################################################
-# write all the PV names to a local file
-dbl > dbl-all.txt
-# Diagnostic: CA links in all records
-dbcar(0,1)
-# print the time our boot was finished
-date
diff --git a/iocBoot/ioc100idPySBL/effic.04 b/iocBoot/ioc100idPySBL/effic.04
index 1a427e5b38d2be04e1eb3ab981c7458a415a2d8d..9aa718794e5018ea32815664c25bdc50e70721d6 100644
--- a/iocBoot/ioc100idPySBL/effic.04
+++ b/iocBoot/ioc100idPySBL/effic.04
@@ -1,3 +1,3 @@
- Of a total of 100000 rays, of which  99439 formed the input set 
-     70 were out of the mirror N.    4
- The mirror collects  0.99930     of the incoming flux.
+ Of a total of 100000 rays, of which  99327 formed the input set 
+     51 were out of the mirror N.    4
+ The mirror collects  0.99949     of the incoming flux.
diff --git a/iocBoot/ioc100idPySBL/examples/pydeviceSBL.cmd b/iocBoot/ioc100idPySBL/examples/pydeviceSBL.cmd
index e4000b76c110628eff80a8b685404bb13a93a78a..e7eb797caa0b96261ab92d40fc5c7b7baa139295 100644
--- a/iocBoot/ioc100idPySBL/examples/pydeviceSBL.cmd
+++ b/iocBoot/ioc100idPySBL/examples/pydeviceSBL.cmd
@@ -18,7 +18,7 @@ pydev("from pyDevSBL import surrogateBL")
 pydev("sbl = surrogateBL(IEX)")
 
 # load db file for simulated detectors
-dbLoadRecords("${TOP}/db/pyDevSBL.db","P=$(PREFIX), INSTANCE=SBL, OBJ=sbl, SIZE=$(__SIZE),TYPE=$(__TYPE),FTVL=$(__FTVL)")
+dbLoadRecords("${TOP}/db/pyDevSBL.db","P=$(PREFIX), INSTANCE=SBL, OBJ=sbl, SIZE=$(__SIZE),TYPE=$(__TYPE),FTVL=$(__FTVL), NDSA=NDSA, YSIZE=$(YSIZE), XSIZE=$(XSIZE)")
 
 # load db file for optical elements
 dbLoadTemplate("substitutions/pyDevSBL_element.substitutions","P=$(PREFIX), INSTANCE=SBL, OBJ=sbl")
diff --git a/iocBoot/ioc100idPySBL/iocsh/ADSimDetector.iocsh b/iocBoot/ioc100idPySBL/iocsh/ADSimDetector.iocsh
index 7a9575fc8fdf400607cfb2cee49a3ecb75221e73..48aa4deaebcebe6731522080df25507f0f1d3ab4 100644
--- a/iocBoot/ioc100idPySBL/iocsh/ADSimDetector.iocsh
+++ b/iocBoot/ioc100idPySBL/iocsh/ADSimDetector.iocsh
@@ -23,4 +23,4 @@ epicsEnvUnset("__FTVL")
 epicsEnvUnset("__TYPE")
 epicsEnvUnset("__SIZE")
 
-iocshLoad("$(ADCORE)/iocBoot/commonPlugins.cmd", "PREFIX=$(PREFIX), PORT=$(INSTANCE), QSIZE=20, XSIZE=$(XSIZE), YSIZE=$(YSIZE), NCHANS=1024, CBUFFS=20, MAX_THREADS=5")
+#! iocshLoad("$(ADCORE)/iocBoot/commonPlugins.cmd", "PREFIX=$(PREFIX), PORT=$(INSTANCE), QSIZE=20, XSIZE=$(XSIZE), YSIZE=$(YSIZE), NCHANS=1024, CBUFFS=20, MAX_THREADS=5")
diff --git a/iocBoot/ioc100idPySBL/st.cmd.Linux b/iocBoot/ioc100idPySBL/st.cmd.Linux
index 9ca774eedfad08265bdd7377c2ec5a64cb9c3d27..23f71df08aa81e4bf998487caa465149e84dbb26 100644
--- a/iocBoot/ioc100idPySBL/st.cmd.Linux
+++ b/iocBoot/ioc100idPySBL/st.cmd.Linux
@@ -29,8 +29,8 @@ dbLoadRecords("$(TOP)/100idPyApp/Db/iocAdminSoft_aliases.db","P=$(PREFIX)")
 # PyDevice surrogate beamline (NEEDS WORK)
 # maybe have to move this pydeviceSBL.cmd load to after simulate motor load in st.cmd.linux?
 
-epicsEnvSet("XSIZE","1024")
-epicsEnvSet("YSIZE","1024")
+epicsEnvSet("XSIZE","64")
+epicsEnvSet("YSIZE","64")
 epicsEnvSet("TYPE","Int16")
 
 < examples/pydeviceSBL.cmd
@@ -42,9 +42,12 @@ iocshLoad("iocsh/motorSim.iocsh", "PREFIX=$(PREFIX), INSTANCE=motorSim, SUB=subs
 
 ###############################################################################
 # Area detector -- NDSA, simDet
-#!iocshLoad("iocsh/NDSA.iocsh", "PREFIX=$(PREFIX), INSTANCE=NDSA, TYPE=$(TYPE)")
+iocshLoad("iocsh/NDSA.iocsh", "PREFIX=$(PREFIX), INSTANCE=NDSA, TYPE=$(TYPE)")
 
-#Shouldn't need a simdet as NDSA comes with image plugin
+doAfterIocInit("dbpf('100idPySBL:NDSA:NDimensions', '2')")
+
+#Shouldn't need a simdet as NDSA comes with image plugin; however, adding 
+#one to test some pycalc ideas
 #iocshLoad("iocsh/ADSimDetector.iocsh", "PREFIX=$(PREFIX), INSTANCE=SIM1")
 
 ###############################################################################
diff --git a/iocBoot/ioc100idPySBL/star.04 b/iocBoot/ioc100idPySBL/star.04
index 41fa72c1463a4403a8083d4a41b4ae454436425f..6e5e734c0c91ce5bc276fbe098c3d98eb110b333 100644
Binary files a/iocBoot/ioc100idPySBL/star.04 and b/iocBoot/ioc100idPySBL/star.04 differ
diff --git a/sbl_reqs.txt b/sbl_reqs.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4548abc7954dbd8b00a26ded777ae975f0662718
--- /dev/null
+++ b/sbl_reqs.txt
@@ -0,0 +1,148 @@
+# This file may be used to create an environment using:
+# $ conda create --name <env> --file <this file>
+# platform: linux-64
+@EXPLICIT
+https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.2.2-hbcca054_0.conda
+https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2
+https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2
+https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2
+https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-h41732ed_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-h7e041cc_5.conda
+https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.11-4_cp311.conda
+https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda
+https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-h807b86a_5.conda
+https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2
+https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h807b86a_5.conda
+https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.11-hd590300_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/attr-2.5.1-h166bdaf_1.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda
+https://conda.anaconda.org/conda-forge/linux-64/gettext-0.21.1-h27087fc_0.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.13-h59595ed_1002.conda
+https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/lame-3.100-h166bdaf_1003.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hd590300_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.20-hd590300_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-13.2.0-ha4646dd_5.conda
+https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda
+https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/libogg-1.3.4-h7f98852_1.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/libopus-1.3.1-h7f98852_1.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.3.2-hd590300_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-hd590300_5.conda
+https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.4-h59595ed_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4.20240210-h59595ed_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/nspr-4.35-h27087fc_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/openssl-3.2.1-hd590300_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/pixman-0.43.2-h59595ed_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h36c2ea0_1001.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-h7f98852_1002.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hd590300_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hd590300_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/xorg-renderproto-0.11.1-h7f98852_1002.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-h0b41bf4_1003.conda
+https://conda.anaconda.org/conda-forge/linux-64/xorg-xf86vidmodeproto-2.3.1-h7f98852_1002.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/xorg-xproto-7.0.31-h7f98852_1007.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.2-h59595ed_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hd590300_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hd590300_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/libcap-2.69-h0f662aa_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/libevent-2.1.12-hf998b51_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/libflac-1.4.3-h59595ed_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-13.2.0-h69a702a_5.conda
+https://conda.anaconda.org/conda-forge/linux-64/libgpg-error-1.48-h71f35ed_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.43-h2797004_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.45.2-h2797004_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/libvorbis-1.3.7-h9c3ff4c_0.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.15-h0b41bf4_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.6-h232c23b_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/mysql-common-8.3.0-hf1915f5_4.conda
+https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.43-hcad00b1_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda
+https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-h7391055_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-hd590300_5.conda
+https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.5-hfc55251_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hd590300_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda
+https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.2-h659d440_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/libgcrypt-1.10.3-hd590300_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.0-hf2295e7_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/libllvm15-15.0.7-hb3ce162_4.conda
+https://conda.anaconda.org/conda-forge/linux-64/libllvm18-18.1.2-h2448989_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.26-pthreads_h413a1c8_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/libsndfile-1.2.2-hc60ed4a_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-h1dd3fc0_3.conda
+https://conda.anaconda.org/conda-forge/linux-64/mysql-libs-8.3.0-hca2cd23_4.conda
+https://conda.anaconda.org/conda-forge/linux-64/nss-3.98-h1d7d5a4_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/python-3.11.8-hab00c5b_0_cpython.conda
+https://conda.anaconda.org/conda-forge/linux-64/xcb-util-0.4.0-hd590300_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/xcb-util-keysyms-0.4.0-h8ee46fc_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/xcb-util-renderutil-0.3.9-hd590300_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/xcb-util-wm-0.4.1-h8ee46fc_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.7-h8ee46fc_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hd590300_1.conda
+https://conda.anaconda.org/conda-forge/noarch/certifi-2024.2.2-pyhd8ed1ab_0.conda
+https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.80.0-hde27a5a_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.5-py311h9547e67_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-21_linux64_openblas.conda
+https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp15-15.0.7-default_h127d8a8_5.conda
+https://conda.anaconda.org/conda-forge/linux-64/libclang13-18.1.2-default_h5d6823c_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-h4637d8d_4.conda
+https://conda.anaconda.org/conda-forge/linux-64/libpq-16.2-h33b98f1_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/libsystemd0-255-h3516f8a_1.conda
+https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2
+https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.2-h488ebb8_0.conda
+https://conda.anaconda.org/conda-forge/noarch/packaging-24.0-pyhd8ed1ab_0.conda
+https://conda.anaconda.org/conda-forge/noarch/ply-3.11-py_1.tar.bz2
+https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.2-pyhd8ed1ab_0.conda
+https://conda.anaconda.org/conda-forge/noarch/setuptools-69.2.0-pyhd8ed1ab_0.conda
+https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2
+https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2
+https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.43.0-pyhd8ed1ab_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/xcb-util-image-0.4.0-h8ee46fc_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.41-hd590300_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda
+https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-h3faef2a_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.50.0-py311h459d7ec_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/glib-2.80.0-hf2295e7_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-21_linux64_openblas.conda
+https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-21_linux64_openblas.conda
+https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.7.0-h662e7e4_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/pillow-10.2.0-py311ha6c5da5_0.conda
+https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-client-17.0-hb77b528_0.conda
+https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/sip-6.7.12-py311hb755f60_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/gstreamer-1.22.9-h98fc4e7_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-8.3.0-h3d44ed6_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py311h64a7726_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/pyqt5-sip-12.12.2-py311hb755f60_5.conda
+https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.2.0-py311h9547e67_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-base-1.22.9-hfa15dee_1.conda
+https://conda.anaconda.org/conda-forge/linux-64/scipy-1.12.0-py311h64a7726_2.conda
+https://conda.anaconda.org/conda-forge/linux-64/xraylib-4.1.4-py311hf7cfcf7_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.8.3-py311h54ef318_0.conda
+https://conda.anaconda.org/conda-forge/linux-64/qt-main-5.15.8-h112747c_20.conda
+https://conda.anaconda.org/conda-forge/linux-64/pyqt-5.15.9-py311hf0fb5b6_5.conda
+https://conda.anaconda.org/conda-forge/linux-64/shadow3-23.8.11-py311hf7cfcf7_0.conda
diff --git a/sbl_reqs_simple.txt b/sbl_reqs_simple.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c191eefcd27996357b07bca9164230c7f97d4230
--- /dev/null
+++ b/sbl_reqs_simple.txt
@@ -0,0 +1,147 @@
+# packages in environment at /net/s100dserv/xorApps/epics/synApps_6_3/support/PyDevice-env/surrogateBL:
+#
+# Name                    Version                   Build  Channel
+_libgcc_mutex             0.1                 conda_forge    conda-forge
+_openmp_mutex             4.5                       2_gnu    conda-forge
+alsa-lib                  1.2.11               hd590300_1    conda-forge
+attr                      2.5.1                h166bdaf_1    conda-forge
+brotli                    1.1.0                hd590300_1    conda-forge
+brotli-bin                1.1.0                hd590300_1    conda-forge
+bzip2                     1.0.8                hd590300_5    conda-forge
+ca-certificates           2024.2.2             hbcca054_0    conda-forge
+cairo                     1.18.0               h3faef2a_0    conda-forge
+certifi                   2024.2.2           pyhd8ed1ab_0    conda-forge
+contourpy                 1.2.0           py311h9547e67_0    conda-forge
+cycler                    0.12.1             pyhd8ed1ab_0    conda-forge
+dbus                      1.13.6               h5008d03_3    conda-forge
+expat                     2.6.2                h59595ed_0    conda-forge
+font-ttf-dejavu-sans-mono 2.37                 hab24e00_0    conda-forge
+font-ttf-inconsolata      3.000                h77eed37_0    conda-forge
+font-ttf-source-code-pro  2.038                h77eed37_0    conda-forge
+font-ttf-ubuntu           0.83                 h77eed37_1    conda-forge
+fontconfig                2.14.2               h14ed4e7_0    conda-forge
+fonts-conda-ecosystem     1                             0    conda-forge
+fonts-conda-forge         1                             0    conda-forge
+fonttools                 4.50.0          py311h459d7ec_0    conda-forge
+freetype                  2.12.1               h267a509_2    conda-forge
+gettext                   0.21.1               h27087fc_0    conda-forge
+glib                      2.80.0               hf2295e7_1    conda-forge
+glib-tools                2.80.0               hde27a5a_1    conda-forge
+graphite2                 1.3.13            h59595ed_1002    conda-forge
+gst-plugins-base          1.22.9               hfa15dee_1    conda-forge
+gstreamer                 1.22.9               h98fc4e7_1    conda-forge
+harfbuzz                  8.3.0                h3d44ed6_0    conda-forge
+icu                       73.2                 h59595ed_0    conda-forge
+keyutils                  1.6.1                h166bdaf_0    conda-forge
+kiwisolver                1.4.5           py311h9547e67_1    conda-forge
+krb5                      1.21.2               h659d440_0    conda-forge
+lame                      3.100             h166bdaf_1003    conda-forge
+lcms2                     2.16                 hb7c19ff_0    conda-forge
+ld_impl_linux-64          2.40                 h41732ed_0    conda-forge
+lerc                      4.0.0                h27087fc_0    conda-forge
+libblas                   3.9.0           21_linux64_openblas    conda-forge
+libbrotlicommon           1.1.0                hd590300_1    conda-forge
+libbrotlidec              1.1.0                hd590300_1    conda-forge
+libbrotlienc              1.1.0                hd590300_1    conda-forge
+libcap                    2.69                 h0f662aa_0    conda-forge
+libcblas                  3.9.0           21_linux64_openblas    conda-forge
+libclang-cpp15            15.0.7          default_h127d8a8_5    conda-forge
+libclang13                18.1.2          default_h5d6823c_1    conda-forge
+libcups                   2.3.3                h4637d8d_4    conda-forge
+libdeflate                1.20                 hd590300_0    conda-forge
+libedit                   3.1.20191231         he28a2e2_2    conda-forge
+libevent                  2.1.12               hf998b51_1    conda-forge
+libexpat                  2.6.2                h59595ed_0    conda-forge
+libffi                    3.4.2                h7f98852_5    conda-forge
+libflac                   1.4.3                h59595ed_0    conda-forge
+libgcc-ng                 13.2.0               h807b86a_5    conda-forge
+libgcrypt                 1.10.3               hd590300_0    conda-forge
+libgfortran-ng            13.2.0               h69a702a_5    conda-forge
+libgfortran5              13.2.0               ha4646dd_5    conda-forge
+libglib                   2.80.0               hf2295e7_1    conda-forge
+libgomp                   13.2.0               h807b86a_5    conda-forge
+libgpg-error              1.48                 h71f35ed_0    conda-forge
+libiconv                  1.17                 hd590300_2    conda-forge
+libjpeg-turbo             3.0.0                hd590300_1    conda-forge
+liblapack                 3.9.0           21_linux64_openblas    conda-forge
+libllvm15                 15.0.7               hb3ce162_4    conda-forge
+libllvm18                 18.1.2               h2448989_0    conda-forge
+libnsl                    2.0.1                hd590300_0    conda-forge
+libogg                    1.3.4                h7f98852_1    conda-forge
+libopenblas               0.3.26          pthreads_h413a1c8_0    conda-forge
+libopus                   1.3.1                h7f98852_1    conda-forge
+libpng                    1.6.43               h2797004_0    conda-forge
+libpq                     16.2                 h33b98f1_1    conda-forge
+libsndfile                1.2.2                hc60ed4a_1    conda-forge
+libsqlite                 3.45.2               h2797004_0    conda-forge
+libstdcxx-ng              13.2.0               h7e041cc_5    conda-forge
+libsystemd0               255                  h3516f8a_1    conda-forge
+libtiff                   4.6.0                h1dd3fc0_3    conda-forge
+libuuid                   2.38.1               h0b41bf4_0    conda-forge
+libvorbis                 1.3.7                h9c3ff4c_0    conda-forge
+libwebp-base              1.3.2                hd590300_0    conda-forge
+libxcb                    1.15                 h0b41bf4_0    conda-forge
+libxcrypt                 4.4.36               hd590300_1    conda-forge
+libxkbcommon              1.7.0                h662e7e4_0    conda-forge
+libxml2                   2.12.6               h232c23b_1    conda-forge
+libzlib                   1.2.13               hd590300_5    conda-forge
+lz4-c                     1.9.4                hcb278e6_0    conda-forge
+matplotlib-base           3.8.3           py311h54ef318_0    conda-forge
+mpg123                    1.32.4               h59595ed_0    conda-forge
+munkres                   1.1.4              pyh9f0ad1d_0    conda-forge
+mysql-common              8.3.0                hf1915f5_4    conda-forge
+mysql-libs                8.3.0                hca2cd23_4    conda-forge
+ncurses                   6.4.20240210         h59595ed_0    conda-forge
+nspr                      4.35                 h27087fc_0    conda-forge
+nss                       3.98                 h1d7d5a4_0    conda-forge
+numpy                     1.26.4          py311h64a7726_0    conda-forge
+openjpeg                  2.5.2                h488ebb8_0    conda-forge
+openssl                   3.2.1                hd590300_1    conda-forge
+packaging                 24.0               pyhd8ed1ab_0    conda-forge
+pcre2                     10.43                hcad00b1_0    conda-forge
+pillow                    10.2.0          py311ha6c5da5_0    conda-forge
+pip                       24.0               pyhd8ed1ab_0    conda-forge
+pixman                    0.43.2               h59595ed_0    conda-forge
+ply                       3.11                       py_1    conda-forge
+pthread-stubs             0.4               h36c2ea0_1001    conda-forge
+pulseaudio-client         17.0                 hb77b528_0    conda-forge
+pyparsing                 3.1.2              pyhd8ed1ab_0    conda-forge
+pyqt                      5.15.9          py311hf0fb5b6_5    conda-forge
+pyqt5-sip                 12.12.2         py311hb755f60_5    conda-forge
+python                    3.11.8          hab00c5b_0_cpython    conda-forge
+python-dateutil           2.9.0              pyhd8ed1ab_0    conda-forge
+python_abi                3.11                    4_cp311    conda-forge
+qt-main                   5.15.8              h112747c_20    conda-forge
+readline                  8.2                  h8228510_1    conda-forge
+scipy                     1.12.0          py311h64a7726_2    conda-forge
+setuptools                69.2.0             pyhd8ed1ab_0    conda-forge
+shadow3                   23.8.11         py311hf7cfcf7_0    conda-forge
+sip                       6.7.12          py311hb755f60_0    conda-forge
+six                       1.16.0             pyh6c4a22f_0    conda-forge
+tk                        8.6.13          noxft_h4845f30_101    conda-forge
+toml                      0.10.2             pyhd8ed1ab_0    conda-forge
+tomli                     2.0.1              pyhd8ed1ab_0    conda-forge
+tzdata                    2024a                h0c530f3_0    conda-forge
+wheel                     0.43.0             pyhd8ed1ab_0    conda-forge
+xcb-util                  0.4.0                hd590300_1    conda-forge
+xcb-util-image            0.4.0                h8ee46fc_1    conda-forge
+xcb-util-keysyms          0.4.0                h8ee46fc_1    conda-forge
+xcb-util-renderutil       0.3.9                hd590300_1    conda-forge
+xcb-util-wm               0.4.1                h8ee46fc_1    conda-forge
+xkeyboard-config          2.41                 hd590300_0    conda-forge
+xorg-kbproto              1.0.7             h7f98852_1002    conda-forge
+xorg-libice               1.1.1                hd590300_0    conda-forge
+xorg-libsm                1.2.4                h7391055_0    conda-forge
+xorg-libx11               1.8.7                h8ee46fc_0    conda-forge
+xorg-libxau               1.0.11               hd590300_0    conda-forge
+xorg-libxdmcp             1.1.3                h7f98852_0    conda-forge
+xorg-libxext              1.3.4                h0b41bf4_2    conda-forge
+xorg-libxrender           0.9.11               hd590300_0    conda-forge
+xorg-renderproto          0.11.1            h7f98852_1002    conda-forge
+xorg-xextproto            7.3.0             h0b41bf4_1003    conda-forge
+xorg-xf86vidmodeproto     2.3.1             h7f98852_1002    conda-forge
+xorg-xproto               7.0.31            h7f98852_1007    conda-forge
+xraylib                   4.1.4           py311hf7cfcf7_0    conda-forge
+xz                        5.2.6                h166bdaf_0    conda-forge
+zlib                      1.2.13               hd590300_5    conda-forge
+zstd                      1.5.5                hfc55251_0    conda-forge