chid chan;
char *pPVName;
- *size = 0;
if((status = ca_task_initialize()) != ECA_NORMAL) {
Param_strerror((Param *) my, ca_message(status));
retVal = -1;
found = 0;
retVal = 0;
}
+ *val = tmpfile();
if(found == 1) {
ParamBlobResult resultS, *result = &resultS;
result->val = val;
# Targets #
###########
-daq_file_param_cas : ../../file/libfileParam.a
+daq_file_param_cas : $(OBJS) ../../file/libfileParam.a
$(MAKE) daq_param_cas "LOADLIBES=-L../../file -lfileParam $(LOADLIBES)"
$(MV) daq_param_cas $@
-daq_ora_param_cas : ../../ora/liboraParam.a
+daq_ora_param_cas : $(OBJS) ../../ora/liboraParam.a
$(MAKE) daq_param_cas \
"LOADLIBES=-L../../ora -loraParam -L$(ORACLE_HOME)/lib \
-lsql -lclntsh -lcommon -lcore4 -lnlsrtl3 $(LOADLIBES)"
$(MV) daq_param_cas $@
-daq_psql_param_cas : ../../psql/libpsqlParam.a
+daq_psql_param_cas : $(OBJS) ../../psql/libpsqlParam.a
$(MAKE) daq_param_cas \
"LOADLIBES=-L../../psql -lpsqlParam -lpq -lcrypt $(LOADLIBES)"
$(MV) daq_param_cas $@
-daq_tcl_param_cas : ../../tcl/libtclParam.a
+daq_tcl_param_cas : $(OBJS) ../../tcl/libtclParam.a
$(MAKE) daq_param_cas \
"LOADLIBES=-L../../tcl -ltclParam -ltcl -lm -ldl $(LOADLIBES)"
$(MV) daq_param_cas $@
-daq_param_cas : $(OBJS)
- $(CXX) $(LDFLAGS) $^ $(LOADLIBES) -o $@
+daq_param_cas :
+ $(CXX) $(LDFLAGS) $(OBJS) $(LOADLIBES) -o $@
paramServer.o: paramServer.cc paramRecordSet.h \
paramRecord.h record.h
}
}
-aitBool ParamBlobRecord::paramDoesReallyExist()
+epicsShareFunc aitEnum ParamRecord::bestExternalType() const
{
- aitBool retVal = aitFalse;
- for (int k = 0 ; k < PARAM_MAX_ARRAY_LEN ; k++) {
- ourValue[k] = new char[PARAM_MAX_VALUE_LEN];
- }
-
- int rows;
-
- if((Param_getStringArray(param, name, idx, PARAM_MAX_ARRAY_LEN, &rows, ourValue) == 0) && (rows > 0)) {
- index = rows;
- retVal = aitTrue;
- }
-
- for(int k = index ; k < PARAM_MAX_ARRAY_LEN ; k++) {
- delete ourValue[k];
- }
- return retVal;
+ return aitEnumUint32;
}
epicsShareFunc unsigned ParamBlobRecord::maxDimension() const
ParamBlobRecord(caServer&, const Param *, const char *, const char *);
~ParamBlobRecord();
- aitBool paramDoesReallyExist();
+ epicsShareFunc aitEnum bestExternalType() const;
epicsShareFunc unsigned maxDimension() const;
epicsShareFunc aitIndex maxBound(unsigned int) const;
gddAppFuncTableStatus readValue(gdd &);
}
}
-aitBool ParamFilenameRecord::paramDoesReallyExist()
+epicsShareFunc aitEnum ParamRecord::bestExternalType() const
{
- aitBool retVal = aitFalse;
- for (int k = 0 ; k < PARAM_MAX_ARRAY_LEN ; k++) {
- ourValue[k] = new char[PARAM_MAX_VALUE_LEN];
- }
-
- int rows;
-
- if((Param_getStringArray(param, name, idx, PARAM_MAX_ARRAY_LEN, &rows, ourValue) == 0) && (rows > 0)) {
- index = rows;
- retVal = aitTrue;
- }
-
- for(int k = index ; k < PARAM_MAX_ARRAY_LEN ; k++) {
- delete ourValue[k];
- }
- return retVal;
+ return aitEnumString;
}
epicsShareFunc unsigned ParamFilenameRecord::maxDimension() const
ParamFilenameRecord(caServer&, const Param *, const char *, const char *);
~ParamFilenameRecord();
- aitBool paramDoesReallyExist();
+ epicsShareFunc aitEnum bestExternalType() const;
epicsShareFunc unsigned maxDimension() const;
epicsShareFunc aitIndex maxBound(unsigned int) const;
gddAppFuncTableStatus readValue(gdd &);
}
}
-aitBool ParamIntRecord::paramDoesReallyExist()
+epicsShareFunc aitEnum ParamRecord::bestExternalType() const
{
- aitBool retVal = aitFalse;
- for (int k = 0 ; k < PARAM_MAX_ARRAY_LEN ; k++) {
- ourValue[k] = new char[PARAM_MAX_VALUE_LEN];
- }
-
- int rows;
-
- if((Param_getStringArray(param, name, idx, PARAM_MAX_ARRAY_LEN, &rows, ourValue) == 0) && (rows > 0)) {
- index = rows;
- retVal = aitTrue;
- }
-
- for(int k = index ; k < PARAM_MAX_ARRAY_LEN ; k++) {
- delete ourValue[k];
- }
- return retVal;
+ return aitEnumUint32;
}
epicsShareFunc unsigned ParamIntRecord::maxDimension() const
class ParamIntRecord : public ParamRecord {
private:
aitIndex index;
- char *ourValue[PARAM_MAX_ARRAY_LEN];
+ unsigned long int ourValue[PARAM_MAX_ARRAY_LEN];
gddAppFuncTable<ParamIntRecord> funcTable;
public:
ParamIntRecord(caServer&, const Param *, const char *, const char *);
~ParamIntRecord();
- aitBool paramDoesReallyExist();
+ epicsShareFunc aitEnum bestExternalType() const;
epicsShareFunc unsigned maxDimension() const;
epicsShareFunc aitIndex maxBound(unsigned int) const;
gddAppFuncTableStatus readValue(gdd &);
{
}
-epicsShareFunc aitEnum ParamRecord::bestExternalType() const
-{
- return aitEnumString;
-}
-
const char *ParamRecord::getPVName()
{
return pPVName;
char pPVName[PARAM_MAX_VALUE_LEN];
char name[PARAM_MAX_VALUE_LEN];
char idx[PARAM_MAX_VALUE_LEN];
+
public:
ParamRecord(caServer&, const Param *, const char *, const char *);
~ParamRecord();
const char *getPVName();
- epicsShareFunc aitEnum bestExternalType() const;
virtual gddAppFuncTableStatus readLowCtrl(gdd &);
virtual gddAppFuncTableStatus readHighCtrl(gdd &);
Param *ParamRecordSet::pParam(const char *setup)
{
- for (int i = 0 ; i < numParamSrc ; i++) {
- if (param[i]->setup != NULL) {
- if (strcmp(param[i]->setup, setup) == 0) {
- return param[i];
+ if(setup != NULL) {
+ for (int i = 0 ; i < numParamSrc ; i++) {
+ if (param[i]->setup != NULL) {
+ if (strcmp(param[i]->setup, setup) == 0) {
+ return param[i];
+ }
+ } else {
+ if (setup == NULL) {
+ return param[i];
+ }
}
- } else {
- if (setup == NULL) {
+ }
+ } else {
+ for (int i = 0 ; i < numParamSrc ; i++) {
+ if (param[i]->setup == NULL) {
return param[i];
}
}
}
if(strncmp(pPVName, "HAD:P", strlen("HAD:P")) == 0) {
- sscanf(pPVName, "HAD:P%c:[^:]:[^:]:[^:]", &type, buf1, buf2, buf3);
+ sscanf(pPVName, "HAD:P%c:%[^:]:%[^:]:%[^:]", &type, buf1, buf2, buf3);
if (strcmp(buf3, "") == 0) {
setup = NULL;
} else {
if(pParam(setup) == NULL) {
param[numParamSrc] = new Param;
if (conSetupParam(param[numParamSrc], setup) == 0) {
+ syslog(LOG_INFO, "Constructed new param source: %s", setup);
numParamSrc++;
} else {
desParam(param[numParamSrc]);
}
if(strncmp(pPVName, "HAD:P", strlen("HAD:P")) == 0) {
- sscanf(pPVName, "HAD:P%c:[^:]:[^:]:[^:]", &type, buf1, buf2, buf3);
+ sscanf(pPVName, "HAD:P%c:%[^:]:%[^:]:%[^:]", &type, buf1, buf2, buf3);
if (strcmp(buf3, "") == 0) {
setup = NULL;
} else {
}
}
-aitBool ParamStringRecord::paramDoesReallyExist()
+epicsShareFunc aitEnum ParamRecord::bestExternalType() const
{
- aitBool retVal = aitFalse;
- for (int k = 0 ; k < PARAM_MAX_ARRAY_LEN ; k++) {
- ourValue[k] = new char[PARAM_MAX_VALUE_LEN];
- }
-
- int rows;
-
- if((Param_getStringArray(param, name, idx, PARAM_MAX_ARRAY_LEN, &rows, ourValue) == 0) && (rows > 0)) {
- index = rows;
- retVal = aitTrue;
- }
-
- for(int k = index ; k < PARAM_MAX_ARRAY_LEN ; k++) {
- delete ourValue[k];
- }
- return retVal;
+ return aitEnumString;
}
epicsShareFunc unsigned ParamStringRecord::maxDimension() const
ParamStringRecord(caServer&, const Param *, const char *, const char *);
~ParamStringRecord();
- aitBool paramDoesReallyExist();
+ epicsShareFunc aitEnum bestExternalType() const;
epicsShareFunc unsigned maxDimension() const;
epicsShareFunc aitIndex maxBound(unsigned int) const;
gddAppFuncTableStatus readValue(gdd &);
int conParam(Param *my)
{
- my->strerror = NULL;
- my->setup = NULL;
- my->specParam = malloc(sizeof(OraParam));
- ((OraParam *) (my->specParam))->user = "daq@db-hades.gsi.de";
- ((OraParam *) (my->specParam))->passwd = "daqall";
- return 0;
+ return conSetupParam(my, NULL);
}
void desParam(Param *my)
int conParam(Param *my)
{
- my->strerror = NULL;
- my->setup = NULL;
- return 0;
+ return conSetupParam(my, NULL);
}
void desParam(Param *my)