45 lines
1.7 KiB
Python
45 lines
1.7 KiB
Python
###################################################################################################
|
|
# Scans with beam synchronous streams
|
|
###################################################################################################
|
|
|
|
#Creating a stream, assuming a provided named "dispatcher".
|
|
st1 = Stream("st1", dispatcher)
|
|
|
|
#Adding channels to that stream
|
|
s1=st1.addScalar("SINEG01-DICT210:GUN_CHARGE", "SINEG01-DICT210:GUN_CHARGE", 10, 0)
|
|
s2=st1.addScalar("SINEG01-DICT215:B1_CHARGE", "SINEG01-DICT215:B1_CHARGE", 10, 0)
|
|
s3=st1.addScalar("S10DI01-DICT025:B1_CHARGE", "S10DI01-DICT025:B1_CHARGE", 10, 0)
|
|
#s4=st1.addScalar("S10DI01-DICT025:B1_CHARGES", "S10DI01-DICT025:B1_CHARGES", 10, 0)
|
|
|
|
|
|
st1.setFilter("SINEG01-DICT210:GUN_CHARGE < 0.0")
|
|
|
|
st1.initialize()
|
|
#st1.start(True)
|
|
|
|
|
|
#Filter
|
|
|
|
try:
|
|
while(True):
|
|
#The stream can be used on any conventional scan. The next stream value is sampled.
|
|
#Readable values belong to same pulse id.
|
|
tscan (st1.getReadables(), 10 , 0.1)
|
|
|
|
#The bscan command performs samples every stream element
|
|
#Readable values belong to same pulse id.
|
|
bscan (st1, 10) #Sampling 10 elements
|
|
|
|
#An individual stream channel can be used in a conventional scan, but in this case the stream
|
|
#must be explicitly started, and there is no guarantee the values belong to the same PulseID
|
|
#(likely they are since as only cached values are taken).
|
|
#st1.start(True)
|
|
#tscan ([s1,s2], 10 , 0.1)
|
|
|
|
#If waveform individual stream channel is used, and no size is provided in constructor/config,
|
|
#then it must be read previously to the scan to update the size value.
|
|
#tscan ([s1,s2,s3], 10 , 0.1)
|
|
|
|
|
|
|
|
finally:
|
|
st1.close()
|