From 7fd4ac5a67becdb386144e27c4439d99345a80fb Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Mon, 1 Jun 2015 19:19:24 -0400 Subject: [PATCH] update template use waveform as long string use app. name in header and macro name --- src/template/base/Makefile | 2 +- .../top/exampleApp/Db/dbVersionExample.db | 6 +- src/template/base/top/exampleApp/src/Makefile | 8 ++- .../top/exampleApp/src/_APPNAME_Hello.dbd | 2 +- .../base/top/exampleApp/src/devGenVersion.c | 56 +++++++++++++++++++ .../exampleApp/src/devStringInGenVersion.c | 47 ---------------- 6 files changed, 67 insertions(+), 54 deletions(-) create mode 100644 src/template/base/top/exampleApp/src/devGenVersion.c delete mode 100644 src/template/base/top/exampleApp/src/devStringInGenVersion.c diff --git a/src/template/base/Makefile b/src/template/base/Makefile index f2292c4e5..4e7de23d3 100644 --- a/src/template/base/Makefile +++ b/src/template/base/Makefile @@ -32,7 +32,7 @@ TEMPLATES += top/exampleApp/Db/dbVersionExample.db TEMPLATES += top/exampleApp/Db/dbSubExample.db TEMPLATES += top/exampleApp/Db/user.substitutions TEMPLATES += top/exampleApp/src/Makefile -TEMPLATES += top/exampleApp/src/devStringInGenVersion.c +TEMPLATES += top/exampleApp/src/devGenVersion.c TEMPLATES += top/exampleApp/src/xxxRecord.dbd TEMPLATES += top/exampleApp/src/xxxRecord.c TEMPLATES += top/exampleApp/src/devXxxSoft.c diff --git a/src/template/base/top/exampleApp/Db/dbVersionExample.db b/src/template/base/top/exampleApp/Db/dbVersionExample.db index bd1c175df..e86b75dc4 100644 --- a/src/template/base/top/exampleApp/Db/dbVersionExample.db +++ b/src/template/base/top/exampleApp/Db/dbVersionExample.db @@ -1,5 +1,7 @@ -record(stringin, "$(user):version") { - field(DTYP, "My Version") +record(waveform, "$(user):version") { + field(DTYP, "Module Version") field(DESC, "Module version") + field(FTVL, "CHAR") + field(NELM, "$(NELM=200)") field(PINI, "YES") } diff --git a/src/template/base/top/exampleApp/src/Makefile b/src/template/base/top/exampleApp/src/Makefile index a419167b8..0c127999b 100644 --- a/src/template/base/top/exampleApp/src/Makefile +++ b/src/template/base/top/exampleApp/src/Makefile @@ -17,7 +17,7 @@ DBD += xxxSupport.dbd # Compile and add the code to the support library _APPNAME_Support_SRCS += xxxRecord.c _APPNAME_Support_SRCS += devXxxSoft.c -_APPNAME_Support_SRCS += devStringInGenVersion.c +_APPNAME_Support_SRCS += devGenVersion.c # Link locally-provided code into the support library, # rather than directly into the IOC application. @@ -29,7 +29,9 @@ _APPNAME_Support_LIBS += $(EPICS_BASE_IOC_LIBS) # Generate a header which defines a macro with a version string # with the date and time, or a revision id from VCS system if available -GENVERSION = mymodversion.h +GENVERSION = _APPNAME_Version.h +# Macro name +GENVERSIONMACRO = _APPNAME_VERSION #============================= # Build the IOC application @@ -88,4 +90,4 @@ include $(TOP)/configure/RULES # Dependency for the generated header # must be explicit -devStringInGenVersion$(DEP): $(GENVERSION) +devGenVersion$(DEP): $(GENVERSION) diff --git a/src/template/base/top/exampleApp/src/_APPNAME_Hello.dbd b/src/template/base/top/exampleApp/src/_APPNAME_Hello.dbd index 5be6cdc04..47f187050 100644 --- a/src/template/base/top/exampleApp/src/_APPNAME_Hello.dbd +++ b/src/template/base/top/exampleApp/src/_APPNAME_Hello.dbd @@ -1,2 +1,2 @@ registrar(helloRegister) -device(stringin,INST_IO,devSiMyModVersion,"My Version") +device(waveform,INST_IO,devWfMyModVersion,"Module Version") diff --git a/src/template/base/top/exampleApp/src/devGenVersion.c b/src/template/base/top/exampleApp/src/devGenVersion.c new file mode 100644 index 000000000..297b69138 --- /dev/null +++ b/src/template/base/top/exampleApp/src/devGenVersion.c @@ -0,0 +1,56 @@ +/* devGenVersion.c */ +/* Example device support providing the module version string as a charactor array (long string) */ + +#include +#include +#include +#include + +#include "recGbl.h" +#include "alarm.h" +#include "recSup.h" +#include "devSup.h" +#include "menuFtype.h" +#include "waveformRecord.h" + +#include "_APPNAME_Version.h" + +/* must be last include */ +#include "epicsExport.h" + +static long read_wf(waveformRecord *prec) +{ + size_t N = strlen(_APPNAME_VERSION)+1; + char *buf = prec->bptr; + + if(prec->ftvl!=menuFtypeCHAR) { + (void)recGblSetSevr(prec, READ_ALARM, INVALID_ALARM); + return 0; + } + + if(N>=prec->nelm) + N = prec->nelm; + prec->nord = N; + + memcpy(buf, _APPNAME_VERSION, N); + buf[prec->nelm-1] = '\0'; + + return 0; +} + +static struct { + long number; + DEVSUPFUN report; + DEVSUPFUN init; + DEVSUPFUN init_record; + DEVSUPFUN get_ioint_info; + DEVSUPFUN read_si; +}devWfMyModVersion={ + 5, + NULL, + NULL, + NULL, + NULL, + read_wf, +}; +epicsExportAddress(dset,devWfMyModVersion); diff --git a/src/template/base/top/exampleApp/src/devStringInGenVersion.c b/src/template/base/top/exampleApp/src/devStringInGenVersion.c deleted file mode 100644 index 21fd09bfc..000000000 --- a/src/template/base/top/exampleApp/src/devStringInGenVersion.c +++ /dev/null @@ -1,47 +0,0 @@ -/* devStringIn.c */ -/* Example device support module for stringinRecord */ - -#include -#include -#include -#include - -#include "recGbl.h" -#include "alarm.h" -#include "recSup.h" -#include "devSup.h" -#include "stringinRecord.h" - -#include "mymodversion.h" - -/* must be last include */ -#include "epicsExport.h" - -static long read_si(stringinRecord *prec) -{ - size_t N = strlen(MODULEVERSION); - if(Nval)) { - strcpy(prec->val, MODULEVERSION); - } else { - /* Not enough space, so signal an alarm */ - (void)recGblSetSevr(prec, READ_ALARM, INVALID_ALARM); - } - return 0; -} - -static struct { - long number; - DEVSUPFUN report; - DEVSUPFUN init; - DEVSUPFUN init_record; - DEVSUPFUN get_ioint_info; - DEVSUPFUN read_si; -}devSiMyModVersion={ - 5, - NULL, - NULL, - NULL, - NULL, - read_si, -}; -epicsExportAddress(dset,devSiMyModVersion);