Hi Phil,
Ø
areaDetector drivers and plug-ins seem to (mainly) use different names for these: for example
Ø
drvInfo string: QUEUE_SIZE
Ø
EPICS record name: $(P)$(R)QueueSize
Having the drvInfo strings use uppercase with underscores and the record names and C++ variable names use camel case is historical. We started using upper case for drvInfo strings a long time ago, and just
kept up the convention.
Ø
As far as I can see, the drvInfo string is not visible to any client.
The drvInfo string not visible to ChannelAccess clients. However, it is visible to asyn port driver clients. This includes not only EPICS support, but also standalone C++ programs. The areaDetector drivers
are written such that they depend only on the EPICS libCom library (for OS-independent threads, mutexes, signals, etc.) and asyn (for interfaces). It is possible to write a C++ program that controls an areaDetector without running it in an IOC. This is demonstrated
in ADExample/iocs/simDetectorNoIOC/simDetectorNoIOCApp/src/simDetectorNoIOC.cpp. In that case the drvInfo strings are required by the C++ program, which is an asyn client. The strings are thus part of the public interface and cannot be changed. The same
goes for EPICS database files. I could change the drvInfo strings in ADCore in asynNDArrayDriver.h, ADDriver.h, etc. and in NDArrayBase.template, ADBase.template, etc. But users have their own databases with those drvInfo strings now too, so we cannot break
the interface.
Mark
areaDetector drivers and plug-ins seem to (mainly) use different names for these: for example
drvInfo string: QUEUE_SIZE
EPICS record name: $(P)$(R)QueueSize
Is there any reason for this? Any reason they should not be QueueSize and $(P)$(R)QueueSize, or even QUEUE_SIZE and $(P)$(R)QUEUE_SIZE? As far as I can see, the drvInfo string is not visible to any client.
Thanks,
Phil
--
Pixel Analytics is a limited company registered in England. Company number: 7747526;
Registered office: 93A New Road, Haslingfield, Cambridge CB23 1LP