Access to Scan Data from a post-acq Hook

Here is an example of how to access scan data from the post-acq hook:

#!/usr/bin/env python
# file name: /home/pXXuser/sardanaMacros/hookedScan.py 

"""the demo for a hooked scan"""

__all__ = ["hookedScan"]

import PyTango
from sardana.macroserver.macro import *
from sardana.macroserver.macro import macro

class hookedScan(Macro):
    """An example on how to attach hooks to the various hook points of a scan."""
    
    param_def = [
       ['motor',      Type.Motor,   None, 'Motor to move'],
       ['start_pos',  Type.Float,   None, 'Scan start position'],
       ['final_pos',  Type.Float,   None, 'Scan final position'],
       ['nr_interv',  Type.Integer, None, 'Number of scan intervals'],
       ['integ_time', Type.Float,   None, 'Integration time']
    ]
    def hook_post_acq(self):
        self.info("--- post-acq hook")
        lst = self.ascan.data.records
        if len(lst) == 0:
            return
        for k in lst[-1].data.keys():
            self.output( " %s -> %s " % (k, str( lst[-1].data[k])))
    
    def run(self, motor, start_pos, final_pos, nr_interv, integ_time):
        ascan, pars = self.createMacro( "ascan", motor, start_pos, final_pos, nr_interv, integ_time)
        self.ascan = ascan

        ascan.hooks = [(self.hook_post_acq, ["post-acq"])]

        self.runMacro(ascan)

The corresponding Spock output:

p09/door/haso107d1.01 [65]: %hookedScan exp_dmy01 0 10 2 0.1
Operation will be saved in /home/kracht/temp/tst_[ScanId].fio (fio)
Scan #92 started at Tue May 26 11:19:15 2015. It will take at least 0:00:02.243056
Moving to start positions...
 #Pt No   exp_dmy01   d1_t01   sig_gen      dt   
--- post-acq hook
   0          0        0.1     0.865465  0.865937
--- post-acq hook
 haso107d1:10000/expchan/vc_sig_gen/1 -> 0.865465447158 
 haso107d1:10000/expchan/dgg2_d1_01/1 -> 0.1 
 exp_dmy01 -> 0.0 
 point_nb -> 0 
 timestamp -> 0.865936994553 
   1          5        0.1     0.295375  1.60491 
--- post-acq hook
 haso107d1:10000/expchan/vc_sig_gen/1 -> 0.2953754684 
 haso107d1:10000/expchan/dgg2_d1_01/1 -> 0.1 
 exp_dmy01 -> 5.0 
 point_nb -> 1 
 timestamp -> 1.60490703583 
   2          10       0.1     0.0936115   2.4303 
Operation saved in /home/kracht/temp/tst_00092.fio (fio)
Scan #92 ended at Tue May 26 11:19:17 2015, taking 0:00:02.696336.Dead time 88.9% (motion dead time 73.4%)



2019-11-13