The file /online_dir/SardanaConfig.py is executed at the end of the SardanaStartup.py script. This is an example:
#!/usr/bin/python
#
# /online_dir/SardanaConfig.py
#
import PyTango
import HasyUtils
import sys
print "\n--- executing %s \n" % __file__
#
# change the configuration of several attributes
#
devices = { "motor/omsvme58_d1/1":
{ "Position": { "Label": "Ort1", "Format": "%12g", "Unit": "mm"},
"Offset": { "Label": "Aufsatz", "Format": "%11g", "Unit": "mm"},
},
"motor/omsvme58_d1/2":
{ "Position": { "Label": "Ort2", "Format": "%12g", "Unit": "Degree"},
"Offset": { "Label": "Aufsatz2", "Format": "%11g", "Unit": "Degree"},
},
}
for dev in devices.keys():
print "device", dev
try:
proxy = PyTango.DeviceProxy( dev)
except:
print "The attribute configuration failed for %s" % dev
continue
for attr in devices[dev].keys():
print " ",attr
attrInfo = proxy.get_attribute_config( attr)
for attrCfg in devices[dev][attr].keys():
temp = "attrInfo.%s = \"%s\"" % (attrCfg.lower(), devices[dev][attr][attrCfg])
print " ",temp
exec temp
proxy.set_attribute_config( attrInfo)
#
# Set some view options
#
HasyUtils.configMacroServer(
[ "setvo ShowDial False",
"setvo ShowCtrlAxis True"])
#
# Set some environment variables. 'Cautious' means that variables
# are not overridden, if the exist already
#
HasyUtils.setEnvCautious(
{"JsonRecorder": "True",
"ScanDir": "/home/kracht/temp",
"ScanFile": "tst.fio"})
sys.exit( 0)
To overwrite the MacroPath property of the MacroServer, maybe during the development of new Macros, the following lines have to be added before sys.exit().
HasyUtils.putDeviceProperty( 'p17/macroserver/haspp17.01',
'MacroPath',
[
'/usr/lib/python2.7/dist-packages/sardana/sardana-macros/DESY_general',
'/common/p17/sardanaMacros',
'/home/p17user/sardanaMacros',
'/gpfs/local/sardanaMacros',
'/bl_documents/sardanaMacros'
]
)
HasyUtils.restartServer( 'MacroServer/haspp17')