--- /dev/null
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdint.h>
+
+#include <dbDefs.h>
+#include <registryFunction.h>
+#include <subRecord.h>
+#include <epicsExport.h>
+#include <genSubRecord.h>
+#include <stringinRecord.h>
+
+#include "worker.h"
+
+int portnr1Debug;
+
+long portnr1_init( struct genSubRecord *pgsub )
+{
+ return(0);
+}
+
+long portnr1_proc( struct genSubRecord *pgsub )
+{
+ uint32_t *out[21];
+ unsigned long tmp;
+ unsigned long nrOfMsgs = 0;
+ int i;
+
+ out[0] = (uint32_t *)pgsub->vala; /* portnr0 */
+ out[1] = (uint32_t *)pgsub->valb; /* portnr1 */
+ out[2] = (uint32_t *)pgsub->valc; /* portnr2 */
+ 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_netmem", getenv("EBNUM") );
+
+ if( Worker_getStatistic( buf, "nrOfMsgs", &nrOfMsgs ) == -1) {
+ if(portnr1Debug)
+ printf("<E> portnr1.c: Worker_getStatistic failed for nrOfMsgs!\n");
+ }
+ else{
+ if(nrOfMsgs > 21)
+ nrOfMsgs = 21;
+ }
+
+ char portnrbuf[100];
+
+ for( i=0; i<nrOfMsgs; i++ ) {
+ sprintf( portnrbuf, "portNr%d", i );
+
+ if( Worker_getStatistic( buf, portnrbuf, &tmp ) == -1) {
+
+ if(portnr1Debug)
+ printf("<E> portnr1.c: Worker_getStatistic failed for %s!\n", portnrbuf);
+ }
+ else{
+ *out[i] = (uint32_t)tmp;
+
+ if(portnr1Debug)
+ printf("<I> portnr1.c: Worker_getStatistic::%s = %lu\n", portnrbuf, tmp);
+ }
+ }
+
+ return(0);
+}
+
+/* Register these symbols for use by IOC code: */
+
+epicsExportAddress(int, portnr1Debug);
+epicsRegisterFunction(portnr1_init);
+epicsRegisterFunction(portnr1_proc);
--- /dev/null
+variable(portnr1Debug)
+function(portnr1_init)
+function(portnr1_proc)
--- /dev/null
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdint.h>
+
+#include <dbDefs.h>
+#include <registryFunction.h>
+#include <subRecord.h>
+#include <epicsExport.h>
+#include <genSubRecord.h>
+#include <stringinRecord.h>
+
+#include "worker.h"
+
+int portnr2Debug;
+
+long portnr2_init( struct genSubRecord *pgsub )
+{
+ return(0);
+}
+
+long portnr2_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; /* portnr1 */
+ out[1] = (uint32_t *)pgsub->valb; /* portnr2 */
+ out[2] = (uint32_t *)pgsub->valc; /* portnr3 */
+ 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_netmem", getenv("EBNUM") );
+
+ if( Worker_getStatistic( buf, "nrOfMsgs", &nrOfMsgs ) == -1) {
+ if(portnr2Debug)
+ printf("<E> portnr2.c: Worker_getStatistic failed for nrOfMsgs!\n");
+ }
+
+ char portnrbuf[100];
+
+ for( i=shift; i<nrOfMsgs; i++ ) {
+ sprintf( portnrbuf, "portNr%d", i );
+
+ if( Worker_getStatistic( buf, portnrbuf, &tmp ) == -1) {
+
+ if(portnr2Debug)
+ printf("<E> portnr2.c: Worker_getStatistic failed for %s!\n", portnrbuf);
+ }
+ else{
+ *out[i-shift] = (uint32_t)tmp;
+
+ if(portnr2Debug)
+ printf("<I> portnr2.c: Worker_getStatistic::%s = %lu\n", portnrbuf, tmp);
+ }
+ }
+
+ return(0);
+}
+
+/* Register these symbols for use by IOC code: */
+
+epicsExportAddress(int, portnr2Debug);
+epicsRegisterFunction(portnr2_init);
+epicsRegisterFunction(portnr2_proc);
--- /dev/null
+variable(portnr2Debug)
+function(portnr2_init)
+function(portnr2_proc)
--- /dev/null
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdint.h>
+
+#include <dbDefs.h>
+#include <registryFunction.h>
+#include <subRecord.h>
+#include <epicsExport.h>
+#include <genSubRecord.h>
+#include <stringinRecord.h>
+
+#include "worker.h"
+
+int trignr1Debug;
+
+long trignr1_init( struct genSubRecord *pgsub )
+{
+ return(0);
+}
+
+long trignr1_proc( struct genSubRecord *pgsub )
+{
+ uint32_t *out[21];
+ unsigned long tmp;
+ unsigned long nrOfMsgs = 0;
+ int i;
+
+ out[0] = (uint32_t *)pgsub->vala; /* trignr0 */
+ out[1] = (uint32_t *)pgsub->valb; /* trignr1 */
+ out[2] = (uint32_t *)pgsub->valc; /* trignr2 */
+ 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(trignr1Debug)
+ printf("<E> trignr1.c: Worker_getStatistic failed for nrOfMsgs!\n");
+ }
+ else{
+ if(nrOfMsgs > 21)
+ nrOfMsgs = 21;
+ }
+
+ char trignrbuf[100];
+
+ for( i=0; i<nrOfMsgs; i++ ) {
+ sprintf( trignrbuf, "trigNr%d", i );
+
+ if( Worker_getStatistic( buf, trignrbuf, &tmp ) == -1) {
+
+ if(trignr1Debug)
+ printf("<E> trignr1.c: Worker_getStatistic failed for %s!\n", trignrbuf);
+ }
+ else{
+ *out[i] = (uint32_t)tmp;
+
+ if(trignr1Debug)
+ printf("<I> trignr1.c: Worker_getStatistic::%s = %lu\n", trignrbuf, tmp);
+ }
+ }
+
+ return(0);
+}
+
+/* Register these symbols for use by IOC code: */
+
+epicsExportAddress(int, trignr1Debug);
+epicsRegisterFunction(trignr1_init);
+epicsRegisterFunction(trignr1_proc);
--- /dev/null
+variable(trignr1Debug)
+function(trignr1_init)
+function(trignr1_proc)
--- /dev/null
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdint.h>
+
+#include <dbDefs.h>
+#include <registryFunction.h>
+#include <subRecord.h>
+#include <epicsExport.h>
+#include <genSubRecord.h>
+#include <stringinRecord.h>
+
+#include "worker.h"
+
+int trignr2Debug;
+
+long trignr2_init( struct genSubRecord *pgsub )
+{
+ return(0);
+}
+
+long trignr2_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; /* trignr1 */
+ out[1] = (uint32_t *)pgsub->valb; /* trignr2 */
+ out[2] = (uint32_t *)pgsub->valc; /* trignr3 */
+ 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(trignr2Debug)
+ printf("<E> trignr2.c: Worker_getStatistic failed for nrOfMsgs!\n");
+ }
+
+ char trignrbuf[100];
+
+ for( i=shift; i<nrOfMsgs; i++ ) {
+ sprintf( trignrbuf, "trigNr%d", i );
+
+ if( Worker_getStatistic( buf, trignrbuf, &tmp ) == -1) {
+
+ if(trignr2Debug)
+ printf("<E> trignr2.c: Worker_getStatistic failed for %s!\n", trignrbuf);
+ }
+ else{
+ *out[i-shift] = (uint32_t)tmp;
+
+ if(trignr2Debug)
+ printf("<I> trignr2.c: Worker_getStatistic::%s = %lu\n", trignrbuf, tmp);
+ }
+ }
+
+ return(0);
+}
+
+/* Register these symbols for use by IOC code: */
+
+epicsExportAddress(int, trignr2Debug);
+epicsRegisterFunction(trignr2_init);
+epicsRegisterFunction(trignr2_proc);
--- /dev/null
+variable(trignr2Debug)
+function(trignr2_init)
+function(trignr2_proc)