TriggeredRPCCamera incompatible to CameraTemplate
Description of the problem
TriggeredRPCCamera._set_config calls the encapsulated camera with
self.camera.configure(identifier=int(self.experiment.identifier),configuration=self.config_dict[config], metadata=metadata)
This is not compatible to the way we designed the CameraTemplate in herosdevices:
def configure(self, config: str = "") -> None:
There are 2 issues:
-
CameraTemplatedoes not handle themetadataand theidentifier(which could be inside the metadata) - we would have to call
camera.update_configuration({config: self.config_dict[config]})and then usecamera.configure(config)
Should we:
- A: Add a new component
TriggeredHeroCamerawhich inheritsTriggeredRPCCameraand overrides_set_config - B: Change the
configuremethod for all cameras s.t. it accepts dicts (besides accepting the metadata).
Side note: Imho there is even more spaghetti in the code since TriggeredRPCCamera.arm calls camera.start
I would say:
-
armarms the camera -
startstarts the exposure (in software trigger mode) - therefore
armshould always callarmof the camera -
startandfirecan be aliases for aTriggeredRPCCamera
Edited by Suthep Pomjaksilp