Project

General

Profile

OAC Development

We have test machines named dpe*.fnal.gov that are shared for Java development. When assigned a dpe as a test node. D92 will need to be updated as appropriate.

Code on the DPE

To test on a dpe you need to copy the class files from your new or modified code to a location seen by your dpe.

MacOS Development

If you're using a Mac the easiest thing to do is to copy your class files to some directory that you create under smb://ad-c-samba/users/{username} (this is a Samba share for daesrv:/export/users/{usrname}). You can get to this on the Mac in the finder (a valid Kerberos ticket and a wired network connection are required). Select "Go" and then "Connect to Server" and then smb://ad-c-samba and click on "Select". When you get the window with a list of volumes, select "users", click "OK" and then navigate to the {username} directory. Copy your files into the directory relevant to the project. eg. gov/fnal/controls/daq/oac/clients/timeav This directory structure is required by Java to match the package statement.

VNC Client

You can use VNC to connect to a dpe to allow you to stop and start the Java engine. Again, a valid Kerberos ticket is needed. Open a terminal window and type ssh -oproxycommand="ssh -qaxT {username}@outland.fnal.gov nc %h %p" -L 5901:localhost:5901 console@dpe{number}.fnal.gov. This window needs to stay connected while you are using VNC.

Install a VNC client like RealVNC.

Once installed, start the application and select connect to a server. A window comes up with a blank looking bar at the top that has greyed out text that says "Enter a VNC Server address or search". In that window type "localhost:1" It will warn that it's not encrypted, click on continue, and you should see the VNC. You are now connected to the Java engine. In the data acquisition engine window, you can "File" -> "Exit" to stop the engine (or click the x in the top right corner of the window). "Start" -> "Start DAE" -> "Start DAE" to start the engine up again. The "Apps" window in the top right corner contains a DAE.log button that displays the Java engine log. If you prefer, you can log into your dpe as user console and from the command line you can stop and start the engine and look at the log file. From a terminal window ssh -Y console@dpe{number}.fnal.gov. The Java engine log is in the console home directory named dae.log. Print statements in the oac code will end up in the dae.log engine log file. ~console/.vnc/start_dae will stop the currently running engine and then start the engine. If you just want to kill the engine type "pkill -15 -u console -f java".

Path Configuration

Now you need to point the engine to your class files. In the VNC tunnel to your dpe open an xterm (this will give you a window in the console home directory /usr/home/console) or just use a command line connection (type ssh -Y console@dpe{number}.fnal.gov in a terminal window). In that directory create a file named javaworkpath. The contents of the file are the location of your class files. This will be something like /export/users/{username}/{YourDirectory} (changing YourDirectory to be whatever you created above containing your gov tree).

Then you restart the test engine on your dpe which will cause the contents of the javaworkpath file to be prepended to the standard Java engine CLASSPATH.

Testing

You need to redirect to cause your OAC to instantiate. Use D128 to redirect a slot to your OAC (select your OAC under the Development list). Then in the slot, you're redirected, pull up a parameter page and enter one of the devices for the OAC (like the guaranteed-readable device). This will cause the OAC to instantiate. Remove the redirection and restart the engine when you are done testing. You can skip this step if D92 is configured to instantiate your OAC on startup.

Deploying

When you are completely done testing and ready to commit code to CVS you need to remove the javaworkpath and restart the engine. Until this step is complete, the engine will be running with whatever classes you have in your javaworkpath before it looks for operationally built classes.

When you want to release your code changes to the operational world you commit your code into CVS and tag it with the tag name Ready4Alpha. Use the Eclipse "Accelerator" tab for this, see Getting Started with the Eclipse IDE. Then you trigger a build and release using the Code Status page.

The OAC is assigned an operational node (due*.fnal.gov or dce*.fnal.gov) and at this point, you can use a VNC tunnel or ssh to restart the Java engine your code operationally runs on.