paramList Class Reference

Class to support parameter library (also called parameter list); set and get values indexed by parameter number (pasynUser->reason) and do asyn callbacks when parameters change. More...

#include <asynPortDriver.h>

List of all members.

Public Member Functions

 paramList (int nVals, asynStandardInterfaces *pasynInterfaces)
 Constructor for paramList class.
 ~paramList ()
 Destructor for paramList class; frees resources allocated in constructor.
asynStatus createParam (const char *name, asynParamType type, int *index)
 Adds a new parameter to the parameter library.
asynStatus findParam (const char *name, int *index)
 Finds a parameter in the parameter library.
asynStatus getName (int index, const char **name)
 Returns the name of a parameter from the parameter library.
asynStatus setInteger (int index, int value)
 Sets the value for an integer in the parameter library.
asynStatus setUInt32 (int index, epicsUInt32 value, epicsUInt32 mask)
 Sets the value for an integer in the parameter library.
asynStatus setDouble (int index, double value)
 Sets the value for a double in the parameter library.
asynStatus setString (int index, const char *string)
 Sets the value for a string in the parameter library.
asynStatus getInteger (int index, int *value)
 Returns the value for an integer from the parameter library.
asynStatus getUInt32 (int index, epicsUInt32 *value, epicsUInt32 mask)
 Returns the value for an integer from the parameter library.
asynStatus getDouble (int index, double *value)
 Returns the value for a double from the parameter library.
asynStatus getString (int index, int maxChars, char *value)
 Returns the value for a string from the parameter library.
asynStatus setUInt32Interrupt (int index, epicsUInt32 mask, interruptReason reason)
 Sets the value of the UInt32Interrupt in the parameter library.
asynStatus clearUInt32Interrupt (int index, epicsUInt32 mask)
 Clears the UInt32Interrupt in the parameter library.
asynStatus getUInt32Interrupt (int index, epicsUInt32 *mask, interruptReason reason)
 Returns the UInt32Interrupt from the parameter library.
asynStatus callCallbacks (int addr)
 Calls the registered asyn callback functions for all clients for any parameters that have changed since the last time this function was called.
asynStatus callCallbacks ()
void report (FILE *fp, int details)
 Reports on status of the paramList.


Detailed Description

Class to support parameter library (also called parameter list); set and get values indexed by parameter number (pasynUser->reason) and do asyn callbacks when parameters change.

The parameter class supports 3 types of parameters: int, double and dynamic-length strings.


Constructor & Destructor Documentation

paramList::paramList ( int  nVals,
asynStandardInterfaces *  pasynInterfaces 
)

Constructor for paramList class.

Parameters:
[in] nVals Number of parameters in the list.
[in] pasynInterfaces Pointer to asynStandardInterfaces structure, used for callbacks

paramList::~paramList (  ) 

Destructor for paramList class; frees resources allocated in constructor.


Member Function Documentation

asynStatus paramList::callCallbacks (  ) 

asynStatus paramList::callCallbacks ( int  addr  ) 

Calls the registered asyn callback functions for all clients for any parameters that have changed since the last time this function was called.

Parameters:
[in] addr A client will be called if addr matches the asyn address registered for that client.
Don't do anything if interruptAccept=0. There is a thread that will do all callbacks once when interruptAccept goes to 1.

asynStatus paramList::clearUInt32Interrupt ( int  index,
epicsUInt32  mask 
)

Clears the UInt32Interrupt in the parameter library.

Parameters:
[in] index The parameter number
[in] mask The interrupt mask.
Returns:
Returns asynParamBadIndex if the index is not valid, or asynParamWrongType if the parameter type is not asynParamUInt32Digital

asynStatus paramList::createParam ( const char *  name,
asynParamType  type,
int *  index 
)

Adds a new parameter to the parameter library.

Parameters:
[in] name The name of this parameter
[in] type The type of this parameter
[out] index The parameter number
Returns:
Returns asynParamAlreadyExists if the parameter already exists, or asynBadParamIndex if adding this parameter would exceed the size of the parameter list.

asynStatus paramList::findParam ( const char *  name,
int *  index 
)

Finds a parameter in the parameter library.

Parameters:
[in] name The name of this parameter
[out] index The parameter number
Returns:
Returns asynParamNotFound if name is not found in the parameter list.

asynStatus paramList::getDouble ( int  index,
double *  value 
)

Returns the value for a double from the parameter library.

Parameters:
[in] index The parameter number
[out] value Address of value to get.
Returns:
Returns asynParamBadIndex if the index is not valid, asynParamWrongType if the parameter type is not asynParamFloat64, or asynParamUndefined if the value has not been defined.

asynStatus paramList::getInteger ( int  index,
int *  value 
)

Returns the value for an integer from the parameter library.

Parameters:
[in] index The parameter number
[out] value Address of value to get.
Returns:
Returns asynParamBadIndex if the index is not valid, asynParamWrongType if the parameter type is not asynParamInt32, or asynParamUndefined if the value has not been defined.

asynStatus paramList::getName ( int  index,
const char **  value 
)

Returns the name of a parameter from the parameter library.

Parameters:
[in] index The parameter number
[out] value Address of pointer that will contain name string pointer.
Returns:
Returns asynParamBadIndex if the index is not valid

asynStatus paramList::getString ( int  index,
int  maxChars,
char *  value 
)

Returns the value for a string from the parameter library.

Parameters:
[in] index The parameter number
[in] maxChars Maximum number of characters to return.
[out] value Address of value to get.
Returns:
Returns asynParamBadIndex if the index is not valid, asynParamWrongType if the parameter type is not asynParamOctet, or asynParamUndefined if the value has not been defined.

asynStatus paramList::getUInt32 ( int  index,
epicsUInt32 *  value,
epicsUInt32  mask 
)

Returns the value for an integer from the parameter library.

Parameters:
[in] index The parameter number
[out] value Address of value to get.
[in] mask The mask to use when getting the value.
Returns:
Returns asynParamBadIndex if the index is not valid, asynParamWrongType if the parameter type is not asynParamUInt32Digital, or asynParamUndefined if the value has not been defined.

asynStatus paramList::getUInt32Interrupt ( int  index,
epicsUInt32 *  mask,
interruptReason  reason 
)

Returns the UInt32Interrupt from the parameter library.

Parameters:
[in] index The parameter number
[out] mask The address of the interrupt mask to return.
[in] reason The interrupt reason.
Returns:
Returns asynParamBadIndex if the index is not valid, or asynParamWrongType if the parameter type is not asynParamUInt32Digital

void paramList::report ( FILE *  fp,
int  details 
)

Reports on status of the paramList.

Parameters:
[in] fp The file pointer on which report information will be written
[in] details The level of report detail desired. Prints the number of parameters in the list, and if details >1 also prints the index, data type, name, and value of each parameter.

asynStatus paramList::setDouble ( int  index,
double  value 
)

Sets the value for a double in the parameter library.

Parameters:
[in] index The parameter number
[in] value Value to set.
Returns:
Returns asynParamBadIndex if the index is not valid or asynParamWrongType if the parameter type is not asynParamFloat64.

asynStatus paramList::setInteger ( int  index,
int  value 
)

Sets the value for an integer in the parameter library.

Parameters:
[in] index The parameter number
[in] value Value to set.
Returns:
Returns asynParamBadIndex if the index is not valid or asynParamWrongType if the parametertype is not asynParamInt32.

asynStatus paramList::setString ( int  index,
const char *  value 
)

Sets the value for a string in the parameter library.

Parameters:
[in] index The parameter number
[out] value Address of value to set.
Returns:
Returns asynParamBadIndex if the index is not valid or asynParamWrongType if the parameter type is not asynParamOctet.

asynStatus paramList::setUInt32 ( int  index,
epicsUInt32  value,
epicsUInt32  mask 
)

Sets the value for an integer in the parameter library.

Parameters:
[in] index The parameter number
[in] value Value to set.
[in] mask Mask to use when setting the value.
Returns:
Returns asynParamBadIndex if the index is not valid or asynParamWrongType if the parameter type is not asynParamUInt32Digital.

asynStatus paramList::setUInt32Interrupt ( int  index,
epicsUInt32  mask,
interruptReason  reason 
)

Sets the value of the UInt32Interrupt in the parameter library.

Parameters:
[in] index The parameter number
[in] mask The interrupt mask.
[in] reason The interrupt reason.
Returns:
Returns asynParamBadIndex if the index is not valid, or asynParamWrongType if the parameter type is not asynParamUInt32Digital


The documentation for this class was generated from the following files:

Generated on Thu Jul 29 16:44:05 2010 for asyn by  doxygen 1.5.7.1