From eb8d9b16201111c097e012b4ad7caf3d65a6abf1 Mon Sep 17 00:00:00 2001 From: hadaq Date: Wed, 18 Aug 2010 09:38:30 +0000 Subject: [PATCH] Extended. Sergey. --- ebctrl/ioc/ebctrlApp/src/errbit2.c | 88 ++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 ebctrl/ioc/ebctrlApp/src/errbit2.c diff --git a/ebctrl/ioc/ebctrlApp/src/errbit2.c b/ebctrl/ioc/ebctrlApp/src/errbit2.c new file mode 100644 index 0000000..683ca5c --- /dev/null +++ b/ebctrl/ioc/ebctrlApp/src/errbit2.c @@ -0,0 +1,88 @@ +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "worker.h" + +int errbit2Debug; + +long errbit2_init( struct genSubRecord *pgsub ) +{ + return(0); +} + +long errbit2_proc( struct genSubRecord *pgsub ) +{ + int shift = 21; + uint32_t *out[21]; + unsigned long tmp; + unsigned long nrOfMsgs = 0; + int i; + + out[0] = (uint32_t *)pgsub->vala; /* errbit1 */ + out[1] = (uint32_t *)pgsub->valb; /* errbit2 */ + out[2] = (uint32_t *)pgsub->valc; /* errbit3 */ + out[3] = (uint32_t *)pgsub->vald; /* ... */ + out[4] = (uint32_t *)pgsub->vale; + out[5] = (uint32_t *)pgsub->valf; + out[6] = (uint32_t *)pgsub->valg; + out[7] = (uint32_t *)pgsub->valh; + out[8] = (uint32_t *)pgsub->vali; + out[9] = (uint32_t *)pgsub->valj; + out[10] = (uint32_t *)pgsub->valk; + out[11] = (uint32_t *)pgsub->vall; + out[12] = (uint32_t *)pgsub->valm; + out[13] = (uint32_t *)pgsub->valn; + out[14] = (uint32_t *)pgsub->valo; + out[15] = (uint32_t *)pgsub->valp; + out[16] = (uint32_t *)pgsub->valq; + out[17] = (uint32_t *)pgsub->valr; + out[18] = (uint32_t *)pgsub->vals; + out[19] = (uint32_t *)pgsub->valt; + out[20] = (uint32_t *)pgsub->valu; + + for( i=0; i<21; i++ ) + *out[i] = 0; + + char buf[_POSIX_PATH_MAX]; + sprintf( buf, "%s%s", "daq_evtbuild", getenv("EBNUM") ); + + if( Worker_getStatistic( buf, "nrOfMsgs", &nrOfMsgs ) == -1) { + if(errbit2Debug) + printf(" errbit.c: Worker_getStatistic failed for nrOfMsgs!\n"); + } + + char errbitbuf[100]; + + for( i=shift; i errbit.c: Worker_getStatistic failed for %s!\n", errbitbuf); + } + else{ + *out[i-shift] = (uint32_t)tmp; + + if(errbit2Debug) + printf(" errbit.c: Worker_getStatistic::%s = %lu\n", errbitbuf, tmp); + } + } + + return(0); +} + +/* Register these symbols for use by IOC code: */ + +epicsExportAddress(int, errbit2Debug); +epicsRegisterFunction(errbit2_init); +epicsRegisterFunction(errbit2_proc); -- 2.43.0