TimeStep


The TimeStep program was developed  strictly out of need.  When I started work on setting up the Pump-Probe system, I quickly realized that I need a software program to act as the brains of the system.  At first, I looked at using the LabView development software, but I just couldn't get use to the whole idea of graphical development.  I much rather be playing with source code than dragging and droping widgets around.  The next option I explored was to use Java.  This presented a number of problems.  Firstly, I couldn't find any example out there to build upon, so I would be doing every thing from scratch.  Secondly, and  more problematic was the fact that I need to interface with hardware devices such as the stepper motor controllers, and the oscilloscope.  The image shows how the TimeStep program would be interacting with the various components of our Pump-Probe system.

timestep task


I spent about a month researching how to go about accomplishing these task and to my relief, realized that the Java platform provided the means to accomplish all I need to do.  For communication with the motorized stage controllers I used Java Communications API since the commercial controller (Controller A), and the one I build (Controller B) both interfaced to the computer through the serial port.  Connecting to the oscilloscope was a little more treaky though.  For that, I had to write some native C code, less than 20 lines, and use JNI to call the API provided by the oscilloscope's vendor.  It worked like a charm.  The remaining task of getting data from the spectrometer was the only thing left to be done for the program to be functional.  This was done in a rather adhoc manner.  Rather than trying to duplicate the control software for the spectrometer, I decided to just simply read in the ASCII files outputted the spectrometers software.  By taking this approach, I greatly simplified my developement.  I didn't have wrtie all the user interface and controll code and more importantly I didn't have to mess with anymore C code.  That's always a big plus in my book.

All in all, Java platform proved to be well suited for this task, and even though the program isn't that polished, it serves it function.   I am in the process of cleaning up the code, and once that is done I will try to post it.  Besides as leaning aid though, I don't think it's going to have much value for anyone else out there, unless of course it's modified.  For now, here are some screen shots.


timestep window

Main window showing the stepping sequence in time, and that's where the name comes from.



timestep window

Window showing the control panel for my moterized stage controller.



timestep window

Window showing the data read in from the oscilloscope.



timestep window

Window showing the control panel for the commercial motorized stage controller.