# Defines hashes which map SICS device object names to hipadaba paths InstallHdb hmake /graphics spy none hsetprop /graphics type graphset hmake /commands spy none hsetprop /commands type commandset #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 # Generate hipadaba nodes for the paths in the hpaths file foreach hp $hpaths { hmake /$instrument/$hp spy none; hsetprop /$instrument/$hp type part; } #--- admin hattach /$instrument title title hattach /$instrument/experiment sample description hmake /$instrument/user spy none hsetprop /$instrument/user type part hattach /$instrument/user user name hattach /$instrument/user email email hattach /$instrument/user phone phone #--- Motors foreach {obj name part} $motor_hpath { hattach /$instrument/$part $obj $name #TODO Only ignore node deletion errors for simulated motors if [ catch {hdel /$instrument/$part/$name/axis} ] {} if [ catch {hdel /$instrument/$part/$name/units} ] {} } #--- Configurable Virtual Motors foreach {obj name part master_obj} $cvirtmotor_hpath { set path /$instrument/$part # hattach /$instrument/$part $obj $name hattach $path $obj $name hchain $path/$name $path/$master_obj } #------------- scan command hsetprop /commands type part hcommand /commands/scan hdb_hmscan hsetprop /commands/scan type command hsetprop /commands/scan priv user hmake /commands/scan/scan_variable user text hsetprop /commands/scan/scan_variable argtype drivable hmake /commands/scan/scan_start user float hsetprop /commands/scan/scan_start argtype float hmake /commands/scan/scan_increment user float hsetprop /commands/scan/scan_increment argtype float hmake /commands/scan/NP user int hsetprop /commands/scan/NP argtype int hmake /commands/scan/mode user text hsetprop /commands/scan/mode argtype text hsetprop /commands/scan/mode values monitor,timer hmake /commands/scan/preset user float hsetprop /commands/scan/preset argtype float