class rcGTMTec : public rcGTM

Proxy class for a GTM board of type TEC in the run control server

Inheritance:


Public Methods

rcGTMTec(const char *name, const char *pud_name, long vme_address, const char* pcServerName )
Constructor
bool updateDownload()
Special version of updateDownload for the TEC

Inherited from rcGTM:

Public Methods

static rcGTM* createGTM( const char *name, const char *pud_name, long vme_address, const char* pcServerName = NULL)

Public

BUSY functions to control the granule BUSY over VME

int setVmeBusy()
Sets the VME busy of the GTM via a RMI
int clearVmeBusy()
Clears the VME busy of the GTM via a RMI

Configuration Commands and retrieval of configuration parameters

int configure( const char* cmd, const char *value, const char *aux_param )
Generic configuration command inherited from PU - see PU for details
int addFem( FEM* pFem )
Adds an FEM to the list of FEMs that the GTM controls
int addDcm( DCM* pDcm )
Adds a DCM to the list of DCMs that the GTM controls
int addPar( Par* pPar )
Add a partition module to the list of partition modules that the GTM controls
static rcGTM* getGtmForDcm( const char *pcDcmName )
For a given Dcm name, return the GTM that has it in its internal list of associated Dcms or NULL
static rcGTM* getGtmForPar( const char *pcParName )
For a given Par name, return the GTM that has it in its internal list of associated Par or NULL
inline void setGranule( Granule *pGranule )
Set the granule that the GTM represents
inline Granule* getGranule()
Return a pointer to the granule that the GTM represents
rcGTM* castToGTM()
Inherited member from PU to mimic RTTI

Function that coordinate the GTM-FEM-DCM interdependence

int adjustGtmFemState()
Adjusts the relative state between FEM and GTM
int initFemAfterGtmOk()
Initialises the FEMs once the GTM is in the "right" state
int initDcmAfterGtmOk()
Starts the initialisation sequence of the DCM system via the partition module once the GTMs are in the proper state
int finishDownloadingAfterFEM()
Checks that the FEMs are really all in the locked state

Functions inherited from PU that make up the global state transitions

int connect()
Initial startup function
int initialise()
Initialises the board
virtual int download()
Downloads the board
int start_run()
Starts the run
int end_run()
Stops the run
virtual bool updatePu( int iStatus, int eState_on_success )
Standard updatePu as inherited from PU

print, dump, list functions and accessors

void print( ostream &os = cout )
Prints a one line summary of the instance to os
void dump( ostream &os = cout )
Prints detailed information about the GTM instance to os
const char* getDefaultModeBitFile()
Returns the default mode bit file
const char* getModeBitFile()
Returns the current mode bit file
void setDefaultModeBitFile( const char* newFileName )
Sets the default mode bit file
void setModeBitFile( const char* newFileName )
Sets the mode bit file
void resetModeBitFile()
Resets the mode bit file
inline long getAddress()
Returns the (hex) address in the VME crate
inline const char* getServerName()
Returns the server name that manages this object

Resetting the glink on the GTM

int resetGlink()
Resets the Glink of the GTM for the GTM with the name pcName
static int resetAllGlinks()
Resets the Glink of all GTM

static member function that affect all instances of the GTMs

static void dump_all( ostream &os = cout )
Calls dump on all instances
static void listAll( ostream &os = cout )
Calls list on all objects
static int createAllGtms()
Creates all GTMs in Vxworks

Protected Fields

int iLastCmdSent
list <DCM*> listDcm
list <FEM*> listFem
list <Par*> listPar
Granule* myGranule

Protected Methods

void reportErrorFromGtmUpdate( int iStatus, int eState_on_success )
int sendGtmEvent( int iEventId )
virtual bool updateInitialise()
bool updateStartRun()

Private Fields

bool bCreatedInVxWorks
int iStopEOxx
long lGranuleType
long lVMEaddress
char* pcDefaultModeBitFile
char* pcModeBitFile
char* pcServerName
GTM_ptr ptrGTM

Private Methods

int createInVxWorks()

Inherited from genNamedObj:

Public Methods

static void add( const char *name, X x )
inline static X begin()
inline static X end()
static bool exists( const char *name )
static X get( const char *name )
int getLocation()
inline static int getNbElements()
static X getObject( const char *name )
static int getObjects( const char *name, list<X> &theList )
inline const char* getObjName()
inline static X next()
static void remove( const char *name )

Private Fields

static map < const char*, X, cstring_ordering_t > ::iterator m_It
static map < const char*, X, cstring_ordering_t > m_Map
char* m_Name

Inherited from Pu:

Public

Accessors common to all PU

const char* getPudName()
Returns the name of the Process Unit Design
const char* getPrstName()
Return the name of the process stage, which controls this PU
Prst* getPrst()
Return a pointer to the process stage, which controls this PU
inline void enable()
To set the enable flag of the PU to true
inline void disable()
To set the disable flag of the PU to false
virtual bool isEnabled( const char* pccTransition = NULL )
To find out whether a process unit is enabled
void setSimulate( bool bValue )
To set the simulate mode
void setDebug( bool aBool )
To set the debug mode
bool getDebug()
Returns true if we are in debug mode

Architectural common member functions for all PU

Pu(const char *name, const char *pud_name )
constructor with the name and design as input
virtual ~Pu()
virtual destructor for handling dtor of subtypes
static mapPu_t mapPu
The PUs are organized in a global STL map
static bool exists( const char *name )
Returns true if a PU of this name exists
static mapPu_t::iterator locate( const char *name )
given the name of the PU return an STL map iterator to it
static Pu* get( char *name )
given the name return a pointer to the object itself
static int getPuByTag( const char* pcTag, list<Pu*> &theList )
To get a whole bunch of Pu that start with a given name
virtual void identify( ostream &os = cout )
To print out a one-line identifing message to the ostream os
virtual void dump( ostream &os = cout )
To print out a detailed summary of the Pu to ostream os
static void dump_all( ostream &os = cout )
To print out a detailed summary for all PU to ostream os
static void listAll( ostream &os = cout )
To print out a one-line summary for all PU to ostream os

Simple implementation of RTTI (see note above)

virtual Rdev* castToRdev()
virtual casts to Rdev
virtual Rout* castToRout()
virtual casts to Rout
virtual EvPool* castToEvPool()
virtual casts to EvPool
virtual Swpu* castToSwpu()
virtual casts to Swpu
virtual rcGTM* castToGTM()
virtual casts to GTM
virtual FEM* castToFEM()
virtual casts to FEM
virtual DCM* castToDCM()
virtual casts to DCM
virtual DDsocket* castToDDsocket()
virtual casts to DDsocket
virtual ROobject* castToROobject()
virtual casts to ROobject
virtual ddEventServer* castToddEventServer()
virtual casts to ddEventServer
virtual DataLogger* castToDataLogger()
virtual casts to DataLogger
virtual rcDataLogger* castToRcDataLogger()
virtual casts to rcDataLogger
virtual DummyDevice* castToDummyDevice()
virtual casts to Dummy device
virtual Par* castToPar()
virtual casts to Par
virtual EvbComponent* castToEvbComponent()
virtual casts to EvbComponent

State transitions

enum states
enum with the different possible states - these are common to all PU!!!
static const char* pcStates[]
the names of the state transitions as static const char*
int setState(int state )
Sets the state to the new state given by the enum int
int setState( const char *pcState )
Sets the state to the new state given by the name of the state
int getState()
Returns the state to the new state as enum int
const char* getcState()
Returns the state to the new state as a string
static int setStateAndUpdateStage( const char *pcPuGroup, const char *pcNewState )
Function that searches for a named PU (or group of PUs), sets its STT to the pcNewState and updates the ProcessStage at the same time

virtual functions for generic configuring, starting/updating/continuing a state transition

virtual int configure( const char* config_req, const char* value, const char *param = NULL )
To configure a PU
virtual int connect()
Connect is called once at initialisation time
virtual int initialise()
To initialise the PU
virtual int download()
To download the PU
virtual int start_run()
To start a new run
virtual int end_run()
To stop a run in progress
virtual bool updatePu( int iStatus, int eState_on_success )
Whenever a PU reports to the prst that is has done a state transition, the prst calls this virtual function
virtual bool checkReady( int iLevel )
Returns true if the process unit is in a ready state

Protected Fields

bool bDebug
bool bEnabled
bool bIgnoreErrorOnTransition[ eNStates ]
bool bSimulate
int eState
char* pcName
char* pcPud_name
const char* pcState

Protected Methods

int sendEventPuDone( int eState_on_success )
int updateStateAfterConfigReq( int eNewState = eInitialised )

Private Methods

int setIgnoreErrorOnTransition( const char* pcTransition, bool bValue )

Documentation

Proxy class for a GTM board of type TEC in the run control server. The TEC has the funny behavior that we must start the GTM before the download the FEM files. Otherwise the local controller on the FEM board cannot talk to Arcnet. This is implemented in the redefined member function updateDownload that overrides the default behavior of the generic GTM.

The following things happen during the state transition functions:

bool updateDownload()
Special version of updateDownload for the TEC. The TEC FEMs are special in the sense, that you must first start the GTM for a while and then download the Arcnet files. Doesn't make sense to me but that is the way the hardware works.

rcGTMTec(const char *name, const char *pud_name, long vme_address, const char* pcServerName )
Constructor. Creates the proxy but does not talk to VxWorks yet.
Parameters:
name - : name of the board according to the ONCS naming convention, eg GTM.DC.E
pud_name - : name of the corresponding design
vme_address - : address in the VME crate
pcServerName - : name of the server that manages this object


This class has no child classes.
Author:
C.Witzig
Version:
Last update: Feb 1, 2000

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de