diff --git a/doc/doc_html/AttrbadChannelInterpolation.html b/doc/doc_html/AttrbadChannelInterpolation.html new file mode 100644 index 0000000000000000000000000000000000000000..9fb38b124df42ef8461bac594802b4abfdef1332 --- /dev/null +++ b/doc/doc_html/AttrbadChannelInterpolation.html @@ -0,0 +1,171 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> +<head> +<title> MythenWAXS Tango Class Attribute badChannelInterpolation </title> +</head> +<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red"> +<br><br><br> +<font size="+1"><u><b> Attribute badChannelInterpolation : </b></u></font> +<ul> +</ul> +<br><br><br> +<Table Border=0 Cellpadding=0 CELLSPACING=20> + <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> + <tr> + <td> Attribute Type </td> + <td> Scalar </td> + </tr> + <tr> + <td> R/W Type </td> + <td> WRITE </td> + </tr> + <tr> + <td> Data Type </td> + <td> Tango::DEV_BOOLEAN </td> + </tr> + <tr> + <td> Display Level </td> + <td> OPERATOR </td> + </tr> + <tr> + <td> Inherited </td> + <td> false </td> + </tr> + <tr> + <td> Abstract </td> + <td> false </td> + </tr> + <tr> + <td> Polling Period </td> + <td> Not polled </td> + </tr> + <tr> + <td> Memorized </td> + <td> true </td> + </tr> + <tr> + <td> Write hardware at init. </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Write allowed for </td> + <td> All states </td> + </tr> + </table> + </td> + <TD ALIGN="Center" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Properties </b></font></center></td> + </tr> + <tr> + <td> label </td> + <td> </td> + </tr> + <tr> + <td> unit </td> + <td> </td> + </tr> + <tr> + <td> standard unit </td> + <td> </td> + </tr> + <tr> + <td> display unit </td> + <td> </td> + </tr> + <tr> + <td> format </td> + <td> </td> + </tr> + <tr> + <td> max_value </td> + <td> </td> + </tr> + <tr> + <td> min_value </td> + <td> </td> + </tr> + <tr> + <td> max_alarm </td> + <td> </td> + </tr> + <tr> + <td> min_alarm </td> + <td> </td> + </tr> + <tr> + <td> max_warning </td> + <td> </td> + </tr> + <tr> + <td> min_warning </td> + <td> </td> + </tr> + <tr> + <td> delta_time </td> + <td> </td> + </tr> + <tr> + <td> delta_val </td> + <td> </td> + </tr> + </table> + </td> + <TD ALIGN="Right" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Event Criteria </b></font></center></td> + </tr> + <tr> + <td> Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Archive Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Push Change event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push Archive event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push DataReady event by user code </td> + <td> false </td> + </tr> + </table> + </td> + </TR> +</table> +</body> +</html> diff --git a/doc/doc_html/Attrenergy.html b/doc/doc_html/Attrenergy.html index 79ac0495950d86ae581e31234c0d5f7cf08de7a8..daafb95c7146c4e27e2c4ac8384f9818bb445056 100644 --- a/doc/doc_html/Attrenergy.html +++ b/doc/doc_html/Attrenergy.html @@ -22,7 +22,7 @@ </tr> <tr> <td> R/W Type </td> - <td> READ_WRITE </td> + <td> WRITE </td> </tr> <tr> <td> Data Type </td> @@ -50,13 +50,9 @@ </tr> <tr> <td> Write hardware at init. </td> - <td> true </td> + <td> Not set </td> </tr> <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> - <tr> - <td> Read allowed for </td> - <td> All states </td> - </tr> <tr> <td> Write allowed for </td> <td> All states </td> @@ -74,7 +70,7 @@ </tr> <tr> <td> unit </td> - <td> </td> + <td> eV </td> </tr> <tr> <td> standard unit </td> diff --git a/doc/doc_html/AttrexposureTime.html b/doc/doc_html/AttrexposureTime.html index bda0d6ad14151d5fda474091e46daf5ea23f9ca6..c4f1fbf4469f12b2eaa168fe4a43297d70968544 100644 --- a/doc/doc_html/AttrexposureTime.html +++ b/doc/doc_html/AttrexposureTime.html @@ -22,7 +22,7 @@ </tr> <tr> <td> R/W Type </td> - <td> READ_WRITE </td> + <td> WRITE </td> </tr> <tr> <td> Data Type </td> @@ -50,13 +50,9 @@ </tr> <tr> <td> Write hardware at init. </td> - <td> true </td> + <td> Not set </td> </tr> <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> - <tr> - <td> Read allowed for </td> - <td> All states </td> - </tr> <tr> <td> Write allowed for </td> <td> All states </td> @@ -74,7 +70,7 @@ </tr> <tr> <td> unit </td> - <td> </td> + <td> ms </td> </tr> <tr> <td> standard unit </td> diff --git a/doc/doc_html/AttrflatFieldCorrection.html b/doc/doc_html/AttrflatFieldCorrection.html new file mode 100644 index 0000000000000000000000000000000000000000..85ae609ec885ab1877a8d25382b0d8f9c3736050 --- /dev/null +++ b/doc/doc_html/AttrflatFieldCorrection.html @@ -0,0 +1,171 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> +<head> +<title> MythenWAXS Tango Class Attribute flatFieldCorrection </title> +</head> +<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red"> +<br><br><br> +<font size="+1"><u><b> Attribute flatFieldCorrection : </b></u></font> +<ul> +</ul> +<br><br><br> +<Table Border=0 Cellpadding=0 CELLSPACING=20> + <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> + <tr> + <td> Attribute Type </td> + <td> Scalar </td> + </tr> + <tr> + <td> R/W Type </td> + <td> WRITE </td> + </tr> + <tr> + <td> Data Type </td> + <td> Tango::DEV_BOOLEAN </td> + </tr> + <tr> + <td> Display Level </td> + <td> OPERATOR </td> + </tr> + <tr> + <td> Inherited </td> + <td> false </td> + </tr> + <tr> + <td> Abstract </td> + <td> false </td> + </tr> + <tr> + <td> Polling Period </td> + <td> Not polled </td> + </tr> + <tr> + <td> Memorized </td> + <td> true </td> + </tr> + <tr> + <td> Write hardware at init. </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Write allowed for </td> + <td> All states </td> + </tr> + </table> + </td> + <TD ALIGN="Center" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Properties </b></font></center></td> + </tr> + <tr> + <td> label </td> + <td> </td> + </tr> + <tr> + <td> unit </td> + <td> </td> + </tr> + <tr> + <td> standard unit </td> + <td> </td> + </tr> + <tr> + <td> display unit </td> + <td> </td> + </tr> + <tr> + <td> format </td> + <td> </td> + </tr> + <tr> + <td> max_value </td> + <td> </td> + </tr> + <tr> + <td> min_value </td> + <td> </td> + </tr> + <tr> + <td> max_alarm </td> + <td> </td> + </tr> + <tr> + <td> min_alarm </td> + <td> </td> + </tr> + <tr> + <td> max_warning </td> + <td> </td> + </tr> + <tr> + <td> min_warning </td> + <td> </td> + </tr> + <tr> + <td> delta_time </td> + <td> </td> + </tr> + <tr> + <td> delta_val </td> + <td> </td> + </tr> + </table> + </td> + <TD ALIGN="Right" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Event Criteria </b></font></center></td> + </tr> + <tr> + <td> Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Archive Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Push Change event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push Archive event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push DataReady event by user code </td> + <td> false </td> + </tr> + </table> + </td> + </TR> +</table> +</body> +</html> diff --git a/doc/doc_html/AttrframeX.html b/doc/doc_html/AttrframeX.html new file mode 100644 index 0000000000000000000000000000000000000000..84164925aedfa3a619afa2f8c15eef1f9dba4cfd --- /dev/null +++ b/doc/doc_html/AttrframeX.html @@ -0,0 +1,167 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> +<head> +<title> MythenWAXS Tango Class Attribute frameX </title> +</head> +<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red"> +<br><br><br> +<font size="+1"><u><b> Attribute frameX : </b></u></font> +<ul> +</ul> +<br><br><br> +<Table Border=0 Cellpadding=0 CELLSPACING=20> + <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> + <tr> + <td> Attribute Type </td> + <td> Spectrum ( 100000 ) </td> + </tr> + <tr> + <td> R/W Type </td> + <td> READ </td> + </tr> + <tr> + <td> Data Type </td> + <td> Tango::DEV_DOUBLE </td> + </tr> + <tr> + <td> Display Level </td> + <td> OPERATOR </td> + </tr> + <tr> + <td> Inherited </td> + <td> false </td> + </tr> + <tr> + <td> Abstract </td> + <td> false </td> + </tr> + <tr> + <td> Polling Period </td> + <td> Not polled </td> + </tr> + <tr> + <td> Memorized </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Read allowed for </td> + <td> All states </td> + </tr> + </table> + </td> + <TD ALIGN="Center" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Properties </b></font></center></td> + </tr> + <tr> + <td> label </td> + <td> </td> + </tr> + <tr> + <td> unit </td> + <td> </td> + </tr> + <tr> + <td> standard unit </td> + <td> </td> + </tr> + <tr> + <td> display unit </td> + <td> </td> + </tr> + <tr> + <td> format </td> + <td> </td> + </tr> + <tr> + <td> max_value </td> + <td> </td> + </tr> + <tr> + <td> min_value </td> + <td> </td> + </tr> + <tr> + <td> max_alarm </td> + <td> </td> + </tr> + <tr> + <td> min_alarm </td> + <td> </td> + </tr> + <tr> + <td> max_warning </td> + <td> </td> + </tr> + <tr> + <td> min_warning </td> + <td> </td> + </tr> + <tr> + <td> delta_time </td> + <td> </td> + </tr> + <tr> + <td> delta_val </td> + <td> </td> + </tr> + </table> + </td> + <TD ALIGN="Right" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Event Criteria </b></font></center></td> + </tr> + <tr> + <td> Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Archive Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Push Change event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push Archive event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push DataReady event by user code </td> + <td> false </td> + </tr> + </table> + </td> + </TR> +</table> +</body> +</html> diff --git a/doc/doc_html/AttrframeY.html b/doc/doc_html/AttrframeY.html new file mode 100644 index 0000000000000000000000000000000000000000..5e955163f35d42a58764241913d56d93b9bf5ff7 --- /dev/null +++ b/doc/doc_html/AttrframeY.html @@ -0,0 +1,167 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> +<head> +<title> MythenWAXS Tango Class Attribute frameY </title> +</head> +<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red"> +<br><br><br> +<font size="+1"><u><b> Attribute frameY : </b></u></font> +<ul> +</ul> +<br><br><br> +<Table Border=0 Cellpadding=0 CELLSPACING=20> + <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> + <tr> + <td> Attribute Type </td> + <td> Spectrum ( 100000 ) </td> + </tr> + <tr> + <td> R/W Type </td> + <td> READ </td> + </tr> + <tr> + <td> Data Type </td> + <td> Tango::DEV_DOUBLE </td> + </tr> + <tr> + <td> Display Level </td> + <td> OPERATOR </td> + </tr> + <tr> + <td> Inherited </td> + <td> false </td> + </tr> + <tr> + <td> Abstract </td> + <td> false </td> + </tr> + <tr> + <td> Polling Period </td> + <td> Not polled </td> + </tr> + <tr> + <td> Memorized </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Read allowed for </td> + <td> All states </td> + </tr> + </table> + </td> + <TD ALIGN="Center" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Properties </b></font></center></td> + </tr> + <tr> + <td> label </td> + <td> </td> + </tr> + <tr> + <td> unit </td> + <td> </td> + </tr> + <tr> + <td> standard unit </td> + <td> </td> + </tr> + <tr> + <td> display unit </td> + <td> </td> + </tr> + <tr> + <td> format </td> + <td> </td> + </tr> + <tr> + <td> max_value </td> + <td> </td> + </tr> + <tr> + <td> min_value </td> + <td> </td> + </tr> + <tr> + <td> max_alarm </td> + <td> </td> + </tr> + <tr> + <td> min_alarm </td> + <td> </td> + </tr> + <tr> + <td> max_warning </td> + <td> </td> + </tr> + <tr> + <td> min_warning </td> + <td> </td> + </tr> + <tr> + <td> delta_time </td> + <td> </td> + </tr> + <tr> + <td> delta_val </td> + <td> </td> + </tr> + </table> + </td> + <TD ALIGN="Right" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Event Criteria </b></font></center></td> + </tr> + <tr> + <td> Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Archive Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Push Change event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push Archive event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push DataReady event by user code </td> + <td> false </td> + </tr> + </table> + </td> + </TR> +</table> +</body> +</html> diff --git a/doc/doc_html/Attributes.html b/doc/doc_html/Attributes.html index 429b3734278c096897a94ba36589a1338f686d53..684dbfb9b9cca2310ce4161cdd44d3f7960a41fd 100644 --- a/doc/doc_html/Attributes.html +++ b/doc/doc_html/Attributes.html @@ -23,7 +23,7 @@ <td> false </td> <td> false </td> <td> Scalar </td> - <td> READ_WRITE </td> + <td> WRITE </td> <td> Tango::DEV_DOUBLE </td> <td> OPERATOR </td> <td> </td> @@ -33,7 +33,7 @@ <td> false </td> <td> false </td> <td> Scalar </td> - <td> READ_WRITE </td> + <td> WRITE </td> <td> Tango::DEV_DOUBLE </td> <td> OPERATOR </td> <td> </td> @@ -43,7 +43,7 @@ <td> false </td> <td> false </td> <td> Scalar </td> - <td> READ_WRITE </td> + <td> WRITE </td> <td> Tango::DEV_DOUBLE </td> <td> OPERATOR </td> <td> </td> @@ -53,7 +53,77 @@ <td> false </td> <td> false </td> <td> Scalar </td> - <td> READ_WRITE </td> + <td> WRITE </td> + <td> Tango::DEV_LONG </td> + <td> OPERATOR </td> + <td> </td> + </tr> + <tr> + <td> <a href="AttrflatFieldCorrection.html"> flatFieldCorrection </a> </td> + <td> false </td> + <td> false </td> + <td> Scalar </td> + <td> WRITE </td> + <td> Tango::DEV_BOOLEAN </td> + <td> OPERATOR </td> + <td> </td> + </tr> + <tr> + <td> <a href="AttrrateCorrection.html"> rateCorrection </a> </td> + <td> false </td> + <td> false </td> + <td> Scalar </td> + <td> WRITE </td> + <td> Tango::DEV_BOOLEAN </td> + <td> OPERATOR </td> + <td> </td> + </tr> + <tr> + <td> <a href="AttrbadChannelInterpolation.html"> badChannelInterpolation </a> </td> + <td> false </td> + <td> false </td> + <td> Scalar </td> + <td> WRITE </td> + <td> Tango::DEV_BOOLEAN </td> + <td> OPERATOR </td> + <td> </td> + </tr> + <tr> + <td> <a href="AttrnbModules.html"> nbModules </a> </td> + <td> false </td> + <td> false </td> + <td> Scalar </td> + <td> READ </td> + <td> Tango::DEV_LONG </td> + <td> OPERATOR </td> + <td> </td> + </tr> + <tr> + <td> <a href="AttrnbChannels.html"> nbChannels </a> </td> + <td> false </td> + <td> false </td> + <td> Scalar </td> + <td> READ </td> + <td> Tango::DEV_LONG </td> + <td> OPERATOR </td> + <td> </td> + </tr> + <tr> + <td> <a href="AttrframeX.html"> frameX </a> </td> + <td> false </td> + <td> false </td> + <td> Spectrum </td> + <td> READ </td> + <td> Tango::DEV_DOUBLE </td> + <td> OPERATOR </td> + <td> </td> + </tr> + <tr> + <td> <a href="AttrframeY.html"> frameY </a> </td> + <td> false </td> + <td> false </td> + <td> Spectrum </td> + <td> READ </td> <td> Tango::DEV_DOUBLE </td> <td> OPERATOR </td> <td> </td> diff --git a/doc/doc_html/AttrnbChannels.html b/doc/doc_html/AttrnbChannels.html new file mode 100644 index 0000000000000000000000000000000000000000..875abb98f0d8b76c5727ebb13cbe13eafceedd83 --- /dev/null +++ b/doc/doc_html/AttrnbChannels.html @@ -0,0 +1,167 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> +<head> +<title> MythenWAXS Tango Class Attribute nbChannels </title> +</head> +<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red"> +<br><br><br> +<font size="+1"><u><b> Attribute nbChannels : </b></u></font> +<ul> +</ul> +<br><br><br> +<Table Border=0 Cellpadding=0 CELLSPACING=20> + <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> + <tr> + <td> Attribute Type </td> + <td> Scalar </td> + </tr> + <tr> + <td> R/W Type </td> + <td> READ </td> + </tr> + <tr> + <td> Data Type </td> + <td> Tango::DEV_LONG </td> + </tr> + <tr> + <td> Display Level </td> + <td> OPERATOR </td> + </tr> + <tr> + <td> Inherited </td> + <td> false </td> + </tr> + <tr> + <td> Abstract </td> + <td> false </td> + </tr> + <tr> + <td> Polling Period </td> + <td> Not polled </td> + </tr> + <tr> + <td> Memorized </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Read allowed for </td> + <td> All states </td> + </tr> + </table> + </td> + <TD ALIGN="Center" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Properties </b></font></center></td> + </tr> + <tr> + <td> label </td> + <td> </td> + </tr> + <tr> + <td> unit </td> + <td> </td> + </tr> + <tr> + <td> standard unit </td> + <td> </td> + </tr> + <tr> + <td> display unit </td> + <td> </td> + </tr> + <tr> + <td> format </td> + <td> </td> + </tr> + <tr> + <td> max_value </td> + <td> </td> + </tr> + <tr> + <td> min_value </td> + <td> </td> + </tr> + <tr> + <td> max_alarm </td> + <td> </td> + </tr> + <tr> + <td> min_alarm </td> + <td> </td> + </tr> + <tr> + <td> max_warning </td> + <td> </td> + </tr> + <tr> + <td> min_warning </td> + <td> </td> + </tr> + <tr> + <td> delta_time </td> + <td> </td> + </tr> + <tr> + <td> delta_val </td> + <td> </td> + </tr> + </table> + </td> + <TD ALIGN="Right" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Event Criteria </b></font></center></td> + </tr> + <tr> + <td> Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Archive Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Push Change event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push Archive event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push DataReady event by user code </td> + <td> false </td> + </tr> + </table> + </td> + </TR> +</table> +</body> +</html> diff --git a/doc/doc_html/AttrnbFrames.html b/doc/doc_html/AttrnbFrames.html index 7b6d7403989e9944b73332e27f69d84133970fe6..4dd65901c3141caca713c69cc8480b3cec229664 100644 --- a/doc/doc_html/AttrnbFrames.html +++ b/doc/doc_html/AttrnbFrames.html @@ -22,11 +22,11 @@ </tr> <tr> <td> R/W Type </td> - <td> READ_WRITE </td> + <td> WRITE </td> </tr> <tr> <td> Data Type </td> - <td> Tango::DEV_DOUBLE </td> + <td> Tango::DEV_LONG </td> </tr> <tr> <td> Display Level </td> @@ -50,13 +50,9 @@ </tr> <tr> <td> Write hardware at init. </td> - <td> true </td> + <td> Not set </td> </tr> <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> - <tr> - <td> Read allowed for </td> - <td> All states </td> - </tr> <tr> <td> Write allowed for </td> <td> All states </td> diff --git a/doc/doc_html/AttrnbModules.html b/doc/doc_html/AttrnbModules.html new file mode 100644 index 0000000000000000000000000000000000000000..43c70aa9380feb25cf7e2f2ae130ff9b0483f2f9 --- /dev/null +++ b/doc/doc_html/AttrnbModules.html @@ -0,0 +1,167 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> +<head> +<title> MythenWAXS Tango Class Attribute nbModules </title> +</head> +<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red"> +<br><br><br> +<font size="+1"><u><b> Attribute nbModules : </b></u></font> +<ul> +</ul> +<br><br><br> +<Table Border=0 Cellpadding=0 CELLSPACING=20> + <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> + <tr> + <td> Attribute Type </td> + <td> Scalar </td> + </tr> + <tr> + <td> R/W Type </td> + <td> READ </td> + </tr> + <tr> + <td> Data Type </td> + <td> Tango::DEV_LONG </td> + </tr> + <tr> + <td> Display Level </td> + <td> OPERATOR </td> + </tr> + <tr> + <td> Inherited </td> + <td> false </td> + </tr> + <tr> + <td> Abstract </td> + <td> false </td> + </tr> + <tr> + <td> Polling Period </td> + <td> Not polled </td> + </tr> + <tr> + <td> Memorized </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Read allowed for </td> + <td> All states </td> + </tr> + </table> + </td> + <TD ALIGN="Center" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Properties </b></font></center></td> + </tr> + <tr> + <td> label </td> + <td> </td> + </tr> + <tr> + <td> unit </td> + <td> </td> + </tr> + <tr> + <td> standard unit </td> + <td> </td> + </tr> + <tr> + <td> display unit </td> + <td> </td> + </tr> + <tr> + <td> format </td> + <td> </td> + </tr> + <tr> + <td> max_value </td> + <td> </td> + </tr> + <tr> + <td> min_value </td> + <td> </td> + </tr> + <tr> + <td> max_alarm </td> + <td> </td> + </tr> + <tr> + <td> min_alarm </td> + <td> </td> + </tr> + <tr> + <td> max_warning </td> + <td> </td> + </tr> + <tr> + <td> min_warning </td> + <td> </td> + </tr> + <tr> + <td> delta_time </td> + <td> </td> + </tr> + <tr> + <td> delta_val </td> + <td> </td> + </tr> + </table> + </td> + <TD ALIGN="Right" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Event Criteria </b></font></center></td> + </tr> + <tr> + <td> Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Archive Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Push Change event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push Archive event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push DataReady event by user code </td> + <td> false </td> + </tr> + </table> + </td> + </TR> +</table> +</body> +</html> diff --git a/doc/doc_html/AttrrateCorrection.html b/doc/doc_html/AttrrateCorrection.html new file mode 100644 index 0000000000000000000000000000000000000000..46890ec6cb1cfb7539e415245089a5e51831a070 --- /dev/null +++ b/doc/doc_html/AttrrateCorrection.html @@ -0,0 +1,171 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> +<head> +<title> MythenWAXS Tango Class Attribute rateCorrection </title> +</head> +<body text="Black" bgcolor="White" link="Blue" vlink="Purple" alink="Red"> +<br><br><br> +<font size="+1"><u><b> Attribute rateCorrection : </b></u></font> +<ul> +</ul> +<br><br><br> +<Table Border=0 Cellpadding=0 CELLSPACING=20> + <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> + <tr> + <td> Attribute Type </td> + <td> Scalar </td> + </tr> + <tr> + <td> R/W Type </td> + <td> WRITE </td> + </tr> + <tr> + <td> Data Type </td> + <td> Tango::DEV_BOOLEAN </td> + </tr> + <tr> + <td> Display Level </td> + <td> OPERATOR </td> + </tr> + <tr> + <td> Inherited </td> + <td> false </td> + </tr> + <tr> + <td> Abstract </td> + <td> false </td> + </tr> + <tr> + <td> Polling Period </td> + <td> Not polled </td> + </tr> + <tr> + <td> Memorized </td> + <td> true </td> + </tr> + <tr> + <td> Write hardware at init. </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Write allowed for </td> + <td> All states </td> + </tr> + </table> + </td> + <TD ALIGN="Center" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Properties </b></font></center></td> + </tr> + <tr> + <td> label </td> + <td> </td> + </tr> + <tr> + <td> unit </td> + <td> </td> + </tr> + <tr> + <td> standard unit </td> + <td> </td> + </tr> + <tr> + <td> display unit </td> + <td> </td> + </tr> + <tr> + <td> format </td> + <td> </td> + </tr> + <tr> + <td> max_value </td> + <td> </td> + </tr> + <tr> + <td> min_value </td> + <td> </td> + </tr> + <tr> + <td> max_alarm </td> + <td> </td> + </tr> + <tr> + <td> min_alarm </td> + <td> </td> + </tr> + <tr> + <td> max_warning </td> + <td> </td> + </tr> + <tr> + <td> min_warning </td> + <td> </td> + </tr> + <tr> + <td> delta_time </td> + <td> </td> + </tr> + <tr> + <td> delta_val </td> + <td> </td> + </tr> + </table> + </td> + <TD ALIGN="Right" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Event Criteria </b></font></center></td> + </tr> + <tr> + <td> Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Archive Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Push Change event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push Archive event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push DataReady event by user code </td> + <td> false </td> + </tr> + </table> + </td> + </TR> +</table> +</body> +</html> diff --git a/doc/doc_html/Attrthreshold.html b/doc/doc_html/Attrthreshold.html index fda96537bbbd6d400214b718d9f8a819af8c65b3..4923ad6f8e5bde793bd46e44071afc352b0ad5f9 100644 --- a/doc/doc_html/Attrthreshold.html +++ b/doc/doc_html/Attrthreshold.html @@ -22,7 +22,7 @@ </tr> <tr> <td> R/W Type </td> - <td> READ_WRITE </td> + <td> WRITE </td> </tr> <tr> <td> Data Type </td> @@ -50,13 +50,9 @@ </tr> <tr> <td> Write hardware at init. </td> - <td> true </td> + <td> Not set </td> </tr> <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> - <tr> - <td> Read allowed for </td> - <td> All states </td> - </tr> <tr> <td> Write allowed for </td> <td> All states </td> @@ -74,7 +70,7 @@ </tr> <tr> <td> unit </td> - <td> </td> + <td> eV </td> </tr> <tr> <td> standard unit </td> diff --git a/doc/doc_html/ClassDescription.html b/doc/doc_html/ClassDescription.html index fb27dce7cdfaf9e85f0624f9732652f400dd0c03..03e96ec912393b62652fdf1662ffd63f033d25ec 100644 --- a/doc/doc_html/ClassDescription.html +++ b/doc/doc_html/ClassDescription.html @@ -47,7 +47,7 @@ <font size="+1"><u><b> MythenWAXS Class Description : </b></u></font> <br><br> <ul> - Manage a pool of mythen2 detectors + Manage a pool of Mythen2 detectors <!--- /*PROTECTED REGION ID(index.html) ENABLED START*/ ---> <!--- Add your own documentation, pictures, links,.... ---> diff --git a/doc/doc_html/FullDocument.html b/doc/doc_html/FullDocument.html index afef9b14b785a95c0ef85c034c431046f8131180..e684d71737c93c7bec373f3f7c897250a30cf867 100644 --- a/doc/doc_html/FullDocument.html +++ b/doc/doc_html/FullDocument.html @@ -25,6 +25,13 @@ <li> <a href="FullDocument.html#attrthreshold"> threshold </a> <li> <a href="FullDocument.html#attrexposureTime"> exposureTime </a> <li> <a href="FullDocument.html#attrnbFrames"> nbFrames </a> + <li> <a href="FullDocument.html#attrflatFieldCorrection"> flatFieldCorrection </a> + <li> <a href="FullDocument.html#attrrateCorrection"> rateCorrection </a> + <li> <a href="FullDocument.html#attrbadChannelInterpolation"> badChannelInterpolation </a> + <li> <a href="FullDocument.html#attrnbModules"> nbModules </a> + <li> <a href="FullDocument.html#attrnbChannels"> nbChannels </a> + <li> <a href="FullDocument.html#attrframeX"> frameX </a> + <li> <a href="FullDocument.html#attrframeY"> frameY </a> </ul> <li> <a href="FullDocument.html#states"> States </a> </ul> @@ -75,7 +82,7 @@ <font size="+1"><u><b> MythenWAXS Class Description : </b></u></font> <br><br> <ul> - Manage a pool of mythen2 detectors + Manage a pool of Mythen2 detectors <!--- /*PROTECTED REGION ID(FullDocument.html) ENABLED START*/ ---> <!--- Add your own documentation, pictures, links,.... ---> @@ -102,13 +109,85 @@ <td> <center><b> Default Value </b></center> </td> </tr> <tr> - <td> ProxiesNames </td> + <td> ProxyMythenNames </td> <td> A list of a proxies name to Myhten2Detector devices </td> <td> String[] </td> <td> none/none/none <br> none/none/none <br> none/none/none <br> </td> </tr> + <tr> + <td> ProxyNbRetry </td> + <td> </td> + <td> int </td> + <td> 1 <br> </td> + </tr> + <tr> + <td> ProxyMotorName </td> + <td> </td> + <td> String </td> + <td> none/none/none <br> </td> + </tr> + <tr> + <td> EquationParameters </td> + <td> </td> + <td> String[] </td> + <td> delta=0.1;center=1;distance=10;, delta=0.1;center=1;distance=10;, delta=0.1;center=1;distance=10;, delta=0.1;center=1;distance=10;, delta=0.1;center=1;distance=10;, delta=0.1;center=1;distance=10;, delta=0.1;center=1;distance=10;, delta=0.1;center=1;distance=10;, delta=0.1;center=1;distance=10; </td> + </tr> + <tr> + <td> PixelSize </td> + <td> Mythen2 Detector pixel size (in mm) </td> + <td> double </td> + <td> 0.05 <br> </td> + </tr> + <tr> + <td> AutoWriteHardwareAtInit </td> + <td> Enable/Disable write hardware at init (energy/threshold/...) </td> + <td> boolean </td> + <td> false <br> </td> + </tr> + <tr> + <td> MemorizedEnergy </td> + <td> Memorized Energy </td> + <td> double </td> + <td> 1.0 <br> </td> + </tr> + <tr> + <td> MemorizedThreshold </td> + <td> Memorized Threshold </td> + <td> double </td> + <td> 1.0 <br> </td> + </tr> + <tr> + <td> MemorizedExposureTime </td> + <td> Memorized ExposureTime </td> + <td> double </td> + <td> 1.0 <br> </td> + </tr> + <tr> + <td> MemorizedNbFrames </td> + <td> Memorized NbFrames </td> + <td> int </td> + <td> 1 <br> </td> + </tr> + <tr> + <td> MemorizedFlatFieldCorrection </td> + <td> Memorized FlatFieldCorrection </td> + <td> boolean </td> + <td> false <br> </td> + </tr> + <tr> + <td> MemorizedRateCorrection </td> + <td> Memorized RateCorrection </td> + <td> boolean </td> + <td> false <br> </td> + </tr> + <tr> + <td> MemorizedBadChannelInterpolation </td> + <td> Memorized BadChannelInterpolation </td> + <td> boolean </td> + <td> false <br> </td> + </tr> </table> <br><br> <hr> @@ -370,7 +449,7 @@ <td> false </td> <td> false </td> <td> Scalar </td> - <td> READ_WRITE </td> + <td> WRITE </td> <td> Tango::DEV_DOUBLE </td> <td> OPERATOR </td> <td> </td> @@ -380,7 +459,7 @@ <td> false </td> <td> false </td> <td> Scalar </td> - <td> READ_WRITE </td> + <td> WRITE </td> <td> Tango::DEV_DOUBLE </td> <td> OPERATOR </td> <td> </td> @@ -390,7 +469,7 @@ <td> false </td> <td> false </td> <td> Scalar </td> - <td> READ_WRITE </td> + <td> WRITE </td> <td> Tango::DEV_DOUBLE </td> <td> OPERATOR </td> <td> </td> @@ -400,7 +479,77 @@ <td> false </td> <td> false </td> <td> Scalar </td> - <td> READ_WRITE </td> + <td> WRITE </td> + <td> Tango::DEV_LONG </td> + <td> OPERATOR </td> + <td> </td> + </tr> + <tr> + <td> <a href="AttrflatFieldCorrection.html"> flatFieldCorrection </a> </td> + <td> false </td> + <td> false </td> + <td> Scalar </td> + <td> WRITE </td> + <td> Tango::DEV_BOOLEAN </td> + <td> OPERATOR </td> + <td> </td> + </tr> + <tr> + <td> <a href="AttrrateCorrection.html"> rateCorrection </a> </td> + <td> false </td> + <td> false </td> + <td> Scalar </td> + <td> WRITE </td> + <td> Tango::DEV_BOOLEAN </td> + <td> OPERATOR </td> + <td> </td> + </tr> + <tr> + <td> <a href="AttrbadChannelInterpolation.html"> badChannelInterpolation </a> </td> + <td> false </td> + <td> false </td> + <td> Scalar </td> + <td> WRITE </td> + <td> Tango::DEV_BOOLEAN </td> + <td> OPERATOR </td> + <td> </td> + </tr> + <tr> + <td> <a href="AttrnbModules.html"> nbModules </a> </td> + <td> false </td> + <td> false </td> + <td> Scalar </td> + <td> READ </td> + <td> Tango::DEV_LONG </td> + <td> OPERATOR </td> + <td> </td> + </tr> + <tr> + <td> <a href="AttrnbChannels.html"> nbChannels </a> </td> + <td> false </td> + <td> false </td> + <td> Scalar </td> + <td> READ </td> + <td> Tango::DEV_LONG </td> + <td> OPERATOR </td> + <td> </td> + </tr> + <tr> + <td> <a href="AttrframeX.html"> frameX </a> </td> + <td> false </td> + <td> false </td> + <td> Spectrum </td> + <td> READ </td> + <td> Tango::DEV_DOUBLE </td> + <td> OPERATOR </td> + <td> </td> + </tr> + <tr> + <td> <a href="AttrframeY.html"> frameY </a> </td> + <td> false </td> + <td> false </td> + <td> Spectrum </td> + <td> READ </td> <td> Tango::DEV_DOUBLE </td> <td> OPERATOR </td> <td> </td> @@ -431,7 +580,7 @@ </tr> <tr> <td> R/W Type </td> - <td> READ_WRITE </td> + <td> WRITE </td> </tr> <tr> <td> Data Type </td> @@ -459,13 +608,9 @@ </tr> <tr> <td> Write hardware at init. </td> - <td> true </td> + <td> Not set </td> </tr> <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> - <tr> - <td> Read allowed for </td> - <td> All states </td> - </tr> <tr> <td> Write allowed for </td> <td> All states </td> @@ -483,7 +628,7 @@ </tr> <tr> <td> unit </td> - <td> </td> + <td> eV </td> </tr> <tr> <td> standard unit </td> @@ -601,7 +746,7 @@ </tr> <tr> <td> R/W Type </td> - <td> READ_WRITE </td> + <td> WRITE </td> </tr> <tr> <td> Data Type </td> @@ -629,13 +774,9 @@ </tr> <tr> <td> Write hardware at init. </td> - <td> true </td> + <td> Not set </td> </tr> <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> - <tr> - <td> Read allowed for </td> - <td> All states </td> - </tr> <tr> <td> Write allowed for </td> <td> All states </td> @@ -653,7 +794,7 @@ </tr> <tr> <td> unit </td> - <td> </td> + <td> eV </td> </tr> <tr> <td> standard unit </td> @@ -771,7 +912,7 @@ </tr> <tr> <td> R/W Type </td> - <td> READ_WRITE </td> + <td> WRITE </td> </tr> <tr> <td> Data Type </td> @@ -799,13 +940,9 @@ </tr> <tr> <td> Write hardware at init. </td> - <td> true </td> + <td> Not set </td> </tr> <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> - <tr> - <td> Read allowed for </td> - <td> All states </td> - </tr> <tr> <td> Write allowed for </td> <td> All states </td> @@ -823,7 +960,7 @@ </tr> <tr> <td> unit </td> - <td> </td> + <td> ms </td> </tr> <tr> <td> standard unit </td> @@ -941,11 +1078,11 @@ </tr> <tr> <td> R/W Type </td> - <td> READ_WRITE </td> + <td> WRITE </td> </tr> <tr> <td> Data Type </td> - <td> Tango::DEV_DOUBLE </td> + <td> Tango::DEV_LONG </td> </tr> <tr> <td> Display Level </td> @@ -969,15 +1106,1157 @@ </tr> <tr> <td> Write hardware at init. </td> - <td> true </td> + <td> Not set </td> </tr> <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> <tr> - <td> Read allowed for </td> + <td> Write allowed for </td> <td> All states </td> </tr> + </table> + </td> + <TD ALIGN="Center" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Properties </b></font></center></td> + </tr> <tr> - <td> Write allowed for </td> + <td> label </td> + <td> </td> + </tr> + <tr> + <td> unit </td> + <td> </td> + </tr> + <tr> + <td> standard unit </td> + <td> </td> + </tr> + <tr> + <td> display unit </td> + <td> </td> + </tr> + <tr> + <td> format </td> + <td> </td> + </tr> + <tr> + <td> max_value </td> + <td> </td> + </tr> + <tr> + <td> min_value </td> + <td> </td> + </tr> + <tr> + <td> max_alarm </td> + <td> </td> + </tr> + <tr> + <td> min_alarm </td> + <td> </td> + </tr> + <tr> + <td> max_warning </td> + <td> </td> + </tr> + <tr> + <td> min_warning </td> + <td> </td> + </tr> + <tr> + <td> delta_time </td> + <td> </td> + </tr> + <tr> + <td> delta_val </td> + <td> </td> + </tr> + </table> + </td> + <TD ALIGN="Right" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Event Criteria </b></font></center></td> + </tr> + <tr> + <td> Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Archive Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Push Change event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push Archive event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push DataReady event by user code </td> + <td> false </td> + </tr> + </table> + </td> + </TR> +</table> +<br><br> +<hr> +<a name="attrflatFieldCorrection"> </a> +<br><br><br> +<font size="+1"><u><b> Attribute flatFieldCorrection : </b></u></font> +<ul> +</ul> +<br><br><br> +<Table Border=0 Cellpadding=0 CELLSPACING=20> + <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> + <tr> + <td> Attribute Type </td> + <td> Scalar </td> + </tr> + <tr> + <td> R/W Type </td> + <td> WRITE </td> + </tr> + <tr> + <td> Data Type </td> + <td> Tango::DEV_BOOLEAN </td> + </tr> + <tr> + <td> Display Level </td> + <td> OPERATOR </td> + </tr> + <tr> + <td> Inherited </td> + <td> false </td> + </tr> + <tr> + <td> Abstract </td> + <td> false </td> + </tr> + <tr> + <td> Polling Period </td> + <td> Not polled </td> + </tr> + <tr> + <td> Memorized </td> + <td> true </td> + </tr> + <tr> + <td> Write hardware at init. </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Write allowed for </td> + <td> All states </td> + </tr> + </table> + </td> + <TD ALIGN="Center" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Properties </b></font></center></td> + </tr> + <tr> + <td> label </td> + <td> </td> + </tr> + <tr> + <td> unit </td> + <td> </td> + </tr> + <tr> + <td> standard unit </td> + <td> </td> + </tr> + <tr> + <td> display unit </td> + <td> </td> + </tr> + <tr> + <td> format </td> + <td> </td> + </tr> + <tr> + <td> max_value </td> + <td> </td> + </tr> + <tr> + <td> min_value </td> + <td> </td> + </tr> + <tr> + <td> max_alarm </td> + <td> </td> + </tr> + <tr> + <td> min_alarm </td> + <td> </td> + </tr> + <tr> + <td> max_warning </td> + <td> </td> + </tr> + <tr> + <td> min_warning </td> + <td> </td> + </tr> + <tr> + <td> delta_time </td> + <td> </td> + </tr> + <tr> + <td> delta_val </td> + <td> </td> + </tr> + </table> + </td> + <TD ALIGN="Right" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Event Criteria </b></font></center></td> + </tr> + <tr> + <td> Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Archive Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Push Change event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push Archive event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push DataReady event by user code </td> + <td> false </td> + </tr> + </table> + </td> + </TR> +</table> +<br><br> +<hr> +<a name="attrrateCorrection"> </a> +<br><br><br> +<font size="+1"><u><b> Attribute rateCorrection : </b></u></font> +<ul> +</ul> +<br><br><br> +<Table Border=0 Cellpadding=0 CELLSPACING=20> + <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> + <tr> + <td> Attribute Type </td> + <td> Scalar </td> + </tr> + <tr> + <td> R/W Type </td> + <td> WRITE </td> + </tr> + <tr> + <td> Data Type </td> + <td> Tango::DEV_BOOLEAN </td> + </tr> + <tr> + <td> Display Level </td> + <td> OPERATOR </td> + </tr> + <tr> + <td> Inherited </td> + <td> false </td> + </tr> + <tr> + <td> Abstract </td> + <td> false </td> + </tr> + <tr> + <td> Polling Period </td> + <td> Not polled </td> + </tr> + <tr> + <td> Memorized </td> + <td> true </td> + </tr> + <tr> + <td> Write hardware at init. </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Write allowed for </td> + <td> All states </td> + </tr> + </table> + </td> + <TD ALIGN="Center" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Properties </b></font></center></td> + </tr> + <tr> + <td> label </td> + <td> </td> + </tr> + <tr> + <td> unit </td> + <td> </td> + </tr> + <tr> + <td> standard unit </td> + <td> </td> + </tr> + <tr> + <td> display unit </td> + <td> </td> + </tr> + <tr> + <td> format </td> + <td> </td> + </tr> + <tr> + <td> max_value </td> + <td> </td> + </tr> + <tr> + <td> min_value </td> + <td> </td> + </tr> + <tr> + <td> max_alarm </td> + <td> </td> + </tr> + <tr> + <td> min_alarm </td> + <td> </td> + </tr> + <tr> + <td> max_warning </td> + <td> </td> + </tr> + <tr> + <td> min_warning </td> + <td> </td> + </tr> + <tr> + <td> delta_time </td> + <td> </td> + </tr> + <tr> + <td> delta_val </td> + <td> </td> + </tr> + </table> + </td> + <TD ALIGN="Right" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Event Criteria </b></font></center></td> + </tr> + <tr> + <td> Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Archive Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Push Change event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push Archive event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push DataReady event by user code </td> + <td> false </td> + </tr> + </table> + </td> + </TR> +</table> +<br><br> +<hr> +<a name="attrbadChannelInterpolation"> </a> +<br><br><br> +<font size="+1"><u><b> Attribute badChannelInterpolation : </b></u></font> +<ul> +</ul> +<br><br><br> +<Table Border=0 Cellpadding=0 CELLSPACING=20> + <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> + <tr> + <td> Attribute Type </td> + <td> Scalar </td> + </tr> + <tr> + <td> R/W Type </td> + <td> WRITE </td> + </tr> + <tr> + <td> Data Type </td> + <td> Tango::DEV_BOOLEAN </td> + </tr> + <tr> + <td> Display Level </td> + <td> OPERATOR </td> + </tr> + <tr> + <td> Inherited </td> + <td> false </td> + </tr> + <tr> + <td> Abstract </td> + <td> false </td> + </tr> + <tr> + <td> Polling Period </td> + <td> Not polled </td> + </tr> + <tr> + <td> Memorized </td> + <td> true </td> + </tr> + <tr> + <td> Write hardware at init. </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Write allowed for </td> + <td> All states </td> + </tr> + </table> + </td> + <TD ALIGN="Center" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Properties </b></font></center></td> + </tr> + <tr> + <td> label </td> + <td> </td> + </tr> + <tr> + <td> unit </td> + <td> </td> + </tr> + <tr> + <td> standard unit </td> + <td> </td> + </tr> + <tr> + <td> display unit </td> + <td> </td> + </tr> + <tr> + <td> format </td> + <td> </td> + </tr> + <tr> + <td> max_value </td> + <td> </td> + </tr> + <tr> + <td> min_value </td> + <td> </td> + </tr> + <tr> + <td> max_alarm </td> + <td> </td> + </tr> + <tr> + <td> min_alarm </td> + <td> </td> + </tr> + <tr> + <td> max_warning </td> + <td> </td> + </tr> + <tr> + <td> min_warning </td> + <td> </td> + </tr> + <tr> + <td> delta_time </td> + <td> </td> + </tr> + <tr> + <td> delta_val </td> + <td> </td> + </tr> + </table> + </td> + <TD ALIGN="Right" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Event Criteria </b></font></center></td> + </tr> + <tr> + <td> Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Archive Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Push Change event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push Archive event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push DataReady event by user code </td> + <td> false </td> + </tr> + </table> + </td> + </TR> +</table> +<br><br> +<hr> +<a name="attrnbModules"> </a> +<br><br><br> +<font size="+1"><u><b> Attribute nbModules : </b></u></font> +<ul> +</ul> +<br><br><br> +<Table Border=0 Cellpadding=0 CELLSPACING=20> + <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> + <tr> + <td> Attribute Type </td> + <td> Scalar </td> + </tr> + <tr> + <td> R/W Type </td> + <td> READ </td> + </tr> + <tr> + <td> Data Type </td> + <td> Tango::DEV_LONG </td> + </tr> + <tr> + <td> Display Level </td> + <td> OPERATOR </td> + </tr> + <tr> + <td> Inherited </td> + <td> false </td> + </tr> + <tr> + <td> Abstract </td> + <td> false </td> + </tr> + <tr> + <td> Polling Period </td> + <td> Not polled </td> + </tr> + <tr> + <td> Memorized </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Read allowed for </td> + <td> All states </td> + </tr> + </table> + </td> + <TD ALIGN="Center" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Properties </b></font></center></td> + </tr> + <tr> + <td> label </td> + <td> </td> + </tr> + <tr> + <td> unit </td> + <td> </td> + </tr> + <tr> + <td> standard unit </td> + <td> </td> + </tr> + <tr> + <td> display unit </td> + <td> </td> + </tr> + <tr> + <td> format </td> + <td> </td> + </tr> + <tr> + <td> max_value </td> + <td> </td> + </tr> + <tr> + <td> min_value </td> + <td> </td> + </tr> + <tr> + <td> max_alarm </td> + <td> </td> + </tr> + <tr> + <td> min_alarm </td> + <td> </td> + </tr> + <tr> + <td> max_warning </td> + <td> </td> + </tr> + <tr> + <td> min_warning </td> + <td> </td> + </tr> + <tr> + <td> delta_time </td> + <td> </td> + </tr> + <tr> + <td> delta_val </td> + <td> </td> + </tr> + </table> + </td> + <TD ALIGN="Right" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Event Criteria </b></font></center></td> + </tr> + <tr> + <td> Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Archive Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Push Change event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push Archive event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push DataReady event by user code </td> + <td> false </td> + </tr> + </table> + </td> + </TR> +</table> +<br><br> +<hr> +<a name="attrnbChannels"> </a> +<br><br><br> +<font size="+1"><u><b> Attribute nbChannels : </b></u></font> +<ul> +</ul> +<br><br><br> +<Table Border=0 Cellpadding=0 CELLSPACING=20> + <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> + <tr> + <td> Attribute Type </td> + <td> Scalar </td> + </tr> + <tr> + <td> R/W Type </td> + <td> READ </td> + </tr> + <tr> + <td> Data Type </td> + <td> Tango::DEV_LONG </td> + </tr> + <tr> + <td> Display Level </td> + <td> OPERATOR </td> + </tr> + <tr> + <td> Inherited </td> + <td> false </td> + </tr> + <tr> + <td> Abstract </td> + <td> false </td> + </tr> + <tr> + <td> Polling Period </td> + <td> Not polled </td> + </tr> + <tr> + <td> Memorized </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Read allowed for </td> + <td> All states </td> + </tr> + </table> + </td> + <TD ALIGN="Center" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Properties </b></font></center></td> + </tr> + <tr> + <td> label </td> + <td> </td> + </tr> + <tr> + <td> unit </td> + <td> </td> + </tr> + <tr> + <td> standard unit </td> + <td> </td> + </tr> + <tr> + <td> display unit </td> + <td> </td> + </tr> + <tr> + <td> format </td> + <td> </td> + </tr> + <tr> + <td> max_value </td> + <td> </td> + </tr> + <tr> + <td> min_value </td> + <td> </td> + </tr> + <tr> + <td> max_alarm </td> + <td> </td> + </tr> + <tr> + <td> min_alarm </td> + <td> </td> + </tr> + <tr> + <td> max_warning </td> + <td> </td> + </tr> + <tr> + <td> min_warning </td> + <td> </td> + </tr> + <tr> + <td> delta_time </td> + <td> </td> + </tr> + <tr> + <td> delta_val </td> + <td> </td> + </tr> + </table> + </td> + <TD ALIGN="Right" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Event Criteria </b></font></center></td> + </tr> + <tr> + <td> Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Archive Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Push Change event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push Archive event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push DataReady event by user code </td> + <td> false </td> + </tr> + </table> + </td> + </TR> +</table> +<br><br> +<hr> +<a name="attrframeX"> </a> +<br><br><br> +<font size="+1"><u><b> Attribute frameX : </b></u></font> +<ul> +</ul> +<br><br><br> +<Table Border=0 Cellpadding=0 CELLSPACING=20> + <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> + <tr> + <td> Attribute Type </td> + <td> Spectrum ( 100000 ) </td> + </tr> + <tr> + <td> R/W Type </td> + <td> READ </td> + </tr> + <tr> + <td> Data Type </td> + <td> Tango::DEV_DOUBLE </td> + </tr> + <tr> + <td> Display Level </td> + <td> OPERATOR </td> + </tr> + <tr> + <td> Inherited </td> + <td> false </td> + </tr> + <tr> + <td> Abstract </td> + <td> false </td> + </tr> + <tr> + <td> Polling Period </td> + <td> Not polled </td> + </tr> + <tr> + <td> Memorized </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Read allowed for </td> + <td> All states </td> + </tr> + </table> + </td> + <TD ALIGN="Center" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Properties </b></font></center></td> + </tr> + <tr> + <td> label </td> + <td> </td> + </tr> + <tr> + <td> unit </td> + <td> </td> + </tr> + <tr> + <td> standard unit </td> + <td> </td> + </tr> + <tr> + <td> display unit </td> + <td> </td> + </tr> + <tr> + <td> format </td> + <td> </td> + </tr> + <tr> + <td> max_value </td> + <td> </td> + </tr> + <tr> + <td> min_value </td> + <td> </td> + </tr> + <tr> + <td> max_alarm </td> + <td> </td> + </tr> + <tr> + <td> min_alarm </td> + <td> </td> + </tr> + <tr> + <td> max_warning </td> + <td> </td> + </tr> + <tr> + <td> min_warning </td> + <td> </td> + </tr> + <tr> + <td> delta_time </td> + <td> </td> + </tr> + <tr> + <td> delta_val </td> + <td> </td> + </tr> + </table> + </td> + <TD ALIGN="Right" VALIGN=top> + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <tr bgcolor="#CCCCFF" class="TableHeadingColor"> + <td colspan=0> <font size=+1> <center><b> Attribute Event Criteria </b></font></center></td> + </tr> + <tr> + <td> Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Archive Periodic </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Relative Change </td> + <td> Not set </td> + </tr> + <tr> + <td> Archive Absolute Change </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Push Change event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push Archive event by user code </td> + <td> false </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr> + <tr> + <td> Push DataReady event by user code </td> + <td> false </td> + </tr> + </table> + </td> + </TR> +</table> +<br><br> +<hr> +<a name="attrframeY"> </a> +<br><br><br> +<font size="+1"><u><b> Attribute frameY : </b></u></font> +<ul> +</ul> +<br><br><br> +<Table Border=0 Cellpadding=0 CELLSPACING=20> + <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> + <tr> + <td> Attribute Type </td> + <td> Spectrum ( 100000 ) </td> + </tr> + <tr> + <td> R/W Type </td> + <td> READ </td> + </tr> + <tr> + <td> Data Type </td> + <td> Tango::DEV_DOUBLE </td> + </tr> + <tr> + <td> Display Level </td> + <td> OPERATOR </td> + </tr> + <tr> + <td> Inherited </td> + <td> false </td> + </tr> + <tr> + <td> Abstract </td> + <td> false </td> + </tr> + <tr> + <td> Polling Period </td> + <td> Not polled </td> + </tr> + <tr> + <td> Memorized </td> + <td> Not set </td> + </tr> + <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr> + <tr> + <td> Read allowed for </td> <td> All states </td> </tr> </table> diff --git a/doc/doc_html/Properties.html b/doc/doc_html/Properties.html index 57a98b3f04e83a4db8f0d3aa79f6860d138704c1..d4e41788a7d1932ecb0428a52a2608b57becff7f 100644 --- a/doc/doc_html/Properties.html +++ b/doc/doc_html/Properties.html @@ -19,13 +19,85 @@ <td> <center><b> Default Value </b></center> </td> </tr> <tr> - <td> ProxiesNames </td> + <td> ProxyMythenNames </td> <td> A list of a proxies name to Myhten2Detector devices </td> <td> String[] </td> <td> none/none/none <br> none/none/none <br> none/none/none <br> </td> </tr> + <tr> + <td> ProxyNbRetry </td> + <td> </td> + <td> int </td> + <td> 1 <br> </td> + </tr> + <tr> + <td> ProxyMotorName </td> + <td> </td> + <td> String </td> + <td> none/none/none <br> </td> + </tr> + <tr> + <td> EquationParameters </td> + <td> </td> + <td> String[] </td> + <td> delta=0.1;center=1;distance=10;, delta=0.1;center=1;distance=10;, delta=0.1;center=1;distance=10;, delta=0.1;center=1;distance=10;, delta=0.1;center=1;distance=10;, delta=0.1;center=1;distance=10;, delta=0.1;center=1;distance=10;, delta=0.1;center=1;distance=10;, delta=0.1;center=1;distance=10; </td> + </tr> + <tr> + <td> PixelSize </td> + <td> Mythen2 Detector pixel size (in mm) </td> + <td> double </td> + <td> 0.05 <br> </td> + </tr> + <tr> + <td> AutoWriteHardwareAtInit </td> + <td> Enable/Disable write hardware at init (energy/threshold/...) </td> + <td> boolean </td> + <td> false <br> </td> + </tr> + <tr> + <td> MemorizedEnergy </td> + <td> Memorized Energy </td> + <td> double </td> + <td> 1.0 <br> </td> + </tr> + <tr> + <td> MemorizedThreshold </td> + <td> Memorized Threshold </td> + <td> double </td> + <td> 1.0 <br> </td> + </tr> + <tr> + <td> MemorizedExposureTime </td> + <td> Memorized ExposureTime </td> + <td> double </td> + <td> 1.0 <br> </td> + </tr> + <tr> + <td> MemorizedNbFrames </td> + <td> Memorized NbFrames </td> + <td> int </td> + <td> 1 <br> </td> + </tr> + <tr> + <td> MemorizedFlatFieldCorrection </td> + <td> Memorized FlatFieldCorrection </td> + <td> boolean </td> + <td> false <br> </td> + </tr> + <tr> + <td> MemorizedRateCorrection </td> + <td> Memorized RateCorrection </td> + <td> boolean </td> + <td> false <br> </td> + </tr> + <tr> + <td> MemorizedBadChannelInterpolation </td> + <td> Memorized BadChannelInterpolation </td> + <td> boolean </td> + <td> false <br> </td> + </tr> </table> </body> </html> diff --git a/pom.xml b/pom.xml index 54a9d7b800299d032d7c31b236343c8e8ff8a776..afe96945a8359b25de4b46d2ee7c4eb70b871d24 100644 --- a/pom.xml +++ b/pom.xml @@ -17,13 +17,21 @@ <plugin> <groupId>org.freehep</groupId> <artifactId>freehep-nar-plugin</artifactId> + <configuration> + <cpp> + <defines> + <define>PROJECT_NAME=${project.name}</define> + <define>PROJECT_VERSION=${project.version}</define> + </defines> + </cpp> + </configuration> </plugin> <plugin> <groupId>fr.soleil.maven.plugins</groupId> <artifactId>maven-check-plugin</artifactId> - <configuration> - <enable>false</enable> + <configuration> + <enable>false</enable> </configuration> </plugin> @@ -67,16 +75,16 @@ </roles> <timezone>1</timezone> </developer> - <developer> - <id>buteau</id> - <name>buteau</name> - <url>http://controle/</url> - <organization>Synchrotron Soleil</organization> - <organizationUrl>http://www.synchrotron-soleil.fr</organizationUrl> - <roles> - <role>manager</role> - </roles> - <timezone>1</timezone> - </developer> + <developer> + <id>buteau</id> + <name>buteau</name> + <url>http://controle/</url> + <organization>Synchrotron Soleil</organization> + <organizationUrl>http://www.synchrotron-soleil.fr</organizationUrl> + <roles> + <role>manager</role> + </roles> + <timezone>1</timezone> + </developer> </developers> </project> diff --git a/src/MythenPool.cpp b/src/MythenPool.cpp index 95e8f59e168dfefaf17b7ff48a16f2c45f36b9cb..ada8f72213e9e43883dd8cb21bea623592a320a0 100644 --- a/src/MythenPool.cpp +++ b/src/MythenPool.cpp @@ -23,11 +23,6 @@ #include <iomanip> #include "MythenPool.h" -//@@@@TODO -//temporary and only for simulation -const int PIXEL_SIZE = 0.05; -////////////////////////////// - namespace MythenWAXS_ns { @@ -252,9 +247,11 @@ void MythenPool::snap() yat::MutexLock scoped_lock(m_proxy_lock); for (unsigned i = 0; i < m_prop.proxy_mythen_names.size(); i++) { - ////m_proxy_mythens.at(i)->command("Snap", m_prop.proxy_nb_retry); + m_proxy_mythens.at(i)->command("Snap", m_prop.proxy_nb_retry); } - enable_periodic_msg(true); //in order to compute_frame_xy() + + //start the PERIOODIC_MSG in order to execute compute_frame_xy() + enable_periodic_msg(true); } //---------------------------------------------------------------------------------------------------------------------- @@ -265,7 +262,7 @@ void MythenPool::stop() yat::MutexLock scoped_lock(m_proxy_lock); for (unsigned i = 0; i < m_prop.proxy_mythen_names.size(); i++) { - ////m_proxy_mythens.at(i)->command("Stop", m_prop.proxy_nb_retry); + m_proxy_mythens.at(i)->command("Stop", m_prop.proxy_nb_retry); } } @@ -319,7 +316,7 @@ void MythenPool::compute_frame_xy() { double twotheta = theta_position - m_deltas.at(nb_total_channel + j) - - atan((k - m_centers.at(nb_total_channel + j)) * PIXEL_SIZE / (m_distances.at(nb_total_channel + j))); + atan((k - m_centers.at(nb_total_channel + j)) * m_prop.pixel_size / (m_distances.at(nb_total_channel + j))); m_x_values.push_back(twotheta * (180.0 / M_PI)); m_y_values.push_back(frame.at(k)); @@ -390,19 +387,19 @@ void MythenPool::decode_equation_parameters() //display values for (int i = 0; i < m_deltas.size(); i++) { - INFO_STREAM << "m_deltas[i] = " << m_deltas[i] << std::endl; + INFO_STREAM << "m_deltas["<<i<<"] = " << m_deltas[i] << std::endl; } INFO_STREAM << "\n" << std::endl; for (int i = 0; i < m_centers.size(); i++) { - INFO_STREAM << "m_centers[i] = " << m_centers[i] << std::endl; + INFO_STREAM << "m_centers["<<i<<"] = " << m_centers[i] << std::endl; } INFO_STREAM << "\n" << std::endl; for (int i = 0; i < m_distances.size(); i++) { - INFO_STREAM << "m_distances[i] = " << m_distances[i] << std::endl; + INFO_STREAM << "m_distances["<<i<<"] = " << m_distances[i] << std::endl; } INFO_STREAM << "\n" << std::endl; diff --git a/src/MythenPool.h b/src/MythenPool.h index 39d9284c8341d5e01b70d7a5abdb67db7dd9d74a..cff01ae3482583a05fa5bbaa67ed48add27abbcd 100644 --- a/src/MythenPool.h +++ b/src/MythenPool.h @@ -73,6 +73,7 @@ public: std::vector<std::string> equation_parameters; std::string proxy_motor_name; unsigned proxy_nb_retry; + double pixel_size; }; diff --git a/src/MythenWAXS.cpp b/src/MythenWAXS.cpp index 7901bbf9456866204c962a01eb0c3dae82a6af0c..ab14dca76f648abd3652d0272d68bfb070c99acd 100644 --- a/src/MythenWAXS.cpp +++ b/src/MythenWAXS.cpp @@ -49,7 +49,7 @@ static const char *RcsId = "$Id: $"; /** * MythenWAXS class description: - * Manage a pool of mythen2 detectors + * Manage a pool of Mythen2 detectors */ //================================================================ @@ -67,17 +67,17 @@ static const char *RcsId = "$Id: $"; //================================================================ // Attributes managed are: //================================================================ -// energy | Tango::DevDouble Scalar -// threshold | Tango::DevDouble Scalar -// exposureTime | Tango::DevDouble Scalar -// nbFrames | Tango::DevLong Scalar +// energy | Tango::DevDouble Scalar +// threshold | Tango::DevDouble Scalar +// exposureTime | Tango::DevDouble Scalar +// nbFrames | Tango::DevLong Scalar // flatFieldCorrection | Tango::DevBoolean Scalar // rateCorrection | Tango::DevBoolean Scalar // badChannelInterpolation | Tango::DevBoolean Scalar // nbModules | Tango::DevLong Scalar // nbChannels | Tango::DevLong Scalar -// frameX | Tango::DevDouble Spectrum ( max = 100000) -// frameY | Tango::DevDouble Spectrum ( max = 100000) +// frameX | Tango::DevDouble Spectrum ( max = 100000) +// frameY | Tango::DevDouble Spectrum ( max = 100000) //================================================================ namespace MythenWAXS_ns @@ -100,7 +100,7 @@ MythenWAXS::MythenWAXS(Tango::DeviceClass *cl, string &s) { /*----- PROTECTED REGION ID(MythenWAXS::constructor_1) ENABLED START -----*/ init_device(); - + /*----- PROTECTED REGION END -----*/ // MythenWAXS::constructor_1 } //-------------------------------------------------------- @@ -109,7 +109,7 @@ MythenWAXS::MythenWAXS(Tango::DeviceClass *cl, const char *s) { /*----- PROTECTED REGION ID(MythenWAXS::constructor_2) ENABLED START -----*/ init_device(); - + /*----- PROTECTED REGION END -----*/ // MythenWAXS::constructor_2 } //-------------------------------------------------------- @@ -118,7 +118,7 @@ MythenWAXS::MythenWAXS(Tango::DeviceClass *cl, const char *s, const char *d) { /*----- PROTECTED REGION ID(MythenWAXS::constructor_3) ENABLED START -----*/ init_device(); - + /*----- PROTECTED REGION END -----*/ // MythenWAXS::constructor_3 } @@ -132,24 +132,26 @@ void MythenWAXS::delete_device() { DEBUG_STREAM << "MythenWAXS::delete_device() " << device_name << endl; /*----- PROTECTED REGION ID(MythenWAXS::delete_device) ENABLED START -----*/ - + // Delete device allocated objects // Delete device allocated objects - //remove the task - INFO_STREAM << "Remove the MythenPool" << endl; - m_mythen_pool.reset(); + //remove the task + INFO_STREAM << "Remove the MythenPool" << endl; + m_mythen_pool.reset(); - //remove attributes from dam - INFO_STREAM << "Remove dynamic attributes." << endl; - m_dim.remove(); + //remove attributes from dam + INFO_STREAM << "Remove dynamic attributes." << endl; + m_dim.remove(); - INFO_STREAM << "Remove the InnerAppender." << endl; - yat4tango::InnerAppender::release(this); + INFO_STREAM << "Remove the InnerAppender." << endl; + yat4tango::InnerAppender::release(this); - INFO_STREAM << "Remove the YatLogAdapter." << endl; - yat4tango::YatLogAdapter::release(); + INFO_STREAM << "Remove the YatLogAdapter." << endl; + yat4tango::YatLogAdapter::release(); + INFO_STREAM << "Remove the DeviceInfo." << endl; + yat4tango::DeviceInfo::release(this); /*----- PROTECTED REGION END -----*/ // MythenWAXS::delete_device delete[] attr_nbModules_read; delete[] attr_nbChannels_read; @@ -167,31 +169,34 @@ void MythenWAXS::init_device() { DEBUG_STREAM << "MythenWAXS::init_device() create device " << device_name << endl; /*----- PROTECTED REGION ID(MythenWAXS::init_device_before) ENABLED START -----*/ - + // Initialization before get_device_property() call m_is_device_initialized = false; - m_status_message.str(""); - set_state(Tango::INIT); - - //--------------------------------------------------------- - //- instanciate the log_adapter & inner_appender in order to manage logs - //--------------------------------------------------------- - try - { - INFO_STREAM << "Create the YatLogAdapter in order to use logs from third party library." << endl; - yat4tango::YatLogAdapter::initialize(this); - - INFO_STREAM << "Create the InnerAppender in order to manage logs." << endl; - yat4tango::InnerAppender::initialize(this, 1024); - } - catch (Tango::DevFailed& df) - { - ERROR_STREAM << df << endl; - m_status_message << "Initialization Failed.\n" << endl; - m_status_message << "Origin\t: " << df.errors[0].origin << endl; - m_status_message << "Desc\t: " << df.errors[0].desc << endl; - return; - } + m_status_message.str(""); + set_state(Tango::INIT); + + //--------------------------------------------------------- + //- instanciate the log_adapter & inner_appender in order to manage logs + //--------------------------------------------------------- + try + { + INFO_STREAM << "Create the YatLogAdapter in order to use logs from third party library." << endl; + yat4tango::YatLogAdapter::initialize(this); + + INFO_STREAM << "Create the InnerAppender in order to manage logs." << endl; + yat4tango::InnerAppender::initialize(this, 1024); + + INFO_STREAM << "Create the DeviceInfo in order to display dependencies versions." << endl; + yat4tango::DeviceInfo::initialize(this, YAT_XSTR(PROJECT_NAME), YAT_XSTR(PROJECT_VERSION) ); + } + catch (Tango::DevFailed& df) + { + ERROR_STREAM << df << endl; + m_status_message << "Initialization Failed.\n" << endl; + m_status_message << "Origin\t: " << df.errors[0].origin << endl; + m_status_message << "Desc\t: " << df.errors[0].desc << endl; + return; + } @@ -207,38 +212,94 @@ void MythenWAXS::init_device() attr_frameY_read = new Tango::DevDouble[100000]; /*----- PROTECTED REGION ID(MythenWAXS::init_device) ENABLED START -----*/ - + // Initialize device - //--------------------------------------------------------- - //Create the task - //--------------------------------------------------------- - INFO_STREAM << "Create the MythenPool" << endl; - PropertyLoader prop; + //--------------------------------------------------------- + //Create the task + //--------------------------------------------------------- + INFO_STREAM << "Create the MythenPool" << endl; + PropertyLoader prop; prop.proxy_mythen_names = proxyMythenNames; prop.proxy_motor_name = proxyMotorName; prop.proxy_nb_retry = proxyNbRetry; prop.equation_parameters = equationParameters; - m_mythen_pool.reset(new MythenPool(this, prop), yat4tango::DeviceTaskExiter()); - m_mythen_pool->go(); - if(m_mythen_pool->get_state() == Tango::INIT) - { - m_status_message << m_mythen_pool->get_status(); - return; - } - - //--------------------------------------------------------- - //Create all dynamic interface - //--------------------------------------------------------- - INFO_STREAM << "Create all dynamic attributes :" << endl; - if (!create_all_dynamic_interface()) - { - return; - } - - //everything is ok - m_is_device_initialized = true; - dev_state(); + prop.pixel_size = pixelSize; + m_mythen_pool.reset(new MythenPool(this, prop), yat4tango::DeviceTaskExiter()); + m_mythen_pool->go(); + if (m_mythen_pool->get_state() == Tango::INIT) + { + m_status_message << m_mythen_pool->get_status(); + return; + } + + //--------------------------------------------------------- + //Create all dynamic interface + //--------------------------------------------------------- + INFO_STREAM << "Create all dynamic attributes :" << endl; + if (!create_all_dynamic_interface()) + { + return; + } + + //everything is ok + m_is_device_initialized = true; + //write at init, only if device is correctly initialized + if (m_is_device_initialized && autoWriteHardwareAtInit) + { + try + { + m_is_device_initialized = false; + + INFO_STREAM << "- Write tango hardware at Init - energy" << endl; + Tango::WAttribute &energy = dev_attr->get_w_attr_by_name("energy"); + energy.set_write_value(yat4tango::PropertyHelper::get_property<Tango::DevDouble > (this, "MemorizedEnergy")); + write_energy(energy); + + INFO_STREAM << "- Write tango hardware at Init - threshold" << endl; + Tango::WAttribute &threshold = dev_attr->get_w_attr_by_name("threshold"); + threshold.set_write_value(yat4tango::PropertyHelper::get_property<Tango::DevDouble > (this, "MemorizedThreshold")); + write_threshold(threshold); + + INFO_STREAM << "- Write tango hardware at Init - exposureTime" << endl; + Tango::WAttribute &exposureTime = dev_attr->get_w_attr_by_name("exposureTime"); + exposureTime.set_write_value(yat4tango::PropertyHelper::get_property<Tango::DevDouble > (this, "MemorizedExposureTime")); + write_exposureTime(exposureTime); + + INFO_STREAM << "- Write tango hardware at Init - nbFrames" << endl; + Tango::WAttribute &nbFrames = dev_attr->get_w_attr_by_name("nbFrames"); + nbFrames.set_write_value(yat4tango::PropertyHelper::get_property<Tango::DevLong > (this, "MemorizedNbFrames")); + write_nbFrames(nbFrames); + + INFO_STREAM << "- Write tango hardware at Init - flatFieldCorrection" << endl; + Tango::WAttribute &flatFieldCorrection = dev_attr->get_w_attr_by_name("flatFieldCorrection"); + flatFieldCorrection.set_write_value(yat4tango::PropertyHelper::get_property<Tango::DevBoolean > (this, "MemorizedFlatFieldCorrection")); + write_flatFieldCorrection(flatFieldCorrection); + + INFO_STREAM << "- Write tango hardware at Init - rateCorrection" << endl; + Tango::WAttribute &rateCorrection = dev_attr->get_w_attr_by_name("rateCorrection"); + rateCorrection.set_write_value(yat4tango::PropertyHelper::get_property<Tango::DevBoolean > (this, "MemorizedRateCorrection")); + write_rateCorrection(rateCorrection); + + INFO_STREAM << "- Write tango hardware at Init - badChannelInterpolation" << endl; + Tango::WAttribute &badChannelInterpolation = dev_attr->get_w_attr_by_name("badChannelInterpolation"); + badChannelInterpolation.set_write_value(yat4tango::PropertyHelper::get_property<Tango::DevBoolean > (this, "MemorizedBadChannelInterpolation")); + write_badChannelInterpolation(badChannelInterpolation); + } + catch (Tango::DevFailed& df) + { + ERROR_STREAM << df << endl; + m_status_message << "Initialization Failed.\n" << endl; + m_status_message << "Origin\t: " << df.errors[0].origin << endl; + m_status_message << "Desc\t: " << df.errors[0].desc << endl; + return; + } + } + + //everything is OK + m_is_device_initialized = true; + set_state(Tango::STANDBY); + dev_state(); /*----- PROTECTED REGION END -----*/ // MythenWAXS::init_device } @@ -252,9 +313,9 @@ void MythenWAXS::init_device() void MythenWAXS::get_device_property() { /*----- PROTECTED REGION ID(MythenWAXS::get_device_property_before) ENABLED START -----*/ - + // Initialize property data members - + /*----- PROTECTED REGION END -----*/ // MythenWAXS::get_device_property_before @@ -265,6 +326,15 @@ void MythenWAXS::get_device_property() dev_prop.push_back(Tango::DbDatum("ProxyNbRetry")); dev_prop.push_back(Tango::DbDatum("ProxyMotorName")); dev_prop.push_back(Tango::DbDatum("EquationParameters")); + dev_prop.push_back(Tango::DbDatum("PixelSize")); + dev_prop.push_back(Tango::DbDatum("AutoWriteHardwareAtInit")); + dev_prop.push_back(Tango::DbDatum("MemorizedEnergy")); + dev_prop.push_back(Tango::DbDatum("MemorizedThreshold")); + dev_prop.push_back(Tango::DbDatum("MemorizedExposureTime")); + dev_prop.push_back(Tango::DbDatum("MemorizedNbFrames")); + dev_prop.push_back(Tango::DbDatum("MemorizedFlatFieldCorrection")); + dev_prop.push_back(Tango::DbDatum("MemorizedRateCorrection")); + dev_prop.push_back(Tango::DbDatum("MemorizedBadChannelInterpolation")); // is there at least one property to be read ? if (dev_prop.size()>0) @@ -323,28 +393,137 @@ void MythenWAXS::get_device_property() // And try to extract EquationParameters value from database if (dev_prop[i].is_empty()==false) dev_prop[i] >> equationParameters; + // Try to initialize PixelSize from class property + cl_prop = ds_class->get_class_property(dev_prop[++i].name); + if (cl_prop.is_empty()==false) cl_prop >> pixelSize; + else { + // Try to initialize PixelSize from default device value + def_prop = ds_class->get_default_device_property(dev_prop[i].name); + if (def_prop.is_empty()==false) def_prop >> pixelSize; + } + // And try to extract PixelSize value from database + if (dev_prop[i].is_empty()==false) dev_prop[i] >> pixelSize; + + // Try to initialize AutoWriteHardwareAtInit from class property + cl_prop = ds_class->get_class_property(dev_prop[++i].name); + if (cl_prop.is_empty()==false) cl_prop >> autoWriteHardwareAtInit; + else { + // Try to initialize AutoWriteHardwareAtInit from default device value + def_prop = ds_class->get_default_device_property(dev_prop[i].name); + if (def_prop.is_empty()==false) def_prop >> autoWriteHardwareAtInit; + } + // And try to extract AutoWriteHardwareAtInit value from database + if (dev_prop[i].is_empty()==false) dev_prop[i] >> autoWriteHardwareAtInit; + + // Try to initialize MemorizedEnergy from class property + cl_prop = ds_class->get_class_property(dev_prop[++i].name); + if (cl_prop.is_empty()==false) cl_prop >> memorizedEnergy; + else { + // Try to initialize MemorizedEnergy from default device value + def_prop = ds_class->get_default_device_property(dev_prop[i].name); + if (def_prop.is_empty()==false) def_prop >> memorizedEnergy; + } + // And try to extract MemorizedEnergy value from database + if (dev_prop[i].is_empty()==false) dev_prop[i] >> memorizedEnergy; + + // Try to initialize MemorizedThreshold from class property + cl_prop = ds_class->get_class_property(dev_prop[++i].name); + if (cl_prop.is_empty()==false) cl_prop >> memorizedThreshold; + else { + // Try to initialize MemorizedThreshold from default device value + def_prop = ds_class->get_default_device_property(dev_prop[i].name); + if (def_prop.is_empty()==false) def_prop >> memorizedThreshold; + } + // And try to extract MemorizedThreshold value from database + if (dev_prop[i].is_empty()==false) dev_prop[i] >> memorizedThreshold; + + // Try to initialize MemorizedExposureTime from class property + cl_prop = ds_class->get_class_property(dev_prop[++i].name); + if (cl_prop.is_empty()==false) cl_prop >> memorizedExposureTime; + else { + // Try to initialize MemorizedExposureTime from default device value + def_prop = ds_class->get_default_device_property(dev_prop[i].name); + if (def_prop.is_empty()==false) def_prop >> memorizedExposureTime; + } + // And try to extract MemorizedExposureTime value from database + if (dev_prop[i].is_empty()==false) dev_prop[i] >> memorizedExposureTime; + + // Try to initialize MemorizedNbFrames from class property + cl_prop = ds_class->get_class_property(dev_prop[++i].name); + if (cl_prop.is_empty()==false) cl_prop >> memorizedNbFrames; + else { + // Try to initialize MemorizedNbFrames from default device value + def_prop = ds_class->get_default_device_property(dev_prop[i].name); + if (def_prop.is_empty()==false) def_prop >> memorizedNbFrames; + } + // And try to extract MemorizedNbFrames value from database + if (dev_prop[i].is_empty()==false) dev_prop[i] >> memorizedNbFrames; + + // Try to initialize MemorizedFlatFieldCorrection from class property + cl_prop = ds_class->get_class_property(dev_prop[++i].name); + if (cl_prop.is_empty()==false) cl_prop >> memorizedFlatFieldCorrection; + else { + // Try to initialize MemorizedFlatFieldCorrection from default device value + def_prop = ds_class->get_default_device_property(dev_prop[i].name); + if (def_prop.is_empty()==false) def_prop >> memorizedFlatFieldCorrection; + } + // And try to extract MemorizedFlatFieldCorrection value from database + if (dev_prop[i].is_empty()==false) dev_prop[i] >> memorizedFlatFieldCorrection; + + // Try to initialize MemorizedRateCorrection from class property + cl_prop = ds_class->get_class_property(dev_prop[++i].name); + if (cl_prop.is_empty()==false) cl_prop >> memorizedRateCorrection; + else { + // Try to initialize MemorizedRateCorrection from default device value + def_prop = ds_class->get_default_device_property(dev_prop[i].name); + if (def_prop.is_empty()==false) def_prop >> memorizedRateCorrection; + } + // And try to extract MemorizedRateCorrection value from database + if (dev_prop[i].is_empty()==false) dev_prop[i] >> memorizedRateCorrection; + + // Try to initialize MemorizedBadChannelInterpolation from class property + cl_prop = ds_class->get_class_property(dev_prop[++i].name); + if (cl_prop.is_empty()==false) cl_prop >> memorizedBadChannelInterpolation; + else { + // Try to initialize MemorizedBadChannelInterpolation from default device value + def_prop = ds_class->get_default_device_property(dev_prop[i].name); + if (def_prop.is_empty()==false) def_prop >> memorizedBadChannelInterpolation; + } + // And try to extract MemorizedBadChannelInterpolation value from database + if (dev_prop[i].is_empty()==false) dev_prop[i] >> memorizedBadChannelInterpolation; + } /*----- PROTECTED REGION ID(MythenWAXS::get_device_property_after) ENABLED START -----*/ - + // Check device property data members init std::vector<string> vec_init; - vec_init.clear(); - for (int i = 0; i < 3; i++) - { - vec_init.push_back("none/none/none"); - } + vec_init.clear(); + for (int i = 0; i < 3; i++) + { + vec_init.push_back("none/none/none"); + } - yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, vec_init, "ProxyMythenNames"); + yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, vec_init, "ProxyMythenNames"); yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "none/none/none", "ProxyMotorName"); yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "1", "ProxyNbRetry"); + yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "0.05", "PixelSize"); + yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "false", "AutoWriteHardwareAtInit"); + yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "1.0", "MemorizedEnergy"); + yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "1.0", "MemorizedThreshold"); + yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "1.0", "MemorizedExposureTime"); + yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "1", "MemorizedNbFrames"); + yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "false", "MemorizedFlatFieldCorrection"); + yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "false", "MemorizedRateCorrection"); + yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "false", "MemorizedBadChannelInterpolation"); + vec_init.clear(); - for (int i = 0; i < 9; i++) - { - vec_init.push_back("delta=0.1;center=1;distance=10;"); - } + for (int i = 0; i < 9; i++) + { + vec_init.push_back("delta=0.1;center=1;distance=10;"); + } - yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, vec_init, "EquationParameters"); + yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, vec_init, "EquationParameters"); /*----- PROTECTED REGION END -----*/ // MythenWAXS::get_device_property_after } @@ -358,21 +537,21 @@ void MythenWAXS::always_executed_hook() { // INFO_STREAM << "MythenWAXS::always_executed_hook() " << device_name << endl; /*----- PROTECTED REGION ID(MythenWAXS::always_executed_hook) ENABLED START -----*/ - + // code always executed before all requests try - { - dev_state(); - } - catch (Tango::DevFailed& df) - { - ERROR_STREAM << df << endl; - //- rethrow exception - Tango::Except::re_throw_exception(df, - "TANGO_DEVICE_ERROR", - string(df.errors[0].desc).c_str(), - "MythenWAXS::always_executed_hook()"); - } + { + dev_state(); + } + catch (Tango::DevFailed& df) + { + ERROR_STREAM << df << endl; + //- rethrow exception + Tango::Except::re_throw_exception(df, + "TANGO_DEVICE_ERROR", + string(df.errors[0].desc).c_str(), + "MythenWAXS::always_executed_hook()"); + } /*----- PROTECTED REGION END -----*/ // MythenWAXS::always_executed_hook } @@ -387,9 +566,9 @@ void MythenWAXS::read_attr_hardware(TANGO_UNUSED(vector<long> &attr_list)) { // DEBUG_STREAM << "MythenWAXS::read_attr_hardware(vector<long> &attr_list) entering... " << endl; /*----- PROTECTED REGION ID(MythenWAXS::read_attr_hardware) ENABLED START -----*/ - + // Add your own code - + /*----- PROTECTED REGION END -----*/ // MythenWAXS::read_attr_hardware } @@ -410,7 +589,8 @@ void MythenWAXS::write_energy(Tango::WAttribute &attr) attr.get_write_value(w_val); /*----- PROTECTED REGION ID(MythenWAXS::write_energy) ENABLED START -----*/ m_mythen_pool->write_energy(w_val); - + yat4tango::PropertyHelper::set_property(this, "MemorizedEnergy", w_val); + /*----- PROTECTED REGION END -----*/ // MythenWAXS::write_energy } //-------------------------------------------------------- @@ -430,6 +610,7 @@ void MythenWAXS::write_threshold(Tango::WAttribute &attr) attr.get_write_value(w_val); /*----- PROTECTED REGION ID(MythenWAXS::write_threshold) ENABLED START -----*/ m_mythen_pool->write_threshold(w_val); + yat4tango::PropertyHelper::set_property(this, "MemorizedThreshold", w_val); /*----- PROTECTED REGION END -----*/ // MythenWAXS::write_threshold } //-------------------------------------------------------- @@ -449,6 +630,7 @@ void MythenWAXS::write_exposureTime(Tango::WAttribute &attr) attr.get_write_value(w_val); /*----- PROTECTED REGION ID(MythenWAXS::write_exposureTime) ENABLED START -----*/ m_mythen_pool->write_exposure_time(w_val); + yat4tango::PropertyHelper::set_property(this, "MemorizedExposureTime", w_val); /*----- PROTECTED REGION END -----*/ // MythenWAXS::write_exposureTime } //-------------------------------------------------------- @@ -466,8 +648,9 @@ void MythenWAXS::write_nbFrames(Tango::WAttribute &attr) // Retrieve write value Tango::DevLong w_val; attr.get_write_value(w_val); - /*----- PROTECTED REGION ID(MythenWAXS::write_nbFrames) ENABLED START -----*/ + /*----- PROTECTED REGION ID(MythenWAXS::write_nbFrames) ENABLED START -----*/ m_mythen_pool->write_nb_frames(w_val); + yat4tango::PropertyHelper::set_property(this, "MemorizedNbFrames", w_val); /*----- PROTECTED REGION END -----*/ // MythenWAXS::write_nbFrames } //-------------------------------------------------------- @@ -485,8 +668,9 @@ void MythenWAXS::write_flatFieldCorrection(Tango::WAttribute &attr) // Retrieve write value Tango::DevBoolean w_val; attr.get_write_value(w_val); - /*----- PROTECTED REGION ID(MythenWAXS::write_flatFieldCorrection) ENABLED START -----*/ + /*----- PROTECTED REGION ID(MythenWAXS::write_flatFieldCorrection) ENABLED START -----*/ m_mythen_pool->write_flatfield_correction(w_val); + yat4tango::PropertyHelper::set_property(this, "MemorizedFlatFieldCorrection", w_val); /*----- PROTECTED REGION END -----*/ // MythenWAXS::write_flatFieldCorrection } //-------------------------------------------------------- @@ -506,6 +690,7 @@ void MythenWAXS::write_rateCorrection(Tango::WAttribute &attr) attr.get_write_value(w_val); /*----- PROTECTED REGION ID(MythenWAXS::write_rateCorrection) ENABLED START -----*/ m_mythen_pool->write_rate_correction(w_val); + yat4tango::PropertyHelper::set_property(this, "MemorizedRateCorrection", w_val); /*----- PROTECTED REGION END -----*/ // MythenWAXS::write_rateCorrection } //-------------------------------------------------------- @@ -524,7 +709,8 @@ void MythenWAXS::write_badChannelInterpolation(Tango::WAttribute &attr) Tango::DevBoolean w_val; attr.get_write_value(w_val); /*----- PROTECTED REGION ID(MythenWAXS::write_badChannelInterpolation) ENABLED START -----*/ - m_mythen_pool->write_badchannel_interpolation(w_val); + m_mythen_pool->write_badchannel_interpolation(w_val); + yat4tango::PropertyHelper::set_property(this, "MemorizedBadChannelInterpolation", w_val); /*----- PROTECTED REGION END -----*/ // MythenWAXS::write_badChannelInterpolation } //-------------------------------------------------------- @@ -543,7 +729,7 @@ void MythenWAXS::read_nbModules(Tango::Attribute &attr) // Set the attribute value *attr_nbModules_read = m_mythen_pool->get_nb_modules(); attr.set_value(attr_nbModules_read); - + /*----- PROTECTED REGION END -----*/ // MythenWAXS::read_nbModules } //-------------------------------------------------------- @@ -562,7 +748,7 @@ void MythenWAXS::read_nbChannels(Tango::Attribute &attr) // Set the attribute value *attr_nbChannels_read = m_mythen_pool->get_nb_channels(); attr.set_value(attr_nbChannels_read); - + /*----- PROTECTED REGION END -----*/ // MythenWAXS::read_nbChannels } //-------------------------------------------------------- @@ -579,9 +765,9 @@ void MythenWAXS::read_frameX(Tango::Attribute &attr) DEBUG_STREAM << "MythenWAXS::read_frameX(Tango::Attribute &attr) entering... " << endl; /*----- PROTECTED REGION ID(MythenWAXS::read_frameX) ENABLED START -----*/ // Set the attribute value - attr.set_value(const_cast<Tango::DevDouble*>(&m_mythen_pool->get_frame_x().at(0)), m_mythen_pool->get_frame_x().size()); - - + attr.set_value(const_cast<Tango::DevDouble*> (&m_mythen_pool->get_frame_x().at(0)), m_mythen_pool->get_frame_x().size()); + + /*----- PROTECTED REGION END -----*/ // MythenWAXS::read_frameX } //-------------------------------------------------------- @@ -598,8 +784,8 @@ void MythenWAXS::read_frameY(Tango::Attribute &attr) DEBUG_STREAM << "MythenWAXS::read_frameY(Tango::Attribute &attr) entering... " << endl; /*----- PROTECTED REGION ID(MythenWAXS::read_frameY) ENABLED START -----*/ // Set the attribute value - attr.set_value(const_cast<Tango::DevDouble*>(&m_mythen_pool->get_frame_y().at(0)), m_mythen_pool->get_frame_y().size()); - + attr.set_value(const_cast<Tango::DevDouble*> (&m_mythen_pool->get_frame_y().at(0)), m_mythen_pool->get_frame_y().size()); + /*----- PROTECTED REGION END -----*/ // MythenWAXS::read_frameY } @@ -613,9 +799,9 @@ void MythenWAXS::read_frameY(Tango::Attribute &attr) void MythenWAXS::add_dynamic_attributes() { /*----- PROTECTED REGION ID(MythenWAXS::add_dynamic_attributes) ENABLED START -----*/ - + // Add your own code to create and add dynamic attributes if any - + /*----- PROTECTED REGION END -----*/ // MythenWAXS::add_dynamic_attributes } @@ -631,22 +817,22 @@ Tango::DevState MythenWAXS::dev_state() { DEBUG_STREAM << "MythenWAXS::State() - " << device_name << endl; /*----- PROTECTED REGION ID(MythenWAXS::dev_state) ENABLED START -----*/ - + // Add your own code - Tango::DevState argout = DeviceImpl::dev_state(); - std::stringstream status; - //- Initialisation Failed - if (!m_is_device_initialized) - { - argout = Tango::FAULT; - status << m_status_message.str(); - set_state(argout); - set_status(status.str()); - return argout; - } + Tango::DevState argout = DeviceImpl::dev_state(); + std::stringstream status; + //- Initialisation Failed + if (!m_is_device_initialized) + { + argout = Tango::FAULT; + status << m_status_message.str(); + set_state(argout); + set_status(status.str()); + return argout; + } argout = m_mythen_pool->get_state(); - set_status(m_mythen_pool->get_status()); + set_status(m_mythen_pool->get_status()); /*----- PROTECTED REGION END -----*/ // MythenWAXS::dev_state set_state(argout); // Give the state to Tango. @@ -665,7 +851,7 @@ void MythenWAXS::snap() { DEBUG_STREAM << "MythenWAXS::Snap() - " << device_name << endl; /*----- PROTECTED REGION ID(MythenWAXS::snap) ENABLED START -----*/ - + // Add your own code // Add your own code to control device here m_mythen_pool->snap(); @@ -683,7 +869,7 @@ void MythenWAXS::stop() { DEBUG_STREAM << "MythenWAXS::Stop() - " << device_name << endl; /*----- PROTECTED REGION ID(MythenWAXS::stop) ENABLED START -----*/ - + // Add your own code // Add your own code to control device here m_mythen_pool->stop(); @@ -696,45 +882,47 @@ void MythenWAXS::stop() //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- + bool MythenWAXS::create_all_dynamic_interface() { - DEBUG_STREAM << "MythenWAXS::create_all_dynamic_interface(): entering... !" << endl; - try - { - std::stringstream ssName; - for (int i = 0; i < 3; i++) - { - - } - } - catch (yat::Exception& ex) - { - ex.dump(); - m_status_message << "Initialization Failed in create_all_dynamic_interface() :\n" << endl; - m_status_message << "Origin\t: " << ex.errors[0].origin << endl; - m_status_message << "Desc\t: " << ex.errors[0].desc << endl; - m_status_message << "Reason\t: " << ex.errors[0].reason << endl; - m_is_device_initialized = false; - return false; - } - catch (Tango::DevFailed& df) - { - ERROR_STREAM << df << endl; - m_status_message << "Initialization Failed in create_all_dynamic_interface() :\n" << endl; - m_status_message << "Origin\t: " << df.errors[0].origin << endl; - m_status_message << "Desc\t: " << df.errors[0].desc << endl; - m_status_message << "Reason\t: " << df.errors[0].reason << endl; - m_is_device_initialized = false; - return false; - } - return true; + DEBUG_STREAM << "MythenWAXS::create_all_dynamic_interface(): entering... !" << endl; + try + { + std::stringstream ssName; + for (int i = 0; i < 3; i++) + { + + } + } + catch (yat::Exception& ex) + { + ex.dump(); + m_status_message << "Initialization Failed in create_all_dynamic_interface() :\n" << endl; + m_status_message << "Origin\t: " << ex.errors[0].origin << endl; + m_status_message << "Desc\t: " << ex.errors[0].desc << endl; + m_status_message << "Reason\t: " << ex.errors[0].reason << endl; + m_is_device_initialized = false; + return false; + } + catch (Tango::DevFailed& df) + { + ERROR_STREAM << df << endl; + m_status_message << "Initialization Failed in create_all_dynamic_interface() :\n" << endl; + m_status_message << "Origin\t: " << df.errors[0].origin << endl; + m_status_message << "Desc\t: " << df.errors[0].desc << endl; + m_status_message << "Reason\t: " << df.errors[0].reason << endl; + m_is_device_initialized = false; + return false; + } + return true; } + /*------------------------------------------------------------------------- // MythenWAXS::is_device_initialized /-------------------------------------------------------------------------*/ bool MythenWAXS::is_device_initialized() { - return m_is_device_initialized; + return m_is_device_initialized; } diff --git a/src/MythenWAXS.h b/src/MythenWAXS.h index 90ea799c2871d842b4cef6658fccc77d7f2b8325..c52600e0bb0085f262378a09ae3b711a82d62c6e 100644 --- a/src/MythenWAXS.h +++ b/src/MythenWAXS.h @@ -43,6 +43,7 @@ #include <yat4tango/PropertyHelper.h> #include <yat4tango/InnerAppender.h> #include <yat4tango/YatLogAdapter.h> +#include <yat4tango/DeviceInfo.h> #include <yat4tango/DynamicInterfaceManager.h> #include <yat/memory/UniquePtr.h> #include <yat/memory/SharedPtr.h> @@ -58,7 +59,7 @@ /** * MythenWAXS class description: - * Manage a pool of mythen2 detectors + * Manage a pool of Mythen2 detectors */ namespace MythenWAXS_ns @@ -91,6 +92,24 @@ public: string proxyMotorName; // EquationParameters: vector<string> equationParameters; + // PixelSize: Mythen2 Detector pixel size (in mm) + Tango::DevDouble pixelSize; + // AutoWriteHardwareAtInit: Enable/Disable write hardware at init (energy/threshold/...) + Tango::DevBoolean autoWriteHardwareAtInit; + // MemorizedEnergy: Memorized Energy + Tango::DevDouble memorizedEnergy; + // MemorizedThreshold: Memorized Threshold + Tango::DevDouble memorizedThreshold; + // MemorizedExposureTime: Memorized ExposureTime + Tango::DevDouble memorizedExposureTime; + // MemorizedNbFrames: Memorized NbFrames + Tango::DevLong memorizedNbFrames; + // MemorizedFlatFieldCorrection: Memorized FlatFieldCorrection + Tango::DevBoolean memorizedFlatFieldCorrection; + // MemorizedRateCorrection: Memorized RateCorrection + Tango::DevBoolean memorizedRateCorrection; + // MemorizedBadChannelInterpolation: Memorized BadChannelInterpolation + Tango::DevBoolean memorizedBadChannelInterpolation; // Attribute data members public: diff --git a/src/MythenWAXS.xmi b/src/MythenWAXS.xmi index bbba1e11a0f7b2ac8d900620ac9a18f122a4f3ba..aeb6e092b8b605bf32d3df0f6dd9182267e10d02 100644 --- a/src/MythenWAXS.xmi +++ b/src/MythenWAXS.xmi @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="ASCII"?> <pogoDsl:PogoSystem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pogoDsl="http://www.esrf.fr/tango/pogo/PogoDsl"> <classes name="MythenWAXS" pogoRevision="8.2"> - <description description="Manage a pool of mythen2 detectors" title="Mythen Wide Angular Xray" sourcePath="/home/informatique/ica/noureddine/DeviceSources/MythenWAXS/src" language="Cpp" filestogenerate="XMI file,Code files" hasMandatoryProperty="false" hasConcreteProperty="true" hasAbstractCommand="false" hasAbstractAttribute="false"> + <description description="Manage a pool of Mythen2 detectors" title="Mythen Wide Angular Xray Scattering" sourcePath="/home/informatique/ica/noureddine/DeviceSources/MythenWAXS/src" language="Cpp" filestogenerate="XMI file,Code files,html Pages" license="GPL" hasMandatoryProperty="false" hasConcreteProperty="true" hasAbstractCommand="false" hasAbstractAttribute="false" descriptionHtmlExists="false"> <inheritances classname="Device_4Impl" sourcePath=""/> <identification contact="at synchrotron-soleil.fr - arafat.noureddine" author="arafat.noureddine" emailDomain="synchrotron-soleil.fr" classFamily="Acquisition" siteSpecific="" platform="All Platforms" bus="Not Applicable" manufacturer="SOLEIL" reference=""/> </description> @@ -35,6 +35,51 @@ <DefaultPropValue>delta=0.1;center=1;distance=10;</DefaultPropValue> <DefaultPropValue>delta=0.1;center=1;distance=10;</DefaultPropValue> </deviceProperties> + <deviceProperties name="PixelSize" description="Mythen2 Detector pixel size (in mm)"> + <type xsi:type="pogoDsl:DoubleType"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <DefaultPropValue>0.05</DefaultPropValue> + </deviceProperties> + <deviceProperties name="AutoWriteHardwareAtInit" description="Enable/Disable write hardware at init (energy/threshold/...)"> + <type xsi:type="pogoDsl:BooleanType"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <DefaultPropValue>false</DefaultPropValue> + </deviceProperties> + <deviceProperties name="MemorizedEnergy" description="Memorized Energy"> + <type xsi:type="pogoDsl:DoubleType"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <DefaultPropValue>1.0</DefaultPropValue> + </deviceProperties> + <deviceProperties name="MemorizedThreshold" description="Memorized Threshold"> + <type xsi:type="pogoDsl:DoubleType"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <DefaultPropValue>1.0</DefaultPropValue> + </deviceProperties> + <deviceProperties name="MemorizedExposureTime" description="Memorized ExposureTime"> + <type xsi:type="pogoDsl:DoubleType"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <DefaultPropValue>1.0</DefaultPropValue> + </deviceProperties> + <deviceProperties name="MemorizedNbFrames" description="Memorized NbFrames"> + <type xsi:type="pogoDsl:IntType"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <DefaultPropValue>1</DefaultPropValue> + </deviceProperties> + <deviceProperties name="MemorizedFlatFieldCorrection" description="Memorized FlatFieldCorrection"> + <type xsi:type="pogoDsl:BooleanType"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <DefaultPropValue>false</DefaultPropValue> + </deviceProperties> + <deviceProperties name="MemorizedRateCorrection" description="Memorized RateCorrection"> + <type xsi:type="pogoDsl:BooleanType"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <DefaultPropValue>false</DefaultPropValue> + </deviceProperties> + <deviceProperties name="MemorizedBadChannelInterpolation" description="Memorized BadChannelInterpolation"> + <type xsi:type="pogoDsl:BooleanType"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <DefaultPropValue>false</DefaultPropValue> + </deviceProperties> <commands name="State" description="This command gets the device state (stored in its <i>device_state</i> data member) and returns it to the caller." execMethod="dev_state" displayLevel="OPERATOR" polledPeriod="0"> <argin description="none."> <type xsi:type="pogoDsl:VoidType"/> @@ -73,7 +118,7 @@ </argout> <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> </commands> - <attributes name="energy" attType="Scalar" rwType="WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" memorized="true" memorizedAtInit="true" allocReadMember="false" isDynamic="false"> + <attributes name="energy" attType="Scalar" rwType="WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" memorized="true" allocReadMember="false" isDynamic="false"> <dataType xsi:type="pogoDsl:DoubleType"/> <changeEvent fire="false" libCheckCriteria="false"/> <archiveEvent fire="false" libCheckCriteria="false"/> @@ -81,7 +126,7 @@ <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> <properties description="" label="" unit="eV" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> </attributes> - <attributes name="threshold" attType="Scalar" rwType="WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" memorized="true" memorizedAtInit="true" allocReadMember="false" isDynamic="false"> + <attributes name="threshold" attType="Scalar" rwType="WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" memorized="true" allocReadMember="false" isDynamic="false"> <dataType xsi:type="pogoDsl:DoubleType"/> <changeEvent fire="false" libCheckCriteria="false"/> <archiveEvent fire="false" libCheckCriteria="false"/> @@ -89,7 +134,7 @@ <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> <properties description="" label="" unit="eV" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> </attributes> - <attributes name="exposureTime" attType="Scalar" rwType="WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" memorized="true" memorizedAtInit="true" allocReadMember="false" isDynamic="false"> + <attributes name="exposureTime" attType="Scalar" rwType="WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" memorized="true" allocReadMember="false" isDynamic="false"> <dataType xsi:type="pogoDsl:DoubleType"/> <changeEvent fire="false" libCheckCriteria="false"/> <archiveEvent fire="false" libCheckCriteria="false"/> @@ -97,7 +142,47 @@ <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> <properties description="" label="" unit="ms" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> </attributes> - <attributes name="nbFrames" attType="Scalar" rwType="WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" memorized="true" memorizedAtInit="true" allocReadMember="false" isDynamic="false"> + <attributes name="nbFrames" attType="Scalar" rwType="WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" memorized="true" allocReadMember="false" isDynamic="false"> + <dataType xsi:type="pogoDsl:IntType"/> + <changeEvent fire="false" libCheckCriteria="false"/> + <archiveEvent fire="false" libCheckCriteria="false"/> + <dataReadyEvent fire="false" libCheckCriteria="true"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> + </attributes> + <attributes name="flatFieldCorrection" attType="Scalar" rwType="WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" memorized="true" allocReadMember="false" isDynamic="false"> + <dataType xsi:type="pogoDsl:BooleanType"/> + <changeEvent fire="false" libCheckCriteria="false"/> + <archiveEvent fire="false" libCheckCriteria="false"/> + <dataReadyEvent fire="false" libCheckCriteria="true"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> + </attributes> + <attributes name="rateCorrection" attType="Scalar" rwType="WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" memorized="true" allocReadMember="false" isDynamic="false"> + <dataType xsi:type="pogoDsl:BooleanType"/> + <changeEvent fire="false" libCheckCriteria="false"/> + <archiveEvent fire="false" libCheckCriteria="false"/> + <dataReadyEvent fire="false" libCheckCriteria="true"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> + </attributes> + <attributes name="badChannelInterpolation" attType="Scalar" rwType="WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" memorized="true" allocReadMember="false" isDynamic="false"> + <dataType xsi:type="pogoDsl:BooleanType"/> + <changeEvent fire="false" libCheckCriteria="false"/> + <archiveEvent fire="false" libCheckCriteria="false"/> + <dataReadyEvent fire="false" libCheckCriteria="true"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> + </attributes> + <attributes name="nbModules" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false"> + <dataType xsi:type="pogoDsl:IntType"/> + <changeEvent fire="false" libCheckCriteria="false"/> + <archiveEvent fire="false" libCheckCriteria="false"/> + <dataReadyEvent fire="false" libCheckCriteria="true"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> + </attributes> + <attributes name="nbChannels" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false"> <dataType xsi:type="pogoDsl:IntType"/> <changeEvent fire="false" libCheckCriteria="false"/> <archiveEvent fire="false" libCheckCriteria="false"/> diff --git a/src/MythenWAXSClass.cpp b/src/MythenWAXSClass.cpp index 830d535e1b8417c3682a9bd02f63219c79b7d7b9..b2b3d5d27fb7b0f388b2ef6b9e7ad03e9cc69e1d 100644 --- a/src/MythenWAXSClass.cpp +++ b/src/MythenWAXSClass.cpp @@ -331,6 +331,132 @@ void MythenWAXSClass::set_default_property() } else add_wiz_dev_prop(prop_name, prop_desc); + prop_name = "PixelSize"; + prop_desc = "Mythen2 Detector pixel size (in mm)"; + prop_def = "0.05"; + vect_data.clear(); + vect_data.push_back("0.05"); + if (prop_def.length()>0) + { + Tango::DbDatum data(prop_name); + data << vect_data ; + dev_def_prop.push_back(data); + add_wiz_dev_prop(prop_name, prop_desc, prop_def); + } + else + add_wiz_dev_prop(prop_name, prop_desc); + prop_name = "AutoWriteHardwareAtInit"; + prop_desc = "Enable/Disable write hardware at init (energy/threshold/...)"; + prop_def = "false"; + vect_data.clear(); + vect_data.push_back("false"); + if (prop_def.length()>0) + { + Tango::DbDatum data(prop_name); + data << vect_data ; + dev_def_prop.push_back(data); + add_wiz_dev_prop(prop_name, prop_desc, prop_def); + } + else + add_wiz_dev_prop(prop_name, prop_desc); + prop_name = "MemorizedEnergy"; + prop_desc = "Memorized Energy"; + prop_def = "1.0"; + vect_data.clear(); + vect_data.push_back("1.0"); + if (prop_def.length()>0) + { + Tango::DbDatum data(prop_name); + data << vect_data ; + dev_def_prop.push_back(data); + add_wiz_dev_prop(prop_name, prop_desc, prop_def); + } + else + add_wiz_dev_prop(prop_name, prop_desc); + prop_name = "MemorizedThreshold"; + prop_desc = "Memorized Threshold"; + prop_def = "1.0"; + vect_data.clear(); + vect_data.push_back("1.0"); + if (prop_def.length()>0) + { + Tango::DbDatum data(prop_name); + data << vect_data ; + dev_def_prop.push_back(data); + add_wiz_dev_prop(prop_name, prop_desc, prop_def); + } + else + add_wiz_dev_prop(prop_name, prop_desc); + prop_name = "MemorizedExposureTime"; + prop_desc = "Memorized ExposureTime"; + prop_def = "1.0"; + vect_data.clear(); + vect_data.push_back("1.0"); + if (prop_def.length()>0) + { + Tango::DbDatum data(prop_name); + data << vect_data ; + dev_def_prop.push_back(data); + add_wiz_dev_prop(prop_name, prop_desc, prop_def); + } + else + add_wiz_dev_prop(prop_name, prop_desc); + prop_name = "MemorizedNbFrames"; + prop_desc = "Memorized NbFrames"; + prop_def = "1"; + vect_data.clear(); + vect_data.push_back("1"); + if (prop_def.length()>0) + { + Tango::DbDatum data(prop_name); + data << vect_data ; + dev_def_prop.push_back(data); + add_wiz_dev_prop(prop_name, prop_desc, prop_def); + } + else + add_wiz_dev_prop(prop_name, prop_desc); + prop_name = "MemorizedFlatFieldCorrection"; + prop_desc = "Memorized FlatFieldCorrection"; + prop_def = "false"; + vect_data.clear(); + vect_data.push_back("false"); + if (prop_def.length()>0) + { + Tango::DbDatum data(prop_name); + data << vect_data ; + dev_def_prop.push_back(data); + add_wiz_dev_prop(prop_name, prop_desc, prop_def); + } + else + add_wiz_dev_prop(prop_name, prop_desc); + prop_name = "MemorizedRateCorrection"; + prop_desc = "Memorized RateCorrection"; + prop_def = "false"; + vect_data.clear(); + vect_data.push_back("false"); + if (prop_def.length()>0) + { + Tango::DbDatum data(prop_name); + data << vect_data ; + dev_def_prop.push_back(data); + add_wiz_dev_prop(prop_name, prop_desc, prop_def); + } + else + add_wiz_dev_prop(prop_name, prop_desc); + prop_name = "MemorizedBadChannelInterpolation"; + prop_desc = "Memorized BadChannelInterpolation"; + prop_def = "false"; + vect_data.clear(); + vect_data.push_back("false"); + if (prop_def.length()>0) + { + Tango::DbDatum data(prop_name); + data << vect_data ; + dev_def_prop.push_back(data); + add_wiz_dev_prop(prop_name, prop_desc, prop_def); + } + else + add_wiz_dev_prop(prop_name, prop_desc); } //-------------------------------------------------------- @@ -352,14 +478,14 @@ void MythenWAXSClass::write_class_property() // Put title Tango::DbDatum title("ProjectTitle"); - string str_title("Mythen Wide Angular Xray"); + string str_title("Mythen Wide Angular Xray Scattering"); title << str_title; data.push_back(title); // Put Description Tango::DbDatum description("Description"); vector<string> str_desc; - str_desc.push_back("Manage a pool of mythen2 detectors"); + str_desc.push_back("Manage a pool of Mythen2 detectors"); description << str_desc; data.push_back(description); @@ -557,7 +683,7 @@ void MythenWAXSClass::attribute_factory(vector<Tango::Attr *> &att_list) // Not Polled energy->set_disp_level(Tango::OPERATOR); energy->set_memorized(); - energy->set_memorized_init(true); + energy->set_memorized_init(false); att_list.push_back(energy); // Attribute : threshold @@ -582,7 +708,7 @@ void MythenWAXSClass::attribute_factory(vector<Tango::Attr *> &att_list) // Not Polled threshold->set_disp_level(Tango::OPERATOR); threshold->set_memorized(); - threshold->set_memorized_init(true); + threshold->set_memorized_init(false); att_list.push_back(threshold); // Attribute : exposureTime @@ -607,7 +733,7 @@ void MythenWAXSClass::attribute_factory(vector<Tango::Attr *> &att_list) // Not Polled exposuretime->set_disp_level(Tango::OPERATOR); exposuretime->set_memorized(); - exposuretime->set_memorized_init(true); + exposuretime->set_memorized_init(false); att_list.push_back(exposuretime); // Attribute : nbFrames @@ -632,7 +758,7 @@ void MythenWAXSClass::attribute_factory(vector<Tango::Attr *> &att_list) // Not Polled nbframes->set_disp_level(Tango::OPERATOR); nbframes->set_memorized(); - nbframes->set_memorized_init(true); + nbframes->set_memorized_init(false); att_list.push_back(nbframes); // Attribute : flatFieldCorrection @@ -657,7 +783,7 @@ void MythenWAXSClass::attribute_factory(vector<Tango::Attr *> &att_list) // Not Polled flatfieldcorrection->set_disp_level(Tango::OPERATOR); flatfieldcorrection->set_memorized(); - flatfieldcorrection->set_memorized_init(true); + flatfieldcorrection->set_memorized_init(false); att_list.push_back(flatfieldcorrection); // Attribute : rateCorrection @@ -682,7 +808,7 @@ void MythenWAXSClass::attribute_factory(vector<Tango::Attr *> &att_list) // Not Polled ratecorrection->set_disp_level(Tango::OPERATOR); ratecorrection->set_memorized(); - ratecorrection->set_memorized_init(true); + ratecorrection->set_memorized_init(false); att_list.push_back(ratecorrection); // Attribute : badChannelInterpolation @@ -707,7 +833,7 @@ void MythenWAXSClass::attribute_factory(vector<Tango::Attr *> &att_list) // Not Polled badchannelinterpolation->set_disp_level(Tango::OPERATOR); badchannelinterpolation->set_memorized(); - badchannelinterpolation->set_memorized_init(true); + badchannelinterpolation->set_memorized_init(false); att_list.push_back(badchannelinterpolation); // Attribute : nbModules