atomiq.components.optoelectronics.camera module¶
- class atomiq.components.optoelectronics.camera.Camera(config_dict, default_config, *args, **kwargs)[source]¶
Bases:
Component
A Camera
This is an abstract class to represent a camera.
A camera needs to have a configuration (exposure time, readout mode, binning, subarray, etc). Since cameras usually need quite some config options to be set, this class works with named configuration sets stored in a dict. An example looks like the following:
config_dict = { "camera_usecase1" : { "option_xy": 2.3, "option_zy": "external", ... }, "camera_usecase2": { "option_xy": 2e-3, "option_zy": "internal", }, ... }
- Parameters:
config_dict (dict) -- Dictionary holding the configuration sets for the camera
default_config (TStr) -- key from the config dict to use if none is specified in the
configure()
function
- kernel_invariants = {'config_dict', 'default_config'}¶
- configure(config='')[source]¶
Configure the camera, i.e. set exposure time, readout mode, binning, etc. Named configuration options are available from the config_dict provided upon object creation. We load the one with the key given in config. If no key is given, load the default defined upon object creation.
- Parameters:
config (artiq.compiler.types.TMono('str', OrderedDict()))
- class atomiq.components.optoelectronics.camera.TriggeredRPCCamera(rpc_camera, fire_ttl, fire_pulsetime=9.999999999999999e-05, *args, **kwargs)[source]¶
Bases:
Camera
,Triggerable
Camera that is configured via RPC but triggered via a TTL
- Parameters:
rpc_camera (Component) -- The ARTIQ RPC object that represents the camera. It needs to provide the RPC functions
configure(config: dict)
to configure the camera,start()
to arm the camera (i.e. wait for trigger), andstop()
to stop waiting for trigger or stop exposure.fire_ttl (Switchable) -- The logic signal that triggers the exposure.
fire_pulsetime (TFloat) -- The time the logic signal remains high to trigger the camera (default 100us)
A Triggerable has one ore more channel(s) that can be triggered
- kernel_invariants = {'camera', 'fire_pulsetime', 'fire_ttl'}¶
- arm()[source]¶
Arm the camera such that a subsequent call of the start() method can start the exposure immediately. Arming typically cannot meet realtime requirements. However, once armed, the camera can start exposure on a trigger in realtime
- configure(config='')¶
Configure the camera, i.e. set exposure time, readout mode, binning, etc. Named configuration options are available from the config_dict provided upon object creation. We load the one with the key given in config. If no key is given, load the default defined upon object creation.
- Parameters:
config (artiq.compiler.types.TMono('str', OrderedDict()))