Commit d93b23f4 authored by Sebastien Petitdemange's avatar Sebastien Petitdemange

Merge branch 'cmake'

parents d99b707b 17d9f31a
......@@ -57,14 +57,14 @@
import PyTango
def _getDictKey(dict, value):
def getDictKey(dict, value):
try:
ind = dict.values().index(value)
except ValueError:
return None
return dict.keys()[ind]
def _getDictValue(dict, key):
def getDictValue(dict, key):
try:
value = dict[key.upper()]
except KeyError:
......@@ -72,7 +72,7 @@ def _getDictValue(dict, key):
return value
#preserve the case of key
def _getDictCaseValue(dict, key):
def getDictCaseValue(dict, key):
try:
value = dict[key]
except KeyError:
......@@ -86,7 +86,7 @@ class CallableReadEnum:
self.__func2Call = func2Call
def __call__(self,attr) :
value = _getDictKey(self.__dict,self.__func2Call())
value = getDictKey(self.__dict,self.__func2Call())
attr.set_value(value)
## @brief Class for genenic write_<attribute> with enum value
......@@ -98,7 +98,7 @@ class CallableWriteEnum:
def __call__(self,attr) :
data = attr.get_write_value()
value = _getDictValue(self.__dict,data.upper())
value = getDictValue(self.__dict,data.upper())
if value is None:
PyTango.Except.throw_exception('WrongData',\
'Wrong value %s: %s'%(self.__attr_name,data.upper()),\
......
###########################################################################
# This file is part of LImA, a Library for Image Acquisition
#
# Copyright (C) : 2009-2017
# European Synchrotron Radiation Facility
# BP 220, Grenoble 38043
# FRANCE
#
# Contact: lima@esrf.fr
#
# This is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This software is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <http://www.gnu.org/licenses/>.
############################################################################
set(NAME "tango-python")
if (LIMA_ENABLE_PYTHON)
install(PROGRAMS scripts/LimaCCDs DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
install(FILES LimaCCDs.py DESTINATION "${PYTHON_SITE_PACKAGES_DIR}/Lima/Server")
install(FILES __init__.py DESTINATION "${PYTHON_SITE_PACKAGES_DIR}/Lima/Server")
install(FILES LimaViewer.py DESTINATION "${PYTHON_SITE_PACKAGES_DIR}/Lima/Server")
install(FILES AttrHelper.py DESTINATION "${PYTHON_SITE_PACKAGES_DIR}/Lima/Server")
install(FILES EnvHelper.py DESTINATION "${PYTHON_SITE_PACKAGES_DIR}/Lima/Server")
install(DIRECTORY camera DESTINATION "${PYTHON_SITE_PACKAGES_DIR}/Lima/Server")
install(DIRECTORY plugins DESTINATION "${PYTHON_SITE_PACKAGES_DIR}/Lima/Server")
endif()
This diff is collapsed.
############################################################################
# This file is part of LImA, a Library for Image Acquisition
#
# Copyright (C) : 2009-2017
# European Synchrotron Radiation Facility
# CS40220 38043 Grenoble Cedex 9
# FRANCE
# Contact: lima@esrf.fr
#
# This is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This software is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <http://www.gnu.org/licenses/>.
############################################################################
__all__ = []
def _init_module() :
import os
for root,dirs,files in os.walk(__path__[0]) :
for file_name in files :
if file_name.startswith('__') : continue
base,ext = os.path.splitext(file_name)
if ext == '.py' :
subdir = root[len(__path__[0]) + 1:]
if subdir:
base = '%s.%s' % (subdir,base)
__all__.append(base)
_init_module()
......@@ -46,7 +46,7 @@ from Lima import Core
from Lima import Andor as AndorModule
# import some useful helpers to create direct mapping between tango attributes
# and Lima interfaces.
from AttrHelper import get_attr_4u, get_attr_string_value_list
from Lima.Server import AttrHelper
class Andor(PyTango.Device_4Impl):
......@@ -189,7 +189,7 @@ class Andor(PyTango.Device_4Impl):
def __getattr__(self,name) :
return get_attr_4u(self, name, _AndorInterface)
return AttrHelper.get_attr_4u(self, name, _AndorInterface)
## @brief return the timing times, exposure and latency
......@@ -216,7 +216,7 @@ class Andor(PyTango.Device_4Impl):
#------------------------------------------------------------------
@Core.DEB_MEMBER_FUNCT
def getAttrStringValueList(self, attr_name):
return get_attr_string_value_list(self, attr_name)
return AttrHelper.get_attr_string_value_list(self, attr_name)
#==================================================================
......
......@@ -46,7 +46,7 @@ from Lima import Core
from Lima import Andor3 as Andor3Module
# import some useful helpers to create direct mapping between tango attributes
# and Lima interfaces.
from AttrHelper import get_attr_4u, get_attr_string_value_list
from Lima.Server import AttrHelper
class Andor3(PyTango.Device_4Impl):
......@@ -148,9 +148,9 @@ class Andor3(PyTango.Device_4Impl):
def __getattr__(self,name) :
try:
return get_attr_4u(self, name, _Andor3Interface)
return AttrHelper.get_attr_4u(self, name, _Andor3Interface)
except:
return get_attr_4u(self, name, _Andor3Camera)
return AttrHelper.get_attr_4u(self, name, _Andor3Camera)
#==================================================================
......@@ -167,7 +167,7 @@ class Andor3(PyTango.Device_4Impl):
#------------------------------------------------------------------
@Core.DEB_MEMBER_FUNCT
def getAttrStringValueList(self, attr_name):
return get_attr_string_value_list(self, attr_name)
return AttrHelper.get_attr_string_value_list(self, attr_name)
#==================================================================
......
......@@ -42,7 +42,7 @@
import PyTango
from Lima import Core
from Lima import Basler as BaslerAcq
from AttrHelper import get_attr_4u, get_attr_string_value_list
from Lima.Server import AttrHelper
class Basler(PyTango.Device_4Impl):
......@@ -84,7 +84,7 @@ class Basler(PyTango.Device_4Impl):
@Core.DEB_MEMBER_FUNCT
def getAttrStringValueList(self, attr_name):
#use AttrHelper
return get_attr_string_value_list(self, attr_name)
return AttrHelper.get_attr_string_value_list(self, attr_name)
#==================================================================
#
# Basler read/write attribute methods
......@@ -92,7 +92,7 @@ class Basler(PyTango.Device_4Impl):
#==================================================================
def __getattr__(self,name) :
#use AttrHelper
return get_attr_4u(self,name,_BaslerCam)
return AttrHelper.get_attr_4u(self,name,_BaslerCam)
#==================================================================
......@@ -175,10 +175,10 @@ def get_control(frame_transmission_delay = 0, inter_packet_delay = 0,
print "basler camera_id:", camera_id
if _BaslerCam is None:
_BaslerCam = BaslerAcq.Camera(camera_id, int(packet_size))
_BaslerCam.setInterPacketDelay(int(inter_packet_delay))
_BaslerCam.setFrameTransmissionDelay(int(frame_transmission_delay))
_BaslerInterface = BaslerAcq.Interface(_BaslerCam)
_BaslerCam = BaslerAcq.Camera(camera_id, int(packet_size))
_BaslerCam.setInterPacketDelay(int(inter_packet_delay))
_BaslerCam.setFrameTransmissionDelay(int(frame_transmission_delay))
_BaslerInterface = BaslerAcq.Interface(_BaslerCam)
return Core.CtControl(_BaslerInterface)
def get_tango_specific_class_n_device():
......
......@@ -43,7 +43,7 @@ import os
import PyTango
from Lima import Core
from Lima import Dexela as DexelaAcq
from AttrHelper import get_attr_4u, get_attr_string_value_list
from Lima.Server import AttrHelper
class Dexela(PyTango.Device_4Impl):
......@@ -77,8 +77,8 @@ class Dexela(PyTango.Device_4Impl):
self.get_device_properties(self.get_device_class())
#Full well mode
self.__FullWellMode = {'HIGH' : _DexelaInterface.High,
'LOW' : _DexelaInterface.Low}
self.__FullWellMode = {'HIGH' : _DexelaInterface.High,
'LOW' : _DexelaInterface.Low}
self.__SkipFirstFrame = {'YES' : True,
'NO' : False}
#------------------------------------------------------------------
......@@ -90,7 +90,7 @@ class Dexela(PyTango.Device_4Impl):
@Core.DEB_MEMBER_FUNCT
def getAttrStringValueList(self, attr_name):
#use AttrHelper
return get_attr_string_value_list(self, attr_name)
return AttrHelper.get_attr_string_value_list(self, attr_name)
#==================================================================
#
# Dexela read/write attribute methods
......@@ -98,7 +98,7 @@ class Dexela(PyTango.Device_4Impl):
#==================================================================
def __getattr__(self,name) :
#use AttrHelper
return get_attr_4u(self,name,_DexelaInterface)
return AttrHelper.get_attr_4u(self,name,_DexelaInterface)
#==================================================================
......@@ -142,7 +142,7 @@ def get_control(format_file) :
global _DexelaInterface
if _DexelaInterface is None:
_DexelaInterface = DexelaAcq.Interface(format_file)
_DexelaInterface = DexelaAcq.Interface(format_file)
return Core.CtControl(_DexelaInterface)
def get_tango_specific_class_n_device():
......
......@@ -48,7 +48,7 @@ import PyTango
import sys
from Lima import Core
from AttrHelper import get_attr_4u, get_attr_string_value_list
from Lima.Server import AttrHelper
#==================================================================
# Eiger Class Description:
......@@ -105,7 +105,7 @@ class Eiger(PyTango.Device_4Impl):
#------------------------------------------------------------------
@Core.DEB_MEMBER_FUNCT
def getAttrStringValueList(self, attr_name):
return get_attr_string_value_list(self,attr_name)
return AttrHelper.get_attr_string_value_list(self,attr_name)
#----------------------------------------------------------------------------
# delete all memory files
#----------------------------------------------------------------------------
......@@ -119,7 +119,7 @@ class Eiger(PyTango.Device_4Impl):
#
#==================================================================
def __getattr__(self,name) :
return get_attr_4u(self,name,_EigerCamera)
return AttrHelper.get_attr_4u(self,name,_EigerCamera)
#==================================================================
#
......
############################################################################
# This file is part of LImA, a Library for Image Acquisition
#
# Copyright (C) : 2009-2011
# European Synchrotron Radiation Facility
# BP 220, Grenoble 38043
# FRANCE
#
# This is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This software is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <http://www.gnu.org/licenses/>.
############################################################################
#=============================================================================
#
# file : Fli.py
#
# description : Python source for the Fli and its commands.
# The class is derived from Device. It represents the
# CORBA servant object which will be accessed from the
# network. All commands which can be executed on the
# Pilatus are implemented in this file.
#
# project : TANGO Device Server
#
# copyleft : European Synchrotron Radiation Facility
# BP 220, Grenoble 38043
# FRANCE
#
#=============================================================================
# (c) - Bliss - ESRF
#=============================================================================
#
import PyTango
from Lima import Core
from Lima import Fli as FliAcq
from Lima.Server import AttrHelper
class Fli(PyTango.Device_4Impl):
Core.DEB_CLASS(Core.DebModApplication, 'LimaCCDs')
#------------------------------------------------------------------
# Device constructor
#------------------------------------------------------------------
def __init__(self,*args) :
PyTango.Device_4Impl.__init__(self,*args)
self.__ExtTriggerLevel = {'LOW':0,
'HIGH':1}
self.__Attribute2FunctionBase = {
'temperature_sp': 'TemperatureSP',
'temperature_ccd': 'TemperatureCCD',
'temperature_base': 'TemperatureBase',
}
self.init_device()
#------------------------------------------------------------------
# Device destructor
#------------------------------------------------------------------
def delete_device(self):
pass
#------------------------------------------------------------------
# Device initialization
#------------------------------------------------------------------
@Core.DEB_MEMBER_FUNCT
def init_device(self):
self.set_state(PyTango.DevState.ON)
self.get_device_properties(self.get_device_class())
if self.temperature_sp:
_FliInterface.setTemperatureSP(self.temperature_sp)
if self.ext_trigger_level:
_FliInterface.setExtTriggerLevel(self.__ExtTriggerLevel[self.ext_trigger_level])
#------------------------------------------------------------------
# getAttrStringValueList command:
#
# Description: return a list of authorized values if any
# argout: DevVarStringArray
#------------------------------------------------------------------
@Core.DEB_MEMBER_FUNCT
def getAttrStringValueList(self, attr_name):
#use AttrHelper
return AttrHelper.get_attr_string_value_list(self, attr_name)
#==================================================================
#
# Fli read/write attribute methods
#
#==================================================================
def __getattr__(self,name) :
#use AttrHelper
return AttrHelper.get_attr_4u(self,name,_FliInterface)
#==================================================================
#
# FliClass class definition
#
#==================================================================
class FliClass(PyTango.DeviceClass):
class_property_list = {}
device_property_list = {
# define one and only one of the following 4 properties:
'camera_path':
[PyTango.DevString,
"Camera device path", []],
'temperature_sp':
[PyTango.DevDouble,
'Temperature set point in Celsius', []],
'ext_trigger_level':
[PyTango.DevString,
'level of external trigger input ("LOW"/"HIGH")', []],
}
cmd_list = {
'getAttrStringValueList':
[[PyTango.DevString, "Attribute name"],
[PyTango.DevVarStringArray, "Authorized String value list"]],
}
attr_list = {
'cooler_power':
[[PyTango.DevDouble,
PyTango.SCALAR,
PyTango.READ],
{
'unit': '%',
'format': '%1f',
'description': 'cooler power (%)',
}],
'ext_trigger_level':
[[PyTango.DevString,
PyTango.SCALAR,
PyTango.READ_WRITE],
{
'unit': 'N/A',
'format': '',
'description': 'external trigger input level, see manual for usage LOW or HIGH',
}],
'temperature_sp':
[[PyTango.DevDouble,
PyTango.SCALAR,
PyTango.READ_WRITE],
{
'unit': 'C',
'format': '%1f',
'description': 'temperature set-point (C)',
}],
'temperature_ccd':
[[PyTango.DevDouble,
PyTango.SCALAR,
PyTango.READ],
{
'unit': 'C',
'format': '%1f',
'description': 'sensor temperature (C)',
}],
'temperature_base':
[[PyTango.DevDouble,
PyTango.SCALAR,
PyTango.READ],
{
'unit': 'C',
'format': '%1f',
'description': 'base (external) temperature (C)',
}],
}
def __init__(self,name) :
PyTango.DeviceClass.__init__(self,name)
self.set_type(name)
#----------------------------------------------------------------------------
# Plugins
#----------------------------------------------------------------------------
_FliCam = None
_FliInterface = None
def get_control(camera_path='/dev/fliusb0',**keys) :
global _FliCam
global _FliInterface
print "FLI camera path:", camera_path
if _FliCam is None:
_FliCam = FliAcq.Camera(camera_path)
_FliInterface = FliAcq.Interface(_FliCam)
return Core.CtControl(_FliInterface)
def get_tango_specific_class_n_device():
return FliClass,Fli
......@@ -43,7 +43,7 @@ import time, string
import PyTango
from Lima import Core
from Lima import Frelon as FrelonAcq
from AttrHelper import get_attr_4u, get_attr_string_value_list
from Lima.Server import AttrHelper
class Frelon(PyTango.Device_4Impl):
......@@ -100,14 +100,14 @@ class Frelon(PyTango.Device_4Impl):
def init_device(self):
self.set_state(PyTango.DevState.ON)
self.get_device_properties(self.get_device_class())
self.ResetLinkWaitTime = 5
self.ResetLinkWaitTime = 5
@Core.DEB_MEMBER_FUNCT
def getAttrStringValueList(self, attr_name):
return get_attr_string_value_list(self, attr_name)
return AttrHelper.get_attr_string_value_list(self, attr_name)
def __getattr__(self,name) :
return get_attr_4u(self, name, _FrelonAcq)
return AttrHelper.get_attr_4u(self, name, _FrelonAcq)
@Core.DEB_MEMBER_FUNCT
def execSerialCommand(self, command_string) :
......@@ -116,7 +116,7 @@ class Frelon(PyTango.Device_4Impl):
@Core.DEB_MEMBER_FUNCT
def resetLink(self) :
_FrelonAcq.getEspiaDev().resetLink()
time.sleep(self.ResetLinkWaitTime)
time.sleep(self.ResetLinkWaitTime)
## @brief read the espia board id
#
......@@ -417,7 +417,7 @@ _FrelonAcq = None
def get_control(espia_dev_nb = 0,**keys) :
global _FrelonAcq
if _FrelonAcq is None:
_FrelonAcq = FrelonAcq.FrelonAcq(int(espia_dev_nb))
_FrelonAcq = FrelonAcq.FrelonAcq(int(espia_dev_nb))
return _FrelonAcq.getGlobalControl()
def get_tango_specific_class_n_device():
......
......@@ -43,11 +43,10 @@ import PyTango
import sys, types, os, time
from Lima import Core
from Lima.Maxipix import Maxipix as MaxipixModule
from Lima import Maxipix as MaxipixModule
# import some useful helpers to create direct mapping between tango attributes
# and Lima APIs.
from AttrHelper import get_attr_4u, get_attr_string_value_list
import AttrHelper
from Lima.Server import AttrHelper
class Maxipix(PyTango.Device_4Impl):
......@@ -132,7 +131,7 @@ class Maxipix(PyTango.Device_4Impl):
func = getattr(_PriamAcq, 'set'+name)
deb.Always('Setting property '+prop_name)
val = AttrHelper._getDictValue(dict, key.upper())
val = AttrHelper.getDictValue(dict, key.upper())
if val is None:
deb.Error('Wrong value for property %s :%s' % (prop_name, val))
else:
......@@ -173,9 +172,9 @@ class Maxipix(PyTango.Device_4Impl):
def __getattr__(self,name) :
_PriamAcq = _MaxipixInterface.priamAcq()
if name.count('fill_mode') or name.count('energy_threshold'):
return get_attr_4u(self, name, _MaxipixInterface)
return AttrHelper.get_attr_4u(self, name, _MaxipixInterface)
else:
return get_attr_4u(self, name, _PriamAcq)
return AttrHelper.get_attr_4u(self, name, _PriamAcq)
## @brief read the config name
......@@ -233,7 +232,7 @@ class Maxipix(PyTango.Device_4Impl):
if attr_name.count('config_name'):
return self.__getConfigNameList()
else:
return get_attr_string_value_list(self, attr_name)
return AttrHelper.get_attr_string_value_list(self, attr_name)
class MaxipixClass(PyTango.DeviceClass):
......@@ -403,7 +402,6 @@ class MaxipixClass(PyTango.DeviceClass):
#----------------------------------------------------------------------------
# Plugins
#----------------------------------------------------------------------------
from Lima.Maxipix import Maxipix as MaxipixModule
_MaxipixCamera = None
_MaxipixInterface = None
......
......@@ -49,6 +49,7 @@ import PyTango
import AttrHelper
from Lima import Core
from Lima import Merlin as MerlinAcq
from Lima.Server import AttrHelper
class Merlin (PyTango.Device_4Impl):
......@@ -123,56 +124,56 @@ class Merlin (PyTango.Device_4Impl):
@Core.DEB_MEMBER_FUNCT
def read_chargeSumming(self, attr):
mode = _MerlinCamera.getChargeSumming()
attr.set_value(AttrHelper._getDictKey(self.__Switch, mode))
attr.set_value(AttrHelper.getDictKey(self.__Switch, mode))
@Core.DEB_MEMBER_FUNCT
def write_chargeSumming(self, attr):
data = attr.get_write_value()
mode = AttrHelper._getDictValue(self.__Switch, data)
mode = AttrHelper.getDictValue(self.__Switch, data)
_MerlinCamera.setChargeSumming(mode)
@Core.DEB_MEMBER_FUNCT
def read_colourMode(self, attr):
mode = _MerlinCamera.getColourMode()
attr.set_value(AttrHelper._getDictKey(self.__ColourMode, mode))
attr.set_value(AttrHelper.getDictKey(self.__ColourMode, mode))
@Core.DEB_MEMBER_FUNCT
def write_colourMode(self, attr):
data = attr.get_write_value()
mode = AttrHelper._getDictValue(self.__ColourMode, data)
mode = AttrHelper.getDictValue(self.__ColourMode, data)
_MerlinCamera.setColourMode(mode)
@Core.DEB_MEMBER_FUNCT
def read_continuousRW(self, attr):
mode = _MerlinCamera.getContinuousRW()
attr.set_value(AttrHelper._getDictKey(self.__Switch, mode))
attr.set_value(AttrHelper.getDictKey(self.__Switch, mode))
@Core.DEB_MEMBER_FUNCT
def write_continuousRW(self, attr):
data = attr.get_write_value()
mode = AttrHelper._getDictValue(self.__Switch, data)
mode = AttrHelper.getDictValue(self.__Switch, data)
_MerlinCamera.setContinuousRW(mode)
@Core.DEB_MEMBER_FUNCT
def read_counter(self, attr):
counter = _MerlinCamera.getEnableCounters()
attr.set_value(AttrHelper._getDictKey(self.__Counter, counter))
attr.set_value(AttrHelper.getDictKey(self.__Counter, counter))
@Core.DEB_MEMBER_FUNCT
def write_counter(self, attr):
data = attr.get_write_value()
counter = AttrHelper._getDictValue(self.__Counter, data)
counter = AttrHelper.getDictValue(self.__Counter, data)
_MerlinCamera.setEnableCounters(counter)
@Core.DEB_MEMBER_FUNCT
def read_gain(self, attr):
gain = _MerlinCamera.getGain()
attr.set_value(AttrHelper._getDictKey(self.__GainSetting, gain))
attr.set_value(AttrHelper.getDictKey(self.__GainSetting, gain))
@Core.DEB_MEMBER_FUNCT
def write_gain(self, attr):
data = attr.get_write_value()
gain = AttrHelper._getDictValue(self.__GainSetting, data)
gain = AttrHelper.getDictValue(self.__GainSetting, data)
_MerlinCamera.setGain(gain)
@Core.DEB_MEMBER_FUNCT
......@@ -272,67 +273,68 @@ class Merlin (PyTango.Device_4Impl):
@Core.DEB_MEMBER_FUNCT
def read_triggerStartType(self, attr):
trig = _MerlinCamera.getTriggerStartType()
attr.set_value(AttrHelper._getDictKey(self.__Trigger, trig))
attr.set_value(AttrHelper.getDictKey(self.__Trigger, trig))
@Core.DEB_MEMBER_FUNCT
def write_triggerStartType(self, attr):
data = attr.get_write_value()
trig = AttrHelper._getDictValue(self.__Trigger, data)
trig = AttrHelper.getDictValue(self.__Trigger, data)
_MerlinCamera.setTriggerStartType(trig)
@Core.DEB_MEMBER_FUNCT
def read_triggerStopType(self, attr):
trig = _MerlinCamera.getTriggerStopType()
attr.set_value(AttrHelper._getDictKey(self.__Trigger, trig))
attr.set_value(AttrHelper.getDictKey(self.__Trigger, trig))
@Core.DEB_MEMBER_FUNCT
def write_triggerStopType(self, attr):
data = attr.get_write_value()
trig = AttrHelper._getDictValue(self.__Trigger, data)
trig = AttrHelper.getDictValue(self.__Trigger, data)
_MerlinCamera.setTriggerStopType(trig)
@Core.DEB_MEMBER_FUNCT
def read_triggerOutTTL(self, attr):
trigout = _MerlinCamera.getTriggerOutTTL()
attr.set_value(AttrHelper._getDictKey(self.__TriggerOutput, trigout))
attr.set_value(AttrHelper.getDictKey(self.__TriggerOutput, trigout))
@Core.DEB_MEMBER_FUNCT
def write_triggerOutTTL(self, attr):
data = attr.get_write_value()
trigout = AttrHelper._getDictValue(self.__TriggerOutput, data)
trigout = AttrHelper.getDictValue(self.__TriggerOutput, data)
_MerlinCamera.setTriggerOutTTL(trigout)
@Core.DEB_MEMBER_FUNCT
def read_triggerOutLVDS(self, attr):
trigout = _MerlinCamera.getTriggerOutLVDS()
attr.set_value(AttrHelper._getDictKey(self.__TriggerOutput, trigout))
attr.set_value(AttrHelper.getDictKey(self.__TriggerOutput, trigout))
@Core.DEB_MEMBER_FUNCT
def write_triggerOutLVDS(self, attr):
data = attr.get_write_value()
trigout = AttrHelper._getDictValue(self.__TriggerOutput, data)
trigout = AttrHelper.getDictValue(self.__TriggerOutput, data)
_MerlinCamera.setTriggerOutLVDS(trigout)
@Core.DEB_MEMBER_FUNCT
def read_triggerOutTTLInvert(self, attr):
trigout = _MerlinCamera.getTriggerOutTTLInvert()
attr.set_value(AttrHelper._getDictKey(self.__TriggerLevel, trigout))
attr.set_value(AttrHelper.getDictKey(self.__TriggerLevel, trigout))
@Core.DEB_MEMBER_FUNCT
def write_triggerOutTTLInvert(self, attr):