European
Southern
Observatory

ESO — Reaching New Heights in Astronomy

Countries taking part in the ESO

VLT Software Documentation

mswCHANGE_FOCUS_NTT Class Reference

See man page mswCHANGE_FOCUS_NTT(4)
More...

#include <mswCHANGE_FOCUS_NTT.h>

Inheritance diagram for mswCHANGE_FOCUS_NTT:
Inheritance graph
[legend]
Collaboration diagram for mswCHANGE_FOCUS_NTT:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 mswCHANGE_FOCUS_NTT (mswMOD_LIST_MANAGER &listManager)
 mswCHANGE_FOCUS_NTT (const dbSYMADDRESS dbPoint, mswMOD_LIST_MANAGER &listManager)
 ~mswCHANGE_FOCUS_NTT ()
virtual ccsCOMPL_STAT Init ()
ccsCOMPL_STAT Execute (msgMESSAGE &msg)

Protected Member Functions

virtual evhCB_COMPL_STAT M3CmdOkCB (msgMESSAGE &msg, void *udata)
virtual evhCB_COMPL_STAT M3CmdErrorCB (msgMESSAGE &msg, vltLOGICAL timeoutFlag)
virtual ccsCOMPL_STAT ReadMirrorsPos (vltINT32 *currFoc)
virtual ccsCOMPL_STAT CheckModeSwitchingState (vltINT32 actState, vltINT32 actSubState)

Protected Attributes

evhDB_CMD_SERIAL * M3Cmd
msgMESSAGE M3Msg

Private Attributes

INT32 M3CmdTimeout = 20
evhDB_CMD_SERIAL M3Cmd

Detailed Description

See man page mswCHANGE_FOCUS_NTT(4)
Manpage of mswCHANGE_FOCUS_NTT

mswCHANGE_FOCUS_NTT

Section: Devices and Network Interfaces (4)
Updated: 2012-04-23 10:09
Index Return to man pages list
 

NAME

mswCHANGE_FOCUS_NTT - Control telescope's focus change.
                      Specific NTT implementation

 

SYNOPSIS


#include "mswCHANGE_FOCUS_NTT.h"

class mswCHANGE_FOCUS_NTT : public mswCHANGE_FOCUS
{
 public:
   mswCHANGE_FOCUS_NTT(mswMOD_LIST_MANAGER &listManager);
   mswCHANGE_FOCUS_NTT(const dbSYMADDRESS  dbPoint,
                       mswMOD_LIST_MANAGER &listManager);
  ~mswCHANGE_FOCUS_NTT();

   ccsCOMPL_STAT  Execute(msgMESSAGE     &msg);

 protected:
   virtual evhCB_COMPL_STAT  M3CmdOkCB(msgMESSAGE &msg,
                                        void *udata);
   virtual evhCB_COMPL_STAT  M3CmdErrorCB(msgMESSAGE &msg,
                                        vltLOGICAL timeoutFlag);
   virtual ccsCOMPL_STAT     ReadMirrorsPos(vltINT32 *currFoc);
};

 

PARENT CLASS


mswCHANGE_FOCUS

 

DESCRIPTION


Performs focus change.
This subclass implements the real focus changing functionality taking
into account the specific telescope architecture for NTT.


 

PUBLIC METHODS


mswCHANGE_FOCUS_NTT(mswMOD_LIST_MANAGER &listManager);
mswCHANGE_FOCUS_NTT(const dbSYMADDRESS  dbPoint,
                    mswMOD_LIST_MANAGER &listManager)
  Two constructors are provided.
  The second one receives as parameter the symbolic address of
  online database support point for the object, i.e. the point
  where the object can find configuration and run time values.
  The first one defines the online database support point calling
  the standard tcsDbRoot(4) function and appenting the
  default relative path from the TCS database root point,
  assuming a complete default TCS database structure.
  It calls the parent class' constructor.

~mswCHANGE_FOCUS_NTT()

ccsCOMPL_STAT  Execute(msgMESSAGE     &msg);

  Starts the real execution of the change focus procedure.
  Actually sends only the first commands of the sequence
  (ONLINE to M3). The rest of the procedure is controlled
  by the two callbacks EndM3CmdCB and M3CmdErrorCB.

 

PROTECTED METHODS


 virtual evhCB_COMPL_STAT  M3CmdOkCB(msgMESSAGE &msg,
                                        void *udata);

   This callback is attached to the command object used
   to send commands to M3. It gets the control after every
   successfull completion of the command (last OK reply received),
   and starts the next step.
   When the last step of the procedure has been completed,
   it returns the control flow to the mswCONTROL_MAIN object.

 virtual evhCB_COMPL_STAT  M3CmdErrorCB(msgMESSAGE &msg,
                                        vltLOGICAL timeoutFlag);

   This callback is attached to the command object used
   to send commands to M3. It gets the control when an error
   or timeout reply is received. It handles the error, stops
   the execution of the procedure and return the control flow
   to the mswCONTROL_MAIN object.

 virtual ccsCOMPL_STAT     ReadMirrorsPos(vltINT32 *currFoc);

  Computes the current focus by reading the mirrors positions.
  Now this function is implemented on the base of the NTT
  implementation for the m3 module and is not complete.
  It will be better implemented
  when further specifications are available.
  See CAUTIONS section.

 

ON LINE DATABASE


See mswCHANGE_FOCUS class.

 

CAUTIONS


ReadMirrorsPos function  is only partially implemented and
needs to be reworked and cleaned up.
It now reads from the database what is assumed to be the current
position of the m3 mirror and is based on the NTT implementation.
It then requires that an m3 point exist in the TCS database
with the following definition:
     POINT NULL_CLASS        "Appl_data:TCS:m3:mirror3"
 

BEGIN


        // Set to the value corresponding to the NA focus
        ATTRIBUTE int32 movingState 4
 

END


The movingState attribute is supposed to have one of the
following values:
   typedef enum
     {
       m3Undefined = 1,            // -> mswUNDEFINED_FOCUS
       m3Idle,                     // -> mswUNDEFINED_FOCUS
       m3Moving,                   // -> mswINTERMEDIATE_D_FOCUS
       m3InFocusA,                 // -> mswNASMITH_A_FOCUS
       m3InFocusB                  // -> mswNASMITH_B_FOCUS
     } m3MOVING_STATE;
 This will have to be changed and implemented in a cleaner way



 

SEE ALSO


mswCHANGE_FOCUS(4)
evhDB_TASK(4)



 

Index

NAME
SYNOPSIS
PARENT CLASS
DESCRIPTION
PUBLIC METHODS
PROTECTED METHODS
ON LINE DATABASE
CAUTIONS
BEGIN
END
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 10:09:28 GMT, April 23, 2012

Definition at line 26 of file mswCHANGE_FOCUS_NTT.h.


Constructor & Destructor Documentation

mswCHANGE_FOCUS_NTT::mswCHANGE_FOCUS_NTT ( mswMOD_LIST_MANAGER listManager  ) 
mswCHANGE_FOCUS_NTT::mswCHANGE_FOCUS_NTT ( const dbSYMADDRESS  dbPoint,
mswMOD_LIST_MANAGER listManager 
)

Definition at line 213 of file mswCHANGE_FOCUS_NTT.C.

References Init(), and M3Cmd.

mswCHANGE_FOCUS_NTT::~mswCHANGE_FOCUS_NTT (  ) 

Definition at line 234 of file mswCHANGE_FOCUS_NTT.C.

References M3Cmd.


Member Function Documentation

ccsCOMPL_STAT mswCHANGE_FOCUS_NTT::CheckModeSwitchingState ( vltINT32  actState,
vltINT32  actSubState 
) [protected, virtual]

Implements mswCHANGE_FOCUS.

Definition at line 595 of file mswCHANGE_FOCUS_NTT.C.

References mswSTATE_STANDBY, and mswSUB_STATE_IDLE.

ccsCOMPL_STAT mswCHANGE_FOCUS_NTT::Execute ( msgMESSAGE &  msg  )  [virtual]
ccsCOMPL_STAT mswCHANGE_FOCUS_NTT::Init (  )  [virtual]

Reimplemented from mswCHANGE_FOCUS.

Definition at line 239 of file mswCHANGE_FOCUS_NTT.C.

References M3Cmd, M3CmdErrorCB(), and M3CmdTimeout.

Referenced by mswCHANGE_FOCUS_NTT().

evhCB_COMPL_STAT mswCHANGE_FOCUS_NTT::M3CmdErrorCB ( msgMESSAGE &  msg,
vltLOGICAL  timeoutFlag 
) [protected, virtual]
evhCB_COMPL_STAT mswCHANGE_FOCUS_NTT::M3CmdOkCB ( msgMESSAGE &  msg,
void *  udata 
) [protected, virtual]
ccsCOMPL_STAT mswCHANGE_FOCUS_NTT::ReadMirrorsPos ( vltINT32 *  currFoc  )  [protected, virtual]

Member Data Documentation

evhDB_CMD_SERIAL mswCHANGE_FOCUS_NTT::M3Cmd [private]

Definition at line 44 of file mswCHANGE_FOCUS_NTT.class.

evhDB_CMD_SERIAL* mswCHANGE_FOCUS_NTT::M3Cmd [protected]
INT32 mswCHANGE_FOCUS_NTT::M3CmdTimeout = 20 [private]

Definition at line 42 of file mswCHANGE_FOCUS_NTT.class.

Referenced by Init().

msgMESSAGE mswCHANGE_FOCUS_NTT::M3Msg [protected]

Definition at line 48 of file mswCHANGE_FOCUS_NTT.h.

Referenced by Execute(), M3CmdErrorCB(), and M3CmdOkCB().


The documentation for this class was generated from the following files:
Generated on Mon Apr 23 10:12:34 2012 for INTROOT API by doxygen 1.6.3