From e89653306aca3455365e7ea0db3e1a4d933f4716 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Tue, 3 Oct 2017 15:43:09 +0200 Subject: [PATCH] pdb: consolidate metaLONG w/ metaDOUBLE --- pdbApp/pvif.cpp | 40 ++++++++++++---------------------------- 1 file changed, 12 insertions(+), 28 deletions(-) diff --git a/pdbApp/pvif.cpp b/pdbApp/pvif.cpp index 498dfa5..c6ff047 100644 --- a/pdbApp/pvif.cpp +++ b/pdbApp/pvif.cpp @@ -112,22 +112,6 @@ struct metaTIME { enum {mask = DBR_STATUS | DBR_TIME}; }; -struct metaLONG { - DBRstatus - DBRunits - DBRtime - DBRgrLong - DBRctrlLong - DBRalLong - - // included so that field is present, not actually used - // TODO: split up putMeta() to avoid this.. - DBRprecision - DBRenumStrs - - enum {mask = DBR_STATUS | DBR_UNITS | DBR_TIME | DBR_GR_LONG | DBR_CTRL_LONG | DBR_AL_LONG}; -}; - struct metaDOUBLE { DBRstatus DBRunits @@ -438,19 +422,19 @@ void putMeta(const pvCommon& pv, unsigned dbe, db_field_log *pfl) if(dbe&DBE_PROPERTY) { #undef FMAP #define FMAP(MASK, MNAME, FNAME) if(META::mask&(MASK) && pv.MNAME) pv.MNAME->put(meta.FNAME) - FMAP(DBR_GR_DOUBLE|DBR_GR_LONG, displayHigh, upper_disp_limit); - FMAP(DBR_GR_DOUBLE|DBR_GR_LONG, displayLow, lower_disp_limit); - FMAP(DBR_CTRL_DOUBLE|DBR_CTRL_DOUBLE, controlHigh, upper_ctrl_limit); - FMAP(DBR_CTRL_DOUBLE|DBR_CTRL_DOUBLE, controlLow, lower_ctrl_limit); - FMAP(DBR_GR_DOUBLE|DBR_GR_LONG, egu, units); + FMAP(DBR_GR_DOUBLE, displayHigh, upper_disp_limit); + FMAP(DBR_GR_DOUBLE, displayLow, lower_disp_limit); + FMAP(DBR_CTRL_DOUBLE, controlHigh, upper_ctrl_limit); + FMAP(DBR_CTRL_DOUBLE, controlLow, lower_ctrl_limit); + FMAP(DBR_GR_DOUBLE, egu, units); #undef FMAP #define FMAP(MASK, MNAME, FNAME) if(META::mask&(MASK) && pv.MNAME) pv.MNAME->putFrom(meta.FNAME) // not handling precision until I get a better idea of what 'format' is supposed to be... //FMAP(prec, PVScalar, "display.format", PROPERTY); - FMAP(DBR_AL_DOUBLE|DBR_AL_DOUBLE, warnHigh, upper_warning_limit); - FMAP(DBR_AL_DOUBLE|DBR_AL_DOUBLE, warnLow, lower_warning_limit); - FMAP(DBR_AL_DOUBLE|DBR_AL_DOUBLE, alarmHigh, upper_alarm_limit); - FMAP(DBR_AL_DOUBLE|DBR_AL_DOUBLE, alarmLow, lower_alarm_limit); + FMAP(DBR_AL_DOUBLE, warnHigh, upper_warning_limit); + FMAP(DBR_AL_DOUBLE, warnLow, lower_warning_limit); + FMAP(DBR_AL_DOUBLE, alarmHigh, upper_alarm_limit); + FMAP(DBR_AL_DOUBLE, alarmLow, lower_alarm_limit); #undef FMAP if(pv.enumopts) { pvd::shared_vector strs(meta.no_str); @@ -483,7 +467,7 @@ void findNSMask(pvTimeAlarm& pvmeta, dbChannel *chan, const epics::pvData::PVStr const char *UT = info.info("Q:time:tag"); if(UT && strncmp(UT, "nsec:lsb:", 9)==0) { try{ - pvmeta.nsecMask = epics::pvData::castUnsafe(std::string(&UT[9])); + pvmeta.nsecMask = epics::pvData::castUnsafe(std::string(&UT[9])); }catch(std::exception& e){ std::cerr<name<<" : Q:time:tag nsec:lsb: requires a number not '"<(channel, fld, enclosing); + return new PVIFScalarNumeric(channel, fld, enclosing); case DBR_FLOAT: case DBR_DOUBLE: return new PVIFScalarNumeric(channel, fld, enclosing); @@ -669,7 +653,7 @@ ScalarBuilder::attach(dbChannel *channel, const epics::pvData::PVStructurePtr& r case DBR_USHORT: case DBR_LONG: case DBR_ULONG: - return new PVIFScalarNumeric(channel, fld, enclosing); + return new PVIFScalarNumeric(channel, fld, enclosing); case DBR_FLOAT: case DBR_DOUBLE: return new PVIFScalarNumeric(channel, fld, enclosing);