/*************************************************************************\ * Copyright (c) 2002 The University of Chicago, as Operator of Argonne * National Laboratory. * Copyright (c) 2002 The Regents of the University of California, as * Operator of Los Alamos National Laboratory. * EPICS BASE Versions 3.13.7 * and higher are distributed subject to a Software License Agreement found * in file LICENSE that is included with this distribution. \*************************************************************************/ /* * * T E S T _ E V E N T . C * Author: Jeffrey O. Hill * simple stub for testing monitors */ #define epicsExportSharedSymbols #include "cadef.h" extern "C" void epicsShareAPI ca_test_event ( struct event_handler_args args ) { printf ( "CAC: ~~~### in test event for [%s] ###~~~\n", ca_name(args.chid) ); printf ( "CAC: User argument\t%p\n", args.usr); printf ( "CAC: Native channel data type\t%d\n", ca_field_type(args.chid) ); printf ( "CAC: Monitor data type\t%ld\n", args.type ); printf ( "CAC: CA Status \"%s\"\n", ca_message(args.status) ); if ( !args.dbr || !(CA_M_SUCCESS&args.status) ){ return; } switch ( args.type ) { case DBR_STRING: printf ( "CAC: Value:\t<%s>\n", (char *) args.dbr ); break; case DBR_CHAR: printf ( "CAC: Value:\t<%d>\n", *(dbr_char_t *) args.dbr ); break; #if DBR_INT != DBR_SHORT case DBR_INT: #endif case DBR_SHORT: case DBR_ENUM: printf ( "CAC: Value:\t<%d>\n", *(dbr_short_t *) args.dbr ); break; case DBR_LONG: printf ( "CAC: Value:\t<%d>\n", *(dbr_long_t *)args.dbr ); break; case DBR_FLOAT: printf ( "CAC: Value:\t<%f>\n", *(dbr_float_t *)args.dbr ); break; case DBR_DOUBLE: printf ( "CAC: Value:\t<%f>\n", *(dbr_double_t *)args.dbr ); break; case DBR_STS_STRING: printf ( "CAC: Value:\t<%s>\n", ((struct dbr_sts_string *)args.dbr)->value ); break; case DBR_STS_INT: printf ( "CAC: Value:\t<%d>\n", ((struct dbr_sts_int *)args.dbr)->value ); break; case DBR_STS_FLOAT: printf ( "CAC: Value:\t<%f>\n",((struct dbr_sts_float *)args.dbr)->value ); break; case DBR_STS_ENUM: printf ( "CAC: Value:\t<%d>\n", ((struct dbr_sts_enum *)args.dbr)->value ); break; case DBR_GR_FLOAT: printf ( "CAC: Value:\t<%f>\n", ((struct dbr_gr_float *)args.dbr)->value ); break; default: printf ( "CAC: Sorry test_event does not handle data type %ld yet\n", args.type ); } }