SICS-699 Provide a hipadaba "control" group for special hdb nodes like environment setpoints and sensor readings
This commit is contained in:
committed by
Ferdi Franceschini
parent
58e35efba3
commit
6692a1a2bb
@@ -211,6 +211,12 @@ set instrument_dictionary [subst {
|
|||||||
datatype @none
|
datatype @none
|
||||||
property {data true control true nxsave false klass @none type part}
|
property {data true control true nxsave false klass @none type part}
|
||||||
}
|
}
|
||||||
|
control {
|
||||||
|
privilege spy
|
||||||
|
sobj {@any control}
|
||||||
|
datatype @none
|
||||||
|
property {data false control true nxsave false klass @none type nxvgroup}
|
||||||
|
}
|
||||||
data {
|
data {
|
||||||
privilege spy
|
privilege spy
|
||||||
sobj {@any data}
|
sobj {@any data}
|
||||||
|
|||||||
@@ -888,6 +888,16 @@ proc ::hdb::prune {instdict} {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proc ::hdb::alias {parent linkpath NXtarget name } {
|
||||||
|
set catch_status [ catch {
|
||||||
|
if {$NXtarget != "data_set"} {
|
||||||
|
return -code error "Unhandled target alias $NXtarget"
|
||||||
|
}
|
||||||
|
hfactory $parent/$name alias $linkpath
|
||||||
|
} message ]
|
||||||
|
handle_exception $catch_status $message
|
||||||
|
}
|
||||||
|
|
||||||
##
|
##
|
||||||
# @brief Traverse the instrument dictionary and construct the hipadaba database.
|
# @brief Traverse the instrument dictionary and construct the hipadaba database.
|
||||||
#
|
#
|
||||||
@@ -913,6 +923,13 @@ upvar #0 $instDict dictionary
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
foreach node [hmatchprop / permlink *] {
|
||||||
|
set plink [hgetpropval $node permlink]
|
||||||
|
set target [lindex $plink 0]
|
||||||
|
if {$target == "data_set" && [hgetpropval $node control]} {
|
||||||
|
::hdb::alias "/control" $node {*}$plink
|
||||||
|
}
|
||||||
|
}
|
||||||
} message ]
|
} message ]
|
||||||
handle_exception $catch_status $message
|
handle_exception $catch_status $message
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ set boolean {true false}
|
|||||||
#}
|
#}
|
||||||
|
|
||||||
# SICS OBJECTS MUST PROVIDE THE FOLLOWING INFORMATION
|
# SICS OBJECTS MUST PROVIDE THE FOLLOWING INFORMATION
|
||||||
set sobj_klass_list {@none aperture attenuator collimator command crystal data detector disk_chopper entry environment experiment fermi_chopper graphics instrument slits monitor monochromator parameter plc reduce sample scan sensor source user}
|
set sobj_klass_list {@none aperture attenuator collimator command control crystal data detector disk_chopper entry environment experiment fermi_chopper graphics instrument slits monitor monochromator parameter plc reduce sample scan sensor source user}
|
||||||
set sobj_sicstype_list {chopperadapter environment_controller sicsvariable macro motor configurablevirtualmotor tasmot singlecounter histmem nxscript sicsdata scanobject sct_object}
|
set sobj_sicstype_list {chopperadapter environment_controller sicsvariable macro motor configurablevirtualmotor tasmot singlecounter histmem nxscript sicsdata scanobject sct_object}
|
||||||
# Different kinds of things are added to the hdb in different ways.
|
# Different kinds of things are added to the hdb in different ways.
|
||||||
# command: This is something a client can run with hset /a/b/c start, it may have parameters and feedback.
|
# command: This is something a client can run with hset /a/b/c start, it may have parameters and feedback.
|
||||||
|
|||||||
Reference in New Issue
Block a user