[go: up one dir, main page]

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:

  1. CameraTemplate does not handle the metadata and the identifier (which could be inside the metadata)
  2. we would have to call camera.update_configuration({config: self.config_dict[config]}) and then use camera.configure(config)

Should we:

  • A: Add a new component TriggeredHeroCamera which inherits TriggeredRPCCamera and overrides _set_config
  • B: Change the configure method 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:

  • arm arms the camera
  • start starts the exposure (in software trigger mode)
  • therefore arm should always call arm of the camera
  • start and fire can be aliases for a TriggeredRPCCamera
Edited by Suthep Pomjaksilp