>
> 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...)
>
> 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.
This is already the case, if their is no entry in the DDL file that is
associated with the device/message combination then it will display
a warning (the first time) and then attempt to transmit the message
to channel access.
> 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;
The cdevData object already has such a method called "asciiDump",
could you explain the utility (or intention) of having such
a mechanism in other CDEV objects... an example of what you would
use them for and which objects you think should have them would
be helpful.
> 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}
>
>
Currently only one of the CDEV objects (that I'm aware of) has
status or state information associated with it; the cdevRequestObject.
This service is provided through its getState and getAccess methods.
> 7. Kindly alphabetize the class variable and member function lists in
> the documents.
In the diagrams and the text of the documentation, the class methods
and variables are ordered by their order of occurance in the class,
or by there significance to the developer.
> 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.
Having reread some parts of the manual, I've found that I glossed
over several features that should have been better explained... this
was due mostly to the desire to get the documentation out as quickly
as possible... I expect that I'll rewrite a good deal of the
documentation in the (not to distant) future, in order to improve
its clarity.
> 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.
The class diagrams are written in OMT (object model notation) as
designed by Jim Rumbaugh... because the notation has many sophisticated
features, it is difficult to explain in a brief. Jim Rumbaugh's
book "Object-Oriented Modeling and Design" provides a comprehensive
description of the structure.
> 11. Add a full class hierarchy diagram to the reference manual.
At the time that the documentation was produced, much of the class
hierarchy was in a state of rapid change. I will very likely create
a full class hierarchy as part of the documentation rewrite.
> 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;
We chose not to include stream operations in the cdevData class because
inheriting the stream classes necessary to implement it would add even
more "lard" to an already huge class. Notably, in most cases the
stream operators are substantially slower than the standard I/O
mechanisms provided.
Walt
--
=============================================================
Walt Akers Voice: (757)269-7669 E-Mail: akers@cebaf.gov
Thomas Jefferson National Accelerator Facility
12000 Jefferson Avenue, MS 16A
Newport News, Va 23606
=============================================================