Files
dev/script/tutorial/43_BeamSynchronousScan.js
2018-04-17 12:05:48 +02:00

38 lines
1.5 KiB
JavaScript
Executable File

///////////////////////////////////////////////////////////////////////////////////////////////////
// Scans with beam synchronous streams
///////////////////////////////////////////////////////////////////////////////////////////////////
//Creating a stream, assuming a provided named "dispatcher".
st1 = new Stream("st1", dispatcher)
//Adding channels to that stream
s1=st1.addScalar("Int8Scalar", "Int8Scalar", 10, 0)
s2=st1.addScalar("Float64Scalar", "Float64Scalar", 10, 0)
w1=st1.addWaveform("Int32Waveform", "Int32Waveform", 10, 0)
mt1=st1.addMatrix("Int16Waveform", "Int16Waveform", 10, 0, 64, 32)
st1.initialize()
try{
//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.2)
//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.2)
//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.
st1.start(true)
w1.update()
tscan ([s1,w1,mt1], 10 , 0.2)
} finally{
st1.close()
}