Skip to content

EPICS Code Debugging

Javier Lührs edited this page Jun 21, 2018 · 5 revisions

Introduction

The package that deals with EPICS connections in Seqexec is edu.gemini.epics.acm. This package uses epics-service, provided by GIAPI. The actual EPICS network protocol is provided by CAJ (Channel Access for Java), which is used by epics-service. CAJ is in turn an implementation of JCA (Java Channel Access).

The JCA and CAJ classes are provided by two JAR files. GIAPI uses a copy of the files stored in our own repository, under the group names edu.gemini.external.osgi.com.cosylab.epics.caj and edu.gemini.external.osgi.com.cosylab.epics.jca. The GIAPI packages themselves are accessed by ocs3 through the same repository.

Debug Setup

The way the packages are accessed makes difficult to implement changes to debug a problem that involves CAJ. Here there is the procedure to create a build environment that involves using a local repository.

Build JCA-CAJ

The latest version of JCA, available in Github, integrates CAJ in the same package.

Retrieve the JCA code.

git clone https://github.com/epics-base/jca

Build the JCA package locally.

cd jca
mvn install

That procedure will put the JCA jar file in the local Maven repository, usually located in ~/.m2/repository

Build GIAPI

First, retrieve the code

Clone this wiki locally