Skip to content
Simone edited this page Jun 19, 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 MATLAB and one for Python which is currently under development. Please consider the dedicated sections for more details.

Getting Started

First, you need to download JAVA (version 8) and set the environmental variable

JAVA_HOME= path to JAVA home directory

Then you need to get or generate the executable for Python or MATLAB.

First, you need to clone our repository

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

or download it (link).

Then you need to compile it by executing the following Gradle tasks in the console

$ ./gradlew clean
$ ./gradlew distribute
$ ./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 form MATLAB and some examples
  • python: it contains all the necessary files to execute MoonLight form Python and some examples

consider that every time you execute these tasks the distribution folder is replaced with a new one.

Please, for more information visit the dedicated sections

Clone this wiki locally