st1 = Stream("st1", dispatcher) #st1.addScalar("pup10", "SINEG01-RGUN-PUP10:SIG-AMPLT-AVG", 10, 0) #st1.addScalar("pup20", "SINEG01-RGUN-PUP20:SIG-AMPLT-AVG", 10, 0) #st1.addScalar("pup30", "SINEG01-RGUN-PUP30:SIG-AMPLT-AVG", 10, 0) #st1.addScalar("ampli", "SINDI01-RKLY-DCP10:REF-AMPLT", 10, 0) #st1.addScalar("phase", "SINDI01-RKLY-DCP10:REF-PHASE", 10, 0) #st1.addScalar("cput", "SINDI01-RLLE-STA:SLAVE1-CPUTIMER", 10, 0) #st1.addScalar("dlt", "SINDI01-RLLE-STA:SLAVE1-DLTIMER", 10, 0) #st1.addScalar("dlt", "SINDI01-RKLY-DCP10:REF-AMPLT-AVG", 10, 0) st1.addScalar("scpu", "SINDI01-RLLE-STA:SLAVE1-CPUTIMER", 10, 0) st1.addScalar("mcpu", "SINDI01-RLLE-STA:MASTER-CPUTIMER", 10, 0) st1.addWaveform("amp", "SINDI01-RCIR-PUP10:SIG-AMPLT", 10, 0) st1.initialize() st1.start(True) class PseudoPositioner(Writable): def write(self,pos): print "Step = " + str(pos) pseudo_motor = PseudoPositioner() try: #Dumps to file all pulse IDs bscan (st1, 10, title="bscan") #When sampling the stream waits for next value in normal scans/ #tscan (st1.getReadables(), 10,0.1) #lscan (pseudo_motor, [gsx,] + st1.getReadables(), 0, 10, 10, latency=0.1) finally: st1.close()