Breakpoint Tables were not working
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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"};
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user