asyn 4-20
/home/epics/devel/asynR4-20/asyn/asynPortDriver/paramList.h
Go to the documentation of this file.
00001 #ifndef paramList_H
00002 #define paramList_H
00003 
00004 #ifdef __cplusplus
00005 #include "asynStandardInterfaces.h"
00006 #include "asynParamType.h"
00007 #include "paramVal.h"
00008 
00009 
00010 
00016 class paramList {
00017 public:
00018     paramList(int nVals, asynStandardInterfaces *pasynInterfaces);
00019     ~paramList();
00020     paramVal* getParameter(int index);
00021     asynStatus createParam(const char *name, asynParamType type, int *index);
00022     asynStatus findParam(const char *name, int *index);
00023     asynStatus getName(int index, const char **name);
00024     asynStatus setInteger(int index, int value);
00025     asynStatus setUInt32(int index, epicsUInt32 value, epicsUInt32 valueMask, epicsUInt32 interruptMask);
00026     asynStatus setDouble(int index, double value);
00027     asynStatus setString(int index, const char *string);
00028     asynStatus getInteger(int index, int *value);
00029     asynStatus getUInt32(int index, epicsUInt32 *value, epicsUInt32 mask);
00030     asynStatus getDouble(int index, double *value);
00031     asynStatus getString(int index, int maxChars, char *value);
00032     asynStatus setUInt32Interrupt(int index, epicsUInt32 mask, interruptReason reason);
00033     asynStatus clearUInt32Interrupt(int index, epicsUInt32 mask);
00034     asynStatus getUInt32Interrupt(int index, epicsUInt32 *mask, interruptReason reason);
00035     asynStatus callCallbacks(int addr);
00036     asynStatus callCallbacks();
00037     asynStatus setStatus(int index, asynStatus status);
00038     asynStatus getStatus(int index, asynStatus *status);
00039     void report(FILE *fp, int details);
00040 
00041 private:
00042     asynStatus setFlag(int index);
00043     asynStatus int32Callback(int command, int addr);
00044     asynStatus uint32Callback(int command, int addr, epicsUInt32 interruptMask);
00045     asynStatus float64Callback(int command, int addr);
00046     asynStatus octetCallback(int command, int addr);
00047     void registerParameterChange(paramVal *param, int index);
00048     int nextParam;
00049     int nVals;
00050     int nFlags;
00051     asynStandardInterfaces *pasynInterfaces;
00052     int *flags;
00053     paramVal **vals;
00054 };
00055 
00056 #endif /* cplusplus */
00057 
00058 #endif
00059