D I S C L A I M E R
Don't trust undo/redo/autosave.
... is a tool for the synthesis and analysis of discrete event systems. Technically, DESTool is implemented as a graphical front-end to the discrete-event systems library libFAUDES. The latter uses a fairly simple functions-on-data approach, i.e., there are faudes-functions that operate on data of a specific faudes-type. Functions and types are documented by the libFAUDES user-reference. DESTool invites the user to organize a DES design task as a project that consists of faudes-typed variables on which a list of faudes-functions (aka script) is to be applied.
The below screen-shot shows a DESTool project for a variation of the well known simple machine example.
A DESTool script is a simple list of faudes-functions, ready to run within a couple of mouse clicks. Any advanced programming is banned to libFAUDES extensions.
Animated discrete event systems
To interactively inspect the outcome of a discrete event system design, DESTool provides step by step execution. Diagnostic information includes which components enable or disable individual events.
Building on the libFAUDES IoDevice plug-in, DESTool supports interaction with physical hardware to run a DES design on the actual plant.
Transparent to libFAUDES extensions
DESTool passes on the libFAUDES dynamic run-time-interface to the user. When you extend your copy of libFAUDES by additional algorithms, they are available through DESTool without adapting/re-compiling DESTool.
DESTool is available as GPL licensed source code from our GitHub repository FGDES. The build process is somewhat involved and for this reason we distribute pre-compiled binaries via our download page.
Linux: The Linux package of DESTool comes as .tar.gz archive. Extracting the archive, you obtain a folder faudes_destool, which you may place anywhere in the users file system. System-wide installation is currently not supported. To start DESTool, run ~/faudes_destool/bin/destool from a command shell. If you experience errors for missing libraries or unresolved symbols, get some more detailed information and/or let us know.
macOS: For Apple's macOS, DESTool is distributed as a .dmg disk-image. Double click will mount the image and the finder will show the DESTool application. It may be placed anywhere in the users file system. System-wide installation is currently not supported. The application bundle also includes the libFAUDES tools (e.g. luafaudes and simfaudes) in the directory DESTool.app/Contents/MacOS for command-line execution. The binary is built with the macOS 12 toolchain dated 2021 and should be compatible back to the introduction of Apple Silicon M1 in 2020. For older Macs, we still provide DESTool 0.83 (built on Mac OsX 10.11 compatible with Mac OsX 10.7, i.e., back to about 2011) or even DESTool 0.82 (built on Mac OSX 10.7 compatible with 10.4, i.e., back to about 2005).
MS Windows: DESTool is distributed as a setup.exe installer application. Double click will install by default to C:/Programs/FAUDES/DESTool. Users need write permission on the installation folder in order for DESTool to be fully operational. The MS Windows version of DESTool is compiled for 64-bit MS Windows 7 and should be compatible with subsequent 64bit editions of MS Windows. You may need to install the MS Visual C redistributable package --- look for "vc_redist.x64.exe" for MS VS 2015. The most recent distribution compatible back to 32-bit MS Windows XP is DESTool 0.76, available from the libFAUDES archive.
For automatic layout of graphs (generators, systems, etc.), DESTool relies on the tool dot from the Graphviz package. For most Linux distributions, dot can be installed by the package manager or is included anyway. For Mac OS and MS Windows, installers are available from the Graphviz site. Regarding DESTool, you may test your Graphviz installation by invoking dot -V from the command prompt. If DESTool fails to figure the location of the dot executable, the path can also be set in vioconfig.txt.
Regarding principle functionality, we consider DESTool as of version 0.40 to be fine for a public audience. However, there is still quite a number of minor and major issues with the actual user interface, like context menus, navigation through windows, undo/redo etc. We plan to address these issues in due course by silently updating up to version 0.99. During this process, newer versions of DESTool will continue to read files written by older versions, but not necessarily vice versa.
Please feel free to notify us about any undesirable behaviour in the user interface. This will help us to focus our efforts. Also check for available updates once in a while.
DESTool is developed at the Friedrich-Alexander-Universit¨a;t Erlangen-N¨u;rnberg with Thomas Moor as coordinator and principle author. The underlying class hierarchy for workspace objects and the interface via the libFAUDES RTI were designed in course of Ruediger Berndt's master thesis. Overall, our software development did substantially benefit from various student projects, either in form of code contributions or user feedback.
As of February 2024, the following people have contributed libFAUDES/DESTool:
Copyright (C) 2008 - 2024 Thomas Moor
|DESTool 0.84 (distributed unter GPL)
|DESTool 0.82 (improved build system)
|DESTool 0.74 (improved HIL-performance)
|DESTool 0.63 (Lua console)
|DESTool 0.51 (many bug-fixes, more to come)
|DESTool 0.40 (3rd public preview, luafaudes extensions)
|DESTool 0.33 (2nd public preview, libFAUDES RTI access)
|DESTool 0.21 (1st public preview)