The function HasyUtils.createScanInfo() returns a dictionary containing some useful information about the scan. Here is an example:
#!/usr/bin/env python
import HasyUtils
import PyTango
from sardana.macroserver.macro import *
import sardana.macroserver.macro as ms
#
# define detectorName and detectorRoot outside the Macros because they are used twice
#
detectorName = 'pilatus'
detectorRoot = "/home/someUser/data"
class gh_pre_scan(Macro):
”'
...
”'
def run( self):
self.output( "general_features.pre_scan hook")
if not HasyUtils.isInMg( self, detectorName):
self.output( "general_features.gh_pre_scan: %s not in the MG, DONE" % detectorName)
return True
if not HasyUtils.prepareDetectorAttrs( self, name = detectorName, rootDir = detectorRoot):
self.output( "general_features.gh_pre_scan: prepareDetectors: returned error")
return False
#
# createScanInfo() uses the command, e.g. dscan exp_dmy01 -0.005 0.005 10 0.1,
# to fill the scanInfo dictionary. If the command parameter is not supplied the
# function retrieves the command from the ScanHistory environment variable.
#
scanInfo = HasyUtils.createScanInfo( self.getParentMacro().getCommand())
self.output( "scanInfo: %s" % repr( scanInfo))
return True
The command
p99/door/haspp99.01 [3]: dscan exp_dmy01 -0.005 0.005 10 0.1
produces this output:
general_features.pre_scan hook
MsUtils.prepareDetectorAttrs: creating /home/someUser/data/tst_04118/pilatus (0777)
scanInfo: {'sampleTime': 0.1, 'serialno': 4118, 'intervals': 10,
'motors': [{'start': 0.995, 'stop': 1.005, 'name': 'exp_dmy01'}],
'title': 'dscan exp_dmy01 -0.005 0.005 10 0.1'}
See also 8.15.4.