Software products from EPICS group in KEK Accelerator Lab.

KEKB, PF-AR and JPARC project are using or will use EPICS as a basis of their controls systems.
KEK EPICS traversal group was created to support better all of these accelerator control systems.
Its aims is to enhance a sharing of knowledge and technology on EPICS and accelerator controls within KEK (and anywhere).

Products:

    GP-IB Device Compiler (GDC) converts GP-B commands table using GDL(GP-IB device language) into C-code as EPICS support device support routine.

    tarball (for EPICS3.14+ asynDev)

  1. MiniEPICS

  2. EPICS on KNOPPIX

  3. SL-Live CD with EPICS .

  4. Python Libraries

    1. EPICS interface

      1. EPICS Python interface without thread support: work with both EPICS3.13 and 3.14.

        1. tarball (obsolete)

      2. EPICS Python Interface with thread support.
        For EPICS 3.14.x , this version of EPICS-Python interface module (ca module) takes advantage of threaded CA library.
        It requires Python2.4 or later with thread library enabled. It also work with thread-enabled version of Tcl/Tk library through Tkinter module. It should also work with Python 2.3 or 2.2 but may need some adjustment in ./setup.py.

        1. tarball ; PythonCA-1.20.2.tar.gz (2009/03/10)

          1. pthread_mutex library calls are replaced by epicsMutex calls. (contributed by T.Obina)

        2. older version : CaPython314.tgz  (2007/05/03)

        3. installation instruction

        4. Instruction to make this module compatible with FNAL-PythonCA module.

    1. Extended TkCanvas with PythoTk option for gnuplot.4.2.0

      • tkcanvas terminal in gnuplot4.2.0 now suppor pythontk option. It generate python script drive Tkinter/Python.

      • This version also support palette and pm3d colorbox. Drawing image is not supported yet.

      • use "set term tkcanvs pythontk" or "set term tkcanvs pythontk interactive"

      • output a python program generated by gnuplot into a file.e.g. ' set output "gnuoutput.py"

      • Start python and:

        • c=Canvas();c.pack()

        • import gnuoutput

        • gnuoutput.gnuplot(c)

      • will generate gnuplot graph on the canvas widget.

      • Here is a source code and diff file from the origirnal

      • replace tkcanvas.trm in term within your gnuplot source tree. and make.

      • Enjoy.

      • wish.trm amd tkinter.trm are the other terminals for gnuplot4.2. It opens Tk/Canvas window and draw graphs directly on it.

        • set term wish or set term tkinter

        • wish uses external "wish" program and tkinter links Tcl/Tk library and uses it to start Tk main losample tplot graphop.

    2. extended Gnuplyt.py 

      • It is an extended version Gnuplot.py(version 1.7) . It intduce Gnuplot class with tplot command. It also introduces TimeData fnction for time domain data.

      • It uses Gnuplot.py and Numeric module.

      • Japanese Documentation for Gnuplot.py is available here.

    3. Widgets for EPICS

    4. Database access through python (dbStaticLib.i for SWIG and realted files  2009.3.12,)

      • Prerequisites :EPICS 3.14.x , Python 2.5.1 or higher, swig 1.3.31 or higher, you also needs simplejson module for Python or Python2.6 for db2json module

      • "python setup.py build install" will build and install package

      • See dbDumpRecords.py or db2json.py modules as examples of this module.

    5. Device support with Python:devPy.c (in development)

devPy.c is a device support library with which user can  develop device support using Python programming language.  Currently it support only ai record but can be extended to support standard records in EPICS distribution.
It should be quite useful to test new device which has a driver for Linux/MacOSX.

In Python, you need to provide a class. EPICS record instance will be connected to an instance of this class when EPICS database is up and running. The class should have a method named "read". EPICS database will call this method when the record is processed and put value returned by this method to the RVAL(Integer)/VAL(Float) field.

In the EPICS database configuration file (.db file),  DTYP filed is set to "Python" to connect it to devPy. INP field type is INST_IO and INP field would look like "@/module/sub-module/class-name;params?key1=val1&key2=val2,..".
The params part and query part of this URI like format will be passed to the class constructor(__init__) as a string and a dictionary.

check here for source codes.

  1. Records

    1. Array Utility records

    2. Timestamp record (KEK version)

    3. Waveout/Arrayout records,...

    4. FFT records: Calculate Fourier Coefficients from Wavefrom data.

      1. This tarball includes two types of FFT record support, RFFT record and CFFT record.

      2. RFFT takes one waveform record as an input. When processed, it calculate Real DFT coefficients using FFT algorithm. Result can be accessd at the field AMP, PHA, COS, SIN.

      3. CFFT records may have two waveform data as its input. Complex DFT coefficients will be calculated using these wave form as real and imaginary part of input complex data. Calculated result will be stored in AMP and PHA fields. AMP field shows absolute values of the coefficients and PHA files shows phase angle of the coefficients.

      4. You can apply winodw functions and average subtration of input data. WIND and ASUB fields control this functionarity.

      5. WAVN fiels hosts wavenumber, 0.0-0.5 for RFFT and 0.0 - 1.01 for CFFT, of the coefficients. 

    5. devWfDbRecfection

      1. A device support for waveform record. It get a list of record types/files of specified record/name of reocrds from EPICS DB using dbStaticLib.

      2. tar.gz file is here.