Breakpoint Tables were not working

This commit is contained in:
Marty Kraimer
1996-03-11 16:22:29 +00:00
parent 3e1e1ae6aa
commit 81eac9ddec
4 changed files with 69 additions and 2 deletions

View File

@@ -63,6 +63,7 @@ int main(int argc,char **argv)
dbWriteRecDesFP(pdbbase,stdout,0);
dbWriteDeviceFP(pdbbase,stdout);
dbWriteDriverFP(pdbbase,stdout);
dbWriteBreaktableFP(pdbbase,stdout);
dbWriteRecordFP(pdbbase,stdout,0,0);
return(0);
}

View File

@@ -737,7 +737,7 @@ long dbWriteDeviceFP(DBBASE *pdbbase,FILE *fp)
}
return(0);
}
long dbWriteDriver(DBBASE *pdbbase,const char *filename)
{
FILE *outFile;
@@ -769,6 +769,44 @@ long dbWriteDriverFP(DBBASE *pdbbase,FILE *fp)
return(0);
}
long dbWriteBreaktable(DBBASE *pdbbase,const char *filename)
{
FILE *outFile;
outFile = fopen(filename,"w");
if(!outFile) {
errPrintf(0,__FILE__,__LINE__,"Error opening %s\n",filename);
return(-1);
}
dbWriteBreaktableFP(pdbbase,outFile);
if(fclose(outFile)) {
errPrintf(0,__FILE__,__LINE__,"Error closing %s\n",filename);
}
return(0);
}
long dbWriteBreaktableFP(DBBASE *pdbbase,FILE *fp)
{
brkTable *pbrkTable;
brkInt *pbrkInt;
int ind;
if(!pdbbase) {
fprintf(stderr,"pdbbase not specified\n");
return(-1);
}
for(pbrkTable = (brkTable *)ellFirst(&pdbbase->bptList);
pbrkTable; pbrkTable = (brkTable *)ellNext(&pbrkTable->node)) {
fprintf(fp,"breaktable(%s) {\n",pbrkTable->name);
for(ind=0; ind<pbrkTable->number; ind++) {
pbrkInt = pbrkTable->papBrkInt[ind];
fprintf(fp,"\t%f %f\n",pbrkInt->raw,pbrkInt->eng);
}
fprintf(fp,"}\n");
}
return(0);
}
long dbFindRecdes(DBENTRY *pdbentry,char *rectype)
{
dbBase *pdbbase = pdbentry->pdbbase;
@@ -2825,6 +2863,29 @@ void dbDumpDriver(DBBASE *pdbbase)
}
dbWriteDriverFP(pdbbase,stdout);
}
void dbDumpBreaktable(DBBASE *pdbbase,char *name)
{
brkTable *pbrkTable;
brkInt *pbrkInt;
int ind;
if(!pdbbase) {
fprintf(stderr,"pdbbase not specified\n");
return;
}
for(pbrkTable = (brkTable *)ellFirst(&pdbbase->bptList);
pbrkTable; pbrkTable = (brkTable *)ellNext(&pbrkTable->node)) {
if(name && strcmp(name,pbrkTable->name)!=0) continue;
printf("breaktable(%s) {\n",pbrkTable->name);
for(ind=0; ind<pbrkTable->number; ind++) {
pbrkInt = pbrkTable->papBrkInt[ind];
printf("\t%f %e %f\n",pbrkInt->raw,pbrkInt->slope,pbrkInt->eng);
}
printf("}\n");
}
return;
}
static char *bus[VXI_IO+1] = {"","","VME","CAMAC","AB",
"GPIB","BITBUS","","","","","","INST","BBGPIB","VXI"};

View File

@@ -104,6 +104,8 @@ long dbWriteDevice(DBBASE *pdbbase,const char *filename);
long dbWriteDeviceFP(DBBASE *pdbbase,FILE *fp);
long dbWriteDriver(DBBASE *pdbbase,const char *filename);
long dbWriteDriverFP(DBBASE *pdbbase,FILE *fp);
long dbWriteBreaktable(DBBASE *pdbbase,const char *filename);
long dbWriteBreaktableFP(DBBASE *pdbbase,FILE *fp);
/*Following two routines are obsolete. For now dbRead calls dbAsciiRead.*/
/* dbWrite does nothing */
@@ -171,6 +173,7 @@ void dbDumpRecDes(DBBASE *pdbbase,char *recdesName);
void dbDumpFldDes(DBBASE *pdbbase,char *recdesName,char *fname);
void dbDumpDevice(DBBASE *pdbbase,char *recdesName);
void dbDumpDriver(DBBASE *pdbbase);
void dbDumpBreaktable(DBBASE *pdbbase,char *name);
void dbPvdDump(DBBASE *pdbbase,int verbose);
void dbReportDeviceConfig(DBBASE *pdbbase,FILE *report);

View File

@@ -145,7 +145,9 @@ break_body : '{' break_list '}'
dbBreakBody();
};
break_list: break_list ',' break_item | break_item;
break_list: break_list ',' break_item
| break_list break_item
| break_item;
break_item: tokenSTRING
{