Commit a3a92b57 authored by Alejandro Homs Puron's avatar Alejandro Homs Puron Committed by operator for beamline
Browse files

Add TxFrameDelay support

parent 4af711a8
Pipeline #23557 failed with stages
in 4 minutes and 2 seconds
......@@ -57,6 +57,7 @@ pixel_depth rw DevString The image pixel bit-depth:
raw_mode rw DevBoolean Publish image as given by the Receivers (no SW reconstruction)
threshold_energy rw DevLong The energy (in eV) the pixel discriminator thresholds (Vcmp & Trim bits) is set at
high_voltage rw DevShort The detector high voltage (in V)
tx_frame_delay rw DevLong Frame Tx delay (6.2 ns units)
all_trim_bits rw DevVarLongArray Array with the pixel trimming value [0-63] for each half-module, if all the pixels in the half-module have the same trimming value, -1 otherwise
clock_div rw DevString The readout clock divider:
- **FULL_SPEED**
......
......@@ -41,6 +41,8 @@ namespace lima
namespace SlsDetector
{
class Eiger;
class Camera : public HwMaxImageSizeCallbackGen, public EventCallbackGen
{
DEB_CLASS_NAMESPC(DebModCamera, "Camera", "SlsDetector");
......@@ -224,6 +226,8 @@ private:
friend class Receiver;
friend class GlobalCPUAffinityMgr;
friend class Eiger;
void setModel(Model *model);
AutoMutex lock()
......
......@@ -259,6 +259,9 @@ class Eiger : public Model
void setThresholdEnergy(int thres);
void getThresholdEnergy(int& thres);
void setTxFrameDelay(int tx_frame_delay);
void getTxFrameDelay(int& tx_frame_delay);
Geometry *getGeometry()
{ return &m_geom; }
......
......@@ -90,6 +90,9 @@ class Eiger : public SlsDetector::Model
void setThresholdEnergy(int thres);
void getThresholdEnergy(int& thres /Out/);
void setTxFrameDelay(int tx_frame_delay);
void getTxFrameDelay(int& tx_frame_delay /Out/);
protected:
virtual int getNbFrameMapItems();
virtual void updateFrameMapItems(FrameMap *map);
......
......@@ -1326,6 +1326,22 @@ void Eiger::getThresholdEnergy(int& thres)
DEB_RETURN() << DEB_VAR1(thres);
}
void Eiger::setTxFrameDelay(int tx_frame_delay)
{
DEB_MEMBER_FUNCT();
DEB_PARAM() << DEB_VAR1(tx_frame_delay);
Camera* cam = getCamera();
cam->putNbCmd<int>("txndelay_frame", tx_frame_delay);
}
void Eiger::getTxFrameDelay(int& tx_frame_delay)
{
DEB_MEMBER_FUNCT();
Camera* cam = getCamera();
tx_frame_delay = cam->getNbCmd<int>("txndelay_frame");
DEB_RETURN() << DEB_VAR1(tx_frame_delay);
}
int Eiger::getNbRecvs()
{
DEB_MEMBER_FUNCT();
......
......@@ -87,6 +87,7 @@ class SlsDetector(PyTango.Device_4Impl):
'clock_div',
'fixed_clock_div',
'threshold_energy',
'tx_frame_delay',
]
def __init__(self,*args) :
......@@ -654,6 +655,10 @@ class SlsDetectorClass(PyTango.DeviceClass):
PyTango.SCALAR,
PyTango.READ_WRITE]],
'skip_frame_freq':
[[PyTango.DevLong,
PyTango.SCALAR,
PyTango.READ_WRITE]],
'tx_frame_delay':
[[PyTango.DevLong,
PyTango.SCALAR,
PyTango.READ_WRITE]],
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment