Half of GFClient instantiates

This commit is contained in:
gac-x05la
2024-07-25 17:58:17 +02:00
committed by mohacsi_i
parent e3145dfd88
commit 780e64d81d
2 changed files with 96 additions and 21 deletions
@@ -107,21 +107,20 @@ gf2:
readoutPriority: monitored
softwareTrigger: true
#gf2:
# description: GigaFrost camera controls
# deviceClass: tomcat_bec.devices.gigafrost.gigafrostclient.GigaFrostClient
# deviceConfig:
# prefix: 'X02DA-CAM-GF2:'
# backend_url: 'http://xbl-daq-28:8080'
# auto_soft_enable: true
# deviceTags:
# - camera
# enabled: true
# onFailure: buffer
# readOnly: false
# readoutPriority: monitored
# softwareTrigger: true
gfclient:
description: GigaFrost camera controls
deviceClass: tomcat_bec.devices.gigafrost.gigafrostclient.GigaFrostClient
deviceConfig:
prefix: 'X02DA-CAM-GF2:'
backend_url: 'http://xbl-daq-28:8080'
auto_soft_enable: true
deviceTags:
- camera
enabled: true
onFailure: buffer
readOnly: false
readoutPriority: monitored
softwareTrigger: true
daq:
description: Standard DAQ controls
@@ -6,7 +6,6 @@ Created on Thu Jun 27 17:28:43 2024
@author: mohacsi_i
"""
import sys
from time import sleep
from ophyd import Device, Component, EpicsSignal, EpicsSignalRO, Kind, DeviceStatus
from ophyd.device import Staged
@@ -16,16 +15,21 @@ from ophyd_devices.interfaces.base_classes.psi_detector_base import (
PSIDetectorBase,
)
try:
import gfconstants as const
except ModuleNotFoundError:
import tomcat_bec.devices.gigafrost.gfconstants as const
try:
from StdDaqClient import StdDaqClient
except ModuleNotFoundError:
from tomcat_bec.devices.gigafrost.StdDaqClient import StdDaqClient
from tomcat_bec.devices.gigafrost.stddaq_ws import StdDaqWsClient
try:
from gfcamera import GigaFrostCamera
from gigafrostcamera import GigaFrostCamera
except ModuleNotFoundError:
from tomcat_bec.devices.gigafrost.gfcamera import GigaFrostCamera
from tomcat_bec.devices.gigafrost.gigafrostcamera import GigaFrostCamera
@@ -219,8 +223,80 @@ class GigaFrostClient(PSIDetectorBase):
"""
# pylint: disable=too-many-instance-attributes
cam = Component(GigaFrostCamera, "", auto_monitor=True)
daq = Component(StdDaqClient, "", auto_monitor=True)
cam = Component(GigaFrostCamera, prefix="X02DA-CAM-GF2:", name="cam")
#daq = Component(StdDaqWsClient, "")
def __init__(
self,
prefix="",
*,
name,
auto_soft_enable=False,
backend_url=const.BE999_DAFL_CLIENT,
kind=None,
read_attrs=None,
configuration_attrs=None,
parent=None,
**kwargs,
):
self.__class__.__dict__["cam"].kwargs.update({'backend_url':"http://xbl-daq-28:8080",})
self.__class__.__dict__["cam"].kwargs.update({'auto_soft_enable': True})
super().__init__(
prefix=prefix,
name=name,
kind=kind,
read_attrs=read_attrs,
configuration_attrs=configuration_attrs,
parent=parent,
**kwargs,
)
def configure(self, d: dict=None, **kwargs):
"""Configure the next scan with the GigaFRoST camera
Parameters
----------
nimages : int, optional
Number of images to be taken during each scan. Set to -1 for an
unlimited number of images (limited by the ringbuffer size and
backend speed). (default = 10)
exposure : float, optional
Exposure time [ms]. (default = 0.2)
period : float, optional
Exposure period [ms], ignored in soft trigger mode. (default = 1.0)
roix : int, optional
ROI size in the x-direction [pixels] (default = 2016)
roiy : int, optional
ROI size in the y-direction [pixels] (default = 2016)
scanid : int, optional
Scan identification number to be associated with the scan data
(default = 0)
correction_mode : int, optional
The correction to be applied to the imaging data. The following
modes are available (default = 5):
* 0: Bypass. No corrections are applied to the data.
* 1: Send correction factor A instead of pixel values
* 2: Send correction factor B instead of pixel values
* 3: Send correction factor C instead of pixel values
* 4: Invert pixel values, but do not apply any linearity correction
* 5: Apply the full linearity correction
"""
# If Bluesky style configure
old = self.read_configuration()
self.cam.configure(d)
self.daq.configure(d)
new = self.read_configuration()
return old, new
def stage(self):
px_daq_h = self.daq.config.cfg_image_pixel_height.get()