Charly V0.2pre1

Overview

Charly is a system which provides access from any client-PC in a TCP/IP-network to resources provided by a server-PC. A task-manager takes care that the tasks, that use different resources, do not interfere each other. Currently the system supports the Keithley-GPIB-Board and a roboter called ROB3 as devices. The GPIB-Board controls an IEEEC-488.2-bus with different resources such as oscilloscopes, frequency generators, digital-I/O, etc.

Applications usually only use the client-side. This side is 100%-pure-Java and should run on any Java VM. On the server-side , the GPIBboard-Device-Driver uses JNI (Java Native Interface) - Methods for calls to the GPIB-Board and is currently restricted to a Win32-environment.

Charly is OpenSource, i.e. you can use and modify the source code, but you should show the author(s)'s name in any distribution. The author does NOT give ANY WARRANTY!

For information on how to use Charly in your own applications please refer to the API-documentation. On the client-side, only the package charly.client is of interest.

History - this release

V0.2 has been revised completely. The communication between the client and the server now uses the RMI (Remote Method Invocation) - Interface instead of a proprietary protocol named CHARLY, which was used in V0.1.xx

This is a PRERELEASE. It is not yet completed and approximately no testing has been done. See future for more details of what has to be done.

Future

Until the final release of V0.2 the following features have to be implemented:

  • The monitor should be capable to stop blocking tasks.
  • The SRQ (Service Request) - handling of the GPIB-Bus should be realized in a event-listener-model.
  • A solution for the problem that the GPIB-transmit-statement blocks the whole GPIB-bus should be found. The current thinking is to create higher-level- statements, in order to avoid the necessity to call transmit directly.
  • The Rob3-methods should be transferred to the V0.2-architecture.
Testing has to be done. And a lot of known bugs have to be eliminated.

The future development is open. There are already some aspects, which could be covered:

  • performance. It is always a point of interest, but was not covered intensely.
  • The resource-management-subsystem does currently support only one server for all the resources in one task. The support for multiple servers could be introduced.
  • device drivers for other instruments could be made, e.g. built-in measurement-boards.
  • A simpler installation process, e.g. WebStart.
  • Support for Linux etc. also on the server-side of Charly.
Your opinion counts, please mail the author!

Source and binaries

As for the moment, the development is in great flux, I do not put the sources and the binaries on the web. But you can mail me and I will send you the current state.

Hint for own GPIB/IEEE488 Java development

If you want to create your own GPIB/IEEE488 Java API, I recommend reading this article, which I have found on www.evaluationengineering.com.

If you want to use my gpib bridge, check out charly.server.devices.ChGpib. It is the first class I created with JNI and I have never adapted it to my grown knowledge about JNI. Thus, it is easy to be improved or even rewritten from scratch.


This page was updated on June 9, 2004. Please mail to codica@nexgo.de for any questions, wishes, ideas, etc.