class HVgranule

Class to represent an HV Granule, as does the CFHVModuleContainer This class consists of a number of pointers to HVgroup Objects, one for each type of module

Public Methods

inline ooHandle ( CFHVModuleContainer )()
Get CFHVModuleContainer Handle
static HVgranule* createGranule( ooHandle( CFHVModuleContainer )& aGranuleH, HVDatabaseSet *aDBSet )
Create a Granule
HVgroup* getGroupPointer(const char *groupType )
Get a particular Group pointer
inline const char* getName()
Return the Granule Name
inline short getNumGroups()
Return the Number of Groups that this Granule Controls
HVgranule(const char *Name, HVDatabaseSet *aDBSet )
Basic Constructor
HVgranule( ooHandle( CFHVModuleContainer )& aGranuleH, HVDatabaseSet *aDBSet )
Constuctor that builds according to what is represented in the CF database
int makeGroup( const char* pcTagInName, HVgroup &theGroup )
Make a group based on a tag
int setGroupPointer( HVgroup *newGroup )
Set up a group pointer
int storeGranuleReadback()
Pull current info from EPICS and store granule information in database

Protected Fields

list < pair< HVgroup*, HVmodule* > > listofModules
List of HVmodule pointers and pointers to the Group they belong to -- one for each group
short numGroups
Number of Groups Controlled by this Granule
pstring pcName
Granule Name
HVDatabaseSet* pDBSet
A pointer to the DB set which controls this Granule -- no longer a static interface function
HVgroup* pGroups[NUMBER_OF_MODULE_TYPES]
Pointers to HVgroups -- typicially, most of them will be NULL

Protected Methods

ooHandle( CFHVModuleContainer )
Handle of corresponding Granule Container in Configuration Database

Documentation

Class to represent an HV Granule, as does the CFHVModuleContainer This class consists of a number of pointers to HVgroup Objects, one for each type of module. This way, the HVgroup objects remain largely unchanged and still have EPICS control, and this HVgranule object handles the Database storage. We cannot simply call HVgroup the 'granule' object, because a granule may contain more than one type of module, an instance the current HVgroup can't handle.

MODIFICATIONS:

static HVgranule* createGranule( ooHandle( CFHVModuleContainer )& aGranuleH, HVDatabaseSet *aDBSet )
Create a Granule

HVgranule(const char *Name, HVDatabaseSet *aDBSet )
Basic Constructor

HVgranule( ooHandle( CFHVModuleContainer )& aGranuleH, HVDatabaseSet *aDBSet )
Constuctor that builds according to what is represented in the CF database

inline ooHandle ( CFHVModuleContainer )()
Get CFHVModuleContainer Handle

int setGroupPointer( HVgroup *newGroup )
Set up a group pointer

HVgroup* getGroupPointer(const char *groupType )
Get a particular Group pointer

int makeGroup( const char* pcTagInName, HVgroup &theGroup )
Make a group based on a tag. E..g makeGroup( "DC.W.N.*", myGroup) adds all channels of the granule which start with the string "DC.W.N.*" to the group. Note: 1) channels are added (the group is not set to 0 before adding the channels, 2) the HVgroup must be of the right type. A HV group can only hold modules of the same type. 3) Creating groups in this way garantees to first other that groups cannot span granules. If this is desired it can be implemented by calling the makeGroup twice on two HVgranules with the same HVgroup.
Usage:
      const char *pcType = "1469P";
      HVgroup *theGroup = new HVgroup( "test", pcType );
      const char *pcType = "DC.W.N.*";
      int nElementsAdded = currentGranule->makeGroup( pcTag, *theGroup );
      cout << "Added " << nElementsAdded << " channels to the group" << endl;
            theGroup->dumpGroup();
      

Returns:
: number of modules added
Parameters:
pcTagInName - : a substring of the name
theGroup - : reference to a group to which the new channels will be added.

int storeGranuleReadback()
Pull current info from EPICS and store granule information in database

inline const char* getName()
Return the Granule Name

inline short getNumGroups()
Return the Number of Groups that this Granule Controls

pstring pcName
Granule Name

HVgroup* pGroups[NUMBER_OF_MODULE_TYPES]
Pointers to HVgroups -- typicially, most of them will be NULL

list < pair< HVgroup*, HVmodule* > > listofModules
List of HVmodule pointers and pointers to the Group they belong to -- one for each group

ooHandle( CFHVModuleContainer )
Handle of corresponding Granule Container in Configuration Database

short numGroups
Number of Groups Controlled by this Granule

HVDatabaseSet* pDBSet
A pointer to the DB set which controls this Granule -- no longer a static interface function


This class has no child classes.
Author:
R. Roth
Date: Aug 11, 99
Version:
Last update Nov 14, 99 CW

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