From 5e4031446a917e417d8ba0e49a8aa17c9aa1e6ed Mon Sep 17 00:00:00 2001 From: Quentin Quadrat Date: Fri, 26 Apr 2024 19:17:33 +0200 Subject: [PATCH] Update doc --- README.md | 116 ++++++++++++++++++------ data/examples/AppelsDurgence.json | 44 ++++----- doc/biblio.md | 12 +-- doc/cli.md | 20 ---- doc/gui.md | 52 ----------- doc/install.md | 146 ------------------------------ doc/pics/911.png | Bin 0 -> 105154 bytes doc/save.md | 27 +++--- doc/why.md | 13 --- doc/wip.md | 16 ---- tests/HowardTests.cpp | 2 +- 11 files changed, 126 insertions(+), 322 deletions(-) delete mode 100644 doc/cli.md delete mode 100644 doc/gui.md delete mode 100644 doc/install.md create mode 100644 doc/pics/911.png delete mode 100644 doc/why.md delete mode 100644 doc/wip.md diff --git a/README.md b/README.md index 5674ed6..03cd9a1 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,94 @@ # Timed Petri Net Editor -[![CI testing](https://github.com/Lecrapouille/TimedPetriNetEditor/actions/workflows/ci.yml/badge.svg)](https://github.com/Lecrapouille/TimedPetriNetEditor/actions/workflows/ci.yml) - -[This project](https://github.com/Lecrapouille/TimedPetriNetEditor) is a -graphical interface for editing and running (timed) Petri nets and specially timed event -graphs which are a subclass of Petri nets with good mathematics properties for -modeling discrete event systems (DES) with [(max,+) -algebra](https://jpquadrat.github.io/). This tool can generate (max,+) code for -[Julia](https://julialang.org/) used in synergy with -[(max,+)](https://github.com/Lecrapouille/MaxPlus.jl) algebra toolbox running -with the [Julia](https://julialang.org/) language. This editor also exports the -net as figures (LaTeX, Graphivz) or to other applications (Symfony, -pn-editor ...) or generate C++ code (GRAFCET aka SFC sequential function chart -that could run i.e. on Arduino). +[TimedPetriNetEditor](https://github.com/Lecrapouille/TimedPetriNetEditor) is a +graphical interface for editing and running Petri nets. It offers some mathematics +tools for timed event graphs which are a subclass of timed Petri nets with good +mathematics properties for modeling discrete event systems with [(max,+) +algebra](https://jpquadrat.github.io/). + +**Note:** An online version is in gestation. +Here is the [link](https://lecrapouille.github.io/TimedPetriNetEditor/TimedPetriNetEditor.html). + +## What are Petri nets, timed Petri nets, timed event graph, GRAFCET? + +You can read this [internal document](doc/petri.md) for more information. Else +you can go to [Related lectures and projects](doc/biblio.md). + +## Application Overview The following picture is an overview of the look of the application. You can -click on it to watch a YouTube showing an example of timed Petri net running. +click on it to watch a YouTube showing an example of timed Petri net running +simulating emergency operators (French 911 call center) responding to people in +distress. Operators of level 1 filter non-critical cases (advice). Operators of +level 2 manage other cases: urgency and critical cases. For urgency cases, the +operator of level 1 hangs up when he makes the victim wait the operator of +level 2. For critical cases, the operator of level 1 waits with the victim until +an operator of level 2 pick up before hanging up. -[![TimedPetri](doc/pics/TimedPetri01.png)](https://youtu.be/hOhunzgFpcA) +[![TimedPetri](doc/pics/911.png)](https://youtu.be/hOhunzgFpcA) *Fig 1 - A timed Petri net (made with this editor).* -**Note:** An online version is in gestation. Here is the [link](https://lecrapouille.github.io/TimedPetriNetEditor/TimedPetriNetEditor.html). - -- [Why developing another Petri editor?](doc/why.md) -- [Work in progress](doc/wip.md) -- [What are Petri nets, timed Petri nets, timed event graph?](doc/petri.md) -- [How to compile and install the project?](doc/install.md) -- [Command line](doc/cli.md) -- [Mouse and key bindings for the graphical interface](doc/gui.md) -- [Controlling the editor through MQTT commands](doc/mqtt.md) -- [Description of the file format used for saving Petri net](doc/save.md) -- [Exporting the net](doc/export.md) -- [Exporting to C++ code](doc/grafcet.md) -- [Interface with Julia](doc/julia.md) -- [Examples](data/examples/README.md) -- [Related lectures and projects](doc/biblio.md) +Why developing another Petri editor? Because: +- This project has started as a continuation of [ScicosLab](http://www.scicoslab.org/)'s + (max,+) toolbox developed at INRIA (which is no longer developed) which missed + a graphical Petri editor associated with (max,+) algebra. +- Many Petri net editors in GitHub are no longer maintained (> 7 years) or that + I cannot personally compile or use (Windows system, Visual Studio compiler, + C#, Java ..) or the code is too complex (no comments) to add my own extensions. This + editor can be used for Julia language. + +## Compilation, Installation + +```sh +git clone https://github.com/Lecrapouille/TimedPetriNetEditor --depth=1 --recursive +cd TimedPetriNetEditor/ +make download-external-libs +make compile-external-libs +make -j8 +sudo make install +``` + +## Usage + +You can pass a Petri net file to the command line. See this [document](doc/save.md) +concerning the description of the file format used for saving Petri net. + +```sh +./build/TimedPetriNetEditor [data/examples/AppelsDurgence.json] +``` + +See: +- this [document](data/examples/README.md) showing some examples offered with this repo. +- ~~this [document](doc/gui.md) describing the mouse and key bindings for the graphical interface.~~ +- ~~this [document](doc/mqtt.md) describing how to control the editor through MQTT commands.~~ +- this [document](doc/export.md) Explaining how to export/import the net to/from other applications. + +## Debug inside Visual Studio Code + +Type F5 key to launch the application with a debugger. +You can modify the `.vscode/launch.json` to indicate + +## Julia integration + +The `make install` is needed for its usage with Julia. Once installed in your operating system, you can directly from +the [Julia](https://github.com/JuliaLang/julia) REPL (this part +is described in detail in a dedicated [document](julia.md)): + +```sh +julia> include("src/julia/TimedPetriNetEditor.jl") +counter (generic function with 1 method) + +julia> pn = petri_net() +PetriNet(0) + +julia> editor!(pn) +``` + +If you do not desire to install TimedPetriNetEditor on your operating system, +you will have to adapt the `DEFINES` in Makefile to indicate the path of the +`data/` folder (to find the fonts). You will also have to manually modify this +Julia file to indicate the correct path of the shared library +`libtimedpetrineteditor.so`. + +You can read this [document](doc/julia.md) concerning the API for Julia. diff --git a/data/examples/AppelsDurgence.json b/data/examples/AppelsDurgence.json index 6032941..68d60a5 100644 --- a/data/examples/AppelsDurgence.json +++ b/data/examples/AppelsDurgence.json @@ -1,36 +1,36 @@ { "revision": 3, - "type": "Timed Petri net", + "type": "Petri net", "nets": [ { "name": "AppelsDurgence", "places": [ - { "id": 0, "caption": "P0", "tokens": 0, "x": 403, "y": 111 }, - { "id": 1, "caption": "P1", "tokens": 0, "x": 523, "y": 259 }, + { "id": 0, "caption": "Filtrage de l'appel", "tokens": 0, "x": 402, "y": 72 }, + { "id": 1, "caption": "Attente d'une conference a 3", "tokens": 0, "x": 523, "y": 259 }, { "id": 2, "caption": "Conference a trois", "tokens": 0, "x": 83, "y": 438 }, { "id": 3, "caption": "Instructions avec operateur de niveau 2", "tokens": 0, "x": -40, "y": 505 }, - { "id": 4, "caption": "Operateur niveau 2", "tokens": 4, "x": 494, "y": 439 }, - { "id": 5, "caption": "Instructions avec operateur de niveau 1", "tokens": 0, "x": 210, "y": 244 }, - { "id": 6, "caption": "Musique attente", "tokens": 0, "x": 158, "y": 360 }, - { "id": 7, "caption": "Instructions avec operateur de niveau 2", "tokens": 0, "x": 808, "y": 440 }, - { "id": 8, "caption": "Instructions avec operateur de niveau 1", "tokens": 0, "x": 201, "y": 46 }, - { "id": 9, "caption": "Operateurs de niveau 1", "tokens": 4, "x": -38, "y": -20 }, - { "id": 10, "caption": "Victimes", "tokens": 7, "x": 403, "y": -109 }, + { "id": 4, "caption": "Centrale d'operateurs de niveau 2", "tokens": 4, "x": 351, "y": 553 }, + { "id": 5, "caption": "Instructions avec operateur de niveau 1", "tokens": 0, "x": 297, "y": 290 }, + { "id": 6, "caption": "Musique d'attente", "tokens": 0, "x": 158, "y": 360 }, + { "id": 7, "caption": "Instructions avec operateur de niveau 2", "tokens": 0, "x": 622, "y": 449 }, + { "id": 8, "caption": "Instructions avec operateur de niveau 1", "tokens": 0, "x": 125, "y": 138 }, + { "id": 9, "caption": "Centrale d'operateurs de niveau 1", "tokens": 4, "x": -38, "y": -20 }, + { "id": 10, "caption": "Victimes appellant les urgences", "tokens": 7, "x": 403, "y": -109 }, { "id": 11, "caption": "Actions urgentes", "tokens": 0, "x": 383, "y": 642 }, - { "id": 12, "caption": "Actions critiques", "tokens": 0, "x": 254, "y": 641 } + { "id": 12, "caption": "Actions critiques", "tokens": 0, "x": 200, "y": 643 } ], "transitions": [ - { "id": 0, "caption": "Critique", "x": 524, "y": 110, "angle": 315 }, - { "id": 1, "caption": "T1", "x": 247, "y": 439, "angle": 270 }, - { "id": 2, "caption": "T2", "x": -39, "y": 361, "angle": 90 }, - { "id": 3, "caption": "T3", "x": -40, "y": 602, "angle": 90 }, - { "id": 4, "caption": "Urgent", "x": 404, "y": 245, "angle": 270 }, - { "id": 5, "caption": "Appel d'urgence", "x": 403, "y": -21, "angle": 90 }, - { "id": 6, "caption": "T6", "x": 36, "y": 243, "angle": 270 }, - { "id": 7, "caption": "T7", "x": 675, "y": 360, "angle": 270 }, - { "id": 8, "caption": "Conseil", "x": 292, "y": 112, "angle": 225 }, - { "id": 9, "caption": "T9", "x": 50, "y": 47, "angle": 270 }, - { "id": 10, "caption": "T10", "x": 660, "y": 509, "angle": 270 } + { "id": 0, "caption": "Situation critique", "x": 524, "y": 110, "angle": 315 }, + { "id": 1, "caption": "Operateur de niveau 2 repond a l'appel", "x": 247, "y": 439, "angle": 270 }, + { "id": 2, "caption": "Operateur de niveau 1 quitte l'appel", "x": -39, "y": 361, "angle": 90 }, + { "id": 3, "caption": "Fin de l'appel", "x": -40, "y": 602, "angle": 90 }, + { "id": 4, "caption": "Situation d'urgence", "x": 404, "y": 181, "angle": 270 }, + { "id": 5, "caption": "Operateur de niveau 1 repond a l'appel", "x": 403, "y": -21, "angle": 90 }, + { "id": 6, "caption": "Transfer l'appel ver moperateur de niveau 2", "x": 36, "y": 243, "angle": 270 }, + { "id": 7, "caption": "Operateur de niveau 2 repond a l'appel", "x": 523, "y": 362, "angle": 270 }, + { "id": 8, "caption": "Situation de conseil", "x": 286, "y": 138, "angle": 225 }, + { "id": 9, "caption": "Fin de l'appel", "x": 50, "y": 47, "angle": 270 }, + { "id": 10, "caption": "Fin de l'appel", "x": 529, "y": 553, "angle": 270 } ], "arcs": [ { "from": "P0", "to": "T0" }, diff --git a/doc/biblio.md b/doc/biblio.md index c58b935..f8b2053 100644 --- a/doc/biblio.md +++ b/doc/biblio.md @@ -1,13 +1,9 @@ # Related lectures and projects -- ![en](https://lecrapouille.github.io/icons/en.png) ![fr](https://lecrapouille.github.io/icons/fr.png) https://jpquadrat.github.io/ Some research based on timed Petri net - and (max,+) algebra. -- ![en](https://lecrapouille.github.io/icons/en.png) ![fr](https://lecrapouille.github.io/icons/fr.png) https://github.com/Lecrapouille/MaxPlus.jl My (max,+) toolbox for - Julia, a portage of the http://www.scicoslab.org/ toolbox (since Scilab is no - longer maintained). -- ![en](https://lecrapouille.github.io/icons/en.png) http://www.cmap.polytechnique.fr/~gaubert/HOWARD2.html is the algorithm used - for computing the (max,+) eigenvalue used in ScicosLab MaxPlus toolbox and - that I reused in this project. +- ![en](https://lecrapouille.github.io/icons/en.png) ![fr](https://lecrapouille.github.io/icons/fr.png) https://jpquadrat.github.io/ Some research based on timed Petri net and (max,+) algebra. +- ![en](https://lecrapouille.github.io/icons/en.png) ![fr](https://lecrapouille.github.io/icons/fr.png) https://github.com/Lecrapouille/MaxPlus.jl My (max,+) toolbox for Julia, a portage of the http://www.scicoslab.org/ toolbox (since Scilab is no longer maintained). +- ![en](https://lecrapouille.github.io/icons/en.png) The book [SYNCHRONIZATION AND LINEARITY: An Algebra for Discrete Event Systems](https://www.rocq.inria.fr/metalau/cohen/SED/book-online.html) can be downloaded for free. The Scilab toolbox is based on this book. +- ![en](https://lecrapouille.github.io/icons/en.png) http://www.cmap.polytechnique.fr/~gaubert/HOWARD2.html is the algorithm used for computing the (max,+) eigenvalue used in ScicosLab MaxPlus toolbox and that I reused in this project. - ![en](https://lecrapouille.github.io/icons/en.png) http://www.unice.fr/dgaffe/recherche/outils_grafcet.html GRAFCET editor. - ![fr](https://lecrapouille.github.io/icons/fr.png) [ENSIAME IMS](https://www.fichier-pdf.fr/2014/06/16/cours-api-ims-2014-v1/) by JC. Popieul. - ![fr](https://lecrapouille.github.io/icons/fr.png) https://sites.google.com/view/apimou/accueil A Grafcet editor and code diff --git a/doc/cli.md b/doc/cli.md deleted file mode 100644 index 00a040b..0000000 --- a/doc/cli.md +++ /dev/null @@ -1,20 +0,0 @@ -# Command line - -The command line is optional. By default type of net is timed Petri. The type of -net is stored inside the file (GRAFCET, timed Petri net ...) but can be changed -(under condition for event graph) later from the editor menu. - -```sh -TimedPetriNetEditor [petri.json] -``` - -Where: -- `[petri.json]` is an optional Petri net file to load (JSON format). The type -of net is stored inside the json file ((timed) Petri net, timed graph event, -GRAFCET ...) but the GUI allows you to swith of type. - -Example: - -```sh -TimedPetriNetEditor data/examples/Howard2.json -``` diff --git a/doc/gui.md b/doc/gui.md deleted file mode 100644 index de807b2..0000000 --- a/doc/gui.md +++ /dev/null @@ -1,52 +0,0 @@ -# Mouse and key bindings for the graphical interface - -The editor does not offer any buttons, therefore all actions are directly made -from the mouse and the keyboard (like Emacs but without the Meta key ^^). -- `Escape` quit the application. The unsaved net will be asked for saving before the - application closes. -- `Left mouse button pressed` on a caption or in duration (*work in progress*) to edit it. - Press the Enter key to validate the content or press the Escape key to abort. -- `Left mouse button pressed`: add a new place. Note: this action is ignored if - you are trying to create a node on an already existing node (place or - transition). -- `Right mouse button pressed`: add a new transition. Note: this action is - ignored if you are trying to create a node on an already existing node (place - or transition). -- `Middle mouse button pressed`: start creating an arc either from an existing - node (place or transition) as the origin or, if no node was selected by the mouse - cursor, the editor will find the correct type depending on the destination - node. -- `Middle mouse button released`: end creating an arc either from the selected - node (place or transition) as the destination or, if no node is selected, the - editor will find the correct type depending on the origin node. In the case - you have tried to link two nodes of the same type (two places or two - transitions) then an intermediate node of the opposite type will be created as - well as an intermediate arc. -- `Middle mouse scroll`: zoom/unzoom the view. -- `Up`, `Down`, `Right`, `Left` keys: move the view. -- `L` key: same action as the middle mouse button. -- `M` key: move the node (place or transition) selected by the mouse cursor. -- Linux: `Delete` key: remove a node (place or transition). Note: since all identifiers - shall be consecutive (no gaps), the unique identifier of the last created node - of the same type will receive the unique identifier of the deleted one. Note: - arcs cannot yet be deleted. -- MacOSX: `\` for deleting node. - -The whole GUI is currently in refacto. The following commands will be removed in next -commits: -- `Z` key: clear the whole Petri net. -- Linux: `+`, `-` keys: add/remove a token on the place selected by the mouse cursor. -- MacOSX: `[`, `]` keys: add/remove a token on the place selected by the mouse cursor. -- `PageUp`, `PageDown` keys: rotate CW or CCW the transition selected by the - mouse cursor. -- `R` or `SPACE`key: start (run) or stop the simulation. Note: if the simulation - is stalled (no possible burning tokens), then the simulation will automatically - stops and returns to the edition mode. -- `S` key: save the Petri net to a JSON file. -- `Shift S` key: save as the Petri net to a JSON file. -- `O` key: load a Petri net from a JSON file. -- `E` key: is the current timed Petri net a timed graph event? -- `C` key: show the first critical circuit if and only if the Petri net is a - graph event. -- `F1` key: take a screenshot of the application. -- `H` key: show this help. diff --git a/doc/install.md b/doc/install.md deleted file mode 100644 index 3f41362..0000000 --- a/doc/install.md +++ /dev/null @@ -1,146 +0,0 @@ -# How to compile and install the project? - -This project is developed in C++14 and compiled with a Makefile (it does not use CMake) -for Linux, Mac OS X and Web(if compiled with Emscripten). - -Here are prerequisites to compile this project are: -- The GUI is made with [Dear ImGui](https://github.com/ocornut/imgui), - [raylib](https://github.com/raysan5/raylib) used as Dear ImGui backend, and other - Dear ImGui widgets (ImPlot). -- [MQTT mosquitto](https://github.com/eclipse/mosquitto): `sudo apt install - libmosquitto-dev mosquitto mosquitto-clients`. -- Optionally, libdwarf: `sudo apt-get install libdw-dev` (needed when compiling - this project in debug mode because it will use - [backward-cpp](https://github.com/bombela/backward-cpp) for showing the stack - trace in case of segfault) else in the Makefile replace `BUILD_TYPE = debug` - by `BUILD_TYPE = release`. - -Optionally, a [Julia 1.x](https://julialang.org/) code binding the C++ API can be -optionally used for working in synergy with my [(max,+) toolbox](https://github.com/Lecrapouille/MaxPlus.jl). -You can install Julia from https://julialang.org/downloads but this does not impact the standalone graphical editor. - -## Clone the project - -```sh -git clone https://github.com/Lecrapouille/TimedPetriNetEditor --depth=1 --recursive -``` - -The recursive argument is important: it allows to clone my Makefile helper. - -## Compile the project for Linux and Mac OS X - -```sh -cd TimedPetriNetEditor/ -make clean -make download-external-libs -make compile-external-libs -make -j8 -``` - -Compiled files are in `build` folder. - -Where: -- `make download-external-libs` is needed to be done once for downloading - third-parts libraries (it replaces older). -- `make compile-external-libs` is needed to be done once for compiling third-parts libraries. -- `-j8` is to be adapted to the number of CPU cores of your computer (8 cores in my case). - -## Compile the project for Emscripten - -Install the Emscripten environament, and type: - -```sh -cd TimedPetriNetEditor/ -make download-external-libs -emmake make compile-external-libs -emmake make -j8 -``` - -## Compile with alternative compiler - -You can change your compiler with `CXX=clang++-13` for example. You can add `V=1` -for verbosity. - -```sh -cd TimedPetriNetEditor/ -make clean -make download-external-libs -make CXX=clang++-13 compile-external-libs -V=1 make CXX=clang++-13 -j8 -``` - -## Installation, execution - -Once compiled, you can run the TimedPetriNetEditor application, you can: -```sh -./build/TimedPetriNetEditor -``` - -For Mac Os X a bundle application is present. - -For Web page: you can do either: -- `make run` (**note:** small but currently it rebuilds the whole project each time). -- `cd build; emrun TimedPetriNetEditor.html` - -For Julia developers, you can use this editor in synergy with my Julia -[(max,+)](https://github.com/Lecrapouille/MaxPlus.jl) toolbox. The easier way to -achieve it is to you install TimedPetriNetEditor on your operating system (this -will install a shared library needed that can be found by Julia **note:** not yet -made with Mac OS X): - -```sh -sudo make install -``` - -For example on Linux: -``` -*** Installing: doc => /usr/share/TimedPetriNetEditor/0.3.0/doc -*** Installing: examples => /usr/share/TimedPetriNetEditor/0.3.0/examples -*** Installing: data => /usr/share/TimedPetriNetEditor/0.3.0/data -*** Installing: libs => /usr/lib -*** Installing: pkg-config => /usr/lib/pkgconfig -*** Installing: headers => /usr/include/TimedPetriNetEditor-0.3.0 -*** Installing: src => /usr/include/TimedPetriNetEditor-0.3.0 -``` - -Once installed, you can call directly the Petri net editor: -```sh -TimedPetriNetEditor -``` - -## Command line - -`TimedPetriNetEditor` takes an optional Petri file in the command line -for example one inside `data/examples`: - -```sh -TimedPetriNetEditor petri.json -``` - -## Debug with Visual Studio Code - -Type F5 key to launch the application inside a debugger. -You can modify the `.vscode/launch.json` for example to modify -with file to start with a differnet Petri file. - -## Julia integration - -Once installed in your operating system, you can directly from -the [Julia](https://github.com/JuliaLang/julia) REPL (this part -is described in detail in a dedicated [document](julia.md)): - -```sh -julia> include("src/julia/TimedPetriNetEditor.jl") -counter (generic function with 1 method) - -julia> pn = petri_net() -PetriNet(0) - -julia> editor!(pn) -``` - -If you do not desire to install TimedPetriNetEditor on your operating system, -you will have to adapt the `DEFINES` in Makefile to indicate the path of the -`data/` folder (to find the fonts). You will also have to manually modify this -Julia file to indicate the correct path of the shared library -`libtimedpetrineteditor.so`. diff --git a/doc/pics/911.png b/doc/pics/911.png new file mode 100644 index 0000000000000000000000000000000000000000..04e297a4e2bbef6e851e01bb6f5bef910870e15e GIT binary patch literal 105154 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ⅈ0G12+Pp!?|FK?VmVlcIb*le3~yU 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 Ig7HrL2XV;W#{d8T literal 0 HcmV?d00001 diff --git a/doc/save.md b/doc/save.md index 389642f..0d6d208 100644 --- a/doc/save.md +++ b/doc/save.md @@ -1,17 +1,16 @@ # Description of the file format used for saving Petri net JSON file format has been chosen for saving Petri net. This was initially made -to be compatible with -[pnet-simulator](https://github.com/igorakim/pnet-simulator) but the format is no longer -compatible. Here, is an example of its content: +to be compatible with [pnet-simulator](https://github.com/igorakim/pnet-simulator) +but the format is no longer compatible. Here, is an example of its content: ```json { - "revision": 2, + "revision": 3, + "type": "Timed Petri net", "nets": [ { "name": "Hello World", - "type": "Timed Petri net", "places": [ { "id": 0, "caption": "P0", "tokens": 1, "x": 184, "y": 295 }, { "id": 1, "caption": "P1", "tokens": 0, "x": 513, "y": 295 } @@ -29,7 +28,7 @@ compatible. Here, is an example of its content: } ``` -Json file has revison number concerning its syntax (here version 2). Currently +Json file has revison number concerning its syntax (currently version 3). Currently only an array with a single net is loaded (`"nets": [ { ... ] ]`). A Petri net is composed of three arrays (the `[ ]`): `Places`, `Transitions` and @@ -37,7 +36,8 @@ A Petri net is composed of three arrays (the `[ ]`): `Places`, `Transitions` and places, one transition, and two arcs. Places and Transitions: -- their unique identifier (unsigned int) i.e. `0`, `1`. +- their unique identifier (unsigned int) i.e. `0`, `1`. All ids shall be + consecutive (no holes). - their caption is a string with spaces accepted. - their X and Y coordinate (float) in the screen i.e. `T0` is placed at `(351,295)`. @@ -46,14 +46,13 @@ Places and Transitions: - for transition only: the angle (in degree) of rotation when displayed. Arcs: -- have no unique identifier. -- are directed links between two nodes of the different types given the unique - identifier (i.e. the first arc links the origin place `P0` to the destination - transition `T0`. Therefore an arc cannot link two places or link two - transitions. +- re directed links between two nodes of the different types (i.e. the first + arc in this example, links the origin place `P0` to the destination transition `T0`). + Therefore an arc cannot link two places or link two transitions. +- have no identifiers because the pair origin and destination nodes make them unique. - has a unit of time (positive value) i.e. the arc `T0 --> P1` has 3 units of times (float). This time is only used for arc `Transition` to `Place` this means that for arc `Place` to `Transition` this value is not used. -Petri net: -- Have a name (here "Hello World") and is typed of "Timed Petri net". +Net: +- Have a name (here "Hello World") and is typed of "Timed Petri net" or . diff --git a/doc/why.md b/doc/why.md deleted file mode 100644 index 81af1f0..0000000 --- a/doc/why.md +++ /dev/null @@ -1,13 +0,0 @@ -# Why developing another Petri editor? - -Because: -- This project has started as a continuation of - [ScicosLab](http://www.scicoslab.org/)'s (max,+) toolbox that my father - developed at INRIA and which is no longer developed. There are no Petri - editors with (max,+) on GitHub. Currently, there is no Petri net editors - available for Julia. -- Many Petri net editors in GitHub are no longer maintained (> 7 years) or that - I cannot personally compile or use (Windows system, Visual Studio compiler, - C#, Java ..) or the code is too complex (no comments) to add my own - extensions. - diff --git a/doc/wip.md b/doc/wip.md deleted file mode 100644 index 72aa790..0000000 --- a/doc/wip.md +++ /dev/null @@ -1,16 +0,0 @@ -# Work in progress - -- The whole GUI is currently in refacto. It will change a lot in next commits. -- Time duration are not yet correctly editable from the net. Use the menu instead. -- Showing critical cycles for graph events does not support having transitions - without predecessors (inputs). For example this Petri net: `T0 -> P0 -> T1`. - *Workaround:* Either modify your net either by removing your inputs or making - inputs cycling to themselves with a `-inf` time (which makes duality issues). -- Not all error messages are displayed on the GUI. Read the logs on your Unix - console. -- We cannot change the color of nodes and arcs. We cannot merge several nodes - into a sub-net for simplifying the net. Cannot delete arcs. Cannot make - undo/redo actions. -- Use bezier to draw arcs. Text and arrows are mixed together. -- Julia API: missing add/remove arcs. -- Code for some export/import files are here but not yet done. diff --git a/tests/HowardTests.cpp b/tests/HowardTests.cpp index 2fdfbf5..fa1f858 100644 --- a/tests/HowardTests.cpp +++ b/tests/HowardTests.cpp @@ -140,7 +140,7 @@ TEST(TestHoward, TestPetriNetSemiSimple) // Load a net that is not event graph ASSERT_STREQ(loadFromFile(net, "../data/examples/AppelsDurgence.json").c_str(), ""); - ASSERT_EQ(net.type(), TypeOfNet::TimedPetriNet); + ASSERT_EQ(net.type(), TypeOfNet::PetriNet); ASSERT_EQ(net.isEmpty(), false); res = findCriticalCycle(net); ASSERT_EQ(res.success, false);