Fixed for new dbStaticLib routines
This commit is contained in:
+70
-53
@@ -701,9 +701,6 @@ static void printBuffer(
|
||||
unsigned short stat,
|
||||
severity;
|
||||
long precision;
|
||||
unsigned long epoch_seconds;
|
||||
unsigned long nano_seconds;
|
||||
unsigned long no_strs;
|
||||
short svalue;
|
||||
unsigned short usvalue;
|
||||
char *pmsg;
|
||||
@@ -713,103 +710,123 @@ static void printBuffer(
|
||||
|
||||
if (reqOptions & DBR_STATUS) {
|
||||
if (retOptions & DBR_STATUS) {
|
||||
stat = *((unsigned short *) pbuffer);
|
||||
severity = *((unsigned short *) (pbuffer + 2));
|
||||
printf("status=%u severity=%u\n", stat, severity);
|
||||
struct dbr_status *pdbr_status = (void *)pbuffer;
|
||||
|
||||
printf("status=%u severity=%u\n",
|
||||
pdbr_status->status, pdbr_status->severity);
|
||||
} else
|
||||
printf("status and severity not returned\n");
|
||||
pbuffer += dbr_status_size;
|
||||
}
|
||||
if (reqOptions & DBR_UNITS) {
|
||||
if (retOptions & DBR_UNITS)
|
||||
printf("units=%-8s\n", pbuffer);
|
||||
else
|
||||
if (retOptions & DBR_UNITS) {
|
||||
struct dbr_units *pdbr_units = (void *)pbuffer;
|
||||
|
||||
printf("units=%-8s\n", &pdbr_units->units[0]);
|
||||
}else{
|
||||
printf("units not returned\n");
|
||||
}
|
||||
pbuffer += dbr_units_size;
|
||||
}
|
||||
if (reqOptions & DBR_PRECISION) {
|
||||
precision = *((long *) pbuffer);
|
||||
if (retOptions & DBR_PRECISION)
|
||||
printf("precision=%ld\n", precision);
|
||||
else
|
||||
if (retOptions & DBR_PRECISION){
|
||||
struct dbr_precision *pdbr_precision = (void *)pbuffer;
|
||||
|
||||
printf("precision=%ld\n", pdbr_precision->precision);
|
||||
}else{
|
||||
printf("precision not returned\n");
|
||||
}
|
||||
pbuffer += dbr_precision_size;
|
||||
}
|
||||
if (reqOptions & DBR_TIME) {
|
||||
epoch_seconds = *((unsigned long *) pbuffer);
|
||||
nano_seconds = *((unsigned long *) (pbuffer + 4));
|
||||
if (retOptions & DBR_TIME)
|
||||
printf("time=%lu %lu\n", epoch_seconds, nano_seconds);
|
||||
else
|
||||
if (retOptions & DBR_TIME) {
|
||||
struct dbr_time *pdbr_time = (void *)pbuffer;
|
||||
|
||||
printf("time=%lu %lu\n", pdbr_time->time.secPastEpoch,
|
||||
pdbr_time->time.nsec);
|
||||
}else{
|
||||
printf("time not returned\n");
|
||||
}
|
||||
pbuffer += dbr_time_size;
|
||||
}
|
||||
if (reqOptions & DBR_ENUM_STRS) {
|
||||
if (retOptions & DBR_ENUM_STRS) {
|
||||
no_strs = *((unsigned long *) pbuffer);
|
||||
printf("no_strs=%lu\n", no_strs);
|
||||
for (i = 0; i < *((unsigned long *) pbuffer); i++)
|
||||
printf("%s\n", (pbuffer + 8 + i * 26));
|
||||
struct dbr_enumStrs *pdbr_enumStrs = (void *)pbuffer;
|
||||
|
||||
printf("no_strs=%lu\n", pdbr_enumStrs->no_str);
|
||||
for (i = 0; i <pdbr_enumStrs->no_str; i++)
|
||||
printf("%s\n",&pdbr_enumStrs->strs[i][0]);
|
||||
} else
|
||||
printf("enum strings not returned\n");
|
||||
pbuffer += dbr_enumStrs_size;
|
||||
}
|
||||
if (reqOptions & DBR_GR_LONG) {
|
||||
if (retOptions & DBR_GR_LONG)
|
||||
printf("grLong: %ld %ld\n",
|
||||
*(long *) (pbuffer),
|
||||
*(long *) (pbuffer + 4));
|
||||
else
|
||||
if (retOptions & DBR_GR_LONG) {
|
||||
struct dbr_grLong *pdbr_grLong = (void *)pbuffer;
|
||||
|
||||
printf("grLong: %ld %ld\n",pdbr_grLong->upper_disp_limit,
|
||||
pdbr_grLong->lower_disp_limit);
|
||||
}else{
|
||||
printf("DBRgrLong not returned\n");
|
||||
}
|
||||
pbuffer += dbr_grLong_size;
|
||||
}
|
||||
if (reqOptions & DBR_GR_DOUBLE) {
|
||||
if (retOptions & DBR_GR_DOUBLE)
|
||||
printf("grDouble: %lg %lg\n",
|
||||
*(double *) (pbuffer),
|
||||
*(double *) (pbuffer + 8));
|
||||
else
|
||||
if (retOptions & DBR_GR_DOUBLE) {
|
||||
struct dbr_grDouble *pdbr_grDouble = (void *)pbuffer;
|
||||
|
||||
printf("grDouble: %lg %lg\n",pdbr_grDouble->upper_disp_limit,
|
||||
pdbr_grDouble->lower_disp_limit);
|
||||
}else{
|
||||
printf("DBRgrDouble not returned\n");
|
||||
}
|
||||
pbuffer += dbr_grDouble_size;
|
||||
}
|
||||
if (reqOptions & DBR_CTRL_LONG) {
|
||||
if (retOptions & DBR_CTRL_LONG)
|
||||
printf("ctrlLong: %ld %ld\n",
|
||||
*(long *) (pbuffer),
|
||||
*(long *) (pbuffer + 4));
|
||||
else
|
||||
if (retOptions & DBR_CTRL_LONG){
|
||||
struct dbr_ctrlLong *pdbr_ctrlLong = (void *)pbuffer;
|
||||
|
||||
printf("ctrlLong: %ld %ld\n",pdbr_ctrlLong->upper_ctrl_limit,
|
||||
pdbr_ctrlLong->lower_ctrl_limit);
|
||||
}else{
|
||||
printf("DBRctrlLong not returned\n");
|
||||
}
|
||||
pbuffer += dbr_ctrlLong_size;
|
||||
}
|
||||
if (reqOptions & DBR_CTRL_DOUBLE) {
|
||||
if (retOptions & DBR_CTRL_DOUBLE)
|
||||
printf("ctrlDouble: %lg %lg\n",
|
||||
*(double *) (pbuffer),
|
||||
*(double *) (pbuffer + 8));
|
||||
else
|
||||
if (retOptions & DBR_CTRL_DOUBLE) {
|
||||
struct dbr_ctrlDouble *pdbr_ctrlDouble = (void *)pbuffer;
|
||||
|
||||
printf("ctrlDouble: %lg %lg\n",pdbr_ctrlDouble->upper_ctrl_limit,
|
||||
pdbr_ctrlDouble->lower_ctrl_limit);
|
||||
}else{
|
||||
printf("DBRctrlDouble not returned\n");
|
||||
}
|
||||
pbuffer += dbr_ctrlDouble_size;
|
||||
}
|
||||
if (reqOptions & DBR_AL_LONG) {
|
||||
if (retOptions & DBR_AL_LONG)
|
||||
if (retOptions & DBR_AL_LONG) {
|
||||
struct dbr_alLong *pdbr_alLong = (void *)pbuffer;
|
||||
|
||||
printf("alLong: %ld %ld %ld %ld\n",
|
||||
*(long *) (pbuffer),
|
||||
*(long *) (pbuffer + 4),
|
||||
*(long *) (pbuffer + 8),
|
||||
*(long *) (pbuffer + 12));
|
||||
else
|
||||
pdbr_alLong->upper_alarm_limit,pdbr_alLong->upper_warning_limit,
|
||||
pdbr_alLong->lower_warning_limit,pdbr_alLong->lower_alarm_limit);
|
||||
}else{
|
||||
printf("DBRalLong not returned\n");
|
||||
}
|
||||
pbuffer += dbr_alLong_size;
|
||||
}
|
||||
if (reqOptions & DBR_AL_DOUBLE) {
|
||||
if (retOptions & DBR_AL_DOUBLE)
|
||||
if (retOptions & DBR_AL_DOUBLE) {
|
||||
struct dbr_alDouble *pdbr_alDouble = (void *)pbuffer;
|
||||
|
||||
printf("alDouble: %lg %lg %lg %lg\n",
|
||||
*(double *) (pbuffer),
|
||||
*(double *) (pbuffer + 8),
|
||||
*(double *) (pbuffer + 16),
|
||||
*(double *) (pbuffer + 24));
|
||||
else
|
||||
pdbr_alDouble->upper_alarm_limit,pdbr_alDouble->upper_warning_limit,
|
||||
pdbr_alDouble->lower_warning_limit,pdbr_alDouble->lower_alarm_limit);
|
||||
}else{
|
||||
printf("DBRalDouble not returned\n");
|
||||
}
|
||||
pbuffer += dbr_alDouble_size;
|
||||
}
|
||||
/* Now print values */
|
||||
|
||||
+32
-32
@@ -383,39 +383,40 @@ static long initDatabase(void)
|
||||
}
|
||||
for(i=0; i< (precHeader->number); i++) {
|
||||
if(!(precLoc = precHeader->papRecLoc[i]))continue;
|
||||
if(!(prset=GET_PRSET(precSup,i))) {
|
||||
strcpy(name,precType->papName[i]);
|
||||
strcat(name,"RSET");
|
||||
strcpy(message,"record support entry table not found for ");
|
||||
strcat(message,name);
|
||||
status = S_rec_noRSET;
|
||||
errMessage(status,message);
|
||||
continue;
|
||||
}
|
||||
prset = GET_PRSET(precSup,i);
|
||||
precTypDes = precDes->papRecTypDes[i];
|
||||
pdevSup = GET_PDEVSUP(pdbBase->precDevSup,i);
|
||||
for(precNode=(RECNODE *)ellFirst(precLoc->preclist);
|
||||
precNode; precNode = (RECNODE *)ellNext(&precNode->node)) {
|
||||
precord = precNode->precord;
|
||||
/* If NAME is null then skip this record*/
|
||||
if(!(precord->name[0])) continue;
|
||||
/*initialize fields rset*/
|
||||
(struct rset *)(precord->rset) = prset;
|
||||
/* initialize mlok and mlis*/
|
||||
FASTLOCKINIT(&precord->mlok);
|
||||
ellInit(&(precord->mlis));
|
||||
precord->pact=FALSE;
|
||||
/* set lset=0 See determine lock set below*/
|
||||
precord->lset = 0;
|
||||
/* Init DSET NOTE that result may be NULL*/
|
||||
precord->dset=(struct dset *)GET_PDSET(pdevSup,precord->dtyp);
|
||||
/* call record support init_record routine - First pass */
|
||||
rtnval = dbCommonInit(precord,0);
|
||||
if(!(precSup->papRset[i]->init_record)) continue;
|
||||
rtnval = (*(precSup->papRset[i]->init_record))(precord,0);
|
||||
if(status==0) status = rtnval;
|
||||
}
|
||||
precNode; precNode = (RECNODE *)ellNext(&precNode->node)) {
|
||||
if(!prset) {
|
||||
strcpy(name,precType->papName[i]);
|
||||
strcat(name,"RSET");
|
||||
strcpy(message,"record support entry table not found for ");
|
||||
strcat(message,name);
|
||||
status = S_rec_noRSET;
|
||||
errMessage(status,message);
|
||||
break;
|
||||
}
|
||||
precord = precNode->precord;
|
||||
/* If NAME is null then skip this record*/
|
||||
if(!(precord->name[0])) continue;
|
||||
/*initialize fields rset*/
|
||||
(struct rset *)(precord->rset) = prset;
|
||||
/* initialize mlok and mlis*/
|
||||
FASTLOCKINIT(&precord->mlok);
|
||||
ellInit(&(precord->mlis));
|
||||
precord->pact=FALSE;
|
||||
/* set lset=0 See determine lock set below*/
|
||||
precord->lset = 0;
|
||||
/* Init DSET NOTE that result may be NULL*/
|
||||
precord->dset=(struct dset *)GET_PDSET(pdevSup,precord->dtyp);
|
||||
/* call record support init_record routine - First pass */
|
||||
rtnval = dbCommonInit(precord,0);
|
||||
if(!(precSup->papRset[i]->init_record)) continue;
|
||||
rtnval = (*(precSup->papRset[i]->init_record))(precord,0);
|
||||
if(status==0) status = rtnval;
|
||||
}
|
||||
}
|
||||
/* Second pass to resolve links*/
|
||||
for(i=0; i< (precHeader->number); i++) {
|
||||
if(!(precLoc = precHeader->papRecLoc[i]))continue;
|
||||
@@ -860,9 +861,8 @@ int dbLoad(char * pfilename)
|
||||
fclose(fp);
|
||||
gotSdrSum = TRUE;
|
||||
}
|
||||
if(strcmp(pdbBase->psdrSum->allSdrSums,sdrSum.allSdrSums)!=0) {
|
||||
printf("pdbBase->psdrSum->allSdrSums = |%s|\n",pdbBase->psdrSum->allSdrSums);
|
||||
printf("sdrSum.allSdrSums = |%s|\n",sdrSum.allSdrSums);
|
||||
if(strncmp(pdbBase->psdrSum->allSdrSums,sdrSum.allSdrSums,
|
||||
strlen(pdbBase->psdrSum->allSdrSums))!=0) {
|
||||
errMessage(-1,"dbLoad: check sdrSum Error: Database out of date");
|
||||
return(-1);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user