A gateway server and accompanying JavaScript client API to monitor EPICS Channel Access over Web Sockets. A caget-like JSON web service endpoint is also provided.
- Grab project
git clone https://github.com/JeffersonLab/epics2web
cd epics2web
- Launch Docker
docker compose up
- Monitor test PV via web browser
http://localhost:8080/epics2web/test-camonitor
PV name: HELLO
- Download Apache Tomcat
- Download epics2web.war and drop it into the Tomcat webapps directory
- Start Tomcat and navigate your web browser to localhost:8080/epics2web
Note: epics2web also works and was tested with GlassFish, and presumably works with WildFly or any other Java web application server that supports Web Sockets.
Note: The dependency jars are included in the war file that is generated by the build. You can copy the jar files from project lib directory to the Tomcat lib directory and change the build.gradle script to use providedCompile instead of implementation if you'd prefer to include the dependencies that way.
This application uses the Java Channel Access library. It requires a working EPICS channel access environment with the environment variable EPICS_CA_ADDR_LIST set. See Also: Advanced Configuration.
This project is built with Java 17 (compiled to Java 8 bytecode), and uses the Gradle 7 build tool to automatically download dependencies and build the project from source:
git clone https://github.com/JeffersonLab/epics2web
cd epics2web
gradlew build
Note: If you do not already have Gradle installed, it will be installed automatically by the wrapper script included in the source
Note for JLab On-Site Users: Jefferson Lab has an intercepting proxy