Scans and acq. chain refactoring: defining the standards
Minutes of the meeting with: @matias.guijarro , @sebastien.petitdemange , @cyril.guilloud, @pancino, @pithan, @pguillou
related issue: #978 (closed)
In order to standardize the creation of the acquisition chain and related acquisition objects from the knowledge of the counters list involved in a scan, it was decided that:
-
all counters will have a .controller
property, always different of None (if required a virtual controller must be defined) -
all controllers will have .create_chain_node()
method that returns aXXXChainNode
object. The XXXChainNode class inherits from theChainNode
base class. The ChainNode class has aget_acquisition_object(kwargs)
method. The author of the controller decides what should be implemented in this method (i.e. the type of the returned Acquisition Object and how to deal with kwargs). -
controllers that require a master on top, will have a .controller
property that points on a master controller. -
the .master_controller
property of counters will be removed. -
the .create_acq_obj
method of counters will be removed.
To be discussed asap:
- renaming of
AcquisitionDevice
toAcquisitionSlave
- base class for
AcquisitionMaster
andAcquisitionSlave
? (they share quite a lot in common)- for example
AcquisitionDevice
could be the name of the new base class
- for example
- removal of
add_external_channel
?- proposal from previous issue: name translation after data is emitted, before it is sent to redis, like
scan.aliases["musst1:encoder"] = "roby:position"
- proposal from previous issue: name translation after data is emitted, before it is sent to redis, like