Privacy and Security Notice

Archived Messages for CDEV_1997@cebaf.gov: "Novice cdev questions/comments"

"Novice cdev questions/comments"

Elliott Wolin (wolin@CEBAF.GOV)
Wed, 22 Jan 1997 16:46:31 -0500

Greatings cdevils,

Just started using cdev. Knew little about it when I started a few
days ago, knew even less about epics.

I assume this is the correct forum for comments, criticisms,
suggestions, etc. (many of which I've mentioned to Jie).

Sincerely,
Elliott Wolin
Hall B physicist

---------------------------------------------------------------------

(in no particular order...)

1. I read the Introduction and went through the Tutorial and
Reference guides. Shortly thereafter was able to read an epics HV
channel, set a monitor with a callback, talk to CODA run control, etc.
I found this simple and relatively painless. My congratulations!

2. The example program on pg 5, figure 4, of the Introduction does
not compile on Solaris 2.5. The first executable statement is
incorrect.

3. Is it possible to allow users to add a new file descriptor and
callback to the list managed by the system object
(e.g. addFdCallback(myfd,mycallback))? Then pend() could handle all
my file and socket i/o, from whatever source, without my having to
implement a complete new service (Smartsockets, in my case).

4. Can channel access be the default service if there is no entry in
the DDL file? Then I could just use a DDL file describing my stuff,
without any epics entries, but still be able to use ca to talk to my
epics devices.

5. For most objects, how about implementint a print() member function
to dump the object to stdout, print(fd) to a file descriptor, etc.
Also, implement operator<< to allow: cout << object;

6. For most (all?) objects, how about a status member function or
variable, also tied to operator!, to allow:

cdevObject myobject(...);
if(!myobject){// error}
or
if(myobject.status!=CDEV_SUCCESS){// error}

7. Kindly alphabetize the class variable and member function lists in
the documents.

8. I think a manual between the tutorial and reference levels is
needed. Either that, or augment either or both. Some features are
ONLY described in the reference manual, where the description is a bit
terse.

9. I get a segmentation fault if I create a request object and
sendCallback to a non-existent CODA run control server device.

10. Please describe the graphical notation used in the class
hierarchy diagrams in the reference manual.

11. Add a full class hierarchy diagram to the reference manual.

12. Allow stream operations on cdevData objects (possibly others), e.g.:

cdevData mydata;
mydata << "value" << 10;

or even:

int myint;
double mydbl;
mydata >> myval >> mydbl;