This document describes the state of the Moses system and Vir-Sim systems as of 7/11/2000.
The Moses system is in a functional state (Beta 1) as of this time, but contains some experimental code.
All documentation for the Moses project can be found under http://www.tik.ee.ethz.ch/~moses. These document the main parts of Moses, these being:
A good starting place is the Moses tutorial, as well as the description of the HADES architecture.
All Moses source code is stored in a cvs repository under the directory ~/moses/cvs. For cvs details, look on the net, or ask Kim Mason (kmason@addr.com), Joern Janneck (jwj@acm.org) or Rob Esser (esser@computer.org).
Moses libraries, images, and other non-source are stored in ~moses/build/skeleton.
My complete development environment for Moses is stored in ~moses/kimsmosesfolder/moses. This development environment contains nothing that the beta 1 all repository doesn't contain, but does contain some scripts for running and compiling Moses that may be useful.
For information about other beta 1 Moses repositories, talk to Rob Esser or Prof. Thiele.
Moses can be built by executing the script ~moses/build/scripts/compileMoses. Additionally, there is a second script that compiles Moses called compileMosesTest in this directory - it is similar, but doesn't mail out compilation results to people. This will package up a ready to go JAR file and source archive file that is identical to the one distributed from the Moses page.
An integration between Moses and a VR system has been made. This is available under the package virsim.vr in the Moses source. It is a Moses component with an extra thread that communicates to the VR-System. A simple example is available in Basic.rep in the ~moses\kimsmosesdirectory\work\moses\moses.
It is possible to integrate Moses with a real control system, however, the following problem must be overcome:
A single thread of execution usually executes the events, which may in turn cause more events to be scheduled.
A problem occurs when external processes wish to communicate with Moses (thus causing event generation). There are 2 possibilites to handle this.
An additional problem with polling occurs when Moses is executing it's events synchronised with real time. The usual way to execute events real-time is to check the timestamp of the next event, and put the executing thread to sleep until that time arrives. The polling method would require a busy wait (continuous polling) until this time arrives - this is obviously bad.
Some VR-Sim documents, and slides are available in ~moses/kimsmosesfolder/work/VRProject, as well as the source code for the Hulliger Laser Machine simulator that has been connected to the VR-System (Stefan Dierrsen has the VR-system that this simulator communicates with).
A new repository has been created for Moses, and exists completely in moses.rep and moses.tools. The new repository is much simpler than the previous one, and is more similar to a file-system. Everything uses XML, and a graphical repository viewer currently exists within the Moses distribution, accessible from the File menu in Moses. This repository viewer is similar to Windows explorer.
The Moses tools must be modified to support the new repository. However, as the new repository provides less funtionality than the old repository, some of this functionality must be moved into the Moses tools.
More information about the new repository is posted on the Moses web page documentation section.