From ca9f58d2cf0ccff190acdf4989f9d61ff5ecbc5c Mon Sep 17 00:00:00 2001 From: Marty Kraimer Date: Mon, 2 May 1994 10:54:21 +0000 Subject: [PATCH] added dbReportDeviceConfig --- src/db/dbStaticLib.c | 60 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/src/db/dbStaticLib.c b/src/db/dbStaticLib.c index 99c6f7195..077b515cd 100644 --- a/src/db/dbStaticLib.c +++ b/src/db/dbStaticLib.c @@ -3053,6 +3053,66 @@ int modOnly; dbFinishEntry(pdbentry); } +static char *bus[VXI_IO+1] = {"","","VME","CAMAC","AB", + "GPIB","BITBUS","","","","","","INST","BBGPIB","VXI"}; +#ifdef __STDC__ +void dbReportDeviceConfig(DBBASE *pdbbase,FILE *report) +#else +void dbReportDeviceConfig(pdbbase,report) +DBBASE *pdbbase; +FILE *report; +#endif /*__STDC__*/ +{ + DBENTRY dbentry; + DBENTRY *pdbentry=&dbentry; + long status; + char busName[40]; + char linkValue[40]; + char dtypValue[40]; + char cvtValue[40]; + int ilink,nlinks; + struct link *plink; + + dbInitEntry(pdbbase,pdbentry); + status = dbFirstRecdes(pdbentry); + while(!status) { + status = dbFirstRecord(pdbentry); + while(!status) { + nlinks = dbGetNLinks(pdbentry); + for(ilink=0; ilinkpfield; + strcpy(busName,bus[plink->type]); + if(strlen(busName)==0) continue; + strcpy(linkValue,dbGetString(pdbentry)); + status = dbFindField(pdbentry,"DTYP"); + if(status) break; + strcpy(dtypValue,dbGetString(pdbentry)); + status = dbFindField(pdbentry,"LINR"); + if(status || *((short *)pdbentry->pfield) <=1 ) { + cvtValue[0] = 0; + } else { + strcpy(cvtValue,"cvt("); + status = dbFindField(pdbentry,"EGUL"); + if(!status) strcat(cvtValue,dbGetString(pdbentry)); + status = dbFindField(pdbentry,"EGUH"); + if(!status) strcat(cvtValue,dbGetString(pdbentry)); + strcat(cvtValue,")"); + } + fprintf(report,"%-8s %-20s %-20s %-20s %-s\n", + busName,linkValue,dtypValue, + dbGetRecordName(pdbentry),cvtValue); + break; + } + status = dbNextRecord(pdbentry); + } + status = dbNextRecdes(pdbentry); + } + dbFinishEntry(pdbentry); + return; +} + /* Read/Write routines*/ /* Loads self defining records */