asyn 4-20
Public Member Functions
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 <paramList.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.
paramValgetParameter (int index)
 Get a parameter from the list by index.
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 valueMask, epicsUInt32 interruptMask)
 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 ()
asynStatus setStatus (int index, asynStatus status)
 Sets the status for a parameter in the parameter library.
asynStatus getStatus (int index, asynStatus *status)
 Returns the status for a parameter in the parameter library.
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  nValues,
asynStandardInterfaces *  pasynInterfaces 
)

Constructor for paramList class.

Parameters:
[in]nValuesNumber of parameters in the list.
[in]pasynInterfacesPointer to asynStandardInterfaces structure, used for callbacks
paramList::~paramList ( )

Destructor for paramList class; frees resources allocated in constructor.


Member Function Documentation

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]addrA 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::callCallbacks ( )
asynStatus paramList::clearUInt32Interrupt ( int  index,
epicsUInt32  mask 
)

Clears the UInt32Interrupt in the parameter library.

Parameters:
[in]indexThe parameter number
[in]maskThe 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]nameThe name of this parameter
[in]typeThe type of this parameter
[out]indexThe 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]nameThe name of this parameter
[out]indexThe 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]indexThe parameter number
[out]valueAddress 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]indexThe parameter number
[out]valueAddress 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]indexThe parameter number
[out]valueAddress of pointer that will contain name string pointer.
Returns:
Returns asynParamBadIndex if the index is not valid
paramVal * paramList::getParameter ( int  index)

Get a parameter from the list by index.

Parameters:
[in]indexThe index of the desired parameter in the list
Returns:
The parameter associated with the input index
Exceptions:
ParamListInvalidIndexif the index is outside the list boundaries
asynStatus paramList::getStatus ( int  index,
asynStatus *  status 
)

Returns the status for a parameter in the parameter library.

Parameters:
[in]indexThe parameter number
[out]statusAddress of status to get
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]indexThe parameter number
[in]maxCharsMaximum number of characters to return.
[out]valueAddress 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]indexThe parameter number
[out]valueAddress of value to get.
[in]maskThe 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]indexThe parameter number
[out]maskThe address of the interrupt mask to return.
[in]reasonThe 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]fpThe file pointer on which report information will be written
[in]detailsThe 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.
void paramVal::setDouble ( int  index,
double  value 
)

Sets the value for a double in the parameter library.

Parameters:
[in]indexThe parameter number
[in]valueValue to set.
Returns:
Returns asynParamBadIndex if the index is not valid or asynParamWrongType if the parameter type is not asynParamFloat64.
Parameters:
[in]valueValue to set.
Returns:
Returns asynParamBadIndex if the index is not valid or asynParamWrongType if the parameter type is not asynParamFloat64.
void paramVal::setInteger ( int  index,
int  value 
)

Sets the value for an integer in the parameter library.

Sets the value for an integer.

Parameters:
[in]indexThe parameter number
[in]valueValue to set.
Returns:
Returns asynParamBadIndex if the index is not valid or asynParamWrongType if the parametertype is not asynParamInt32.
Parameters:
[in]valueValue to set.
Exceptions:
ParamValWrongTypeif type is not asynParamInt32
asynStatus paramList::setStatus ( int  index,
asynStatus  status 
)

Sets the status for a parameter in the parameter library.

Parameters:
[in]indexThe parameter number
[in]statusStatus to set
Returns:
Returns asynParamBadIndex if the index is not valid
asynStatus paramList::setString ( int  index,
const char *  value 
)

Sets the value for a string in the parameter library.

Parameters:
[in]indexThe parameter number
[out]valueAddress 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  valueMask,
epicsUInt32  interruptMask 
)

Sets the value for an integer in the parameter library.

Parameters:
[in]indexThe parameter number
[in]valueValue to set.
[in]valueMaskMask to use when setting the value.
[in]interruptMaskMask of bits that have changed even if the value has not changed
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]indexThe parameter number
[in]maskThe interrupt mask.
[in]reasonThe 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: