This product is available via an open source license
This document describes the IOC database used by the Python examples.
See index For installation instructions.
testPython/database creates an IOC database that can have DBRecords for any of the record types provided by EPICS base. In addition it has PVRecords used by the Python code in examples qtimage, maldebrot and plot2dcurves.
When the database is started as follows:
mrk> pwd /home/epics7/testPython/database/iocBoot/testPython mrk> ../../bin/linux-x86_64/testPython st.cmd
It has the following records:
epics> dbl TPYcounter01 epics> pvdbl TPYaddRecord TPYmandelbrotRecord TPYqt2dimageRecord TPYqtpeakimageRecord TPYremoveRecord TPYtraceRecord epics>
When make is executed in testPython/database, An IOC database is created that contains the records shown above. In addition this can be used as a model for creating other IOC databases that has a combination of DBRecords and PVRecords. It can create DBRecords of any type implemented by epics-base The following briefly describes the various subdirectorys of database.
This is where code for special PVRecords are created. For each, four files are required. For example mandelbrotRecord has the following files:
Makefile pv/mandelbrotRecord.h mandelbrotRecord.cpp mandelbrotRecordRegister.cpp mandelbrotRecordRegister.dbd
This is where DBRecords are configured.
This is where the actual IOC code is built. Look at Makefile and testPythonInclude.dbd.
Just look at the files. Anyone who has built IOCs should be familar with the details.
This has fields:
structure time_t timeStamp long secondsPastEpoch int nanoseconds int userTag structure argument double xmin double xmax double ymin double ymax int width int height int nz structure result ubyte[] value
This is used by testPython/mandelbrot/DisplayImagePVAPY.py
It computes mandelbrot images.
See :
mandelbrot
for a description.
This has fields:
structure time_t timeStamp long secondsPastEpoch int nanoseconds int userTag string name double[] x double[] y double xmin double xmax double ymin double ymax structure argument structure format int index string[] choices int height int width structure result union value ubyte[] uint8 ushort[] uint16 uint[] uint32
This is used by testPython/plot2dcurve and can also be used by testPython/qtimage.
See plot2dcurve and qtimage For details.
This has fields:
structure time_t timeStamp long secondsPastEpoch int nanoseconds int userTag structure peak double x double xwidth double y double ywidth double intensity structure argument structure format int index string[] choices int height int width structure result union value ubyte[] uint8 ushort[] uint16 uint[] uint32
This is used by testPython/qtimage.
See qtimage For details.
These are implemented by pvDatabaseCPP.
testPython/plot2dcurve uses TPYaddRecord.
The others are not used in this application
but may be of interest to other applications.