From bb60ed1cef86bffa810ebb49f5f8aac2b75e073c Mon Sep 17 00:00:00 2001 From: Xiaoqiang Wang Date: Fri, 23 May 2025 08:45:32 +0200 Subject: [PATCH] feat(areadetector): add ADASItpx device --- ophyd_devices/devices/areadetector/cam.py | 33 +++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/ophyd_devices/devices/areadetector/cam.py b/ophyd_devices/devices/areadetector/cam.py index b13b05f..751f021 100644 --- a/ophyd_devices/devices/areadetector/cam.py +++ b/ophyd_devices/devices/areadetector/cam.py @@ -259,3 +259,36 @@ class SLSDetectorCam(CamBase, FileBase): # Moench json_frame_mode = ADCpt(EpicsSignalWithRBV, "JsonFrameMode") json_detector_mode = ADCpt(EpicsSignalWithRBV, "JsonDetectorMode") + + +class ASItpxCam(CamBase): + """ + ASI Timepix detector driver, https://github.com/paulscherrerinstitute/ADASItpx + + :: + + from ophyd import Component as Cpt + + class MyDetector(ADBase): + cam = Cpt(ASItpxCam, 'cam1:') + + """ + trigger_source = ADCpt(EpicsSignalWithRBV, "TriggerSource") + trigger_polarity = ADCpt(EpicsSignalWithRBV, "TriggerPolarity") + trigger_delay = ADCpt(EpicsSignalWithRBV, "TriggerDelay") + exposure_mode = ADCpt(EpicsSignalWithRBV, "ExposureMode") + trigger_software = ADCpt(EpicsSignal, "TriggerSoftware") + + raw_enable = ADCpt(EpicsSignalWithRBV, "RawEnable") + raw_file_path = ADCpt(EpicsSignalWithRBV, "RawFilePath") + raw_file_template = ADCpt(EpicsSignalWithRBV, "RawFileTemplate") + + # pixel mode for the 2D image + pixel_mode = ADCpt(EpicsSignalWithRBV, "PixelMode") + + image_enable = ADCpt(EpicsSignalWithRBV, "ImageEnable") + image_file_path = ADCpt(EpicsSignalWithRBV, "ImageFilePath") + image_file_template = ADCpt(EpicsSignalWithRBV, "ImageFileTemplate") + + preview_enable = ADCpt(EpicsSignalWithRBV, "PreviewEnable") + preview_period = ADCpt(EpicsSignalWithRBV, "PreviewPeriod")