diff --git a/ADApp/op/adl/NDPluginBaseFull.adl b/ADApp/op/adl/NDPluginBaseFull.adl
index 70f779d8e..1bbe24cba 100644
--- a/ADApp/op/adl/NDPluginBaseFull.adl
+++ b/ADApp/op/adl/NDPluginBaseFull.adl
@@ -8,7 +8,7 @@ display {
x=399
y=92
width=775
- height=565
+ height=590
}
clr=14
bclr=4
@@ -227,10 +227,39 @@ text {
limits {
}
}
+text {
+ object {
+ x=20
+ y=134
+ width=140
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="SDK version"
+ align="horiz. right"
+}
+"text update" {
+ object {
+ x=170
+ y=135
+ width=160
+ height=18
+ }
+ monitor {
+ chan="$(P)$(R)SDKVersion_RBV"
+ clr=54
+ bclr=4
+ }
+ format="string"
+ limits {
+ }
+}
"text entry" {
object {
x=170
- y=160
+ y=185
width=100
height=20
}
@@ -246,7 +275,7 @@ text {
"text update" {
object {
x=276
- y=161
+ y=186
width=100
height=18
}
@@ -261,7 +290,7 @@ text {
text {
object {
x=30
- y=160
+ y=185
width=130
height=20
}
@@ -274,7 +303,7 @@ text {
text {
object {
x=60
- y=135
+ y=160
width=100
height=20
}
@@ -287,7 +316,7 @@ text {
"text entry" {
object {
x=170
- y=135
+ y=160
width=100
height=20
}
@@ -303,7 +332,7 @@ text {
"text update" {
object {
x=276
- y=136
+ y=161
width=100
height=18
}
@@ -319,7 +348,7 @@ text {
text {
object {
x=100
- y=185
+ y=210
width=60
height=20
}
@@ -332,7 +361,7 @@ text {
menu {
object {
x=170
- y=185
+ y=210
width=100
height=20
}
@@ -345,7 +374,7 @@ menu {
"text update" {
object {
x=276
- y=186
+ y=211
width=100
height=18
}
@@ -364,7 +393,7 @@ rectangle {
x=5
y=30
width=380
- height=530
+ height=555
}
"basic attribute" {
clr=14
@@ -374,7 +403,7 @@ rectangle {
text {
object {
x=30
- y=335
+ y=360
width=130
height=20
}
@@ -387,7 +416,7 @@ text {
"text update" {
object {
x=170
- y=336
+ y=361
width=100
height=18
}
@@ -402,7 +431,7 @@ text {
text {
object {
x=10
- y=285
+ y=310
width=150
height=20
}
@@ -415,7 +444,7 @@ text {
menu {
object {
x=170
- y=285
+ y=310
width=100
height=20
}
@@ -428,7 +457,7 @@ menu {
"text update" {
object {
x=276
- y=286
+ y=311
width=100
height=18
}
@@ -444,7 +473,7 @@ menu {
text {
object {
x=70
- y=385
+ y=410
width=90
height=20
}
@@ -457,7 +486,7 @@ text {
menu {
object {
x=170
- y=385
+ y=410
width=100
height=20
}
@@ -470,7 +499,7 @@ menu {
"text update" {
object {
x=276
- y=386
+ y=411
width=100
height=18
}
@@ -486,7 +515,7 @@ menu {
"text entry" {
object {
x=170
- y=310
+ y=335
width=100
height=20
}
@@ -501,7 +530,7 @@ menu {
"text update" {
object {
x=276
- y=311
+ y=336
width=100
height=18
}
@@ -516,7 +545,7 @@ menu {
text {
object {
x=70
- y=310
+ y=335
width=90
height=20
}
@@ -529,7 +558,7 @@ text {
"text entry" {
object {
x=170
- y=410
+ y=435
width=100
height=20
}
@@ -544,7 +573,7 @@ text {
"text update" {
object {
x=276
- y=411
+ y=436
width=100
height=18
}
@@ -559,7 +588,7 @@ text {
text {
object {
x=70
- y=410
+ y=435
width=90
height=20
}
@@ -572,7 +601,7 @@ text {
text {
object {
x=10
- y=360
+ y=385
width=150
height=20
}
@@ -585,7 +614,7 @@ text {
"text update" {
object {
x=276
- y=360
+ y=385
width=100
height=18
}
@@ -601,7 +630,7 @@ text {
"text entry" {
object {
x=170
- y=360
+ y=385
width=100
height=20
}
@@ -616,7 +645,7 @@ text {
text {
object {
x=20
- y=435
+ y=460
width=140
height=20
}
@@ -629,7 +658,7 @@ text {
"text update" {
object {
x=276
- y=435
+ y=460
width=100
height=18
}
@@ -645,7 +674,7 @@ text {
"text entry" {
object {
x=170
- y=435
+ y=460
width=100
height=20
}
@@ -660,7 +689,7 @@ text {
"text update" {
object {
x=276
- y=461
+ y=486
width=100
height=18
}
@@ -675,7 +704,7 @@ text {
text {
object {
x=40
- y=460
+ y=485
width=120
height=20
}
@@ -688,7 +717,7 @@ text {
"message button" {
object {
x=170
- y=460
+ y=485
width=100
height=20
}
@@ -703,7 +732,7 @@ text {
text {
object {
x=20
- y=260
+ y=285
width=140
height=20
}
@@ -716,7 +745,7 @@ text {
"text entry" {
object {
x=170
- y=260
+ y=285
width=100
height=20
}
@@ -732,7 +761,7 @@ text {
"text update" {
object {
x=276
- y=261
+ y=286
width=100
height=18
}
@@ -748,7 +777,7 @@ text {
text {
object {
x=70
- y=210
+ y=235
width=90
height=20
}
@@ -761,7 +790,7 @@ text {
"text entry" {
object {
x=170
- y=210
+ y=235
width=100
height=20
}
@@ -776,7 +805,7 @@ text {
"text update" {
object {
x=276
- y=211
+ y=236
width=100
height=18
}
@@ -791,7 +820,7 @@ text {
text {
object {
x=10
- y=235
+ y=260
width=150
height=20
}
@@ -804,7 +833,7 @@ text {
"text entry" {
object {
x=170
- y=235
+ y=260
width=100
height=20
}
@@ -819,7 +848,7 @@ text {
"text update" {
object {
x=276
- y=236
+ y=261
width=100
height=18
}
@@ -836,7 +865,7 @@ rectangle {
x=390
y=30
width=380
- height=530
+ height=555
}
"basic attribute" {
clr=14
@@ -1105,7 +1134,7 @@ text {
text {
object {
x=10
- y=485
+ y=510
width=150
height=20
}
@@ -1118,7 +1147,7 @@ text {
composite {
object {
x=50
- y=535
+ y=560
width=220
height=20
}
@@ -1127,7 +1156,7 @@ composite {
"related display" {
object {
x=170
- y=535
+ y=560
width=100
height=20
}
@@ -1142,7 +1171,7 @@ composite {
text {
object {
x=50
- y=535
+ y=560
width=110
height=20
}
@@ -1157,7 +1186,7 @@ composite {
menu {
object {
x=170
- y=485
+ y=510
width=100
height=20
}
@@ -1170,7 +1199,7 @@ menu {
"text update" {
object {
x=276
- y=486
+ y=511
width=100
height=18
}
@@ -1187,7 +1216,7 @@ menu {
text {
object {
x=23
- y=510
+ y=535
width=140
height=20
}
@@ -1200,7 +1229,7 @@ text {
"message button" {
object {
x=170
- y=510
+ y=535
width=100
height=20
}
diff --git a/ADApp/op/bob/autoconvert/NDPluginBaseFull.bob b/ADApp/op/bob/autoconvert/NDPluginBaseFull.bob
index 851d772a9..e9cb29eca 100644
--- a/ADApp/op/bob/autoconvert/NDPluginBaseFull.bob
+++ b/ADApp/op/bob/autoconvert/NDPluginBaseFull.bob
@@ -5,7 +5,7 @@
399
92
775
- 565
+ 590
@@ -180,11 +180,46 @@
false
false
+
+ text SDK version
+ SDK version
+ 20
+ 134
+ 140
+
+
+
+
+ 2
+
+
+ text update SDK version
+ $(P)$(R)SDKVersion_RBV
+ 170
+ 135
+ 160
+ 18
+
+
+
+
+
+
+
+
+
+
+
+
+ 6
+ false
+ false
+
text entry #40
$(P)$(R)NDArrayAddress
170
- 160
+ 185
@@ -201,7 +236,7 @@
text update #44
$(P)$(R)NDArrayAddress_RBV
276
- 161
+ 186
18
@@ -223,7 +258,7 @@
text #48
Array address
30
- 160
+ 185
130
@@ -235,7 +270,7 @@
text #51
Array port
60
- 135
+ 160
@@ -246,7 +281,7 @@
text entry #54
$(P)$(R)NDArrayPort
170
- 135
+ 160
@@ -263,7 +298,7 @@
text update #58
$(P)$(R)NDArrayPort_RBV
276
- 136
+ 161
18
@@ -285,7 +320,7 @@
text #62
Enable
100
- 185
+ 210
60
@@ -297,7 +332,7 @@
menu #65
$(P)$(R)EnableCallbacks
170
- 185
+ 210
20
@@ -309,7 +344,7 @@
text update #68
$(P)$(R)EnableCallbacks_RBV
276
- 186
+ 211
18
@@ -331,7 +366,7 @@
5
30
380
- 530
+ 555
1
@@ -347,7 +382,7 @@
text #75
Max # threads
30
- 335
+ 360
130
@@ -359,7 +394,7 @@
text update #78
$(P)$(R)MaxThreads_RBV
170
- 336
+ 361
18
@@ -381,7 +416,7 @@
text #82
Callbacks block
10
- 285
+ 310
150
@@ -393,7 +428,7 @@
menu #85
$(P)$(R)BlockingCallbacks
170
- 285
+ 310
20
@@ -405,7 +440,7 @@
text update #88
$(P)$(R)BlockingCallbacks_RBV
276
- 286
+ 311
18
@@ -427,7 +462,7 @@
text #92
Sort mode
70
- 385
+ 410
90
@@ -439,7 +474,7 @@
menu #95
$(P)$(R)SortMode
170
- 385
+ 410
20
@@ -451,7 +486,7 @@
text update #98
$(P)$(R)SortMode_RBV
276
- 386
+ 411
18
@@ -473,7 +508,7 @@
text entry #102
$(P)$(R)NumThreads
170
- 310
+ 335
@@ -490,7 +525,7 @@
text update #106
$(P)$(R)NumThreads_RBV
276
- 311
+ 336
18
@@ -512,7 +547,7 @@
text #110
# threads
70
- 310
+ 335
90
@@ -524,7 +559,7 @@
text entry #113
$(P)$(R)SortTime
170
- 410
+ 435
@@ -541,7 +576,7 @@
text update #117
$(P)$(R)SortTime_RBV
276
- 411
+ 436
18
@@ -563,7 +598,7 @@
text #121
Sort time
70
- 410
+ 435
90
@@ -575,7 +610,7 @@
text #124
Queue size/free
10
- 360
+ 385
150
@@ -587,7 +622,7 @@
text update #127
$(P)$(R)QueueFree
276
- 360
+ 385
18
@@ -608,7 +643,7 @@
text entry #131
$(P)$(R)QueueSize
170
- 360
+ 385
@@ -625,7 +660,7 @@
text #135
Sort size/free
20
- 435
+ 460
140
@@ -637,7 +672,7 @@
text update #138
$(P)$(R)SortFree
276
- 435
+ 460
18
@@ -658,7 +693,7 @@
text entry #142
$(P)$(R)SortSize
170
- 435
+ 460
@@ -675,7 +710,7 @@
text update #146
$(P)$(R)DisorderedArrays_RBV
276
- 461
+ 486
18
@@ -697,7 +732,7 @@
text #150
# disordered
40
- 460
+ 485
120
@@ -717,7 +752,7 @@
$(P)$(R)DisorderedArrays
Reset to 0
170
- 460
+ 485
20
@@ -728,7 +763,7 @@
text #156
Max. byte rate
20
- 260
+ 285
140
@@ -740,7 +775,7 @@
text entry #159
$(P)$(R)MaxByteRate
170
- 260
+ 285
@@ -757,7 +792,7 @@
text update #163
$(P)$(R)MaxByteRate_RBV
276
- 261
+ 286
18
@@ -779,7 +814,7 @@
text #167
Min. time
70
- 210
+ 235
90
@@ -791,7 +826,7 @@
text entry #170
$(P)$(R)MinCallbackTime
170
- 210
+ 235
@@ -808,7 +843,7 @@
text update #174
$(P)$(R)MinCallbackTime_RBV
276
- 211
+ 236
18
@@ -830,7 +865,7 @@
text #178
Max. array rate
10
- 235
+ 260
150
@@ -842,7 +877,7 @@
text entry #181
$(P)$(R)MaxArrayRate
170
- 235
+ 260
@@ -859,7 +894,7 @@
text update #185
$(P)$(R)MaxArrayRate_RBV
276
- 236
+ 261
18
@@ -882,7 +917,7 @@
390
30
380
- 530
+ 555
1
@@ -1219,7 +1254,7 @@
text #254
Array callbacks
10
- 485
+ 510
150
@@ -1230,7 +1265,7 @@
composite #257
50
- 535
+ 560
220
20
@@ -1270,7 +1305,7 @@
menu #266
$(P)$(R)ArrayCallbacks
170
- 485
+ 510
20
@@ -1282,7 +1317,7 @@
text update #269
$(P)$(R)ArrayCallbacks_RBV
276
- 486
+ 511
18
@@ -1303,7 +1338,7 @@
text #273
Process plugin
23
- 510
+ 535
140
@@ -1323,7 +1358,7 @@
$(P)$(R)ProcessPlugin
Process
170
- 510
+ 535
20
diff --git a/ADApp/op/edl/autoconvert/NDPluginBaseFull.edl b/ADApp/op/edl/autoconvert/NDPluginBaseFull.edl
index 0a1388187..772c9774c 100644
--- a/ADApp/op/edl/autoconvert/NDPluginBaseFull.edl
+++ b/ADApp/op/edl/autoconvert/NDPluginBaseFull.edl
@@ -6,7 +6,7 @@ release 1
x 399
y 92
w 775
-h 565
+h 590
font "helvetica-medium-r-18.0"
ctlFont "helvetica-bold-r-10.0"
btnFont "helvetica-medium-r-18.0"
@@ -236,6 +236,50 @@ newPos
objType "controls"
endObjectProperties
+# (Static Text)
+object activeXTextClass
+beginObjectProperties
+major 4
+minor 1
+release 1
+x 20
+y 134
+w 140
+h 20
+font "helvetica-medium-r-14.0"
+fontAlign "right"
+fgColor rgb 0 0 0
+bgColor index 3
+useDisplayBg
+value {
+ "SDK version"
+}
+endObjectProperties
+
+# (Text Monitor)
+object activeXTextDspClass:noedit
+beginObjectProperties
+major 4
+minor 7
+release 0
+x 170
+y 135
+w 160
+h 18
+controlPv "$(P)$(R)SDKVersion_RBV"
+format "string"
+font "helvetica-medium-r-14.0"
+fontAlign "left"
+fgColor rgb 2560 0 47104
+bgColor rgb 47872 47872 47872
+limitsFromDb
+nullColor rgb 60928 46592 11008
+smartRefresh
+fastUpdate
+newPos
+objType "controls"
+endObjectProperties
+
# (Text Control)
object activeXTextDspClass
beginObjectProperties
@@ -243,7 +287,7 @@ major 4
minor 7
release 0
x 170
-y 160
+y 185
w 100
h 20
controlPv "$(P)$(R)NDArrayAddress"
@@ -269,7 +313,7 @@ major 4
minor 7
release 0
x 276
-y 161
+y 186
w 100
h 18
controlPv "$(P)$(R)NDArrayAddress_RBV"
@@ -293,7 +337,7 @@ major 4
minor 1
release 1
x 30
-y 160
+y 185
w 130
h 20
font "helvetica-medium-r-14.0"
@@ -313,7 +357,7 @@ major 4
minor 1
release 1
x 60
-y 135
+y 160
w 100
h 20
font "helvetica-medium-r-14.0"
@@ -333,7 +377,7 @@ major 4
minor 7
release 0
x 170
-y 135
+y 160
w 100
h 20
controlPv "$(P)$(R)NDArrayPort"
@@ -359,7 +403,7 @@ major 4
minor 7
release 0
x 276
-y 136
+y 161
w 100
h 18
controlPv "$(P)$(R)NDArrayPort_RBV"
@@ -383,7 +427,7 @@ major 4
minor 1
release 1
x 100
-y 185
+y 210
w 60
h 20
font "helvetica-medium-r-14.0"
@@ -403,7 +447,7 @@ major 4
minor 7
release 0
x 276
-y 186
+y 211
w 100
h 18
controlPv "$(P)$(R)EnableCallbacks_RBV"
@@ -430,7 +474,7 @@ release 0
x 5
y 30
w 380
-h 530
+h 555
lineColor rgb 0 0 0
fillColor rgb 0 0 0
lineWidth 0
@@ -443,7 +487,7 @@ major 4
minor 1
release 1
x 30
-y 335
+y 360
w 130
h 20
font "helvetica-medium-r-14.0"
@@ -463,7 +507,7 @@ major 4
minor 7
release 0
x 170
-y 336
+y 361
w 100
h 18
controlPv "$(P)$(R)MaxThreads_RBV"
@@ -487,7 +531,7 @@ major 4
minor 1
release 1
x 10
-y 285
+y 310
w 150
h 20
font "helvetica-medium-r-14.0"
@@ -507,7 +551,7 @@ major 4
minor 7
release 0
x 276
-y 286
+y 311
w 100
h 18
controlPv "$(P)$(R)BlockingCallbacks_RBV"
@@ -531,7 +575,7 @@ major 4
minor 1
release 1
x 70
-y 385
+y 410
w 90
h 20
font "helvetica-medium-r-14.0"
@@ -551,7 +595,7 @@ major 4
minor 7
release 0
x 276
-y 386
+y 411
w 100
h 18
controlPv "$(P)$(R)SortMode_RBV"
@@ -575,7 +619,7 @@ major 4
minor 7
release 0
x 170
-y 310
+y 335
w 100
h 20
controlPv "$(P)$(R)NumThreads"
@@ -601,7 +645,7 @@ major 4
minor 7
release 0
x 276
-y 311
+y 336
w 100
h 18
controlPv "$(P)$(R)NumThreads_RBV"
@@ -625,7 +669,7 @@ major 4
minor 1
release 1
x 70
-y 310
+y 335
w 90
h 20
font "helvetica-medium-r-14.0"
@@ -645,7 +689,7 @@ major 4
minor 7
release 0
x 170
-y 410
+y 435
w 100
h 20
controlPv "$(P)$(R)SortTime"
@@ -671,7 +715,7 @@ major 4
minor 7
release 0
x 276
-y 411
+y 436
w 100
h 18
controlPv "$(P)$(R)SortTime_RBV"
@@ -695,7 +739,7 @@ major 4
minor 1
release 1
x 70
-y 410
+y 435
w 90
h 20
font "helvetica-medium-r-14.0"
@@ -715,7 +759,7 @@ major 4
minor 1
release 1
x 10
-y 360
+y 385
w 150
h 20
font "helvetica-medium-r-14.0"
@@ -735,7 +779,7 @@ major 4
minor 7
release 0
x 276
-y 360
+y 385
w 100
h 18
controlPv "$(P)$(R)QueueFree"
@@ -760,7 +804,7 @@ major 4
minor 7
release 0
x 170
-y 360
+y 385
w 100
h 20
controlPv "$(P)$(R)QueueSize"
@@ -786,7 +830,7 @@ major 4
minor 1
release 1
x 20
-y 435
+y 460
w 140
h 20
font "helvetica-medium-r-14.0"
@@ -806,7 +850,7 @@ major 4
minor 7
release 0
x 276
-y 435
+y 460
w 100
h 18
controlPv "$(P)$(R)SortFree"
@@ -831,7 +875,7 @@ major 4
minor 7
release 0
x 170
-y 435
+y 460
w 100
h 20
controlPv "$(P)$(R)SortSize"
@@ -857,7 +901,7 @@ major 4
minor 7
release 0
x 276
-y 461
+y 486
w 100
h 18
controlPv "$(P)$(R)DisorderedArrays_RBV"
@@ -881,7 +925,7 @@ major 4
minor 1
release 1
x 40
-y 460
+y 485
w 120
h 20
font "helvetica-medium-r-14.0"
@@ -901,7 +945,7 @@ major 4
minor 1
release 1
x 20
-y 260
+y 285
w 140
h 20
font "helvetica-medium-r-14.0"
@@ -921,7 +965,7 @@ major 4
minor 7
release 0
x 170
-y 260
+y 285
w 100
h 20
controlPv "$(P)$(R)MaxByteRate"
@@ -947,7 +991,7 @@ major 4
minor 7
release 0
x 276
-y 261
+y 286
w 100
h 18
controlPv "$(P)$(R)MaxByteRate_RBV"
@@ -971,7 +1015,7 @@ major 4
minor 1
release 1
x 70
-y 210
+y 235
w 90
h 20
font "helvetica-medium-r-14.0"
@@ -991,7 +1035,7 @@ major 4
minor 7
release 0
x 170
-y 210
+y 235
w 100
h 20
controlPv "$(P)$(R)MinCallbackTime"
@@ -1017,7 +1061,7 @@ major 4
minor 7
release 0
x 276
-y 211
+y 236
w 100
h 18
controlPv "$(P)$(R)MinCallbackTime_RBV"
@@ -1041,7 +1085,7 @@ major 4
minor 1
release 1
x 10
-y 235
+y 260
w 150
h 20
font "helvetica-medium-r-14.0"
@@ -1061,7 +1105,7 @@ major 4
minor 7
release 0
x 170
-y 235
+y 260
w 100
h 20
controlPv "$(P)$(R)MaxArrayRate"
@@ -1087,7 +1131,7 @@ major 4
minor 7
release 0
x 276
-y 236
+y 261
w 100
h 18
controlPv "$(P)$(R)MaxArrayRate_RBV"
@@ -1113,7 +1157,7 @@ release 0
x 390
y 30
w 380
-h 530
+h 555
lineColor rgb 0 0 0
fillColor rgb 0 0 0
lineWidth 0
@@ -1458,7 +1502,7 @@ major 4
minor 1
release 1
x 10
-y 485
+y 510
w 150
h 20
font "helvetica-medium-r-14.0"
@@ -1478,7 +1522,7 @@ major 4
minor 0
release 0
x 50
-y 535
+y 560
w 220
h 20
@@ -1491,7 +1535,7 @@ major 4
minor 1
release 1
x 50
-y 535
+y 560
w 110
h 20
font "helvetica-medium-r-14.0"
@@ -1516,7 +1560,7 @@ major 4
minor 7
release 0
x 276
-y 486
+y 511
w 100
h 18
controlPv "$(P)$(R)ArrayCallbacks_RBV"
@@ -1541,7 +1585,7 @@ major 4
minor 1
release 1
x 23
-y 510
+y 535
w 140
h 20
font "helvetica-medium-r-14.0"
@@ -1956,7 +2000,7 @@ major 4
minor 0
release 0
x 170
-y 185
+y 210
w 100
h 20
fgColor rgb 0 0 0
@@ -1976,7 +2020,7 @@ major 4
minor 0
release 0
x 170
-y 285
+y 310
w 100
h 20
fgColor rgb 0 0 0
@@ -1996,7 +2040,7 @@ major 4
minor 0
release 0
x 170
-y 385
+y 410
w 100
h 20
fgColor rgb 0 0 0
@@ -2016,7 +2060,7 @@ major 4
minor 0
release 0
x 170
-y 460
+y 485
w 100
h 20
fgColor rgb 0 0 0
@@ -2115,7 +2159,7 @@ major 4
minor 0
release 0
x 50
-y 535
+y 560
w 220
h 20
@@ -2128,7 +2172,7 @@ major 4
minor 0
release 0
x 170
-y 535
+y 560
w 100
h 20
fgColor rgb 0 0 0
@@ -2165,7 +2209,7 @@ major 4
minor 0
release 0
x 170
-y 485
+y 510
w 100
h 20
fgColor rgb 0 0 0
@@ -2185,7 +2229,7 @@ major 4
minor 0
release 0
x 170
-y 510
+y 535
w 100
h 20
fgColor rgb 0 0 0
diff --git a/ADApp/op/opi/autoconvert/NDPluginBaseFull.opi b/ADApp/op/opi/autoconvert/NDPluginBaseFull.opi
index 5153cb6f7..7c90133e3 100644
--- a/ADApp/op/opi/autoconvert/NDPluginBaseFull.opi
+++ b/ADApp/op/opi/autoconvert/NDPluginBaseFull.opi
@@ -14,7 +14,7 @@
5
- 565
+ 590
true
@@ -118,7 +118,7 @@ $(pv_value)
false
- 530
+ 555
true
@@ -175,7 +175,7 @@ $(pv_value)
false
- 530
+ 555
true
@@ -239,7 +239,7 @@ $(pv_value)
Grouping Container
220
50
- 535
+ 560
@@ -779,6 +779,97 @@ $(pv_value)
170
110
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
+
+
+
+
+ 20
+ 2
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ SDK version
+
+ true
+ 1
+ true
+ Label
+ 140
+ false
+ 20
+ 134
+
+
+
+ false
+ false
+ false
+
+
+
+ true
+
+
+
+ 0
+ 1
+ true
+
+
+
+ false
+
+
+
+ 4
+ 18
+ 0
+ Text Update
+ 0
+ true
+ $(P)$(R)SDKVersion_RBV
+
+ 0.0
+
+
+ true
+ true
+ false
+
+
+ false
+ ######
+ $(pv_name)
+$(pv_value)
+ false
+ 1
+ true
+ Text Update
+ 160
+ false
+ 170
+ 135
+
false
@@ -839,7 +930,7 @@ $(pv_value)
Text Input
100
170
- 160
+ 185
@@ -890,7 +981,7 @@ $(pv_value)
100
false
276
- 161
+ 186
@@ -930,7 +1021,7 @@ $(pv_value)
130
false
30
- 160
+ 185
@@ -970,7 +1061,7 @@ $(pv_value)
100
false
60
- 135
+ 160
@@ -1032,7 +1123,7 @@ $(pv_value)
Text Input
100
170
- 135
+ 160
@@ -1083,7 +1174,7 @@ $(pv_value)
100
false
276
- 136
+ 161
@@ -1123,7 +1214,7 @@ $(pv_value)
60
false
100
- 185
+ 210
@@ -1167,7 +1258,7 @@ $(pv_value)
Menu Button
100
170
- 185
+ 210
@@ -1218,7 +1309,7 @@ $(pv_value)
100
false
276
- 186
+ 211
@@ -1258,7 +1349,7 @@ $(pv_value)
130
false
30
- 335
+ 360
@@ -1309,7 +1400,7 @@ $(pv_value)
100
false
170
- 336
+ 361
@@ -1349,7 +1440,7 @@ $(pv_value)
150
false
10
- 285
+ 310
@@ -1393,7 +1484,7 @@ $(pv_value)
Menu Button
100
170
- 285
+ 310
@@ -1444,7 +1535,7 @@ $(pv_value)
100
false
276
- 286
+ 311
@@ -1484,7 +1575,7 @@ $(pv_value)
90
false
70
- 385
+ 410
@@ -1528,7 +1619,7 @@ $(pv_value)
Menu Button
100
170
- 385
+ 410
@@ -1579,7 +1670,7 @@ $(pv_value)
100
false
276
- 386
+ 411
@@ -1641,7 +1732,7 @@ $(pv_value)
Text Input
100
170
- 310
+ 335
@@ -1692,7 +1783,7 @@ $(pv_value)
100
false
276
- 311
+ 336
@@ -1732,7 +1823,7 @@ $(pv_value)
90
false
70
- 310
+ 335
@@ -1794,7 +1885,7 @@ $(pv_value)
Text Input
100
170
- 410
+ 435
@@ -1845,7 +1936,7 @@ $(pv_value)
100
false
276
- 411
+ 436
@@ -1885,7 +1976,7 @@ $(pv_value)
90
false
70
- 410
+ 435
@@ -1925,7 +2016,7 @@ $(pv_value)
150
false
10
- 360
+ 385
@@ -1976,7 +2067,7 @@ $(pv_value)
100
false
276
- 360
+ 385
@@ -2038,7 +2129,7 @@ $(pv_value)
Text Input
100
170
- 360
+ 385
@@ -2078,7 +2169,7 @@ $(pv_value)
140
false
20
- 435
+ 460
@@ -2129,7 +2220,7 @@ $(pv_value)
100
false
276
- 435
+ 460
@@ -2191,7 +2282,7 @@ $(pv_value)
Text Input
100
170
- 435
+ 460
@@ -2242,7 +2333,7 @@ $(pv_value)
100
false
276
- 461
+ 486
@@ -2282,7 +2373,7 @@ $(pv_value)
120
false
40
- 460
+ 485
@@ -2335,7 +2426,7 @@ $(pv_value)
Action Button
100
170
- 460
+ 485
@@ -2375,7 +2466,7 @@ $(pv_value)
140
false
20
- 260
+ 285
@@ -2437,7 +2528,7 @@ $(pv_value)
Text Input
100
170
- 260
+ 285
@@ -2488,7 +2579,7 @@ $(pv_value)
100
false
276
- 261
+ 286
@@ -2528,7 +2619,7 @@ $(pv_value)
90
false
70
- 210
+ 235
@@ -2590,7 +2681,7 @@ $(pv_value)
Text Input
100
170
- 210
+ 235
@@ -2641,7 +2732,7 @@ $(pv_value)
100
false
276
- 211
+ 236
@@ -2681,7 +2772,7 @@ $(pv_value)
150
false
10
- 235
+ 260
@@ -2743,7 +2834,7 @@ $(pv_value)
Text Input
100
170
- 235
+ 260
@@ -2794,7 +2885,7 @@ $(pv_value)
100
false
276
- 236
+ 261
@@ -3681,7 +3772,7 @@ $(pv_value)
150
false
10
- 485
+ 510
@@ -3725,7 +3816,7 @@ $(pv_value)
Menu Button
100
170
- 485
+ 510
@@ -3776,7 +3867,7 @@ $(pv_value)
100
false
276
- 486
+ 511
@@ -3816,7 +3907,7 @@ $(pv_value)
140
false
23
- 510
+ 535
@@ -3869,7 +3960,7 @@ $(pv_value)
Action Button
100
170
- 510
+ 535
diff --git a/ADApp/op/ui/autoconvert/NDPluginBaseFull.ui b/ADApp/op/ui/autoconvert/NDPluginBaseFull.ui
index 7ebd6ea6a..2e70394db 100644
--- a/ADApp/op/ui/autoconvert/NDPluginBaseFull.ui
+++ b/ADApp/op/ui/autoconvert/NDPluginBaseFull.ui
@@ -7,7 +7,7 @@
399
92
775
- 565
+ 590
@@ -549,7 +549,7 @@ border-radius: 2px;
170
- 160
+ 185
100
20
@@ -600,7 +600,7 @@ border-radius: 2px;
276
- 161
+ 186
100
18
@@ -680,7 +680,7 @@ border-radius: 2px;
30
- 160
+ 185
130
20
@@ -716,7 +716,7 @@ border-radius: 2px;
60
- 135
+ 160
100
20
@@ -726,7 +726,7 @@ border-radius: 2px;
170
- 135
+ 160
100
20
@@ -777,7 +777,7 @@ border-radius: 2px;
276
- 136
+ 161
100
18
@@ -857,7 +857,7 @@ border-radius: 2px;
100
- 185
+ 210
60
20
@@ -867,7 +867,7 @@ border-radius: 2px;
170
- 185
+ 210
100
20
@@ -897,7 +897,7 @@ border-radius: 2px;
276
- 186
+ 211
100
18
@@ -956,7 +956,7 @@ border-radius: 2px;
5
30
380
- 530
+ 555
@@ -1014,7 +1014,7 @@ border-radius: 2px;
30
- 335
+ 360
130
20
@@ -1024,7 +1024,7 @@ border-radius: 2px;
170
- 336
+ 361
100
18
@@ -1104,7 +1104,7 @@ border-radius: 2px;
10
- 285
+ 310
150
20
@@ -1114,7 +1114,7 @@ border-radius: 2px;
170
- 285
+ 310
100
20
@@ -1144,7 +1144,7 @@ border-radius: 2px;
276
- 286
+ 311
100
18
@@ -1224,7 +1224,7 @@ border-radius: 2px;
70
- 385
+ 410
90
20
@@ -1234,7 +1234,7 @@ border-radius: 2px;
170
- 385
+ 410
100
20
@@ -1264,7 +1264,7 @@ border-radius: 2px;
276
- 386
+ 411
100
18
@@ -1318,7 +1318,7 @@ border-radius: 2px;
170
- 310
+ 335
100
20
@@ -1369,7 +1369,7 @@ border-radius: 2px;
276
- 311
+ 336
100
18
@@ -1449,7 +1449,7 @@ border-radius: 2px;
70
- 310
+ 335
90
20
@@ -1459,7 +1459,7 @@ border-radius: 2px;
170
- 410
+ 435
100
20
@@ -1510,7 +1510,7 @@ border-radius: 2px;
276
- 411
+ 436
100
18
@@ -1590,7 +1590,7 @@ border-radius: 2px;
70
- 410
+ 435
90
20
@@ -1626,7 +1626,7 @@ border-radius: 2px;
10
- 360
+ 385
150
20
@@ -1636,7 +1636,7 @@ border-radius: 2px;
276
- 360
+ 385
100
18
@@ -1690,7 +1690,7 @@ border-radius: 2px;
170
- 360
+ 385
100
20
@@ -1767,7 +1767,7 @@ border-radius: 2px;
20
- 435
+ 460
140
20
@@ -1777,7 +1777,7 @@ border-radius: 2px;
276
- 435
+ 460
100
18
@@ -1831,7 +1831,7 @@ border-radius: 2px;
170
- 435
+ 460
100
20
@@ -1882,7 +1882,7 @@ border-radius: 2px;
276
- 461
+ 486
100
18
@@ -1962,7 +1962,7 @@ border-radius: 2px;
40
- 460
+ 485
120
20
@@ -1972,7 +1972,7 @@ border-radius: 2px;
170
- 460
+ 485
100
20
@@ -2037,7 +2037,7 @@ border-radius: 2px;
20
- 260
+ 285
140
20
@@ -2047,7 +2047,7 @@ border-radius: 2px;
170
- 260
+ 285
100
20
@@ -2098,7 +2098,7 @@ border-radius: 2px;
276
- 261
+ 286
100
18
@@ -2178,7 +2178,7 @@ border-radius: 2px;
70
- 210
+ 235
90
20
@@ -2188,7 +2188,7 @@ border-radius: 2px;
170
- 210
+ 235
100
20
@@ -2239,7 +2239,7 @@ border-radius: 2px;
276
- 211
+ 236
100
18
@@ -2319,7 +2319,7 @@ border-radius: 2px;
10
- 235
+ 260
150
20
@@ -2329,7 +2329,7 @@ border-radius: 2px;
170
- 235
+ 260
100
20
@@ -2380,7 +2380,7 @@ border-radius: 2px;
276
- 236
+ 261
100
18
@@ -2439,7 +2439,7 @@ border-radius: 2px;
390
30
380
- 530
+ 555
@@ -3298,7 +3298,7 @@ border-radius: 2px;
10
- 485
+ 510
150
20
@@ -3308,7 +3308,7 @@ border-radius: 2px;
50
- 535
+ 560
222
22
@@ -3393,7 +3393,7 @@ border-radius: 2px;
170
- 485
+ 510
100
20
@@ -3423,7 +3423,7 @@ border-radius: 2px;
276
- 486
+ 511
100
18
@@ -3503,7 +3503,7 @@ border-radius: 2px;
23
- 510
+ 535
140
20
@@ -3513,7 +3513,7 @@ border-radius: 2px;
170
- 510
+ 535
100
20
@@ -4022,6 +4022,93 @@ border-radius: 2px;
caLineEdit::Static
+
+
+ QFrame::NoFrame
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+ 0
+
+
+
+ SDK version
+
+
+ ESimpleLabel::WidthAndHeight
+
+
+ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter
+
+
+
+ 20
+ 134
+ 140
+ 20
+
+
+
+
+
+
+ 170
+ 135
+ 160
+ 18
+
+
+
+ caLineEdit::WidthAndHeight
+
+
+ $(P)$(R)SDKVersion_RBV
+
+
+
+ 10
+ 0
+ 184
+
+
+
+
+ 187
+ 187
+ 187
+
+
+
+ caLineEdit::Channel
+
+
+ caLineEdit::Channel
+
+
+ 0.0
+
+
+ 1.0
+
+
+ Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter
+
+
+ string
+
+
+ caLineEdit::Static
+
+
diff --git a/ADApp/pluginSrc/NDFileHDF5.cpp b/ADApp/pluginSrc/NDFileHDF5.cpp
index 2b4d89b88..6298b8e49 100644
--- a/ADApp/pluginSrc/NDFileHDF5.cpp
+++ b/ADApp/pluginSrc/NDFileHDF5.cpp
@@ -2384,12 +2384,13 @@ NDFileHDF5::NDFileHDF5(const char *portName, int queueSize, int blockingCallback
}
/* Set the plugin type string */
+ setStringParam(NDPluginDriverPluginType, "NDFileHDF5");
+
unsigned majnum=0, minnum=0, relnum=0;
H5get_libversion( &majnum, &minnum, &relnum );
- char* plugin_type = (char*)calloc(40, sizeof(char));
- epicsSnprintf(plugin_type, 40, "NDFileHDF5 ver%d.%d.%d", majnum, minnum, relnum);
- //printf("plugin type and version: %s\n", plugin_type );
- setStringParam(NDPluginDriverPluginType, plugin_type);
+ char sdkVersion[40];
+ epicsSnprintf(sdkVersion, sizeof(sdkVersion), "%u.%u.%u", majnum, minnum, relnum);
+ setStringParam(ADSDKVersion, sdkVersion);
this->supportsMultipleArrays = 1;
this->pAttributeId = NULL;
this->pFileAttributes = new NDAttributeList;
diff --git a/ADApp/pluginSrc/NDFileJPEG.cpp b/ADApp/pluginSrc/NDFileJPEG.cpp
index 55903ad55..34699e26d 100644
--- a/ADApp/pluginSrc/NDFileJPEG.cpp
+++ b/ADApp/pluginSrc/NDFileJPEG.cpp
@@ -323,6 +323,14 @@ NDFileJPEG::NDFileJPEG(const char *portName, int queueSize, int blockingCallback
/* Set the plugin type string */
setStringParam(NDPluginDriverPluginType, "NDFileJPEG");
+
+ char sdkVersion[40];
+#ifdef JPEG_LIB_VERSION_MAJOR
+ epicsSnprintf(sdkVersion, sizeof(sdkVersion), "%d.%d", JPEG_LIB_VERSION_MAJOR, JPEG_LIB_VERSION_MINOR);
+#else
+ epicsSnprintf(sdkVersion, sizeof(sdkVersion), "%d.%d", JPEG_LIB_VERSION / 10, JPEG_LIB_VERSION % 10);
+#endif
+ setStringParam(ADSDKVersion, sdkVersion);
this->supportsMultipleArrays = 0;
setIntegerParam(NDFileJPEGQuality, 50);
}
diff --git a/ADApp/pluginSrc/NDFileMagick.cpp b/ADApp/pluginSrc/NDFileMagick.cpp
index 8971e9662..c908cec37 100644
--- a/ADApp/pluginSrc/NDFileMagick.cpp
+++ b/ADApp/pluginSrc/NDFileMagick.cpp
@@ -206,6 +206,7 @@ NDFileMagick::NDFileMagick(const char *portName, int queueSize, int blockingCall
/* Set the plugin type string */
setStringParam(NDPluginDriverPluginType, "NDFileMagick");
+ setStringParam(ADSDKVersion, MagickLibVersionText);
this->supportsMultipleArrays = 0;
createParam(NDFileMagickQualityString, asynParamInt32, &NDFileMagickQuality);
diff --git a/ADApp/pluginSrc/NDFileNetCDF.cpp b/ADApp/pluginSrc/NDFileNetCDF.cpp
index c11867ce8..de2f70e07 100644
--- a/ADApp/pluginSrc/NDFileNetCDF.cpp
+++ b/ADApp/pluginSrc/NDFileNetCDF.cpp
@@ -8,6 +8,7 @@
#include
#include
#include
+#include
#include
#include
@@ -532,6 +533,10 @@ NDFileNetCDF::NDFileNetCDF(const char *portName, int queueSize, int blockingCall
/* Set the plugin type string */
setStringParam(NDPluginDriverPluginType, "NDFileNetCDF");
+
+ // nc_inq_libvers() returns e.g. "4.3.3.1 of Jan 1 2020 00:00:00 $"
+ std::string ncVersion(nc_inq_libvers());
+ setStringParam(ADSDKVersion, ncVersion.substr(0, ncVersion.find(' ')).c_str());
this->supportsMultipleArrays = 1;
this->pAttributeId = NULL;
this->ncId = 0;
diff --git a/ADApp/pluginSrc/NDFileNexus.cpp b/ADApp/pluginSrc/NDFileNexus.cpp
index ac5c92952..54acf3433 100644
--- a/ADApp/pluginSrc/NDFileNexus.cpp
+++ b/ADApp/pluginSrc/NDFileNexus.cpp
@@ -884,6 +884,7 @@ NDFileNexus::NDFileNexus(const char *portName, int queueSize, int blockingCallba
/* Set the plugin type string */
setStringParam(NDPluginDriverPluginType, "NDFileNexus");
+ setStringParam(ADSDKVersion, NXgetversion());
this->supportsMultipleArrays = 1;
}
diff --git a/ADApp/pluginSrc/NDFileTIFF.cpp b/ADApp/pluginSrc/NDFileTIFF.cpp
index 16596051f..639a2aa35 100644
--- a/ADApp/pluginSrc/NDFileTIFF.cpp
+++ b/ADApp/pluginSrc/NDFileTIFF.cpp
@@ -22,6 +22,7 @@
#include
#include
#include
+#include
#include
@@ -619,6 +620,12 @@ NDFileTIFF::NDFileTIFF(const char *portName, int queueSize, int blockingCallback
/* Set the plugin type string */
setStringParam(NDPluginDriverPluginType, "NDFileTIFF");
+
+ // TIFFGetVersion() returns e.g. "LIBTIFF, Version 4.0.6\nCopyright ..."
+ std::string tiffVersion(TIFFGetVersion());
+ size_t start = tiffVersion.find("Version ");
+ start = (start == std::string::npos) ? 0 : start + strlen("Version ");
+ setStringParam(ADSDKVersion, tiffVersion.substr(start, tiffVersion.find('\n', start) - start).c_str());
this->supportsMultipleArrays = 0;
this->pAttributeId = NULL;
diff --git a/ADApp/pluginSrc/NDPluginPva.cpp b/ADApp/pluginSrc/NDPluginPva.cpp
index 0377cd810..872769cbd 100644
--- a/ADApp/pluginSrc/NDPluginPva.cpp
+++ b/ADApp/pluginSrc/NDPluginPva.cpp
@@ -5,6 +5,7 @@
#include
#include
#include
+#include
#include
@@ -165,6 +166,11 @@ NDPluginPva::NDPluginPva(const char *portName, int queueSize,
/* Set the plugin type string */
setStringParam(NDPluginDriverPluginType, "NDPluginPva");
+ char sdkVersion[40];
+ epicsSnprintf(sdkVersion, sizeof(sdkVersion), "%d.%d.%d",
+ EPICS_PVA_MAJOR_VERSION, EPICS_PVA_MINOR_VERSION, EPICS_PVA_MAINTENANCE_VERSION);
+ setStringParam(ADSDKVersion, sdkVersion);
+
/* Set PvName */
setStringParam(NDPluginPvaPvName, pvName);
diff --git a/ADApp/pluginSrc/NDPluginPvxs.cpp b/ADApp/pluginSrc/NDPluginPvxs.cpp
index 36b3f3bc8..f8ff00f58 100644
--- a/ADApp/pluginSrc/NDPluginPvxs.cpp
+++ b/ADApp/pluginSrc/NDPluginPvxs.cpp
@@ -7,6 +7,7 @@
#include
#include
#include
+#include
#include
@@ -138,6 +139,12 @@ NDPluginPvxs::NDPluginPvxs(const char *portName, int queueSize,
/* Set the plugin type string */
setStringParam(NDPluginDriverPluginType, "NDPluginPvxs");
+ unsigned long pvxsVersion = pvxs::version_int();
+ char sdkVersion[40];
+ epicsSnprintf(sdkVersion, sizeof(sdkVersion), "%lu.%lu.%lu",
+ (pvxsVersion >> 24) & 0xff, (pvxsVersion >> 16) & 0xff, (pvxsVersion >> 8) & 0xff);
+ setStringParam(ADSDKVersion, sdkVersion);
+
/* Set PvName */
setStringParam(NDPluginPvxsPvName, pvName);
diff --git a/RELEASE.md b/RELEASE.md
index 50968b248..862aa57ce 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -45,6 +45,12 @@ files respectively, in the configure/ directory of the appropriate release of th
### NDFileHDF
* Added support for direct chunk write for NDArrays compressed with the lz4hd5 codec.
+
+### Plugin SDK versions
+ * Plugins that use third-party libraries (NDFileHDF5, NDFileJPEG, NDFileMagick, NDFileNetCDF,
+ NDFileNexus, NDFileTIFF, NDPluginPva, NDPluginPvxs) now report the library version in SDKVersion_RBV.
+ * NDFileHDF5 no longer includes the HDF5 library version in PluginType_RBV.
+ * Added SDKVersion_RBV to the NDPluginBaseFull screen.
### Database template files
* Fixed record names in NDROIStat.template to avoid record name duplication.