SICS-694 Save data with named links on hdb nodes decorated with named links.
Note the use of the Tcl 8.5 {*} expand feature to expand a list into
separate arguments when calling a function.
This commit is contained in:
committed by
Ferdi Franceschini
parent
e9399b6990
commit
5df895cc76
@@ -132,6 +132,19 @@ proc newFileName {idNum postfix} {
|
|||||||
return $fmtStr
|
return $fmtStr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
##
|
||||||
|
# @brief Make a link in the nexus file
|
||||||
|
# With two arguments the target name = the link name
|
||||||
|
# With three arguments you can give the target a new name.
|
||||||
|
# two args: arg0 = target, arg1 = link
|
||||||
|
# three args: arg0 = target, arg1 = new name, arg2 = link
|
||||||
|
proc ::nexus::link {args} {
|
||||||
|
set nargs [llength $args]
|
||||||
|
switch $nargs {
|
||||||
|
2 { nxscript makelink [lindex $args 0] [lindex $args 1] }
|
||||||
|
3 { nxscript makenamedlink [lindex $args 0] [lindex $args 2] [lindex $args 1] }
|
||||||
|
}
|
||||||
|
}
|
||||||
proc ::nexus::process_filetype_policy {filetype} {
|
proc ::nexus::process_filetype_policy {filetype} {
|
||||||
if [ catch {
|
if [ catch {
|
||||||
if {$filetype == "BEAM_MONITOR"} {
|
if {$filetype == "BEAM_MONITOR"} {
|
||||||
@@ -633,10 +646,10 @@ proc ::nexus::savetree {hpath pt filestatus} {
|
|||||||
}
|
}
|
||||||
if {$filestatus == "newfile"} {
|
if {$filestatus == "newfile"} {
|
||||||
if {[info exists p_arr(link)] && ($p_arr(link) != "@none")} {
|
if {[info exists p_arr(link)] && ($p_arr(link) != "@none")} {
|
||||||
nxscript makelink $p_arr(link) $p_arr(nxalias)
|
::nexus::link {*}$p_arr(link) $p_arr(nxalias)
|
||||||
}
|
}
|
||||||
if {[info exists p_arr(permlink)] && ($p_arr(permlink) != "@none")} {
|
if {[info exists p_arr(permlink)] && ($p_arr(permlink) != "@none")} {
|
||||||
nxscript makelink $p_arr(permlink) $p_arr(nxalias)
|
::nexus::link {*}$p_arr(permlink) $p_arr(nxalias)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -888,7 +901,7 @@ proc ::nexus::histmem::save {hm nxalias hpath data_type filestatus args} {
|
|||||||
if {$filestatus == "newfile"} {
|
if {$filestatus == "newfile"} {
|
||||||
if [hpropexists $hpath link] {
|
if [hpropexists $hpath link] {
|
||||||
set link [hgetpropval $hpath link]
|
set link [hgetpropval $hpath link]
|
||||||
nxscript makelink $link $nxalias
|
::nexus::link {*}$link $nxalias
|
||||||
}
|
}
|
||||||
nxscript putattribute $nxalias axes $axes
|
nxscript putattribute $nxalias axes $axes
|
||||||
nxscript putattribute $nxalias signal $signal
|
nxscript putattribute $nxalias signal $signal
|
||||||
@@ -923,7 +936,7 @@ proc ::nexus::motor::save {motor nxalias hpath data_type filestatus args} {
|
|||||||
if {$filestatus == "newfile"} {
|
if {$filestatus == "newfile"} {
|
||||||
if [hpropexists $hpath link] {
|
if [hpropexists $hpath link] {
|
||||||
set link [hgetpropval $hpath link]
|
set link [hgetpropval $hpath link]
|
||||||
nxscript makelink $link $nxalias
|
::nexus::link {*}$link $nxalias
|
||||||
}
|
}
|
||||||
foreach {propName propValue} [hfindprop $hpath @*] {
|
foreach {propName propValue} [hfindprop $hpath @*] {
|
||||||
set attName [string range $propName 1 end]
|
set attName [string range $propName 1 end]
|
||||||
@@ -984,7 +997,7 @@ proc ::nexus::macro::getset_save {sobj nxalias hpath data_type filestatus args}
|
|||||||
if {$filestatus == "newfile"} {
|
if {$filestatus == "newfile"} {
|
||||||
if [hpropexists $hpath link] {
|
if [hpropexists $hpath link] {
|
||||||
set link [hgetpropval $hpath link]
|
set link [hgetpropval $hpath link]
|
||||||
nxscript makelink $link $nxalias
|
::nexus::link {*}$link $nxalias
|
||||||
}
|
}
|
||||||
foreach {propName propValue} [hfindprop $hpath @*] {
|
foreach {propName propValue} [hfindprop $hpath @*] {
|
||||||
set attName [string range $propName 1 end]
|
set attName [string range $propName 1 end]
|
||||||
@@ -1033,7 +1046,7 @@ proc ::nexus::environment_controller::save {evc nxalias hpath data_type filestat
|
|||||||
if {$filestatus == "newfile"} {
|
if {$filestatus == "newfile"} {
|
||||||
if [hpropexists $hpath link] {
|
if [hpropexists $hpath link] {
|
||||||
set link [hgetpropval $hpath link]
|
set link [hgetpropval $hpath link]
|
||||||
nxscript makelink $link $nxalias
|
::nexus::link {*}$link $nxalias
|
||||||
}
|
}
|
||||||
foreach {propName propValue} [hfindprop $hpath @*] {
|
foreach {propName propValue} [hfindprop $hpath @*] {
|
||||||
set attName [string range $propName 1 end]
|
set attName [string range $propName 1 end]
|
||||||
@@ -1092,7 +1105,7 @@ proc ::nexus::sicsvariable::save {svar nxalias hpath data_type filestatus args}
|
|||||||
if {$filestatus == "newfile"} {
|
if {$filestatus == "newfile"} {
|
||||||
if [hpropexists $hpath link] {
|
if [hpropexists $hpath link] {
|
||||||
set link [hgetpropval $hpath link]
|
set link [hgetpropval $hpath link]
|
||||||
nxscript makelink $link $nxalias
|
::nexus::link {*}$link $nxalias
|
||||||
}
|
}
|
||||||
foreach {propName propValue} [hfindprop $hpath @*] {
|
foreach {propName propValue} [hfindprop $hpath @*] {
|
||||||
set attName [string range $propName 1 end]
|
set attName [string range $propName 1 end]
|
||||||
@@ -1180,7 +1193,7 @@ proc ::nexus::chopperadapter::save {sobj nxalias hpath data_type filestatus args
|
|||||||
if {$filestatus == "newfile"} {
|
if {$filestatus == "newfile"} {
|
||||||
if [hpropexists $hpath link] {
|
if [hpropexists $hpath link] {
|
||||||
set link [hgetpropval $hpath link]
|
set link [hgetpropval $hpath link]
|
||||||
nxscript makelink $link $nxalias
|
::nexus::link {*}$link $nxalias
|
||||||
}
|
}
|
||||||
foreach {propName propValue} [hfindprop $hpath @*] {
|
foreach {propName propValue} [hfindprop $hpath @*] {
|
||||||
set attName [string range $propName 1 end]
|
set attName [string range $propName 1 end]
|
||||||
@@ -1248,7 +1261,7 @@ proc ::nexus::script::save {script nxalias hpath data_type filestatus args} {
|
|||||||
if {$filestatus == "newfile"} {
|
if {$filestatus == "newfile"} {
|
||||||
if [hpropexists $hpath link] {
|
if [hpropexists $hpath link] {
|
||||||
set link [hgetpropval $hpath link]
|
set link [hgetpropval $hpath link]
|
||||||
nxscript makelink $link $nxalias
|
::nexus::link {*}$link $nxalias
|
||||||
}
|
}
|
||||||
foreach {propName propValue} [hfindprop $hpath @*] {
|
foreach {propName propValue} [hfindprop $hpath @*] {
|
||||||
set attName [string range $propName 1 end]
|
set attName [string range $propName 1 end]
|
||||||
|
|||||||
Reference in New Issue
Block a user