![]() |
![]() ![]()
Experimental Physics and
| ||||||||||||||
|
This Message Is From an External Sender
This message came from outside your organization.
Dear all, From Channel Access tutorial and EPICS base source code, I have learned that besides simple data types like DBR_INT and DBR_STRING, Channel Access client can also read data using compound data types like DBR_TIME_INT and DBR_TIME_STRING. My understanding is that the data will be returned in dbr field of event_handler_args structure, typedef struct event_handler_args { void *usr; /* user argument supplied with request */ chanId chid; /* channel id */ long type; /* the type of the item returned */ long count; /* the element count of the item returned */ const void *dbr; /* a pointer to the item returned */ int status; /* ECA_XXX status of the requested op from the server */ } evargs; And the data returned for DBR_TIME_STRING compound data type is dbr_time_string structure, struct dbr_time_string{ dbr_short_t status; /* status of value */ dbr_short_t severity; /* severity of alarm */ epicsTimeStamp stamp; /* time stamp */ dbr_string_t value; /* current value */ }; However, the value field of dbr_time_string structure is a scalar value instead of array or pointer, which means that only the first item of the array can be read. Therefore, my question is, how do I read array value from records like waveform with the compound data type? Thanks, Lin
| ||||||||||||||
ANJ, 22 Feb 2024 |
![]() · Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |