from ch.psi.pshell.bs import Stream from ch.psi.pshell.bs import Provider from ch.psi.pshell.bs.ProviderConfig import SocketType; sources = [ #"tcp://sf-daqsync-06.psi.ch:9000", #AARES20-CAMS142-M4 Image Buffer "tcp://sf-daqsync-06.psi.ch:9001", #AARES20-CAMS142-M4Data Buffer #"tcp://sf-daqsync-06.psi.ch:9010", #SARES20-CAMS142-M5 Image Buffer #"tcp://sf-daqsync-06.psi.ch:9011", #SARES20-CAMS142-M5 Data Buffer #"tcp://sf-daqsync-05.psi.ch:9000", #SARES11-SPEC125-M1 Image Buffer #"tcp://sf-daqsync-05.psi.ch:9001", #SARES11-SPEC125-M1 Data Buffer #"tcp://sf-daqsync-05.psi.ch:9010", #SARES11-SPEC125-M2 Image Buffer #"tcp://sf-daqsync-05.psi.ch:9011", #SARES11-SPEC125-M2 Data Buffer ] class StreamListener (DeviceListener): def onCacheChanged(self, device, value, former, timestamp, valueChange): print value.pulseId l = StreamListener() for src in sources: p = Provider("Provider",src, SocketType.PULL) s = Stream("Stream", p) try: p.initialize() s.initialize() s.start(True) #s.addListener(l) s.waitCacheChange(3000) v = s.getValues() print "SUCCESS getting data from: ", src , " value=", v #time.sleep(60.0) except: print "ERROR getting data from: ", src finally: s.close() p.close()