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