DAQ: corrected pvs for area detector aoi settings and white balance correction, using enums for manual and auto_once

This commit is contained in:
2026-04-30 13:01:46 +02:00
parent a00f0b3dff
commit 71de09a11f
+11 -9
View File
@@ -46,14 +46,14 @@ class epicsAD(object):
self.data = epics.PV(prefix + image + "ArrayData")
self.counter = epics.PV(prefix + cam + "ArrayCounter_RBV")
self.busy = epics.PV(prefix + cam + "AcquireBusy", auto_monitor=True)
self.aoi_start_x = epics.PV(prefix + image + "GC_AutFunAOIOffsetX")
self.aoi_start_y = epics.PV(prefix + image + "GC_AutFunAOIOffsetY")
self.aoi_size_x = epics.PV(prefix + image + "GC_AutFunAOIWidth")
self.aoi_size_y = epics.PV(prefix + image + "GC_AutFunAOIHeight")
self.aoi_start_x = epics.PV(prefix + cam + "GC_AutFunAOIOffsetX")
self.aoi_start_y = epics.PV(prefix + cam + "GC_AutFunAOIOffsetY")
self.aoi_size_x = epics.PV(prefix + cam + "GC_AutFunAOIWidth")
self.aoi_size_y = epics.PV(prefix + cam + "GC_AutFunAOIHeight")
self.gain_max = epics.PV(prefix + cam + "GC_AutGainUpperLimit")
self.exp_max = epics.PV(prefix + cam + "GC_AutExpTimUppLimit")
self.auto_white_balance = epics.PV(prefix + cam + "GC_BalanceWhiteAuto")
self.__init_auto_exp()
try:
@@ -68,6 +68,8 @@ class epicsAD(object):
self.aoi_size_y.put(settings.aoi_size_y)
self.gain_max.put(settings.gain_max)
self.exp_max.put(settings.exp_max)
self.set_auto_once()
self.auto_white_balance.put(1)
def monitorCB(self, epicsArgs, userArgs):
self.img = epicsArgs["pv_value"]
@@ -173,13 +175,13 @@ class epicsAD(object):
self.acquire.put(1)
def set_auto_once(self):
self.expo_mode.put(1)
self.gain_mode.put(1)
self.expo_mode.put(AutoEnum.ONCE)
self.gain_mode.put(AutoEnum.ONCE)
def set_manual(self):
self.acquire.put(0, wait=True)
self.gain_mode.put(0) # automatic gain control
self.expo_mode.put(0) # automatic exposure control
self.gain_mode.put(AutoEnum.MANUAL) # automatic gain control
self.expo_mode.put(AutoEnum.MANUAL) # automatic exposure control
self.acquire.put(1)
def restore(self, gain: float = 5, expo: float = 0.025):