diff --git a/src/db/dbCommon.dbd b/src/db/dbCommon.dbd index 4291bf31d..86cc22291 100644 --- a/src/db/dbCommon.dbd +++ b/src/db/dbCommon.dbd @@ -92,13 +92,13 @@ prompt("Alarm Status") special(SPC_NOMOD) menu(menuAlarmStat) - initial("17") + initial("UDF") } field(SEVR,DBF_MENU) { prompt("Alarm Severity") special(SPC_NOMOD) menu(menuAlarmSevr) - initial("3") + initial("INVALID") } field(NSTA,DBF_MENU) { prompt("New Alarm Status") @@ -123,7 +123,7 @@ special(SPC_NOMOD) interest(2) menu(menuYesNo) - initial("1") + initial("YES") } field(DISS,DBF_MENU) { prompt("Disable Alarm Sevrty") diff --git a/src/db/dbTest.c b/src/db/dbTest.c index 05dd5b6e7..c31212efc 100644 --- a/src/db/dbTest.c +++ b/src/db/dbTest.c @@ -108,15 +108,6 @@ static void dbpr_msgOut(TAB_BUFFER *pMsgBuff,int tab_size); static void dbpr_init_msg(TAB_BUFFER *pMsgBuff,int tab_size); static void dbpr_insert_msg(TAB_BUFFER *pMsgBuff,int len,int tab_size); static void dbpr_msg_flush(TAB_BUFFER *pMsgBuff,int tab_size); -static void dbprReportLink( - TAB_BUFFER *pMsgBuff,char *precord_name, char *pfield_name, - struct link *plink, short field_type,int tab_size); -static void dbprReportMenu( - TAB_BUFFER *pMsgBuff,struct dbCommon *precord,dbFldDes *pdbFldDes, - unsigned short choice_value,int tab_size); -static void dbprReportDevice( - TAB_BUFFER *pMsgBuff,struct dbCommon *precord,dbFldDes *pdbFldDes, - unsigned short choice_value,int tab_size); long dba(char*pname) { @@ -1035,7 +1026,16 @@ static int dbpr_report( short n2; void *pfield; char *pfield_name; + DBENTRY dbentry; + DBENTRY *pdbentry = &dbentry; + long status; + dbInitEntry(pdbbase,pdbentry); + status = dbFindRecord(pdbentry,pname); + if(status) { + errMessage(status,pname); + return(-1); + } pmsg = pMsgBuff->message; for (n2 = 0; n2 <= pdbRecordType->no_fields - 1; n2++) { pdbFldDes = pdbRecordType->papFldDes[pdbRecordType->sortFldInd[n2]]; @@ -1045,32 +1045,39 @@ static int dbpr_report( continue; switch (pdbFldDes->field_type) { case DBF_STRING: - sprintf(pmsg, "%s: %s", pfield_name, (char *)pfield); - dbpr_msgOut(pMsgBuff, tab_size); - break; case DBF_USHORT: - sprintf(pmsg, "%s: 0x%-8X", pfield_name, - *(unsigned short *) pfield); - dbpr_msgOut(pMsgBuff, tab_size); - break; case DBF_ENUM: - sprintf(pmsg, "%s: %d", pfield_name, - *(unsigned short *) pfield); - dbpr_msgOut(pMsgBuff, tab_size); - break; case DBF_FLOAT: - sprintf(pmsg, "%s: %-12.4G", pfield_name, - *(float *) pfield); - dbpr_msgOut(pMsgBuff, tab_size); - break; case DBF_CHAR: - sprintf(pmsg, "%s: %d", pfield_name, *(char *) pfield); + case DBF_UCHAR: + case DBF_SHORT: + case DBF_LONG: + case DBF_ULONG: + case DBF_DOUBLE: + case DBF_MENU: + case DBF_DEVICE: + status = dbFindField(pdbentry,pfield_name); + sprintf(pmsg, "%s: %s", pfield_name, dbGetString(pdbentry)); dbpr_msgOut(pMsgBuff, tab_size); break; - case DBF_UCHAR: - sprintf(pmsg, "%s: %d", pfield_name, - *(unsigned char *) pfield); - dbpr_msgOut(pMsgBuff, tab_size); + case DBF_INLINK: + case DBF_OUTLINK: + case DBF_FWDLINK: { + DBLINK *plink = (DBLINK *)pfield; + int ind; + + status = dbFindField(pdbentry,pfield_name); + for(ind=0; indtype) break; + } + if(ind>=LINK_NTYPES) { + sprintf(pmsg,"%4s: Illegal Link Type", pfield_name); + } else { + sprintf(pmsg,"%s:%s %s", pfield_name, + pamaplinkType[ind].strvalue,dbGetString(pdbentry)); + } + dbpr_msgOut(pMsgBuff, tab_size); + } break; case DBF_NOACCESS: { /* lets just print field in hex */ @@ -1092,38 +1099,6 @@ static int dbpr_report( dbpr_msgOut(pMsgBuff, tab_size); } break; - case DBF_SHORT: - sprintf(pmsg, "%s: %d", pfield_name, *(short *) pfield); - dbpr_msgOut(pMsgBuff, tab_size); - break; - case DBF_LONG: - sprintf(pmsg, "%s: 0x%-8X", pfield_name, *(long *) pfield); - dbpr_msgOut(pMsgBuff, tab_size); - break; - case DBF_ULONG: - sprintf(pmsg, "%s: 0x%-8X", pfield_name, - *(unsigned long *) pfield); - dbpr_msgOut(pMsgBuff, tab_size); - break; - case DBF_DOUBLE: - sprintf(pmsg, "%s: %-12.4G", pfield_name, - *(double *) pfield); - dbpr_msgOut(pMsgBuff, tab_size); - break; - case DBF_MENU: - dbprReportMenu(pMsgBuff, paddr->precord, pdbFldDes, - *(unsigned short *)pfield, tab_size); - break; - case DBF_DEVICE: - dbprReportDevice(pMsgBuff, paddr->precord, pdbFldDes, - *(unsigned short *)pfield, tab_size); - break; - case DBF_INLINK: - case DBF_OUTLINK: - case DBF_FWDLINK: - dbprReportLink(pMsgBuff, paddr->precord->name,pfield_name, - (struct link *) pfield, pdbFldDes->field_type, tab_size); - break; default: sprintf(pmsg, "%s: dbpr: Unknown field_type", pfield_name); dbpr_msgOut(pMsgBuff, tab_size); @@ -1132,6 +1107,7 @@ static int dbpr_report( } pmsg[0] = '\0'; dbpr_msgOut(pMsgBuff, tab_size); + dbFinishEntry(pdbentry); return (0); } @@ -1230,77 +1206,6 @@ static void dbpr_msg_flush(TAB_BUFFER *pMsgBuff,int tab_size) return; } -static void dbprReportLink( - TAB_BUFFER *pMsgBuff,char *precordname,char *pfield_name, - struct link *plink, short field_type,int tab_size) -{ - char *pmsg = pMsgBuff->message; - DBENTRY dbEntry; - DBENTRY *pdbEntry; - long status; - char *pvalue; - - pdbEntry = &dbEntry; - dbInitEntry(pdbbase,pdbEntry); - status = dbFindRecord(pdbEntry,precordname); - if(!status) status = dbFindField(pdbEntry,pfield_name); - if(status) { - sprintf(pmsg,"%4s: dbGetString Failed", pfield_name); - } else { - int ind; - - for(ind=0; indtype) break; - } - if(ind>=LINK_NTYPES) { - sprintf(pmsg,"%4s: Illegal Link Type", pfield_name); - } else { - pvalue = dbGetString(pdbEntry); - sprintf(pmsg,"%4s:%s %s", - pfield_name, - pamaplinkType[ind].strvalue, - pvalue); - } - } - dbpr_msgOut(pMsgBuff,tab_size); - dbFinishEntry(&dbEntry); - return; -} - -static void dbprReportMenu( - TAB_BUFFER *pMsgBuff,struct dbCommon *precord,dbFldDes *pdbFldDes, - unsigned short value,int tab_size) -{ - dbMenu *pdbMenu = (dbMenu *)pdbFldDes->ftPvt; - char *pmsg = pMsgBuff->message; - - if(!pdbMenu) { - sprintf(pmsg,"%s menu not found",pdbFldDes->name); - } else { - sprintf(pmsg,"%4s: %s",pdbFldDes->name,pdbMenu->papChoiceValue[value]); - } - dbpr_msgOut(pMsgBuff,tab_size); - return; -} - -static void dbprReportDevice( - TAB_BUFFER *pMsgBuff,struct dbCommon *precord,dbFldDes *pdbFldDes, - unsigned short value,int tab_size) -{ - dbDeviceMenu *pdbDeviceMenu = (dbDeviceMenu *)pdbFldDes->ftPvt; - char *pmsg = pMsgBuff->message; - - if(!pdbDeviceMenu) { - sprintf(pmsg,"%s menu not found",pdbFldDes->name); - } else if(pdbDeviceMenu->nChoice>0) { - sprintf(pmsg,"%4s: %s",pdbFldDes->name,pdbDeviceMenu->papChoice[value]); - } else { - sprintf(pmsg,"DTYP: none"); - } - dbpr_msgOut(pMsgBuff,tab_size); - return; -} - /* * Call dbProcess() 100 times to make * sure Measurement is accurate, since