Send data from a Macro

#!/bin/env python

__all__ = ["tsm_plot"]

from sardana.macroserver.macro import *
import os, sys, time
import numpy as np
import HasyUtils
import random

class tsm_plot( Macro):
    '''
    demonstrate the HasyUtils.toSardanaMonitor() from a Macro
    '''
    param_def = []
    result_def = []

    def run( self): 

        if not HasyUtils.isSardanaMonitorAlive():
            self.output( "tsm_plot: SardanaMonitor is not alive")
            return

        MAX = 100
        pos = [float(n)/MAX for n in range( MAX)]
        d1 = [random.random() for n in range( MAX)]
        d2 = [random.random() for n in range( MAX)]
        hsh = { 'putData':  
                {'title': "Important Data", 
                 'symbols': { 'file_name_': 'whatever.fio',
                              'scan_dir': '/tmp',
                              'scan_id': 12345,
                              'scan_date': HasyUtils.getDateTime(),
                              'scan_cmd': "ascan exp_dmy01 0 1 10 0.1",
                          },
                 'columns': 
                 [ { 'name': "d1_mot01", 'data' : pos},
                   { 'name': "d1_c01", 'data' : d1},
                   { 'name': "d1_c02", 'data' : d2},
               ]}}
        smNode = "haso107d1"
        hsh = HasyUtils.toSardanaMonitor( hsh, node = smNode)
        if hsh[ 'result'].upper() != 'DONE':
            self.output( "tsm_plot: putData caused an error")
            return  

        return



2020-08-07