The Aroma Project
Link to the Home Page of The National Institute of Standards and Technology Link to the Home Page of The Software Diagnostics and Conformance Testing Division Link to the Home Page of The Standards and Conformance Testing Group
 Aroma Site Index
Aroma Overview
NIST Aroma Projector
NIST Aroma Projector
Aroma Shell
Projector Software on the Adapter
Projector Software on the Laptop
The Aroma Adapters
NIST Aroma Adapters
Aroma Adapter Native Performance
Performance Measurements
Measurement Insights
JavaTM Technology Performance on the Aroma Adapter
Responsiveness Issues
Responsiveness Results
Aroma's Future
 Aroma Projector Software on the Adapter
Aroma Projector Software
  • Services:

    • Aroma Remote Projector Control Service
    • Aroma Remote Projector Display Service
  • Clients:

    • AT&Ts Virtual Network Computer Client
  • APIs:

    • JavaComm for Linux + RXTX
Remote Projector Control Service on the Aroma Adapter
Click on image for larger graphic.
The Projector
  • The Kodak DP1100 projector can be controlled via an RS-232 port using CLI (Command Line Interface).

  • CLI is a ASCII-based language:

    • (BRT 10) Set brightness to 10
    • (CON 20) Set contrast to 20
    • (RST 1) Reset the projector
  • Commands must be given no faster than one per every 3 seconds.

Aroma Remote Projector Control Service
  • Wrote a JiniTM technology service to control the projector using the JavaComm API.

  • JavaTM technology makes things portable:

    • Developed in Solaris 7
    • Copied to Linux-based adapters with minimal changes
  • Used projector control sessions to prevent other users from accidentally "hijacking" control of the projector.

  • Used Blackdown JDK 1.2.2 RC4 because it has native threads needed by JavaComm.

Connecting to the Projector
  • JavaComm hands you all of the ports. You search for the port that you want. You can then configure and use it as you would expect.
Aroma Remote Projector Control Service
  • Wrote a JiniTM technology service to allow a Windows client to project its desktop using AT&Ts Virtual Network Computer.
  • Found a way to "FTP" a key file with RMI, effectively replacing a net protocol with JavaTM technology.
  • Used projector display sessions to prevent other users from accidentally "hijacking" the projector display.
When Runtime.exec() is not enough
  • In our research, we have run into the limits of Runtime.exec().
  • For example, when trying to redirect process output:
    • The process must be started in order to get a Process object, so that getErrorStream() can be called.
    • This may already be too late to capture valuable data.
    • The same holds for getOutputStream().
Our solution...
  • Weve created a public domain native library which allows a Tcl interpreter to be embedded in the same process as the JVM.
  • There are other JavaTM technology/Tcl utilities such as TclBlend.
  • The difference is that with TclBlend, Tcl is used to "script" JavaTM technology, where we allow Tcl to provide services to a JavaTM technology application.
Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.

Any mention of commercial products within NIST web pages is for information only; it does not imply recommendation or endorsement by NIST.

Contact Aroma Project Leader Alden Dima
Last Updated 09 August 2001 by Tony Cincotta