The QICK program classes are now defined in three files corresponding to three levels of abstraction (previously it was just two files):
qick_asm.py: code independent of the tProcessor (configuring gens/readouts, acquiring data) - AbsQickProgram
asm_v1.py: code specific to the tProcessor v1 - QickProgram
averager_program.py: the user-facing wrappers for QICK programs - AveragerProgram, RAveragerProgram, NDAveragerProgram
There have been many changes to how AbsQickProgram works, but user code should not be affected, except in the following ways:
The readouts_per_experiment parameter of acquire() is no longer needed (you can still supply the parameter to override the automatic readout counting); the debug parameter is no longer supported (it was strictly less useful than just printing the program object).
It's possible to run programs with multiple readout channels, where different channels have different numbers of readouts per rep.
The data structures returned by acquire() and acquire_decimated are lists of ndarrays, not pure ndarrays. This is the way things used to be, actually.
The QICK program classes are now defined in three files corresponding to three levels of abstraction (previously it was just two files):
There have been many changes to how AbsQickProgram works, but user code should not be affected, except in the following ways:
readouts_per_experiment
parameter ofacquire()
is no longer needed (you can still supply the parameter to override the automatic readout counting); thedebug
parameter is no longer supported (it was strictly less useful than just printing the program object).acquire()
andacquire_decimated
are lists of ndarrays, not pure ndarrays. This is the way things used to be, actually.