Files
dev/script/test/TestZMQ2.py
2019-10-10 14:29:40 +02:00

48 lines
1.0 KiB
Python

from ch.psi.pshell.bs import Stream
from ch.psi.pshell.bs import Provider
from ch.psi.pshell.bs.ProviderConfig import SocketType;
providers, streams = [], []
for i in range(9000, 9008):
p = Provider("Provider"+str(i),"tcp://SFTEST-CVME-DBPM1:"+str(i), SocketType.PULL)
p.initialize()
providers.append(p)
s = Stream("Stream"+str(i), p)
s.initialize()
streams.append(s)
def check(s):
print "Starting checking " + s.getName()
pid = s.take().pulseId
while(True):
s.waitCacheChange(10000)
p=s.take().pulseId
if p!= pid + 1:
print s.getName() + " error: received pid %d, expecting %d" % (p, (pid + 1))
pid = p
try:
for s in streams:
s.start(True)
s.waitCacheChange(5000)
print s.getName() + " channels:" + str(s.getIdentifiers())
args = []
for s in streams:
args.append((check,(s,)))
parallelize(*args)
finally:
try:
for s in streams:
s.close()
except:
pass