atomiq.components.optoelectronics.camera module#
- class atomiq.components.optoelectronics.camera.Camera(config_dict, default_config, *args, **kwargs)#
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='')#
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 (TStr) --
- arm()#
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
- start()#
Start exposure of the camera
- stop()#
Stop exposure of the camera
- class atomiq.components.optoelectronics.camera.TriggeredRPCCamera(rpc_camera, fire_ttl, fire_pulsetime=9.999999999999999e-05, *args, **kwargs)#
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()#
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
- stop()#
Stop exposure of the camera
- fire(channel='')#
- Parameters:
channel (TStr) --
- start()#
Start exposure of the camera
- 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 (TStr) --