Commit 02519e9c authored by Yuelong Yu's avatar Yuelong Yu
Browse files

modifications on tango servers

display historical temperature data
added image rotation option
disabled compression by default
parent c1b3d3dd
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -35,15 +35,14 @@
#include <tango.h>
#include <AGIPD.h>
/*----- PROTECTED REGION END -----*/
/*----- PROTECTED REGION END -----*/ // AGIPDClass.h
namespace AGIPD_ns
{
/*----- PROTECTED REGION ID(AGIPD::classes for dynamic creation) ENABLED START -----*/
/*----- PROTECTED REGION END -----*/ // AGIPD::classes for dynamic creation
/*----- PROTECTED REGION ID(AGIPDClass::classes for dynamic creation) ENABLED START -----*/
/*----- PROTECTED REGION END -----*/ // AGIPDClass::classes for dynamic creation
//=========================================
// Define classes for attributes
......@@ -53,9 +52,8 @@ class ADCLatencyAttrib: public Tango::Attr
{
public:
ADCLatencyAttrib():Attr("ADCLatency",
Tango::DEV_USHORT, Tango::READ_WRITE) {};
Tango::DEV_USHORT, Tango::READ_WRITE) {};
~ADCLatencyAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_ADCLatency(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
......@@ -69,9 +67,8 @@ class ADCTriggerAttrib: public Tango::Attr
{
public:
ADCTriggerAttrib():Attr("ADCTrigger",
Tango::DEV_USHORT, Tango::READ_WRITE) {};
Tango::DEV_USHORT, Tango::READ_WRITE) {};
~ADCTriggerAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_ADCTrigger(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
......@@ -85,9 +82,8 @@ class ASICCSAttrib: public Tango::Attr
{
public:
ASICCSAttrib():Attr("ASICCS",
Tango::DEV_STRING, Tango::READ_WRITE) {};
Tango::DEV_STRING, Tango::READ_WRITE) {};
~ASICCSAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_ASICCS(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
......@@ -101,9 +97,8 @@ class ASICPSAttrib: public Tango::Attr
{
public:
ASICPSAttrib():Attr("ASICPS",
Tango::DEV_STRING, Tango::READ_WRITE) {};
Tango::DEV_STRING, Tango::READ_WRITE) {};
~ASICPSAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_ASICPS(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
......@@ -117,9 +112,8 @@ class IntegrationTimeAttrib: public Tango::Attr
{
public:
IntegrationTimeAttrib():Attr("IntegrationTime",
Tango::DEV_ULONG, Tango::READ_WRITE) {};
Tango::DEV_ULONG, Tango::READ_WRITE) {};
~IntegrationTimeAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_IntegrationTime(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
......@@ -133,9 +127,8 @@ class SaveFilePathAttrib: public Tango::Attr
{
public:
SaveFilePathAttrib():Attr("SaveFilePath",
Tango::DEV_STRING, Tango::READ_WRITE) {};
Tango::DEV_STRING, Tango::READ_WRITE) {};
~SaveFilePathAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_SaveFilePath(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
......@@ -149,9 +142,8 @@ class SaveFileNameAttrib: public Tango::Attr
{
public:
SaveFileNameAttrib():Attr("SaveFileName",
Tango::DEV_STRING, Tango::READ) {};
Tango::DEV_STRING, Tango::READ) {};
~SaveFileNameAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_SaveFileName(att);}
virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
......@@ -163,9 +155,8 @@ class FrameNumbersAttrib: public Tango::Attr
{
public:
FrameNumbersAttrib():Attr("FrameNumbers",
Tango::DEV_ULONG, Tango::READ_WRITE) {};
Tango::DEV_ULONG, Tango::READ_WRITE) {};
~FrameNumbersAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_FrameNumbers(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
......@@ -179,9 +170,8 @@ class IntegrationOffsetAttrib: public Tango::Attr
{
public:
IntegrationOffsetAttrib():Attr("IntegrationOffset",
Tango::DEV_USHORT, Tango::READ_WRITE) {};
Tango::DEV_USHORT, Tango::READ_WRITE) {};
~IntegrationOffsetAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_IntegrationOffset(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
......@@ -195,9 +185,8 @@ class LatestImageNumberAttrib: public Tango::Attr
{
public:
LatestImageNumberAttrib():Attr("LatestImageNumber",
Tango::DEV_ULONG, Tango::READ) {};
Tango::DEV_ULONG, Tango::READ) {};
~LatestImageNumberAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_LatestImageNumber(att);}
virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
......@@ -209,9 +198,8 @@ class LiveModeAttrib: public Tango::Attr
{
public:
LiveModeAttrib():Attr("LiveMode",
Tango::DEV_BOOLEAN, Tango::READ_WRITE) {};
Tango::DEV_BOOLEAN, Tango::READ_WRITE) {};
~LiveModeAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_LiveMode(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
......@@ -225,9 +213,8 @@ class PatternFileAttrib: public Tango::Attr
{
public:
PatternFileAttrib():Attr("PatternFile",
Tango::DEV_STRING, Tango::READ_WRITE) {};
Tango::DEV_STRING, Tango::READ_WRITE) {};
~PatternFileAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_PatternFile(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
......@@ -241,9 +228,8 @@ class SaveAllImagesAttrib: public Tango::Attr
{
public:
SaveAllImagesAttrib():Attr("SaveAllImages",
Tango::DEV_BOOLEAN, Tango::READ_WRITE) {};
Tango::DEV_BOOLEAN, Tango::READ_WRITE) {};
~SaveAllImagesAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_SaveAllImages(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
......@@ -257,9 +243,8 @@ class LiveFrameNoDigitalAttrib: public Tango::Attr
{
public:
LiveFrameNoDigitalAttrib():Attr("LiveFrameNoDigital",
Tango::DEV_ULONG, Tango::READ) {};
Tango::DEV_ULONG, Tango::READ) {};
~LiveFrameNoDigitalAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_LiveFrameNoDigital(att);}
virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
......@@ -271,9 +256,8 @@ class LiveFrameNoAnalogAttrib: public Tango::Attr
{
public:
LiveFrameNoAnalogAttrib():Attr("LiveFrameNoAnalog",
Tango::DEV_ULONG, Tango::READ) {};
Tango::DEV_ULONG, Tango::READ) {};
~LiveFrameNoAnalogAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_LiveFrameNoAnalog(att);}
virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
......@@ -285,9 +269,8 @@ class CompressionEnabledAttrib: public Tango::Attr
{
public:
CompressionEnabledAttrib():Attr("CompressionEnabled",
Tango::DEV_BOOLEAN, Tango::READ_WRITE) {};
Tango::DEV_BOOLEAN, Tango::READ_WRITE) {};
~CompressionEnabledAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_CompressionEnabled(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
......@@ -301,9 +284,8 @@ class CompressorShuffleAttrib: public Tango::Attr
{
public:
CompressorShuffleAttrib():Attr("CompressorShuffle",
Tango::DEV_BOOLEAN, Tango::READ_WRITE) {};
Tango::DEV_BOOLEAN, Tango::READ_WRITE) {};
~CompressorShuffleAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_CompressorShuffle(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
......@@ -317,9 +299,8 @@ class CompressionRateAttrib: public Tango::Attr
{
public:
CompressionRateAttrib():Attr("CompressionRate",
Tango::DEV_ULONG, Tango::READ_WRITE) {};
Tango::DEV_ULONG, Tango::READ_WRITE) {};
~CompressionRateAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_CompressionRate(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
......@@ -333,9 +314,8 @@ class FileSplitEnabledAttrib: public Tango::Attr
{
public:
FileSplitEnabledAttrib():Attr("FileSplitEnabled",
Tango::DEV_BOOLEAN, Tango::READ_WRITE) {};
Tango::DEV_BOOLEAN, Tango::READ_WRITE) {};
~FileSplitEnabledAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_FileSplitEnabled(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
......@@ -349,9 +329,8 @@ class FileSizeLimitAttrib: public Tango::Attr
{
public:
FileSizeLimitAttrib():Attr("FileSizeLimit",
Tango::DEV_ULONG, Tango::READ_WRITE) {};
Tango::DEV_ULONG, Tango::READ_WRITE) {};
~FileSizeLimitAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_FileSizeLimit(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
......@@ -365,9 +344,8 @@ class ChunkSizeAttrib: public Tango::Attr
{
public:
ChunkSizeAttrib():Attr("ChunkSize",
Tango::DEV_ULONG, Tango::READ_WRITE) {};
Tango::DEV_ULONG, Tango::READ_WRITE) {};
~ChunkSizeAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_ChunkSize(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
......@@ -381,9 +359,8 @@ class TotalLossFramesAttrib: public Tango::Attr
{
public:
TotalLossFramesAttrib():Attr("TotalLossFrames",
Tango::DEV_ULONG, Tango::READ) {};
Tango::DEV_ULONG, Tango::READ) {};
~TotalLossFramesAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_TotalLossFrames(att);}
virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
......@@ -395,9 +372,8 @@ class FilePrefixAttrib: public Tango::Attr
{
public:
FilePrefixAttrib():Attr("FilePrefix",
Tango::DEV_STRING, Tango::READ_WRITE) {};
Tango::DEV_STRING, Tango::READ_WRITE) {};
~FilePrefixAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_FilePrefix(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
......@@ -411,9 +387,8 @@ class FileStartNumAttrib: public Tango::Attr
{
public:
FileStartNumAttrib():Attr("FileStartNum",
Tango::DEV_LONG, Tango::READ_WRITE) {};
Tango::DEV_LONG, Tango::READ_WRITE) {};
~FileStartNumAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_FileStartNum(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
......@@ -427,23 +402,36 @@ class FilePostfixAttrib: public Tango::Attr
{
public:
FilePostfixAttrib():Attr("FilePostfix",
Tango::DEV_STRING, Tango::READ) {};
Tango::DEV_STRING, Tango::READ) {};
~FilePostfixAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_FilePostfix(att);}
virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
{return (static_cast<AGIPD *>(dev))->is_FilePostfix_allowed(ty);}
};
// Attribute RotateImage class definition
class RotateImageAttrib: public Tango::Attr
{
public:
RotateImageAttrib():Attr("RotateImage",
Tango::DEV_BOOLEAN, Tango::READ_WRITE) {};
~RotateImageAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_RotateImage(att);}
virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
{(static_cast<AGIPD *>(dev))->write_RotateImage(att);}
virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
{return (static_cast<AGIPD *>(dev))->is_RotateImage_allowed(ty);}
};
// Attribute LiveDataAnalog class definition
class LiveDataAnalogAttrib: public Tango::ImageAttr
{
public:
LiveDataAnalogAttrib():ImageAttr("LiveDataAnalog",
Tango::DEV_SHORT, Tango::READ, 1024, 1024) {};
Tango::DEV_SHORT, Tango::READ, 1024, 1024) {};
~LiveDataAnalogAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_LiveDataAnalog(att);}
virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
......@@ -455,9 +443,8 @@ class LiveDataDigitalAttrib: public Tango::ImageAttr
{
public:
LiveDataDigitalAttrib():ImageAttr("LiveDataDigital",
Tango::DEV_SHORT, Tango::READ, 1024, 1024) {};
Tango::DEV_SHORT, Tango::READ, 1024, 1024) {};
~LiveDataDigitalAttrib() {};
virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
{(static_cast<AGIPD *>(dev))->read_LiveDataDigital(att);}
virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
......@@ -465,9 +452,6 @@ public:
};
//=========================================
// Define classes for commands
//=========================================
......@@ -564,60 +548,53 @@ public:
};
/**
* The TemplateDevServClass singleton definition
* The AGIPDClass singleton definition
*/
class
#ifdef _TG_WINDOWS_
__declspec(dllexport)
class __declspec(dllexport) AGIPDClass : public Tango::DeviceClass
#else
class AGIPDClass : public Tango::DeviceClass
#endif
AGIPDClass : public Tango::DeviceClass
{
/*----- PROTECTED REGION ID(AGIPD::Additionnal DServer data members) ENABLED START -----*/
/*----- PROTECTED REGION END -----*/ // AGIPD::Additionnal DServer data members
public:
// write class properties data members
Tango::DbData cl_prop;
Tango::DbData cl_def_prop;
Tango::DbData dev_def_prop;
// Method prototypes
static AGIPDClass *init(const char *);
static AGIPDClass *instance();
~AGIPDClass();
Tango::DbDatum get_class_property(string &);
Tango::DbDatum get_default_device_property(string &);
Tango::DbDatum get_default_class_property(string &);
protected:
AGIPDClass(string &);
static AGIPDClass *_instance;
void command_factory();
void attribute_factory(vector<Tango::Attr *> &);
void write_class_property();
void set_default_property();
void get_class_property();
string get_cvstag();
string get_cvsroot();
private:
void device_factory(const Tango::DevVarStringArray *);
void create_static_attribute_list(vector<Tango::Attr *> &);
void erase_dynamic_attributes(const Tango::DevVarStringArray *,vector<Tango::Attr *> &);
vector<string> defaultAttList;
};
} // namespace
#endif // AGIPDCLASS_H
/*----- PROTECTED REGION ID(AGIPDClass::Additionnal DServer data members) ENABLED START -----*/
/*----- PROTECTED REGION END -----*/ // AGIPDClass::Additionnal DServer data members
public:
// write class properties data members
Tango::DbData cl_prop;
Tango::DbData cl_def_prop;
Tango::DbData dev_def_prop;
// Method prototypes
static AGIPDClass *init(const char *);
static AGIPDClass *instance();
~AGIPDClass();
Tango::DbDatum get_class_property(string &);
Tango::DbDatum get_default_device_property(string &);
Tango::DbDatum get_default_class_property(string &);
protected:
AGIPDClass(string &);
static AGIPDClass *_instance;
void command_factory();
void attribute_factory(vector<Tango::Attr *> &);
void write_class_property();
void set_default_property();
void get_class_property();
string get_cvstag();
string get_cvsroot();
private:
void device_factory(const Tango::DevVarStringArray *);
void create_static_attribute_list(vector<Tango::Attr *> &);
void erase_dynamic_attributes(const Tango::DevVarStringArray *,vector<Tango::Attr *> &);
vector<string> defaultAttList;
Tango::Attr *get_attr_object_by_name(vector<Tango::Attr *> &att_list, string attname);
};
} // End of namespace
#endif // AGIPD_H
This diff is collapsed.
......@@ -106,6 +106,8 @@ namespace AGIPD_ns
if(CheckImageValid(m_ptrShData,m_lCurrentFrameNo,m_shFrameErrorCode))
{
RotateImage();
ResetFrameNumbers();
if(m_bSaveAllImages)
WriteData<short>(m_ptrShData,m_lCurrentFrameNo,m_shFrameErrorCode);
......@@ -298,6 +300,14 @@ namespace AGIPD_ns
&& (m_lAcquiredImgs < m_lRequestFrameNo));
}
void RotateImage()
{
if(*(m_objAGIPD->attr_RotateImage_read))
std::reverse(m_ptrShData,m_ptrShData+m_nX*m_nY);
}
void ResetFrameNumbers()
{
//reset frame numbers
......
......@@ -46,4 +46,4 @@ void Tango::DServer::class_factory()
add_class(AGIPD_ns::AGIPDClass::init("AGIPD"));
}
/*----- PROTECTED REGION END -----*/
/*----- PROTECTED REGION END -----*/ // AGIPD::ClassFactory.cpp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<Title> Tango Device Server User s Guide </Title>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000">
<P><!-------TITLE------></P>
<TABLE BORDER="0" WIDTH="100%">
<TR>
<TD ALIGN="left">
<A HREF="http://www.esrf.fr/" TARGET=new>
<IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A>
</TD>
<TD ALIGN="center">
<A HREF="http://www.elettra.trieste.it/" TARGET=new>
<IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A>
</TD>
<TD ALIGN="center">
<A HREF="http://www.synchrotron-soleil.fr/" TARGET=new>
<IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A>
</TD>
<TD ALIGN="center">
<A HREF="http://www.cells.es/" TARGET=new>
<IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A>
</TD>
<TD ALIGN="Right">
<H2><FONT COLOR="#7F00FF">
<Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a>
</Center></FONT>
</TD>
</TR>
<TR>
<TD ALIGN="left">
<A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new>
<IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A>
</TD>
<TD ALIGN="center">
<A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new>
<IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A>
</TD>
<TD ALIGN="center">
<A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new>
<IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A>
</TD>
<TD>
<!-- Empty -->
</TD>
<TD ALIGN="Right">
<H2><FONT COLOR="#7F00FF">
<Center> Device Servers
</Center></FONT>
</TD>
</TR>
</TABLE>
<HR WIDTH="100%"></H5>
<FONT SIZE="+3">
<center>
<u>
AGIPD Tango Class <Br>
</u>
<FONT SIZE="+1">
( AGIPD )
<Br>
<Br>
<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0>
<TD ALIGN="center">
<a href="index.html"> Description</a>
</Td>
<TD ALIGN="center">
<a href="Properties.html"> Properties</a></li>
</Td>
<TD ALIGN="center">
<a href="Commands.html"> Commands</a></li>
</Td>
<TD ALIGN="center">
<a href="Attributes.html"> Attributes</a></li>
</Td>
<TD ALIGN="center">
<a href="States.html"> States</a></li>
</Td>
</TABLE>
<Br>
<Br>
<Br>
<FONT SIZE="+2"><u>
ADCLatency Attribute
</u></Font>
</Center>
<FONT SIZE="-1">
<Br>
<Br>
<html>
<head>
<title> AGIPD Tango Class Attribute ADCLatency </title>
</head>
<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red">
<br><br><br>
<font size="+1"><u><b> Attribute ADCLatency : </b></u></font>
<ul>
<Font SIZE="+0"> <b><u> Description :</u></b> </Font>
<ul>
adc latency
</ul>
<Br>
<Br>
<Table Border=0 Cellpadding=0 CELLSPACING=10>
<TR>
<TD ALIGN="left" VALIGN=top>
<Table Border=2 Cellpadding=3 CELLSPACING=0>
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<Td COLSPAN=0> <Font Size=+1> <Center><b>
Attribute Definition
</b></Font></Center></td>
</Tr>
<!---------- Attribute type ----------->
<Tr>
<Td> <Font=+1><b> Attribute Type </b></Font></Td>
<Td> Scalar </Td>
</Tr>
<!---------- R/W type ----------->