Skip to content
lalica edited this page Jan 12, 2021 · 43 revisions

MoonLight Build Status codecov

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 being surround, reaching target locations, and escaping from specific regions.

MoonLight is implemented in Java, but it features also a MATLAB interface that allows the monitoring of spatio-temporal signals generated within the MATLAB framework. A Python Interface is under development.

Getting Started

First, you need to clone our repository

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

or download it (link).

To generate the executable for Python or MATLAB, you need to compile it by executing the following Gradle tasks in the console

$ ./gradlew clean
$ ./gradlew distribution
$ ./gradlew release

This tasks will generate a folder, named distribution, which contains three folders:

  • java: it contains the moonlight.jar
  • matlab: it contains all the necessary files to execute MoonLight from MATLAB and some examples
  • python: it contains all the necessary files to execute MoonLight from Python and some examples

Please, consider that every time you will execute these tasks, the distribution folder will be replaced with a new one.

For more information visit the dedicated sections:

Clone this wiki locally