Class that handles groups of HV channels
Class that handles groups of HV channels. The group can consist of any arbitrary number of HV channels and the operations apply uniformly over all members of the group.Individual channels can be added/removed from the group. Whole modules (i.e. all the channels of a module) can be added/removed from the group.
Only channels of the same module type can belong to the same group. A channel can belong to any number of groups.
Note:
In this current implementation we perform all the operations one by one on the HVchannels. Clearly we can optimize this as we learn more about ezca.MODIFICATIONS:
Jan 25, 99: adding protections for groups consisting of modules with bulk supplies in the form of if ( (*it)->hasBulkSupply() == false || (*it)->isBulkSupply() )
CW
~HVgroup()
Adding and removing channels/modules to/from the group
int addChannel( HVchannel *pChannel )
hvcOpFailed if the channel is already in the group,
hvBadModuleType if the channel is from a different type than the group.
int removeChannel( HVchannel *pChannel )
hvcOpFailed if the channel is not in the group.
int removeChannel( const char *pcChannelName )
hvcOpFailed if the channel is not in the group.
int addModule( HVmodule *pModule )
hvcOpFailed if some or all of the channel of the module is/are already in the group.
hvcNoElementNotFound if no element was found.
int removeModule( HVmodule *pModule )
hvcOpFailed if some or all of the channel of the module is/are not in the group,
int removeModule( const char* pcModuleName )
hvcOpFailed if some or all of the channel of the module is/are not in the group,
hvcBadModuleType if the channel is from a different type than the group.
Accessors to the group
pstring getName()
pstring getType()
pstring getNbElements()
int getLastOpStatus()
void dumpGroup( ostream &os = cout )
bool ChannelInGroup( const char *pcName )
HVchannel* getChannel( const char* pcName )
int getChannels( list<HVchannel*> &theList )
Reading values from the EPICS IOC record
int getSetpoint( list< pair< HVchannel*, HVsetpoint > >& listOfPairs )
int getReadback( list< pair< HVchannel*, HVreadback > >& listOfPairs )
int getCurrent( list< pair< HVchannel*, double > >& listOfPairs )
int getVoltage( list< pair< HVchannel*, double > >& listOfPairs )
int getDemandVoltage( list< pair< HVchannel*, double > >& listOfPairs )
int getRampUpRate( list< pair< HVchannel*, double > >& listOfPairs )
int getRampDownRate( list< pair< HVchannel*, double > >& listOfPairs )
int getTripCurrent( list< pair< HVchannel*, double > >& listOfPairs )
int getEnabled( list< pair< HVchannel*, bool > >& listOfPairs )
int getChannelStatus( list< pair< HVchannel*, int > >& listOfPairs )
int getMeasuredVoltageDeadZone( list< pair< HVchannel*, double > >& listOfPairs )
int getMeasuredCurrentDeadZone( list< pair< HVchannel*, double > >& listOfPairs )
int getHighVoltageLimit( list< pair< HVchannel*, double > >& listOfPairs )
int getRampTripEnable( list< pair< HVchannel1471*, bool> >& listOfPairs )
int getPeakCurrent( list< pair< HVchannel1471*, double> >& listOfPairs )
int getPeakTripCurrent( list< pair< HVchannel1471*, double> >& listOfPairs )
Writing values into the EPICS IOC record
int setSetpoint( HVsetpoint &setpoint )
int Enable()
int Disable()
int setDemandVoltage( double dVoltage )
int setRampUpRate( double dRampRate )
int setRampDownRate( double dRampRate )
int setTripCurrent( double dTripCurrent )
int set1469TripCurrent( double dBulkCurrent, double dChanCurrent )
int setMeasuredVoltageDeadZone( double dVoltage )
int setMeasuredCurrentDeadZone( double dVoltage )
int set1469MCDZ( double dBulkCurrent, double dChanCurrent )
int setRampTripEnable( bool bRTE )
int setPeakTripCurrent( double dPTC )
To store and retrieve readbacks and setpoints from the database
int storeSetpoint( list< pair< HVchannel*, HVsetpoint > >& listOfPairs, struct tm *stmTime = NULL )
int storeSetpoint( HVsetpoint &sp, struct tm *stmTime = NULL )
int storeReadback( list< pair< HVchannel*, HVreadback > >& listOfPairs, struct tm *stmTime = NULL )
list < HVchannel*> ::iterator findChannel( HVchannel *pChannel )
list < HVchannel*> ::iterator findChannelByName( const char *name )
pstring pcName
pstring pcType
int iStatus
list < HVchannel* > myChannels
this page has been generated automatically by doc++
(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de