MONTHLY PROGRESS REPORT CONTRACTOR: University of California at Berkeley AGREEMENT NUMBER: DAAB07-97-C-J007 CONTRACT PERIOD: 11/18/96 - 9/30/00 DATE: February 21, 2000 TITLE: Heterogeneous Modeling And Design REPORT PERIOD: 1/15/00 - 2/15/00 SPONSOR: Air Force Research Laboratory (AFRL) TECHNICAL POC: James P. Hanna REPORT PREPARED BY: Edward A. Lee 0. Executive Summary We have released the beta version of Ptolemy II, version 0.4. See the appendix for the release notes. 1. Research Status Task 1: Modular deployable design tools ======================================= CORBA and Embedded Software --------------------------- Brian Vogel wrote a simple demo applet that uses CORBA to obtain and plot data from the ultrasonic detector connected to norbert (the NT machine in 524). The url is: http://norbert.eecs.berkeley.edu/sensor.htm This is the first step in creating distributed Java capabilities. The next step is to integrate this into a Ptolemy II distributed component architecture. Task 2: Domain-specific design tools ==================================== Audio ----- Brian K. Vogel has added SoundCapture and SoundPlayback to the ptolemy.media.javasound package. These classes support capturing and playing back audio. They use the brand new JDK 1.3.0 rc1 version of Java Sound. It is used by the new version of the AudioSource and AudioSink actors. These are SDF actors rather than domain-polymorphic actors so that they can exploit the efficiency with which SDF can manager large sequences of data. Task 3: Heterogeneous interaction semantics ========================L=================== Nothing to report. Generic (Cross Task) ==================== User Interface -------------- Steve Neuendorffer has finished a simplified manhattan routing algorithm for Vergil, the Ptolemy II GUI. Math Package ------------ Jeff Tsay checked in *ArrayMath.java and *MatrixMath.java where * is Double, Float, Integer and Long. He has removed MatrixMath.java because it is now renamed to DoubleMatrixMath.java. He is working on filling in the operations for the matrix tokens. Class Loader ------------ Christopher Hylands has been working on a mechanism for applets to be able to access files relative to the classpath. It turns out that the getResources() method in java.lang.ClassLoader will search the classpath for a file and return a URL to it, so this is just what we need, however, an applet does not seem to have direct access to the class loader. Nonetheless, he used this mechanism to improve the way that applications access files. Design Reviews -------------- Wed 1/26 FSM Director Wed 2/2 MoML Wed 2/9 Vergil Mon 2/14 Sound 2. Equipment/Infrastructure Status: no changes. 3. Interactions and Technology Transfer - Neil Smyth of Telcordia has made progress on the use of Vergil as a GUI for Ptolemy Classic. The ClassicDirector in Vergil generates a ptcl representation of the universe, then starts up ptcl in a separate process. The ptcl process initially acts as a server, to which the JVM connects and transfers over the ptcl script using a very simple protocol (ready->send_>done), after which ptcl executes the script. He is using sockets to achieve the transfer. - Frederic Boulanger of Supelec in France reports that they will start writing code for a debugger that will be a plug-in for Vergil. They plan to implement the following operations: - go: run until the end of the execution or a breakpoint is met - step : step over one iteration of an actor [prefire() -> postfire()] - step into : same thing, but consider each actor of a composite actor individually - step out : run until the end of the iteration of a composite actor. - microstep : step over one activation of an actor [fire()]. ("microstep into" is not necessary since "step into" will stop before the prefire of the first inner actor). All these operations may be interrupted if a breakpoint is met. Breakpoints may be set on: - initialize() - prefire() - fire() - postfire() - wrapup() - a condition on the value or the status of data on a port The last one depends on the domain, since there may not be any data to compare to something (DE), or waiting for data may make no sense (CT or SDF). - Prof. Patrick Dewilde, director of Dimes, Delft University, The Netherlands, visited our group on February 9. 4. Personnel Status No changes. 5. Talks/Presentations/Publications: Presentations ------------- - "Embedded Software - A Research Agenda," Edward A. Lee, invited talk at BDTI, Berkeley, CA, Feb. 1, 2000. Publications ------------ [1] Jie Liu, Bicheng Wu, Xiaojun Liu, and Edward A. Lee, "Interoperation of Heterogeneous CAD Tools in Ptolemy II," Journal of Modeling and Simulation of Microsystems, JMSM, Accepted for publication in vol. 1, no. 2, 2000. Study Group Topics ------------------ - Extreme Programming (XP) - SystemC - EPOC/Symbian 6. Difficulties/Problems None to report. 7. Next Quarter Plans We are planning the final release (version 0.4) of Ptolemy II. 8. Financial Data Provided separately on a quarterly basis by the university. APPENDIX ======== Release announcement for Ptolemy II 0.4 beta -------------------------------------------- Ptolemy II 0.4beta is available for download, see http://ptolemy.eecs.berkeley.edu/ptolemyII/ptII0.4/ If you are running Netscape Communicator, or Microsoft Internet Explorer, and have the JDK1.2.2 plugin installed, then you can run the applet demos. Other users will need to download and install Ptolemy II to run the applets. The beta version of the release notes are as follows: --start-- Ptolemy II 0.4beta Release Notes -------------------------------- Ptolemy II 0.4beta is a release of the Ptolemy II Java classes and the Ptolemy II design document Ptolemy II 0.4beta includes applet demonstrations of the domains, but it does not include a GUI. The design document describes the Ptolemy II design and the implementation of the Java classes. The Ptolemy design document is shipped with Ptolemy 0.4, it can be found in $PTII/doc/design. The most recent copy of the Ptolemy II design document can be found online at http://ptolemy.eecs.berkeley.edu/ptolemyII/doc/design.html Major Features that are new in Ptolemy 0.4 * Ptolemy II 0.4 supports an XML language called MoML for specifying component-based models. (Edward A. Lee, Steve Neuendorffer and the Ptolemy Team) * The source code for the Finite State Machine (FSM) domain is included. (Xiaojun Liu and the Ptolemy Team) * Major rewrite of the type system. (Yuhong Xiong) * The Discrete Event domain has been tuned for performance. (Edward A. Lee and the Ptolemy Team) * We are moving away from the JDK1.1 collections package and using the JDK1.2 collections classes from java.util. Methods that shipped with Ptolemy II 0.3 that used the JDK 1.1 collections package have been marked as deprecated in Ptolemy II 0.4. It is our intention to remove these deprecated methods in Ptolemy II 1.0 and to no longer ship the $PTII/collections directory. (The Ptolemy Team) * Support for fix point data types. (Bart Kienhuis, Yuhong Xiong) * Various demonstrations have been added, removed and/or rewritten. (The Ptolemy Team) * Commmand line invocation of models via $PTOLEMY/bin/ptolemy. (Edward A. Lee, Christopher Hylands and the Ptolemy Team) Platforms --------- The core of Ptolemy II 0.4 is 100% Java, so it should work on any platform that has JDK1.2. We developed Ptolemy II 0.4 under Solaris 2.5.1 and NT4.0sp3 and later with JDK1.2.2. Ptolemy II 0.4 has also been built and tested under JDK1.3 beta. Ptolemy II 0.4 will not compile under JDK1.1.x. See the Jacl section of the installation page for information about the Ptolemy II test suite Limitations ----------- * The gzipped tar file that contains the Ptolemy II distribution requires GNU tar or WinZip. Solaris 2.5.1 tar will fail to untar this file with a checksum error because the pathnames are longer than 100 characters. If you do not have GNU tar, you can obtain source and selected binaries from ftp://ptolemy.eecs.berkeley.edu/pub/gnu. * Ptolemy II 0.4 does not include a GUI. * This is the first release of the Finite State Machine domain (FSM) which has the following limitations * The FSM design document chapter is not part of the 0.4 beta * There are not very many tests for FSM * MoML support for FSM models is incomplete. * The readFile() parameter function does not work with applets. * The import statement in MoML requires the base attribute. The following will not work: Use the following instead * The JDK1.2.1 Plug-in has a bug that causes the Netscape or Iexplorer process to linger after exiting. The workaround is to turn of the JIT using the Java Plug-in Control Panel, see the Troubleshooting guide for details. This bug may be fixed in JDK1.2.2. --end--