Added extended hmake "xhmake" to make it easier to create long paths.
r1857 | ffr | 2007-04-16 14:44:25 +1000 (Mon, 16 Apr 2007) | 2 lines
This commit is contained in:
committed by
Douglas Clowes
parent
40e1042cda
commit
487f370d5e
@@ -1,26 +1,49 @@
|
||||
# Defines hashes which map SICS device object names to hipadaba paths
|
||||
InstallHdb
|
||||
#Usage: xhmake /a/b spy none {type part}
|
||||
proc xhmake {path priv dtype pKey pVal} {
|
||||
global pathlist;
|
||||
if {[info exists pathlist($path)] == 0} {
|
||||
set basepath "";
|
||||
foreach p [split [string trimleft $path / ] / ] {
|
||||
if {[info exists pathlist($basepath/$p)] == 1} {
|
||||
append basepath /$p;
|
||||
continue;
|
||||
}
|
||||
hmake $basepath/$p $priv $dtype;
|
||||
hsetprop $basepath/$p $pKey $pVal;
|
||||
set pathlist($basepath/$p) 1;
|
||||
append basepath /$p;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
hmake /commands spy none
|
||||
hsetprop /commands type commandset
|
||||
set pathlist(/commands) 1
|
||||
|
||||
#TODO change this to hparts.tcl
|
||||
source $cfPath(hipadaba)/hpaths.tcl
|
||||
set instrument [string tolower [SplitReply [Instrument]] ]
|
||||
hmake /$instrument spy none
|
||||
hsetprop /$instrument type instrument
|
||||
set pathlist(/$instrument) 1
|
||||
|
||||
# Generate hipadaba nodes for the paths in the hpaths file
|
||||
foreach hp $hpaths {
|
||||
hmake /$instrument/$hp spy none;
|
||||
hsetprop /$instrument/$hp type part;
|
||||
set pathlist(/$instrument/$hp) 1;
|
||||
}
|
||||
|
||||
#--- admin
|
||||
hmake /experiment user none
|
||||
set pathlist(/experiment) 1
|
||||
hattach /experiment title title
|
||||
hattach /experiment sample description
|
||||
hmake /experiment/user spy none
|
||||
hsetprop /experiment/user type part
|
||||
set pathlist(/experiment/user) 1
|
||||
hattach /experiment/user user name
|
||||
hattach /experiment/user email email
|
||||
hattach /experiment/user phone phone
|
||||
@@ -42,22 +65,17 @@ foreach motor [sicslist type motor] {
|
||||
foreach {type group} [split $mpart .] {};
|
||||
set path $mot_Pdic($type);
|
||||
if {$group != ""} {
|
||||
if {[info exists pathlist(/$instrument/$path/$group)] == 0} {
|
||||
hmake /$instrument/$path/$group spy none;
|
||||
hsetprop /$instrument/$path/$group type part;
|
||||
set pathlist(/$instrument/$path/$group) 1;
|
||||
}
|
||||
hattach /$instrument/$path/$group $motor [SplitReply [$motor long_name]];
|
||||
} else {
|
||||
hattach /$instrument/$path $motor [SplitReply [$motor long_name]];
|
||||
}
|
||||
append path /$group;
|
||||
}
|
||||
xhmake /$instrument/$path spy none type part;
|
||||
hattach /$instrument/$path $motor [SplitReply [$motor long_name]];
|
||||
}
|
||||
|
||||
#--- Configurable Virtual Motors
|
||||
foreach {obj name part master_obj} $cvirtmotor_hpath {
|
||||
set path /$instrument/$part
|
||||
hattach $path $obj $name
|
||||
hchain $path/$name $path/$master_obj
|
||||
sicspoll add $path/$name hdb 2
|
||||
}
|
||||
|
||||
#------------- scan command
|
||||
|
||||
Reference in New Issue
Block a user