76 lines
2.4 KiB
C++
76 lines
2.4 KiB
C++
/*************************************************************************\
|
|
* 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 );
|
|
}
|
|
}
|
|
|