Skip to content
Simone edited this page Jun 18, 2020 · 43 revisions

MoonLight

MoonLight is a light-weight Java-tool for monitoring temporal, spatial and spatio-temporal properties of distributed complex systems, as Cyber-Physical Systems and Collective Adaptive Systems.

It supports the specification of properties written with the Reach and Escape Logic (STREL). STREL is a linear time temporal logic, in particular, it extends the Signal Temporal Logic (STL) with a number of spatial operators that permit to described complex spatial behaviors as beeing surround, reaching target locations and escaping from specific regions. (more details)

Wrappers

We have defined two wrappers around the Java MoonLight implementation, one for Python and one for Matlab. Please consider the dedicated section for more details.

Getting Started

First of all, you need to get or generate the executable for Python or Matlab. You can

  • download the executable from this link
  • compile the source code.

Compiling the source code

First, you need to clone this repository

$ git clone https://github.com/MoonLightSuite/MoonLight.git

or download it (link). Then you need to compile it by using the Gradle wrapper. Please execute the following code from a command line window

$ ./gradlew clean
$ ./gradlew distribute
$ ./gradlew release

this tasks will generate a folder named <distribution> which contains three folders:

  • : it contains the moonlight.jar
  • : it contains all the necessary files to execute Moonlight form Matlab and some examples
  • : it contains all the necessary files to execute Moonlight form Python and some examples

visit the dedicated section for more information.