David,
Reply to #1) At the end of every one of our [280+] st.cmd files we have the following commands:
cd "/iocinfo/pvdata" dbl(0,iocname)
This gives us a file for each IOC which contains the names of the PVs it has. A simple "grep" then identifies which IOC a PV resides in.
It seems that a simple GenSub record could use dbl to but the list in a waveform record, but I'm not sure how many tools out there are capable of handling an array of strings.
Also, there is also an EPICS tool around called IRMIS ( http://www.aps.anl.gov/epics/irmis/index.php) that includes scripts that "crawl" the st.cmd file of every IOC and recreates the PV definitions in a relational database so even the definitions of the PVs can be perused via the web. This captures the data from the .dbd and .db files, so it doesn't matter what tool the application developer used to define them (vi, vdct, Capfast, etc). Other crawlers create another database which records which PVs are used by which CA clients (medm, alh, sdds, sequencer, other db files, etc).
Reply to #2) APS has a very extensive set of data archive/viewer tools based on SDDS. Contact Bob Soliday for further info.
Ned
On May 6, 2008, at 9:26 PM, David Dudley wrote: Got 3 little questions:
1. Is there a method or application anywhere that can generate a list of the channels on a remote IOC? I mean, a program I can point at the IOC's address and have it generate a list of all the channels on that unit?
2. Does SDDS require X in order to compile? It's a given that SDDSPlot is probably going to need X, but most of the apps don't have GUI's, so must X be available in order to compile them? If not, how do you generate the non-X programs?
3. Is there a program that will extract a portion of an SDDS file? In order to use SDDS for archiving (which it looks like it might be very useful for), it's going to have to run forever on the IOC unit. If I need to generate a dataset from a SDDS datafile, how do I pull out just the period (say... everything from yesterday, midnite to midnite) from a file that has much, much more information in it (days, weeks, or months ...)? I can come up with stuff to cause it to restart, say once a week, but how do I pull out a subset of information?
David Dudley
|