From 7272801e003ba6a3afeb30418f7c85bb98293346 Mon Sep 17 00:00:00 2001 From: SebastianEbert <sebastian.ebert@tu-dresden.de> Date: Fri, 22 Nov 2024 17:00:36 +0100 Subject: [PATCH] more models and flattening results --- README.md | 92 -- models/model-full-flatted.net | 199 +++ model-full.pnml => models/model-full.pnml | 0 models/task-1/model-top-flatted.net | 113 ++ .../task-1/model-top-task.pnml | 0 .../task-1/model-top.pnml | 0 .../task-2/model-blocking-signals-flatted.net | 200 +++ models/task-2/model-blocking-signals.pnml | 1098 +++++++++++++++++ models/task-2/model-one-robot.pnml | 1098 +++++++++++++++++ models/task-2/model-without-sync.pnml | 1098 +++++++++++++++++ 10 files changed, 3806 insertions(+), 92 deletions(-) create mode 100644 models/model-full-flatted.net rename model-full.pnml => models/model-full.pnml (100%) create mode 100644 models/task-1/model-top-flatted.net rename model-top-task.pnml => models/task-1/model-top-task.pnml (100%) rename model-top.pnml => models/task-1/model-top.pnml (100%) create mode 100644 models/task-2/model-blocking-signals-flatted.net create mode 100644 models/task-2/model-blocking-signals.pnml create mode 100644 models/task-2/model-one-robot.pnml create mode 100644 models/task-2/model-without-sync.pnml diff --git a/README.md b/README.md index 9a13799..c2f10c1 100644 --- a/README.md +++ b/README.md @@ -1,93 +1 @@ # SESAC-Exercise - - - -## Getting started - -To make it easy for you to get started with GitLab, here's a list of recommended next steps. - -Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)! - -## Add your files - -- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files -- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command: - -``` -cd existing_repo -git remote add origin https://git-st.inf.tu-dresden.de/dineros/framework/sesac-exercise.git -git branch -M main -git push -uf origin main -``` - -## Integrate with your tools - -- [ ] [Set up project integrations](https://git-st.inf.tu-dresden.de/dineros/framework/sesac-exercise/-/settings/integrations) - -## Collaborate with your team - -- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/) -- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html) -- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically) -- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/) -- [ ] [Set auto-merge](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html) - -## Test and Deploy - -Use the built-in continuous integration in GitLab. - -- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html) -- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/) -- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html) -- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/) -- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html) - -*** - -# Editing this README - -When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template. - -## Suggestions for a good README - -Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information. - -## Name -Choose a self-explaining name for your project. - -## Description -Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors. - -## Badges -On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge. - -## Visuals -Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method. - -## Installation -Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection. - -## Usage -Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README. - -## Support -Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc. - -## Roadmap -If you have ideas for releases in the future, it is a good idea to list them in the README. - -## Contributing -State if you are open to contributions and what your requirements are for accepting them. - -For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self. - -You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser. - -## Authors and acknowledgment -Show your appreciation to those who have contributed to the project. - -## License -For open source projects, say how it is licensed. - -## Project status -If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers. diff --git a/models/model-full-flatted.net b/models/model-full-flatted.net new file mode 100644 index 0000000..84b4d19 --- /dev/null +++ b/models/model-full-flatted.net @@ -0,0 +1,199 @@ +net FullModel +tr {CallbackInputTransition-LeftCellTopic-0-0} {CallbackCapacityPlace-LeftCellTopic-0-0} {CallbackInputPlace-LeftCellTopic-0-0} -> {CallbackConnectorPlace-LeftCellTopic-0-0} +tr {CallbackInputTransition-RightCellTopic-0-0} {CallbackCapacityPlace-RightCellTopic-0-0} {CallbackInputPlace-RightCellTopic-0-0} -> {CallbackConnectorPlace-RightCellTopic-0-0} +tr {CallbackInputTransition-UITopic-0-0} {CallbackCapacityPlace-UITopic-0-0} {CallbackInputPlace-UITopic-0-0} -> {CallbackConnectorPlace-UITopic-0-0} +tr {CallbackOutputTransition-LeftCellTopic-0-0} {CallbackConnectorPlace-LeftCellTopic-0-0} -> {CallbackCapacityPlace-LeftCellTopic-0-0} {L-AwaitingControl} +tr {CallbackOutputTransition-RightCellTopic-0-0} {CallbackConnectorPlace-RightCellTopic-0-0} -> {CallbackCapacityPlace-RightCellTopic-0-0} {R-AwaitingControl} +tr {CallbackOutputTransition-UITopic-0-0} {CallbackConnectorPlace-UITopic-0-0} -> {CallbackCapacityPlace-UITopic-0-0} FeedbackIn +tr {CallbackOverflowTransition-LeftCellTopic-0-0} {CallbackCapacityPlace-LeftCellTopic-0-0}?-1 {CallbackInputPlace-LeftCellTopic-0-0} -> +tr {CallbackOverflowTransition-RightCellTopic-0-0} {CallbackCapacityPlace-RightCellTopic-0-0}?-1 {CallbackInputPlace-RightCellTopic-0-0} -> +tr {CallbackOverflowTransition-UITopic-0-0} {CallbackCapacityPlace-UITopic-0-0}?-1 {CallbackInputPlace-UITopic-0-0} -> +tr {ChannelConnectorTransition-LeftCellTopic} {ChannelConnectorPlace-LeftCellTopic} -> {DispatcherInputPlace-LeftCellTopic-0} +tr {ChannelConnectorTransition-RightCellTopic} {ChannelConnectorPlace-RightCellTopic} -> {DispatcherInputPlace-RightCellTopic-0} +tr {ChannelConnectorTransition-UITopic} {ChannelConnectorPlace-UITopic} -> {DispatcherInputPlace-UITopic-0} +tr {DispatcherInputTransition-LeftCellTopic-0} {DispatcherCapacityPlace-LeftCellTopic-0} {DispatcherInputPlace-LeftCellTopic-0} -> {DispatcherConnectorPlace-LeftCellTopic-0} +tr {DispatcherInputTransition-RightCellTopic-0} {DispatcherCapacityPlace-RightCellTopic-0} {DispatcherInputPlace-RightCellTopic-0} -> {DispatcherConnectorPlace-RightCellTopic-0} +tr {DispatcherInputTransition-UITopic-0} {DispatcherCapacityPlace-UITopic-0} {DispatcherInputPlace-UITopic-0} -> {DispatcherConnectorPlace-UITopic-0} +tr {DispatcherOutputTransition-LeftCellTopic-0} {DispatcherConnectorPlace-LeftCellTopic-0} -> {CallbackInputPlace-LeftCellTopic-0-0} {DispatcherCapacityPlace-LeftCellTopic-0} +tr {DispatcherOutputTransition-RightCellTopic-0} {DispatcherConnectorPlace-RightCellTopic-0} -> {CallbackInputPlace-RightCellTopic-0-0} {DispatcherCapacityPlace-RightCellTopic-0} +tr {DispatcherOutputTransition-UITopic-0} {DispatcherConnectorPlace-UITopic-0} -> {CallbackInputPlace-UITopic-0-0} {DispatcherCapacityPlace-UITopic-0} +tr {DispatcherOverflowTransition-LeftCellTopic-0} {DispatcherCapacityPlace-LeftCellTopic-0}?-1 {DispatcherInputPlace-LeftCellTopic-0} -> +tr {DispatcherOverflowTransition-RightCellTopic-0} {DispatcherCapacityPlace-RightCellTopic-0}?-1 {DispatcherInputPlace-RightCellTopic-0} -> +tr {DispatcherOverflowTransition-UITopic-0} {DispatcherCapacityPlace-UITopic-0}?-1 {DispatcherInputPlace-UITopic-0} -> +tr {End-INSTANCE-0} {EndControlIn-INSTANCE-0} -> GetShared {EndControlOut-INSTANCE-0} +tr {End-INSTANCE-1} {EndControlIn-INSTANCE-1} -> GetShared {EndControlOut-INSTANCE-1} +tr {Get-INSTANCE-0} GetShared {GetControlIn-INSTANCE-0} -> {GetControlOut-INSTANCE-0} +tr {Get-INSTANCE-1} GetShared {GetControlIn-INSTANCE-1} -> {GetControlOut-INSTANCE-1} +tr {GetSensorData-INSTANCE-0} {SensorIn-INSTANCE-0} {PD-0-GetSensorData-INSTANCE-0} -> {PD-0-GetSensorData-INSTANCE-0} {SensorInter-INSTANCE-0} +tr {InputSignalToFalseTransition-Blue} {InputSignalTruePlace-Blue} {PD-0-SortBlue} -> {InputSignalFalsePlace-Blue} +tr {InputSignalToFalseTransition-Green} {PD-0-SortGreen} {InputSignalTruePlace-Green} -> {InputSignalFalsePlace-Green} +tr {InputSignalToFalseTransition-PickFail} {InputSignalTruePlace-PickFail} {PD-0-PickingFail-INSTANCE-1} {PD-0-PickingFail-INSTANCE-0} -> {InputSignalFalsePlace-PickFail} +tr {InputSignalToFalseTransition-PickSuccess} {PD-0-PickingSuccess-INSTANCE-1} {PD-0-PickingSuccess-INSTANCE-0} {InputSignalTruePlace-PickSuccess} -> {InputSignalFalsePlace-PickSuccess} +tr {InputSignalToFalseTransition-PlaceFail} {PD-0-PlacingFail-INSTANCE-1} {PD-0-PlacingFail-INSTANCE-0} {InputSignalTruePlace-PlaceFail} -> {InputSignalFalsePlace-PlaceFail} +tr {InputSignalToFalseTransition-PlaceSuccess} {InputSignalTruePlace-PlaceSuccess} {PD-0-PlacingSuccess-INSTANCE-1} {PD-0-PlacingSuccess-INSTANCE-0} -> {InputSignalFalsePlace-PlaceSuccess} +tr {InputSignalToFalseTransition-Red} {PD-0-SortRed} {InputSignalTruePlace-Red} -> {InputSignalFalsePlace-Red} +tr {InputSignalToFalseTransition-Sensor} {PD-0-GetSensorData-INSTANCE-0} {InputSignalTruePlace-Sensor} -> {InputSignalFalsePlace-Sensor} +tr {InputSignalToFalseTransition-Stop} {InputSignalTruePlace-Stop} {PD-0-SafeToUnsafe} -> {InputSignalFalsePlace-Stop} +tr {InputSignalToTrueTransition-Blue} {InputSignalFalsePlace-Blue} -> {InputSignalTruePlace-Blue} {PD-0-SortBlue} +tr {InputSignalToTrueTransition-Green} {InputSignalFalsePlace-Green} -> {PD-0-SortGreen} {InputSignalTruePlace-Green} +tr {InputSignalToTrueTransition-PickFail} {InputSignalFalsePlace-PickFail} -> {InputSignalTruePlace-PickFail} {PD-0-PickingFail-INSTANCE-1} {PD-0-PickingFail-INSTANCE-0} +tr {InputSignalToTrueTransition-PickSuccess} {InputSignalFalsePlace-PickSuccess} -> {PD-0-PickingSuccess-INSTANCE-1} {PD-0-PickingSuccess-INSTANCE-0} {InputSignalTruePlace-PickSuccess} +tr {InputSignalToTrueTransition-PlaceFail} {InputSignalFalsePlace-PlaceFail} -> {PD-0-PlacingFail-INSTANCE-1} {PD-0-PlacingFail-INSTANCE-0} {InputSignalTruePlace-PlaceFail} +tr {InputSignalToTrueTransition-PlaceSuccess} {InputSignalFalsePlace-PlaceSuccess} -> {InputSignalTruePlace-PlaceSuccess} {PD-0-PlacingSuccess-INSTANCE-1} {PD-0-PlacingSuccess-INSTANCE-0} +tr {InputSignalToTrueTransition-Red} {InputSignalFalsePlace-Red} -> {PD-0-SortRed} {InputSignalTruePlace-Red} +tr {InputSignalToTrueTransition-Sensor} {InputSignalFalsePlace-Sensor} -> {PD-0-GetSensorData-INSTANCE-0} {InputSignalTruePlace-Sensor} +tr {InputSignalToTrueTransition-Stop} {InputSignalFalsePlace-Stop} -> {InputSignalTruePlace-Stop} {PD-0-SafeToUnsafe} +tr {Pick-INSTANCE-0} Safe {PickInput-INSTANCE-0} -> Safe {Picking-INSTANCE-0} +tr {Pick-INSTANCE-1} Safe {PickInput-INSTANCE-1} -> Safe {Picking-INSTANCE-1} +tr {PickingAbort-INSTANCE-0} {Picking-INSTANCE-0} Unsafe -> {PickOutput-INSTANCE-0} Unsafe +tr {PickingAbort-INSTANCE-1} {Picking-INSTANCE-1} Unsafe -> {PickOutput-INSTANCE-1} Unsafe +tr {PickingFail-INSTANCE-0} {PD-0-PickingFail-INSTANCE-0} {Picking-INSTANCE-0} -> {PD-0-PickingFail-INSTANCE-0} {PickOutput-INSTANCE-0} +tr {PickingFail-INSTANCE-1} {PD-0-PickingFail-INSTANCE-1} {Picking-INSTANCE-1} -> {PD-0-PickingFail-INSTANCE-1} {PickOutput-INSTANCE-1} +tr {PickingSuccess-INSTANCE-0} {PD-0-PickingSuccess-INSTANCE-0} {Picking-INSTANCE-0} -> {PD-0-PickingSuccess-INSTANCE-0} {PickOutput-INSTANCE-0} +tr {PickingSuccess-INSTANCE-1} {PD-0-PickingSuccess-INSTANCE-1} {Picking-INSTANCE-1} -> {PD-0-PickingSuccess-INSTANCE-1} {PickOutput-INSTANCE-1} +tr {Place-INSTANCE-0} Safe {PlaceInput-INSTANCE-0} -> Safe {Placing-INSTANCE-0} +tr {Place-INSTANCE-1} Safe {PlaceInput-INSTANCE-1} -> Safe {Placing-INSTANCE-1} +tr {PlacingAbort-INSTANCE-0} Unsafe {Placing-INSTANCE-0} -> Unsafe {PlaceOutput-INSTANCE-0} +tr {PlacingAbort-INSTANCE-1} Unsafe {Placing-INSTANCE-1} -> Unsafe {PlaceOutput-INSTANCE-1} +tr {PlacingFail-INSTANCE-0} {PD-0-PlacingFail-INSTANCE-0} {Placing-INSTANCE-0} -> {PD-0-PlacingFail-INSTANCE-0} {PlaceOutput-INSTANCE-0} +tr {PlacingFail-INSTANCE-1} {PD-0-PlacingFail-INSTANCE-1} {Placing-INSTANCE-1} -> {PD-0-PlacingFail-INSTANCE-1} {PlaceOutput-INSTANCE-1} +tr {PlacingSuccess-INSTANCE-0} {PD-0-PlacingSuccess-INSTANCE-0} {Placing-INSTANCE-0} -> {PD-0-PlacingSuccess-INSTANCE-0} {PlaceOutput-INSTANCE-0} +tr {PlacingSuccess-INSTANCE-1} {PD-0-PlacingSuccess-INSTANCE-1} {Placing-INSTANCE-1} -> {PD-0-PlacingSuccess-INSTANCE-1} {PlaceOutput-INSTANCE-1} +tr {ProcessSensorData-INSTANCE-0} {SensorInter-INSTANCE-0} -> {SensorOut-INSTANCE-0} +tr {PublisherInputTransition-LeftCellTopic-0} {PublisherCapacityPlace-LeftCellTopic-0} RedOut -> {PublisherConnectorPlace-LeftCellTopic-0} +tr {PublisherInputTransition-LeftCellTopic-1} BlueOut {PublisherCapacityPlace-LeftCellTopic-1} -> {PublisherConnectorPlace-LeftCellTopic-1} +tr {PublisherInputTransition-RightCellTopic-0} GreenOut {PublisherCapacityPlace-RightCellTopic-0} -> {PublisherConnectorPlace-RightCellTopic-0} +tr {PublisherInputTransition-UITopic-0} {L-Done} {PublisherCapacityPlace-UITopic-0} -> {PublisherConnectorPlace-UITopic-0} +tr {PublisherInputTransition-UITopic-1} {PublisherCapacityPlace-UITopic-1} {R-Done} -> {PublisherConnectorPlace-UITopic-1} +tr {PublisherOutputTransition-LeftCellTopic-0} {PublisherConnectorPlace-LeftCellTopic-0} -> {ChannelConnectorPlace-LeftCellTopic} {PublisherCapacityPlace-LeftCellTopic-0} +tr {PublisherOutputTransition-LeftCellTopic-1} {PublisherConnectorPlace-LeftCellTopic-1} -> {ChannelConnectorPlace-LeftCellTopic} {PublisherCapacityPlace-LeftCellTopic-1} +tr {PublisherOutputTransition-RightCellTopic-0} {PublisherConnectorPlace-RightCellTopic-0} -> {ChannelConnectorPlace-RightCellTopic} {PublisherCapacityPlace-RightCellTopic-0} +tr {PublisherOutputTransition-UITopic-0} {PublisherConnectorPlace-UITopic-0} -> {ChannelConnectorPlace-UITopic} {PublisherCapacityPlace-UITopic-0} +tr {PublisherOutputTransition-UITopic-1} {PublisherConnectorPlace-UITopic-1} -> {ChannelConnectorPlace-UITopic} {PublisherCapacityPlace-UITopic-1} +tr {PublisherOverflowTransition-LeftCellTopic-0} {PublisherCapacityPlace-LeftCellTopic-0}?-1 RedOut -> +tr {PublisherOverflowTransition-LeftCellTopic-1} BlueOut {PublisherCapacityPlace-LeftCellTopic-1}?-1 -> +tr {PublisherOverflowTransition-RightCellTopic-0} GreenOut {PublisherCapacityPlace-RightCellTopic-0}?-1 -> +tr {PublisherOverflowTransition-UITopic-0} {L-Done} {PublisherCapacityPlace-UITopic-0}?-1 -> +tr {PublisherOverflowTransition-UITopic-1} {PublisherCapacityPlace-UITopic-1}?-1 {R-Done} -> +tr SafeToSensorCall Safe -> SensorCall +tr SafeToUnsafe {PD-0-SafeToUnsafe} Safe -> {PD-0-SafeToUnsafe} Unsafe +tr {ServiceCallMultiEntryTransition-endControlService-0-0} {ServiceClientCallPlace-endControlService-0} {ServiceCallMultiInactivePlace-endControlService-0} -> {EndControlIn-INSTANCE-0} {ServiceCallMultiActivePlace-endControlService-0} {ServiceCallMultiFlagPlace-endControlService-0-0} +tr {ServiceCallMultiEntryTransition-endControlService-0-1} {ServiceCallMultiInactivePlace-endControlService-0} {ServiceClientCallPlace-endControlService-1} -> {EndControlIn-INSTANCE-0} {ServiceCallMultiActivePlace-endControlService-0} {ServiceCallMultiFlagPlace-endControlService-0-1} +tr {ServiceCallMultiEntryTransition-endControlService-1-0} {ServiceClientCallPlace-endControlService-0} {ServiceCallMultiInactivePlace-endControlService-1} -> {EndControlIn-INSTANCE-1} {ServiceCallMultiActivePlace-endControlService-1} {ServiceCallMultiFlagPlace-endControlService-1-0} +tr {ServiceCallMultiEntryTransition-endControlService-1-1} {ServiceClientCallPlace-endControlService-1} {ServiceCallMultiInactivePlace-endControlService-1} -> {EndControlIn-INSTANCE-1} {ServiceCallMultiActivePlace-endControlService-1} {ServiceCallMultiFlagPlace-endControlService-1-1} +tr {ServiceCallMultiEntryTransition-getControlService-0-0} {ServiceCallMultiInactivePlace-getControlService-0} {ServiceClientCallPlace-getControlService-0} -> {GetControlIn-INSTANCE-0} {ServiceCallMultiActivePlace-getControlService-0} {ServiceCallMultiFlagPlace-getControlService-0-0} +tr {ServiceCallMultiEntryTransition-getControlService-0-1} {ServiceCallMultiInactivePlace-getControlService-0} {ServiceClientCallPlace-getControlService-1} -> {GetControlIn-INSTANCE-0} {ServiceCallMultiActivePlace-getControlService-0} {ServiceCallMultiFlagPlace-getControlService-0-1} +tr {ServiceCallMultiEntryTransition-getControlService-1-0} {ServiceClientCallPlace-getControlService-0} {ServiceCallMultiInactivePlace-getControlService-1} -> {GetControlIn-INSTANCE-1} {ServiceCallMultiActivePlace-getControlService-1} {ServiceCallMultiFlagPlace-getControlService-1-0} +tr {ServiceCallMultiEntryTransition-getControlService-1-1} {ServiceClientCallPlace-getControlService-1} {ServiceCallMultiInactivePlace-getControlService-1} -> {GetControlIn-INSTANCE-1} {ServiceCallMultiActivePlace-getControlService-1} {ServiceCallMultiFlagPlace-getControlService-1-1} +tr {ServiceCallMultiEntryTransition-pickService-0-0} {ServiceCallMultiInactivePlace-pickService-0} {ServiceClientCallPlace-pickService-0} -> {PickInput-INSTANCE-0} {ServiceCallMultiActivePlace-pickService-0} {ServiceCallMultiFlagPlace-pickService-0-0} +tr {ServiceCallMultiEntryTransition-pickService-0-1} {ServiceCallMultiInactivePlace-pickService-0} {ServiceClientCallPlace-pickService-1} -> {PickInput-INSTANCE-0} {ServiceCallMultiActivePlace-pickService-0} {ServiceCallMultiFlagPlace-pickService-0-1} +tr {ServiceCallMultiEntryTransition-pickService-1-0} {ServiceClientCallPlace-pickService-0} {ServiceCallMultiInactivePlace-pickService-1} -> {PickInput-INSTANCE-1} {ServiceCallMultiActivePlace-pickService-1} {ServiceCallMultiFlagPlace-pickService-1-0} +tr {ServiceCallMultiEntryTransition-pickService-1-1} {ServiceClientCallPlace-pickService-1} {ServiceCallMultiInactivePlace-pickService-1} -> {PickInput-INSTANCE-1} {ServiceCallMultiActivePlace-pickService-1} {ServiceCallMultiFlagPlace-pickService-1-1} +tr {ServiceCallMultiEntryTransition-placeService-0-0} {ServiceClientCallPlace-placeService-0} {ServiceCallMultiInactivePlace-placeService-0} -> {PlaceInput-INSTANCE-0} {ServiceCallMultiActivePlace-placeService-0} {ServiceCallMultiFlagPlace-placeService-0-0} +tr {ServiceCallMultiEntryTransition-placeService-0-1} {ServiceCallMultiInactivePlace-placeService-0} {ServiceClientCallPlace-placeService-1} -> {PlaceInput-INSTANCE-0} {ServiceCallMultiActivePlace-placeService-0} {ServiceCallMultiFlagPlace-placeService-0-1} +tr {ServiceCallMultiEntryTransition-placeService-1-0} {ServiceClientCallPlace-placeService-0} {ServiceCallMultiInactivePlace-placeService-1} -> {PlaceInput-INSTANCE-1} {ServiceCallMultiActivePlace-placeService-1} {ServiceCallMultiFlagPlace-placeService-1-0} +tr {ServiceCallMultiEntryTransition-placeService-1-1} {ServiceClientCallPlace-placeService-1} {ServiceCallMultiInactivePlace-placeService-1} -> {PlaceInput-INSTANCE-1} {ServiceCallMultiActivePlace-placeService-1} {ServiceCallMultiFlagPlace-placeService-1-1} +tr {ServiceCallMultiEntryTransition-sensorService-0-0} {ServiceCallMultiInactivePlace-sensorService-0} {ServiceClientCallPlace-sensorService-0} -> {SensorIn-INSTANCE-0} {ServiceCallMultiActivePlace-sensorService-0} {ServiceCallMultiFlagPlace-sensorService-0-0} +tr {ServiceCallMultiExitTransition-endControlService-0-0} {EndControlOut-INSTANCE-0} {ServiceCallMultiActivePlace-endControlService-0} {ServiceCallMultiFlagPlace-endControlService-0-0} -> {ServiceCallMultiInactivePlace-endControlService-0} {ServiceClientRespPlace-endControlService-0} +tr {ServiceCallMultiExitTransition-endControlService-0-1} {EndControlOut-INSTANCE-0} {ServiceCallMultiActivePlace-endControlService-0} {ServiceCallMultiFlagPlace-endControlService-0-1} -> {ServiceCallMultiInactivePlace-endControlService-0} {ServiceClientRespPlace-endControlService-1} +tr {ServiceCallMultiExitTransition-endControlService-1-0} {EndControlOut-INSTANCE-1} {ServiceCallMultiActivePlace-endControlService-1} {ServiceCallMultiFlagPlace-endControlService-1-0} -> {ServiceCallMultiInactivePlace-endControlService-1} {ServiceClientRespPlace-endControlService-0} +tr {ServiceCallMultiExitTransition-endControlService-1-1} {EndControlOut-INSTANCE-1} {ServiceCallMultiActivePlace-endControlService-1} {ServiceCallMultiFlagPlace-endControlService-1-1} -> {ServiceCallMultiInactivePlace-endControlService-1} {ServiceClientRespPlace-endControlService-1} +tr {ServiceCallMultiExitTransition-getControlService-0-0} {GetControlOut-INSTANCE-0} {ServiceCallMultiActivePlace-getControlService-0} {ServiceCallMultiFlagPlace-getControlService-0-0} -> {ServiceCallMultiInactivePlace-getControlService-0} {ServiceClientRespPlace-getControlService-0} +tr {ServiceCallMultiExitTransition-getControlService-0-1} {GetControlOut-INSTANCE-0} {ServiceCallMultiActivePlace-getControlService-0} {ServiceCallMultiFlagPlace-getControlService-0-1} -> {ServiceCallMultiInactivePlace-getControlService-0} {ServiceClientRespPlace-getControlService-1} +tr {ServiceCallMultiExitTransition-getControlService-1-0} {GetControlOut-INSTANCE-1} {ServiceCallMultiActivePlace-getControlService-1} {ServiceCallMultiFlagPlace-getControlService-1-0} -> {ServiceCallMultiInactivePlace-getControlService-1} {ServiceClientRespPlace-getControlService-0} +tr {ServiceCallMultiExitTransition-getControlService-1-1} {GetControlOut-INSTANCE-1} {ServiceCallMultiActivePlace-getControlService-1} {ServiceCallMultiFlagPlace-getControlService-1-1} -> {ServiceCallMultiInactivePlace-getControlService-1} {ServiceClientRespPlace-getControlService-1} +tr {ServiceCallMultiExitTransition-pickService-0-0} {PickOutput-INSTANCE-0} {ServiceCallMultiActivePlace-pickService-0} {ServiceCallMultiFlagPlace-pickService-0-0} -> {ServiceCallMultiInactivePlace-pickService-0} {ServiceClientRespPlace-pickService-0} +tr {ServiceCallMultiExitTransition-pickService-0-1} {PickOutput-INSTANCE-0} {ServiceCallMultiActivePlace-pickService-0} {ServiceCallMultiFlagPlace-pickService-0-1} -> {ServiceCallMultiInactivePlace-pickService-0} {ServiceClientRespPlace-pickService-1} +tr {ServiceCallMultiExitTransition-pickService-1-0} {PickOutput-INSTANCE-1} {ServiceCallMultiActivePlace-pickService-1} {ServiceCallMultiFlagPlace-pickService-1-0} -> {ServiceCallMultiInactivePlace-pickService-1} {ServiceClientRespPlace-pickService-0} +tr {ServiceCallMultiExitTransition-pickService-1-1} {PickOutput-INSTANCE-1} {ServiceCallMultiActivePlace-pickService-1} {ServiceCallMultiFlagPlace-pickService-1-1} -> {ServiceCallMultiInactivePlace-pickService-1} {ServiceClientRespPlace-pickService-1} +tr {ServiceCallMultiExitTransition-placeService-0-0} {PlaceOutput-INSTANCE-0} {ServiceCallMultiActivePlace-placeService-0} {ServiceCallMultiFlagPlace-placeService-0-0} -> {ServiceCallMultiInactivePlace-placeService-0} {ServiceClientRespPlace-placeService-0} +tr {ServiceCallMultiExitTransition-placeService-0-1} {PlaceOutput-INSTANCE-0} {ServiceCallMultiActivePlace-placeService-0} {ServiceCallMultiFlagPlace-placeService-0-1} -> {ServiceCallMultiInactivePlace-placeService-0} {ServiceClientRespPlace-placeService-1} +tr {ServiceCallMultiExitTransition-placeService-1-0} {PlaceOutput-INSTANCE-1} {ServiceCallMultiActivePlace-placeService-1} {ServiceCallMultiFlagPlace-placeService-1-0} -> {ServiceCallMultiInactivePlace-placeService-1} {ServiceClientRespPlace-placeService-0} +tr {ServiceCallMultiExitTransition-placeService-1-1} {PlaceOutput-INSTANCE-1} {ServiceCallMultiActivePlace-placeService-1} {ServiceCallMultiFlagPlace-placeService-1-1} -> {ServiceCallMultiInactivePlace-placeService-1} {ServiceClientRespPlace-placeService-1} +tr {ServiceCallMultiExitTransition-sensorService-0-0} {SensorOut-INSTANCE-0} {ServiceCallMultiActivePlace-sensorService-0} {ServiceCallMultiFlagPlace-sensorService-0-0} -> {ServiceCallMultiInactivePlace-sensorService-0} {ServiceClientRespPlace-sensorService-0} +tr {ServiceClientCallConnectTransition-endControlService-0} {L-ObjectPlaced} {ServiceTogglePlace-endControlService-0} -> {ServiceClientCallConnectPlace-endControlService-0} +tr {ServiceClientCallConnectTransition-endControlService-1} {R-ObjectPlaced} {ServiceTogglePlace-endControlService-1} -> {ServiceClientCallConnectPlace-endControlService-1} +tr {ServiceClientCallConnectTransition-getControlService-0} {L-AwaitingControl} {ServiceTogglePlace-getControlService-0} -> {ServiceClientCallConnectPlace-getControlService-0} +tr {ServiceClientCallConnectTransition-getControlService-1} {R-AwaitingControl} {ServiceTogglePlace-getControlService-1} -> {ServiceClientCallConnectPlace-getControlService-1} +tr {ServiceClientCallConnectTransition-pickService-0} {L-Ready} {ServiceTogglePlace-pickService-0} -> {ServiceClientCallConnectPlace-pickService-0} +tr {ServiceClientCallConnectTransition-pickService-1} {R-Ready} {ServiceTogglePlace-pickService-1} -> {ServiceClientCallConnectPlace-pickService-1} +tr {ServiceClientCallConnectTransition-placeService-0} {L-ObjectPicked} {ServiceTogglePlace-placeService-0} -> {ServiceClientCallConnectPlace-placeService-0} +tr {ServiceClientCallConnectTransition-placeService-1} {R-ObjectPicked} {ServiceTogglePlace-placeService-1} -> {ServiceClientCallConnectPlace-placeService-1} +tr {ServiceClientCallConnectTransition-sensorService-0} SensorCall {ServiceTogglePlace-sensorService-0} -> {ServiceClientCallConnectPlace-sensorService-0} +tr {ServiceClientCallTransition-endControlService-0} {ServiceClientCallConnectPlace-endControlService-0} -> {ServiceClientCallPlace-endControlService-0} +tr {ServiceClientCallTransition-endControlService-1} {ServiceClientCallConnectPlace-endControlService-1} -> {ServiceClientCallPlace-endControlService-1} +tr {ServiceClientCallTransition-getControlService-0} {ServiceClientCallConnectPlace-getControlService-0} -> {ServiceClientCallPlace-getControlService-0} +tr {ServiceClientCallTransition-getControlService-1} {ServiceClientCallConnectPlace-getControlService-1} -> {ServiceClientCallPlace-getControlService-1} +tr {ServiceClientCallTransition-pickService-0} {ServiceClientCallConnectPlace-pickService-0} -> {ServiceClientCallPlace-pickService-0} +tr {ServiceClientCallTransition-pickService-1} {ServiceClientCallConnectPlace-pickService-1} -> {ServiceClientCallPlace-pickService-1} +tr {ServiceClientCallTransition-placeService-0} {ServiceClientCallConnectPlace-placeService-0} -> {ServiceClientCallPlace-placeService-0} +tr {ServiceClientCallTransition-placeService-1} {ServiceClientCallConnectPlace-placeService-1} -> {ServiceClientCallPlace-placeService-1} +tr {ServiceClientCallTransition-sensorService-0} {ServiceClientCallConnectPlace-sensorService-0} -> {ServiceClientCallPlace-sensorService-0} +tr {ServiceClientRespConnectTransition-endControlService-0} {ServiceClientRespConnectPlace-endControlService-0} -> {L-Done} {ServiceTogglePlace-endControlService-0} +tr {ServiceClientRespConnectTransition-endControlService-1} {ServiceClientRespConnectPlace-endControlService-1} -> {R-Done} {ServiceTogglePlace-endControlService-1} +tr {ServiceClientRespConnectTransition-getControlService-0} {ServiceClientRespConnectPlace-getControlService-0} -> {L-Ready} {ServiceTogglePlace-getControlService-0} +tr {ServiceClientRespConnectTransition-getControlService-1} {ServiceClientRespConnectPlace-getControlService-1} -> {R-Ready} {ServiceTogglePlace-getControlService-1} +tr {ServiceClientRespConnectTransition-pickService-0} {ServiceClientRespConnectPlace-pickService-0} -> {L-ObjectPicked} {ServiceTogglePlace-pickService-0} +tr {ServiceClientRespConnectTransition-pickService-1} {ServiceClientRespConnectPlace-pickService-1} -> {R-ObjectPicked} {ServiceTogglePlace-pickService-1} +tr {ServiceClientRespConnectTransition-placeService-0} {ServiceClientRespConnectPlace-placeService-0} -> {L-ObjectPlaced} {ServiceTogglePlace-placeService-0} +tr {ServiceClientRespConnectTransition-placeService-1} {ServiceClientRespConnectPlace-placeService-1} -> {R-ObjectPlaced} {ServiceTogglePlace-placeService-1} +tr {ServiceClientRespConnectTransition-sensorService-0} {ServiceClientRespConnectPlace-sensorService-0} -> SensorResponse {ServiceTogglePlace-sensorService-0} +tr {ServiceClientRespTransition-endControlService-0} {ServiceClientRespPlace-endControlService-0} -> {ServiceClientRespConnectPlace-endControlService-0} +tr {ServiceClientRespTransition-endControlService-1} {ServiceClientRespPlace-endControlService-1} -> {ServiceClientRespConnectPlace-endControlService-1} +tr {ServiceClientRespTransition-getControlService-0} {ServiceClientRespPlace-getControlService-0} -> {ServiceClientRespConnectPlace-getControlService-0} +tr {ServiceClientRespTransition-getControlService-1} {ServiceClientRespPlace-getControlService-1} -> {ServiceClientRespConnectPlace-getControlService-1} +tr {ServiceClientRespTransition-pickService-0} {ServiceClientRespPlace-pickService-0} -> {ServiceClientRespConnectPlace-pickService-0} +tr {ServiceClientRespTransition-pickService-1} {ServiceClientRespPlace-pickService-1} -> {ServiceClientRespConnectPlace-pickService-1} +tr {ServiceClientRespTransition-placeService-0} {ServiceClientRespPlace-placeService-0} -> {ServiceClientRespConnectPlace-placeService-0} +tr {ServiceClientRespTransition-placeService-1} {ServiceClientRespPlace-placeService-1} -> {ServiceClientRespConnectPlace-placeService-1} +tr {ServiceClientRespTransition-sensorService-0} {ServiceClientRespPlace-sensorService-0} -> {ServiceClientRespConnectPlace-sensorService-0} +tr ShowFeedback FeedbackIn -> FeedbackDone +tr SortBlue {PD-0-SortBlue} ObjectPoolBlue -> BlueOut {PD-0-SortBlue} +tr SortGreen {PD-0-SortGreen} ObjectPoolGreen -> GreenOut {PD-0-SortGreen} +tr SortRed {PD-0-SortRed} ObjectPoolRed -> {PD-0-SortRed} RedOut +tr TransitionSafe SensorResponse -> Safe +tr TransitionUnsafe SensorResponse -> Unsafe +tr UnsafeToSensorCall Unsafe -> SensorCall +pl {CallbackCapacityPlace-LeftCellTopic-0-0} (10) +pl {CallbackCapacityPlace-RightCellTopic-0-0} (10) +pl {CallbackCapacityPlace-UITopic-0-0} (10) +pl {DispatcherCapacityPlace-LeftCellTopic-0} (16) +pl {DispatcherCapacityPlace-RightCellTopic-0} (16) +pl {DispatcherCapacityPlace-UITopic-0} (16) +pl GetShared (1) +pl {InputSignalFalsePlace-Blue} (1) +pl {InputSignalFalsePlace-Green} (1) +pl {InputSignalFalsePlace-PickFail} (1) +pl {InputSignalFalsePlace-PickSuccess} (1) +pl {InputSignalFalsePlace-PlaceFail} (1) +pl {InputSignalFalsePlace-PlaceSuccess} (1) +pl {InputSignalFalsePlace-Red} (1) +pl {InputSignalFalsePlace-Sensor} (1) +pl {InputSignalFalsePlace-Stop} (1) +pl ObjectPoolBlue (1) +pl ObjectPoolGreen (1) +pl ObjectPoolRed (1) +pl {PublisherCapacityPlace-LeftCellTopic-0} (10) +pl {PublisherCapacityPlace-LeftCellTopic-1} (10) +pl {PublisherCapacityPlace-RightCellTopic-0} (10) +pl {PublisherCapacityPlace-UITopic-0} (10) +pl {PublisherCapacityPlace-UITopic-1} (10) +pl {ServiceCallMultiInactivePlace-endControlService-0} (1) +pl {ServiceCallMultiInactivePlace-endControlService-1} (1) +pl {ServiceCallMultiInactivePlace-getControlService-0} (1) +pl {ServiceCallMultiInactivePlace-getControlService-1} (1) +pl {ServiceCallMultiInactivePlace-pickService-0} (1) +pl {ServiceCallMultiInactivePlace-pickService-1} (1) +pl {ServiceCallMultiInactivePlace-placeService-0} (1) +pl {ServiceCallMultiInactivePlace-placeService-1} (1) +pl {ServiceCallMultiInactivePlace-sensorService-0} (1) +pl {ServiceTogglePlace-endControlService-0} (1) +pl {ServiceTogglePlace-endControlService-1} (1) +pl {ServiceTogglePlace-getControlService-0} (1) +pl {ServiceTogglePlace-getControlService-1} (1) +pl {ServiceTogglePlace-pickService-0} (1) +pl {ServiceTogglePlace-pickService-1} (1) +pl {ServiceTogglePlace-placeService-0} (1) +pl {ServiceTogglePlace-placeService-1} (1) +pl {ServiceTogglePlace-sensorService-0} (1) +pl Unsafe (1) diff --git a/model-full.pnml b/models/model-full.pnml similarity index 100% rename from model-full.pnml rename to models/model-full.pnml diff --git a/models/task-1/model-top-flatted.net b/models/task-1/model-top-flatted.net new file mode 100644 index 0000000..3738cfc --- /dev/null +++ b/models/task-1/model-top-flatted.net @@ -0,0 +1,113 @@ +net ModelTop +tr {CallbackInputTransition-LeftCellTopic-0-0} {CallbackCapacityPlace-LeftCellTopic-0-0} {CallbackInputPlace-LeftCellTopic-0-0} -> {CallbackConnectorPlace-LeftCellTopic-0-0} +tr {CallbackInputTransition-RightCellTopic-0-0} {CallbackCapacityPlace-RightCellTopic-0-0} {CallbackInputPlace-RightCellTopic-0-0} -> {CallbackConnectorPlace-RightCellTopic-0-0} +tr {CallbackInputTransition-UITopic-0-0} {CallbackCapacityPlace-UITopic-0-0} {CallbackInputPlace-UITopic-0-0} -> {CallbackConnectorPlace-UITopic-0-0} +tr {CallbackOutputTransition-LeftCellTopic-0-0} {CallbackConnectorPlace-LeftCellTopic-0-0} -> {CallbackCapacityPlace-LeftCellTopic-0-0} {L-AwaitingControl} +tr {CallbackOutputTransition-RightCellTopic-0-0} {CallbackConnectorPlace-RightCellTopic-0-0} -> {CallbackCapacityPlace-RightCellTopic-0-0} {R-AwaitingControl} +tr {CallbackOutputTransition-UITopic-0-0} {CallbackConnectorPlace-UITopic-0-0} -> {CallbackCapacityPlace-UITopic-0-0} FeedbackIn +tr {CallbackOverflowTransition-LeftCellTopic-0-0} {CallbackCapacityPlace-LeftCellTopic-0-0}?-1 {CallbackInputPlace-LeftCellTopic-0-0} -> +tr {CallbackOverflowTransition-RightCellTopic-0-0} {CallbackCapacityPlace-RightCellTopic-0-0}?-1 {CallbackInputPlace-RightCellTopic-0-0} -> +tr {CallbackOverflowTransition-UITopic-0-0} {CallbackCapacityPlace-UITopic-0-0}?-1 {CallbackInputPlace-UITopic-0-0} -> +tr {ChannelConnectorTransition-LeftCellTopic} {ChannelConnectorPlace-LeftCellTopic} -> {DispatcherInputPlace-LeftCellTopic-0} +tr {ChannelConnectorTransition-RightCellTopic} {ChannelConnectorPlace-RightCellTopic} -> {DispatcherInputPlace-RightCellTopic-0} +tr {ChannelConnectorTransition-UITopic} {ChannelConnectorPlace-UITopic} -> {DispatcherInputPlace-UITopic-0} +tr {DispatcherInputTransition-LeftCellTopic-0} {DispatcherCapacityPlace-LeftCellTopic-0} {DispatcherInputPlace-LeftCellTopic-0} -> {DispatcherConnectorPlace-LeftCellTopic-0} +tr {DispatcherInputTransition-RightCellTopic-0} {DispatcherCapacityPlace-RightCellTopic-0} {DispatcherInputPlace-RightCellTopic-0} -> {DispatcherConnectorPlace-RightCellTopic-0} +tr {DispatcherInputTransition-UITopic-0} {DispatcherCapacityPlace-UITopic-0} {DispatcherInputPlace-UITopic-0} -> {DispatcherConnectorPlace-UITopic-0} +tr {DispatcherOutputTransition-LeftCellTopic-0} {DispatcherConnectorPlace-LeftCellTopic-0} -> {CallbackInputPlace-LeftCellTopic-0-0} {DispatcherCapacityPlace-LeftCellTopic-0} +tr {DispatcherOutputTransition-RightCellTopic-0} {DispatcherConnectorPlace-RightCellTopic-0} -> {CallbackInputPlace-RightCellTopic-0-0} {DispatcherCapacityPlace-RightCellTopic-0} +tr {DispatcherOutputTransition-UITopic-0} {DispatcherConnectorPlace-UITopic-0} -> {CallbackInputPlace-UITopic-0-0} {DispatcherCapacityPlace-UITopic-0} +tr {DispatcherOverflowTransition-LeftCellTopic-0} {DispatcherCapacityPlace-LeftCellTopic-0}?-1 {DispatcherInputPlace-LeftCellTopic-0} -> +tr {DispatcherOverflowTransition-RightCellTopic-0} {DispatcherCapacityPlace-RightCellTopic-0}?-1 {DispatcherInputPlace-RightCellTopic-0} -> +tr {DispatcherOverflowTransition-UITopic-0} {DispatcherCapacityPlace-UITopic-0}?-1 {DispatcherInputPlace-UITopic-0} -> +tr {End-INSTANCE-0} {EndControlIn-INSTANCE-0} -> {EndControlOut-INSTANCE-0} GetShared +tr {End-INSTANCE-1} {EndControlIn-INSTANCE-1} -> GetShared {EndControlOut-INSTANCE-1} +tr {Get-INSTANCE-0} GetShared {GetControlIn-INSTANCE-0} -> {GetControlOut-INSTANCE-0} +tr {Get-INSTANCE-1} GetShared {GetControlIn-INSTANCE-1} -> {GetControlOut-INSTANCE-1} +tr {InputSignalToFalseTransition-Blue} {InputSignalTruePlace-Blue} {PD-0-SortBlue} -> {InputSignalFalsePlace-Blue} +tr {InputSignalToFalseTransition-Green} {InputSignalTruePlace-Green} {PD-0-SortGreen} -> {InputSignalFalsePlace-Green} +tr {InputSignalToFalseTransition-Red} {PD-0-SortRed} {InputSignalTruePlace-Red} -> {InputSignalFalsePlace-Red} +tr {InputSignalToTrueTransition-Blue} {InputSignalFalsePlace-Blue} -> {InputSignalTruePlace-Blue} {PD-0-SortBlue} +tr {InputSignalToTrueTransition-Green} {InputSignalFalsePlace-Green} -> {InputSignalTruePlace-Green} {PD-0-SortGreen} +tr {InputSignalToTrueTransition-Red} {InputSignalFalsePlace-Red} -> {PD-0-SortRed} {InputSignalTruePlace-Red} +tr {L-Pick} {L-Ready} -> {L-ObjectPicked} +tr {L-Place} {L-ObjectPicked} -> {L-ObjectPlaced} +tr {PublisherInputTransition-LeftCellTopic-0} {PublisherCapacityPlace-LeftCellTopic-0} RedOut -> {PublisherConnectorPlace-LeftCellTopic-0} +tr {PublisherInputTransition-LeftCellTopic-1} BlueOut {PublisherCapacityPlace-LeftCellTopic-1} -> {PublisherConnectorPlace-LeftCellTopic-1} +tr {PublisherInputTransition-RightCellTopic-0} GreenOut {PublisherCapacityPlace-RightCellTopic-0} -> {PublisherConnectorPlace-RightCellTopic-0} +tr {PublisherInputTransition-UITopic-0} {L-Done} {PublisherCapacityPlace-UITopic-0} -> {PublisherConnectorPlace-UITopic-0} +tr {PublisherInputTransition-UITopic-1} {PublisherCapacityPlace-UITopic-1} {R-Done} -> {PublisherConnectorPlace-UITopic-1} +tr {PublisherOutputTransition-LeftCellTopic-0} {PublisherConnectorPlace-LeftCellTopic-0} -> {ChannelConnectorPlace-LeftCellTopic} {PublisherCapacityPlace-LeftCellTopic-0} +tr {PublisherOutputTransition-LeftCellTopic-1} {PublisherConnectorPlace-LeftCellTopic-1} -> {ChannelConnectorPlace-LeftCellTopic} {PublisherCapacityPlace-LeftCellTopic-1} +tr {PublisherOutputTransition-RightCellTopic-0} {PublisherConnectorPlace-RightCellTopic-0} -> {ChannelConnectorPlace-RightCellTopic} {PublisherCapacityPlace-RightCellTopic-0} +tr {PublisherOutputTransition-UITopic-0} {PublisherConnectorPlace-UITopic-0} -> {ChannelConnectorPlace-UITopic} {PublisherCapacityPlace-UITopic-0} +tr {PublisherOutputTransition-UITopic-1} {PublisherConnectorPlace-UITopic-1} -> {ChannelConnectorPlace-UITopic} {PublisherCapacityPlace-UITopic-1} +tr {PublisherOverflowTransition-LeftCellTopic-0} {PublisherCapacityPlace-LeftCellTopic-0}?-1 RedOut -> +tr {PublisherOverflowTransition-LeftCellTopic-1} BlueOut {PublisherCapacityPlace-LeftCellTopic-1}?-1 -> +tr {PublisherOverflowTransition-RightCellTopic-0} GreenOut {PublisherCapacityPlace-RightCellTopic-0}?-1 -> +tr {PublisherOverflowTransition-UITopic-0} {L-Done} {PublisherCapacityPlace-UITopic-0}?-1 -> +tr {PublisherOverflowTransition-UITopic-1} {PublisherCapacityPlace-UITopic-1}?-1 {R-Done} -> +tr {R-Pick} {R-Ready} -> {R-ObjectPicked} +tr {R-Place} {R-ObjectPicked} -> {R-ObjectPlaced} +tr {ServiceCallMultiEntryTransition-endControlService-0-0} {ServiceClientCallPlace-endControlService-0} {ServiceCallMultiInactivePlace-endControlService-0} -> {EndControlIn-INSTANCE-0} {ServiceCallMultiActivePlace-endControlService-0} {ServiceCallMultiFlagPlace-endControlService-0-0} +tr {ServiceCallMultiEntryTransition-endControlService-0-1} {ServiceCallMultiInactivePlace-endControlService-0} {ServiceClientCallPlace-endControlService-1} -> {EndControlIn-INSTANCE-0} {ServiceCallMultiActivePlace-endControlService-0} {ServiceCallMultiFlagPlace-endControlService-0-1} +tr {ServiceCallMultiEntryTransition-endControlService-1-0} {ServiceClientCallPlace-endControlService-0} {ServiceCallMultiInactivePlace-endControlService-1} -> {EndControlIn-INSTANCE-1} {ServiceCallMultiActivePlace-endControlService-1} {ServiceCallMultiFlagPlace-endControlService-1-0} +tr {ServiceCallMultiEntryTransition-endControlService-1-1} {ServiceClientCallPlace-endControlService-1} {ServiceCallMultiInactivePlace-endControlService-1} -> {EndControlIn-INSTANCE-1} {ServiceCallMultiActivePlace-endControlService-1} {ServiceCallMultiFlagPlace-endControlService-1-1} +tr {ServiceCallMultiEntryTransition-getControlService-0-0} {ServiceClientCallPlace-getControlService-0} {ServiceCallMultiInactivePlace-getControlService-0} -> {GetControlIn-INSTANCE-0} {ServiceCallMultiActivePlace-getControlService-0} {ServiceCallMultiFlagPlace-getControlService-0-0} +tr {ServiceCallMultiEntryTransition-getControlService-0-1} {ServiceCallMultiInactivePlace-getControlService-0} {ServiceClientCallPlace-getControlService-1} -> {GetControlIn-INSTANCE-0} {ServiceCallMultiActivePlace-getControlService-0} {ServiceCallMultiFlagPlace-getControlService-0-1} +tr {ServiceCallMultiEntryTransition-getControlService-1-0} {ServiceClientCallPlace-getControlService-0} {ServiceCallMultiInactivePlace-getControlService-1} -> {GetControlIn-INSTANCE-1} {ServiceCallMultiActivePlace-getControlService-1} {ServiceCallMultiFlagPlace-getControlService-1-0} +tr {ServiceCallMultiEntryTransition-getControlService-1-1} {ServiceClientCallPlace-getControlService-1} {ServiceCallMultiInactivePlace-getControlService-1} -> {GetControlIn-INSTANCE-1} {ServiceCallMultiActivePlace-getControlService-1} {ServiceCallMultiFlagPlace-getControlService-1-1} +tr {ServiceCallMultiExitTransition-endControlService-0-0} {EndControlOut-INSTANCE-0} {ServiceCallMultiActivePlace-endControlService-0} {ServiceCallMultiFlagPlace-endControlService-0-0} -> {ServiceCallMultiInactivePlace-endControlService-0} {ServiceClientRespPlace-endControlService-0} +tr {ServiceCallMultiExitTransition-endControlService-0-1} {EndControlOut-INSTANCE-0} {ServiceCallMultiActivePlace-endControlService-0} {ServiceCallMultiFlagPlace-endControlService-0-1} -> {ServiceCallMultiInactivePlace-endControlService-0} {ServiceClientRespPlace-endControlService-1} +tr {ServiceCallMultiExitTransition-endControlService-1-0} {EndControlOut-INSTANCE-1} {ServiceCallMultiActivePlace-endControlService-1} {ServiceCallMultiFlagPlace-endControlService-1-0} -> {ServiceCallMultiInactivePlace-endControlService-1} {ServiceClientRespPlace-endControlService-0} +tr {ServiceCallMultiExitTransition-endControlService-1-1} {EndControlOut-INSTANCE-1} {ServiceCallMultiActivePlace-endControlService-1} {ServiceCallMultiFlagPlace-endControlService-1-1} -> {ServiceCallMultiInactivePlace-endControlService-1} {ServiceClientRespPlace-endControlService-1} +tr {ServiceCallMultiExitTransition-getControlService-0-0} {GetControlOut-INSTANCE-0} {ServiceCallMultiActivePlace-getControlService-0} {ServiceCallMultiFlagPlace-getControlService-0-0} -> {ServiceCallMultiInactivePlace-getControlService-0} {ServiceClientRespPlace-getControlService-0} +tr {ServiceCallMultiExitTransition-getControlService-0-1} {GetControlOut-INSTANCE-0} {ServiceCallMultiActivePlace-getControlService-0} {ServiceCallMultiFlagPlace-getControlService-0-1} -> {ServiceCallMultiInactivePlace-getControlService-0} {ServiceClientRespPlace-getControlService-1} +tr {ServiceCallMultiExitTransition-getControlService-1-0} {GetControlOut-INSTANCE-1} {ServiceCallMultiActivePlace-getControlService-1} {ServiceCallMultiFlagPlace-getControlService-1-0} -> {ServiceCallMultiInactivePlace-getControlService-1} {ServiceClientRespPlace-getControlService-0} +tr {ServiceCallMultiExitTransition-getControlService-1-1} {GetControlOut-INSTANCE-1} {ServiceCallMultiActivePlace-getControlService-1} {ServiceCallMultiFlagPlace-getControlService-1-1} -> {ServiceCallMultiInactivePlace-getControlService-1} {ServiceClientRespPlace-getControlService-1} +tr {ServiceClientCallConnectTransition-endControlService-0} {L-ObjectPlaced} {ServiceTogglePlace-endControlService-0} -> {ServiceClientCallConnectPlace-endControlService-0} +tr {ServiceClientCallConnectTransition-endControlService-1} {R-ObjectPlaced} {ServiceTogglePlace-endControlService-1} -> {ServiceClientCallConnectPlace-endControlService-1} +tr {ServiceClientCallConnectTransition-getControlService-0} {L-AwaitingControl} {ServiceTogglePlace-getControlService-0} -> {ServiceClientCallConnectPlace-getControlService-0} +tr {ServiceClientCallConnectTransition-getControlService-1} {R-AwaitingControl} {ServiceTogglePlace-getControlService-1} -> {ServiceClientCallConnectPlace-getControlService-1} +tr {ServiceClientCallTransition-endControlService-0} {ServiceClientCallConnectPlace-endControlService-0} -> {ServiceClientCallPlace-endControlService-0} +tr {ServiceClientCallTransition-endControlService-1} {ServiceClientCallConnectPlace-endControlService-1} -> {ServiceClientCallPlace-endControlService-1} +tr {ServiceClientCallTransition-getControlService-0} {ServiceClientCallConnectPlace-getControlService-0} -> {ServiceClientCallPlace-getControlService-0} +tr {ServiceClientCallTransition-getControlService-1} {ServiceClientCallConnectPlace-getControlService-1} -> {ServiceClientCallPlace-getControlService-1} +tr {ServiceClientRespConnectTransition-endControlService-0} {ServiceClientRespConnectPlace-endControlService-0} -> {L-Done} {ServiceTogglePlace-endControlService-0} +tr {ServiceClientRespConnectTransition-endControlService-1} {ServiceClientRespConnectPlace-endControlService-1} -> {R-Done} {ServiceTogglePlace-endControlService-1} +tr {ServiceClientRespConnectTransition-getControlService-0} {ServiceClientRespConnectPlace-getControlService-0} -> {L-Ready} {ServiceTogglePlace-getControlService-0} +tr {ServiceClientRespConnectTransition-getControlService-1} {ServiceClientRespConnectPlace-getControlService-1} -> {R-Ready} {ServiceTogglePlace-getControlService-1} +tr {ServiceClientRespTransition-endControlService-0} {ServiceClientRespPlace-endControlService-0} -> {ServiceClientRespConnectPlace-endControlService-0} +tr {ServiceClientRespTransition-endControlService-1} {ServiceClientRespPlace-endControlService-1} -> {ServiceClientRespConnectPlace-endControlService-1} +tr {ServiceClientRespTransition-getControlService-0} {ServiceClientRespPlace-getControlService-0} -> {ServiceClientRespConnectPlace-getControlService-0} +tr {ServiceClientRespTransition-getControlService-1} {ServiceClientRespPlace-getControlService-1} -> {ServiceClientRespConnectPlace-getControlService-1} +tr ShowFeedback FeedbackIn -> FeedbackDone +tr SortBlue {PD-0-SortBlue} ObjectPoolBlue -> BlueOut {PD-0-SortBlue} +tr SortGreen {PD-0-SortGreen} ObjectPoolGreen -> GreenOut {PD-0-SortGreen} +tr SortRed {PD-0-SortRed} ObjectPoolRed -> {PD-0-SortRed} RedOut +pl {CallbackCapacityPlace-LeftCellTopic-0-0} (10) +pl {CallbackCapacityPlace-RightCellTopic-0-0} (10) +pl {CallbackCapacityPlace-UITopic-0-0} (10) +pl {DispatcherCapacityPlace-LeftCellTopic-0} (16) +pl {DispatcherCapacityPlace-RightCellTopic-0} (16) +pl {DispatcherCapacityPlace-UITopic-0} (16) +pl GetShared (1) +pl {InputSignalFalsePlace-Blue} (1) +pl {InputSignalFalsePlace-Green} (1) +pl {InputSignalFalsePlace-Red} (1) +pl ObjectPoolBlue (1) +pl ObjectPoolGreen (1) +pl ObjectPoolRed (1) +pl {PublisherCapacityPlace-LeftCellTopic-0} (10) +pl {PublisherCapacityPlace-LeftCellTopic-1} (10) +pl {PublisherCapacityPlace-RightCellTopic-0} (10) +pl {PublisherCapacityPlace-UITopic-0} (10) +pl {PublisherCapacityPlace-UITopic-1} (10) +pl {ServiceCallMultiInactivePlace-endControlService-0} (1) +pl {ServiceCallMultiInactivePlace-endControlService-1} (1) +pl {ServiceCallMultiInactivePlace-getControlService-0} (1) +pl {ServiceCallMultiInactivePlace-getControlService-1} (1) +pl {ServiceTogglePlace-endControlService-0} (1) +pl {ServiceTogglePlace-endControlService-1} (1) +pl {ServiceTogglePlace-getControlService-0} (1) +pl {ServiceTogglePlace-getControlService-1} (1) diff --git a/model-top-task.pnml b/models/task-1/model-top-task.pnml similarity index 100% rename from model-top-task.pnml rename to models/task-1/model-top-task.pnml diff --git a/model-top.pnml b/models/task-1/model-top.pnml similarity index 100% rename from model-top.pnml rename to models/task-1/model-top.pnml diff --git a/models/task-2/model-blocking-signals-flatted.net b/models/task-2/model-blocking-signals-flatted.net new file mode 100644 index 0000000..d414227 --- /dev/null +++ b/models/task-2/model-blocking-signals-flatted.net @@ -0,0 +1,200 @@ +net FullModel +tr {CallbackInputTransition-LeftCellTopic-0-0} {CallbackCapacityPlace-LeftCellTopic-0-0} {CallbackInputPlace-LeftCellTopic-0-0} -> {CallbackConnectorPlace-LeftCellTopic-0-0} +tr {CallbackInputTransition-RightCellTopic-0-0} {CallbackCapacityPlace-RightCellTopic-0-0} {CallbackInputPlace-RightCellTopic-0-0} -> {CallbackConnectorPlace-RightCellTopic-0-0} +tr {CallbackInputTransition-UITopic-0-0} {CallbackCapacityPlace-UITopic-0-0} {CallbackInputPlace-UITopic-0-0} -> {CallbackConnectorPlace-UITopic-0-0} +tr {CallbackOutputTransition-LeftCellTopic-0-0} {CallbackConnectorPlace-LeftCellTopic-0-0} -> {CallbackCapacityPlace-LeftCellTopic-0-0} {L-AwaitingControl} +tr {CallbackOutputTransition-RightCellTopic-0-0} {CallbackConnectorPlace-RightCellTopic-0-0} -> {CallbackCapacityPlace-RightCellTopic-0-0} {R-AwaitingControl} +tr {CallbackOutputTransition-UITopic-0-0} {CallbackConnectorPlace-UITopic-0-0} -> {CallbackCapacityPlace-UITopic-0-0} FeedbackIn +tr {CallbackOverflowTransition-LeftCellTopic-0-0} {CallbackCapacityPlace-LeftCellTopic-0-0}?-1 {CallbackInputPlace-LeftCellTopic-0-0} -> +tr {CallbackOverflowTransition-RightCellTopic-0-0} {CallbackCapacityPlace-RightCellTopic-0-0}?-1 {CallbackInputPlace-RightCellTopic-0-0} -> +tr {CallbackOverflowTransition-UITopic-0-0} {CallbackCapacityPlace-UITopic-0-0}?-1 {CallbackInputPlace-UITopic-0-0} -> +tr {ChannelConnectorTransition-LeftCellTopic} {ChannelConnectorPlace-LeftCellTopic} -> {DispatcherInputPlace-LeftCellTopic-0} +tr {ChannelConnectorTransition-RightCellTopic} {ChannelConnectorPlace-RightCellTopic} -> {DispatcherInputPlace-RightCellTopic-0} +tr {ChannelConnectorTransition-UITopic} {ChannelConnectorPlace-UITopic} -> {DispatcherInputPlace-UITopic-0} +tr {DispatcherInputTransition-LeftCellTopic-0} {DispatcherCapacityPlace-LeftCellTopic-0} {DispatcherInputPlace-LeftCellTopic-0} -> {DispatcherConnectorPlace-LeftCellTopic-0} +tr {DispatcherInputTransition-RightCellTopic-0} {DispatcherCapacityPlace-RightCellTopic-0} {DispatcherInputPlace-RightCellTopic-0} -> {DispatcherConnectorPlace-RightCellTopic-0} +tr {DispatcherInputTransition-UITopic-0} {DispatcherCapacityPlace-UITopic-0} {DispatcherInputPlace-UITopic-0} -> {DispatcherConnectorPlace-UITopic-0} +tr {DispatcherOutputTransition-LeftCellTopic-0} {DispatcherConnectorPlace-LeftCellTopic-0} -> {CallbackInputPlace-LeftCellTopic-0-0} {DispatcherCapacityPlace-LeftCellTopic-0} +tr {DispatcherOutputTransition-RightCellTopic-0} {DispatcherConnectorPlace-RightCellTopic-0} -> {CallbackInputPlace-RightCellTopic-0-0} {DispatcherCapacityPlace-RightCellTopic-0} +tr {DispatcherOutputTransition-UITopic-0} {DispatcherConnectorPlace-UITopic-0} -> {CallbackInputPlace-UITopic-0-0} {DispatcherCapacityPlace-UITopic-0} +tr {DispatcherOverflowTransition-LeftCellTopic-0} {DispatcherCapacityPlace-LeftCellTopic-0}?-1 {DispatcherInputPlace-LeftCellTopic-0} -> +tr {DispatcherOverflowTransition-RightCellTopic-0} {DispatcherCapacityPlace-RightCellTopic-0}?-1 {DispatcherInputPlace-RightCellTopic-0} -> +tr {DispatcherOverflowTransition-UITopic-0} {DispatcherCapacityPlace-UITopic-0}?-1 {DispatcherInputPlace-UITopic-0} -> +tr {End-INSTANCE-0} {EndControlIn-INSTANCE-0} -> GetShared {EndControlOut-INSTANCE-0} +tr {End-INSTANCE-1} {EndControlIn-INSTANCE-1} -> GetShared {EndControlOut-INSTANCE-1} +tr {Get-INSTANCE-0} GetShared {GetControlIn-INSTANCE-0} -> {GetControlOut-INSTANCE-0} +tr {Get-INSTANCE-1} GetShared {GetControlIn-INSTANCE-1} -> {GetControlOut-INSTANCE-1} +tr {GetSensorData-INSTANCE-0} {SensorIn-INSTANCE-0} {PD-0-GetSensorData-INSTANCE-0} -> {PD-0-GetSensorData-INSTANCE-0} {SensorInter-INSTANCE-0} +tr {InputSignalToFalseTransition-Blue} {PD-0-SortBlue} {InputSignalTruePlace-Blue} -> {InputSignalFalsePlace-Blue} +tr {InputSignalToFalseTransition-Green} {InputSignalTruePlace-Green} {PD-0-SortGreen} -> {InputSignalFalsePlace-Green} +tr {InputSignalToFalseTransition-PickFail} {PD-0-PickingFail-INSTANCE-1} {InputSignalTruePlace-PickFail} {PD-0-PickingFail-INSTANCE-0} -> {InputSignalFalsePlace-PickFail} +tr {InputSignalToFalseTransition-PickSuccess} {InputSignalTruePlace-PickSuccess} {PD-0-PickingSuccess-INSTANCE-0} {PD-0-PickingSuccess-INSTANCE-1} -> {InputSignalFalsePlace-PickSuccess} +tr {InputSignalToFalseTransition-PlaceFail} {PD-0-PlacingFail-INSTANCE-0} {InputSignalTruePlace-PlaceFail} {PD-0-PlacingFail-INSTANCE-1} -> {InputSignalFalsePlace-PlaceFail} +tr {InputSignalToFalseTransition-PlaceSuccess} {InputSignalTruePlace-PlaceSuccess} {PD-0-PlacingSuccess-INSTANCE-0} {PD-0-PlacingSuccess-INSTANCE-1} -> {InputSignalFalsePlace-PlaceSuccess} +tr {InputSignalToFalseTransition-Red} {PD-1-SortRed} {InputSignalTruePlace-Red} -> {InputSignalFalsePlace-Red} {PD-0-SortRed} +tr {InputSignalToFalseTransition-Sensor} {PD-0-GetSensorData-INSTANCE-0} {InputSignalTruePlace-Sensor} -> {InputSignalFalsePlace-Sensor} +tr {InputSignalToFalseTransition-Stop} {PD-0-SafeToUnsafe} {InputSignalTruePlace-Stop} -> {InputSignalFalsePlace-Stop} +tr {InputSignalToTrueTransition-Blue} {InputSignalFalsePlace-Blue} -> {PD-0-SortBlue} {InputSignalTruePlace-Blue} +tr {InputSignalToTrueTransition-Green} {InputSignalFalsePlace-Green} -> {InputSignalTruePlace-Green} {PD-0-SortGreen} +tr {InputSignalToTrueTransition-PickFail} {InputSignalFalsePlace-PickFail} -> {PD-0-PickingFail-INSTANCE-1} {InputSignalTruePlace-PickFail} {PD-0-PickingFail-INSTANCE-0} +tr {InputSignalToTrueTransition-PickSuccess} {InputSignalFalsePlace-PickSuccess} -> {InputSignalTruePlace-PickSuccess} {PD-0-PickingSuccess-INSTANCE-0} {PD-0-PickingSuccess-INSTANCE-1} +tr {InputSignalToTrueTransition-PlaceFail} {InputSignalFalsePlace-PlaceFail} -> {PD-0-PlacingFail-INSTANCE-0} {InputSignalTruePlace-PlaceFail} {PD-0-PlacingFail-INSTANCE-1} +tr {InputSignalToTrueTransition-PlaceSuccess} {InputSignalFalsePlace-PlaceSuccess} -> {InputSignalTruePlace-PlaceSuccess} {PD-0-PlacingSuccess-INSTANCE-0} {PD-0-PlacingSuccess-INSTANCE-1} +tr {InputSignalToTrueTransition-Red} {InputSignalFalsePlace-Red} {PD-0-SortRed} -> {PD-1-SortRed} {InputSignalTruePlace-Red} +tr {InputSignalToTrueTransition-Sensor} {InputSignalFalsePlace-Sensor} -> {PD-0-GetSensorData-INSTANCE-0} {InputSignalTruePlace-Sensor} +tr {InputSignalToTrueTransition-Stop} {InputSignalFalsePlace-Stop} -> {PD-0-SafeToUnsafe} {InputSignalTruePlace-Stop} +tr {Pick-INSTANCE-0} Safe {PickInput-INSTANCE-0} -> Safe {Picking-INSTANCE-0} +tr {Pick-INSTANCE-1} Safe {PickInput-INSTANCE-1} -> Safe {Picking-INSTANCE-1} +tr {PickingAbort-INSTANCE-0} {Picking-INSTANCE-0} Unsafe -> {PickOutput-INSTANCE-0} Unsafe +tr {PickingAbort-INSTANCE-1} {Picking-INSTANCE-1} Unsafe -> {PickOutput-INSTANCE-1} Unsafe +tr {PickingFail-INSTANCE-0} {PD-0-PickingFail-INSTANCE-0} {Picking-INSTANCE-0} -> {PD-0-PickingFail-INSTANCE-0} {PickOutput-INSTANCE-0} +tr {PickingFail-INSTANCE-1} {PD-0-PickingFail-INSTANCE-1} {Picking-INSTANCE-1} -> {PD-0-PickingFail-INSTANCE-1} {PickOutput-INSTANCE-1} +tr {PickingSuccess-INSTANCE-0} {PD-0-PickingSuccess-INSTANCE-0} {Picking-INSTANCE-0} -> {PD-0-PickingSuccess-INSTANCE-0} {PickOutput-INSTANCE-0} +tr {PickingSuccess-INSTANCE-1} {PD-0-PickingSuccess-INSTANCE-1} {Picking-INSTANCE-1} -> {PD-0-PickingSuccess-INSTANCE-1} {PickOutput-INSTANCE-1} +tr {Place-INSTANCE-0} Safe {PlaceInput-INSTANCE-0} -> Safe {Placing-INSTANCE-0} +tr {Place-INSTANCE-1} Safe {PlaceInput-INSTANCE-1} -> Safe {Placing-INSTANCE-1} +tr {PlacingAbort-INSTANCE-0} Unsafe {Placing-INSTANCE-0} -> Unsafe {PlaceOutput-INSTANCE-0} +tr {PlacingAbort-INSTANCE-1} Unsafe {Placing-INSTANCE-1} -> Unsafe {PlaceOutput-INSTANCE-1} +tr {PlacingFail-INSTANCE-0} {PD-0-PlacingFail-INSTANCE-0} {Placing-INSTANCE-0} -> {PD-0-PlacingFail-INSTANCE-0} {PlaceOutput-INSTANCE-0} +tr {PlacingFail-INSTANCE-1} {PD-0-PlacingFail-INSTANCE-1} {Placing-INSTANCE-1} -> {PD-0-PlacingFail-INSTANCE-1} {PlaceOutput-INSTANCE-1} +tr {PlacingSuccess-INSTANCE-0} {PD-0-PlacingSuccess-INSTANCE-0} {Placing-INSTANCE-0} -> {PD-0-PlacingSuccess-INSTANCE-0} {PlaceOutput-INSTANCE-0} +tr {PlacingSuccess-INSTANCE-1} {PD-0-PlacingSuccess-INSTANCE-1} {Placing-INSTANCE-1} -> {PD-0-PlacingSuccess-INSTANCE-1} {PlaceOutput-INSTANCE-1} +tr {ProcessSensorData-INSTANCE-0} {SensorInter-INSTANCE-0} -> {SensorOut-INSTANCE-0} +tr {PublisherInputTransition-LeftCellTopic-0} {PublisherCapacityPlace-LeftCellTopic-0} RedOut -> {PublisherConnectorPlace-LeftCellTopic-0} +tr {PublisherInputTransition-LeftCellTopic-1} BlueOut {PublisherCapacityPlace-LeftCellTopic-1} -> {PublisherConnectorPlace-LeftCellTopic-1} +tr {PublisherInputTransition-RightCellTopic-0} GreenOut {PublisherCapacityPlace-RightCellTopic-0} -> {PublisherConnectorPlace-RightCellTopic-0} +tr {PublisherInputTransition-UITopic-0} {L-Done} {PublisherCapacityPlace-UITopic-0} -> {PublisherConnectorPlace-UITopic-0} +tr {PublisherInputTransition-UITopic-1} {PublisherCapacityPlace-UITopic-1} {R-Done} -> {PublisherConnectorPlace-UITopic-1} +tr {PublisherOutputTransition-LeftCellTopic-0} {PublisherConnectorPlace-LeftCellTopic-0} -> {ChannelConnectorPlace-LeftCellTopic} {PublisherCapacityPlace-LeftCellTopic-0} +tr {PublisherOutputTransition-LeftCellTopic-1} {PublisherConnectorPlace-LeftCellTopic-1} -> {ChannelConnectorPlace-LeftCellTopic} {PublisherCapacityPlace-LeftCellTopic-1} +tr {PublisherOutputTransition-RightCellTopic-0} {PublisherConnectorPlace-RightCellTopic-0} -> {ChannelConnectorPlace-RightCellTopic} {PublisherCapacityPlace-RightCellTopic-0} +tr {PublisherOutputTransition-UITopic-0} {PublisherConnectorPlace-UITopic-0} -> {ChannelConnectorPlace-UITopic} {PublisherCapacityPlace-UITopic-0} +tr {PublisherOutputTransition-UITopic-1} {PublisherConnectorPlace-UITopic-1} -> {ChannelConnectorPlace-UITopic} {PublisherCapacityPlace-UITopic-1} +tr {PublisherOverflowTransition-LeftCellTopic-0} {PublisherCapacityPlace-LeftCellTopic-0}?-1 RedOut -> +tr {PublisherOverflowTransition-LeftCellTopic-1} BlueOut {PublisherCapacityPlace-LeftCellTopic-1}?-1 -> +tr {PublisherOverflowTransition-RightCellTopic-0} GreenOut {PublisherCapacityPlace-RightCellTopic-0}?-1 -> +tr {PublisherOverflowTransition-UITopic-0} {L-Done} {PublisherCapacityPlace-UITopic-0}?-1 -> +tr {PublisherOverflowTransition-UITopic-1} {PublisherCapacityPlace-UITopic-1}?-1 {R-Done} -> +tr SafeToSensorCall Safe -> SensorCall +tr SafeToUnsafe {PD-0-SafeToUnsafe} Safe -> {PD-0-SafeToUnsafe} Unsafe +tr {ServiceCallMultiEntryTransition-endControlService-0-0} {ServiceCallMultiInactivePlace-endControlService-0} {ServiceClientCallPlace-endControlService-0} -> {EndControlIn-INSTANCE-0} {ServiceCallMultiActivePlace-endControlService-0} {ServiceCallMultiFlagPlace-endControlService-0-0} +tr {ServiceCallMultiEntryTransition-endControlService-0-1} {ServiceCallMultiInactivePlace-endControlService-0} {ServiceClientCallPlace-endControlService-1} -> {EndControlIn-INSTANCE-0} {ServiceCallMultiActivePlace-endControlService-0} {ServiceCallMultiFlagPlace-endControlService-0-1} +tr {ServiceCallMultiEntryTransition-endControlService-1-0} {ServiceClientCallPlace-endControlService-0} {ServiceCallMultiInactivePlace-endControlService-1} -> {EndControlIn-INSTANCE-1} {ServiceCallMultiActivePlace-endControlService-1} {ServiceCallMultiFlagPlace-endControlService-1-0} +tr {ServiceCallMultiEntryTransition-endControlService-1-1} {ServiceClientCallPlace-endControlService-1} {ServiceCallMultiInactivePlace-endControlService-1} -> {EndControlIn-INSTANCE-1} {ServiceCallMultiActivePlace-endControlService-1} {ServiceCallMultiFlagPlace-endControlService-1-1} +tr {ServiceCallMultiEntryTransition-getControlService-0-0} {ServiceClientCallPlace-getControlService-0} {ServiceCallMultiInactivePlace-getControlService-0} -> {GetControlIn-INSTANCE-0} {ServiceCallMultiActivePlace-getControlService-0} {ServiceCallMultiFlagPlace-getControlService-0-0} +tr {ServiceCallMultiEntryTransition-getControlService-0-1} {ServiceCallMultiInactivePlace-getControlService-0} {ServiceClientCallPlace-getControlService-1} -> {GetControlIn-INSTANCE-0} {ServiceCallMultiActivePlace-getControlService-0} {ServiceCallMultiFlagPlace-getControlService-0-1} +tr {ServiceCallMultiEntryTransition-getControlService-1-0} {ServiceClientCallPlace-getControlService-0} {ServiceCallMultiInactivePlace-getControlService-1} -> {GetControlIn-INSTANCE-1} {ServiceCallMultiActivePlace-getControlService-1} {ServiceCallMultiFlagPlace-getControlService-1-0} +tr {ServiceCallMultiEntryTransition-getControlService-1-1} {ServiceClientCallPlace-getControlService-1} {ServiceCallMultiInactivePlace-getControlService-1} -> {GetControlIn-INSTANCE-1} {ServiceCallMultiActivePlace-getControlService-1} {ServiceCallMultiFlagPlace-getControlService-1-1} +tr {ServiceCallMultiEntryTransition-pickService-0-0} {ServiceCallMultiInactivePlace-pickService-0} {ServiceClientCallPlace-pickService-0} -> {PickInput-INSTANCE-0} {ServiceCallMultiActivePlace-pickService-0} {ServiceCallMultiFlagPlace-pickService-0-0} +tr {ServiceCallMultiEntryTransition-pickService-0-1} {ServiceCallMultiInactivePlace-pickService-0} {ServiceClientCallPlace-pickService-1} -> {PickInput-INSTANCE-0} {ServiceCallMultiActivePlace-pickService-0} {ServiceCallMultiFlagPlace-pickService-0-1} +tr {ServiceCallMultiEntryTransition-pickService-1-0} {ServiceClientCallPlace-pickService-0} {ServiceCallMultiInactivePlace-pickService-1} -> {PickInput-INSTANCE-1} {ServiceCallMultiActivePlace-pickService-1} {ServiceCallMultiFlagPlace-pickService-1-0} +tr {ServiceCallMultiEntryTransition-pickService-1-1} {ServiceClientCallPlace-pickService-1} {ServiceCallMultiInactivePlace-pickService-1} -> {PickInput-INSTANCE-1} {ServiceCallMultiActivePlace-pickService-1} {ServiceCallMultiFlagPlace-pickService-1-1} +tr {ServiceCallMultiEntryTransition-placeService-0-0} {ServiceCallMultiInactivePlace-placeService-0} {ServiceClientCallPlace-placeService-0} -> {PlaceInput-INSTANCE-0} {ServiceCallMultiActivePlace-placeService-0} {ServiceCallMultiFlagPlace-placeService-0-0} +tr {ServiceCallMultiEntryTransition-placeService-0-1} {ServiceCallMultiInactivePlace-placeService-0} {ServiceClientCallPlace-placeService-1} -> {PlaceInput-INSTANCE-0} {ServiceCallMultiActivePlace-placeService-0} {ServiceCallMultiFlagPlace-placeService-0-1} +tr {ServiceCallMultiEntryTransition-placeService-1-0} {ServiceClientCallPlace-placeService-0} {ServiceCallMultiInactivePlace-placeService-1} -> {PlaceInput-INSTANCE-1} {ServiceCallMultiActivePlace-placeService-1} {ServiceCallMultiFlagPlace-placeService-1-0} +tr {ServiceCallMultiEntryTransition-placeService-1-1} {ServiceClientCallPlace-placeService-1} {ServiceCallMultiInactivePlace-placeService-1} -> {PlaceInput-INSTANCE-1} {ServiceCallMultiActivePlace-placeService-1} {ServiceCallMultiFlagPlace-placeService-1-1} +tr {ServiceCallMultiEntryTransition-sensorService-0-0} {ServiceClientCallPlace-sensorService-0} {ServiceCallMultiInactivePlace-sensorService-0} -> {SensorIn-INSTANCE-0} {ServiceCallMultiActivePlace-sensorService-0} {ServiceCallMultiFlagPlace-sensorService-0-0} +tr {ServiceCallMultiExitTransition-endControlService-0-0} {EndControlOut-INSTANCE-0} {ServiceCallMultiActivePlace-endControlService-0} {ServiceCallMultiFlagPlace-endControlService-0-0} -> {ServiceCallMultiInactivePlace-endControlService-0} {ServiceClientRespPlace-endControlService-0} +tr {ServiceCallMultiExitTransition-endControlService-0-1} {EndControlOut-INSTANCE-0} {ServiceCallMultiActivePlace-endControlService-0} {ServiceCallMultiFlagPlace-endControlService-0-1} -> {ServiceCallMultiInactivePlace-endControlService-0} {ServiceClientRespPlace-endControlService-1} +tr {ServiceCallMultiExitTransition-endControlService-1-0} {EndControlOut-INSTANCE-1} {ServiceCallMultiActivePlace-endControlService-1} {ServiceCallMultiFlagPlace-endControlService-1-0} -> {ServiceCallMultiInactivePlace-endControlService-1} {ServiceClientRespPlace-endControlService-0} +tr {ServiceCallMultiExitTransition-endControlService-1-1} {EndControlOut-INSTANCE-1} {ServiceCallMultiActivePlace-endControlService-1} {ServiceCallMultiFlagPlace-endControlService-1-1} -> {ServiceCallMultiInactivePlace-endControlService-1} {ServiceClientRespPlace-endControlService-1} +tr {ServiceCallMultiExitTransition-getControlService-0-0} {GetControlOut-INSTANCE-0} {ServiceCallMultiActivePlace-getControlService-0} {ServiceCallMultiFlagPlace-getControlService-0-0} -> {ServiceCallMultiInactivePlace-getControlService-0} {ServiceClientRespPlace-getControlService-0} +tr {ServiceCallMultiExitTransition-getControlService-0-1} {GetControlOut-INSTANCE-0} {ServiceCallMultiActivePlace-getControlService-0} {ServiceCallMultiFlagPlace-getControlService-0-1} -> {ServiceCallMultiInactivePlace-getControlService-0} {ServiceClientRespPlace-getControlService-1} +tr {ServiceCallMultiExitTransition-getControlService-1-0} {GetControlOut-INSTANCE-1} {ServiceCallMultiActivePlace-getControlService-1} {ServiceCallMultiFlagPlace-getControlService-1-0} -> {ServiceCallMultiInactivePlace-getControlService-1} {ServiceClientRespPlace-getControlService-0} +tr {ServiceCallMultiExitTransition-getControlService-1-1} {GetControlOut-INSTANCE-1} {ServiceCallMultiActivePlace-getControlService-1} {ServiceCallMultiFlagPlace-getControlService-1-1} -> {ServiceCallMultiInactivePlace-getControlService-1} {ServiceClientRespPlace-getControlService-1} +tr {ServiceCallMultiExitTransition-pickService-0-0} {PickOutput-INSTANCE-0} {ServiceCallMultiActivePlace-pickService-0} {ServiceCallMultiFlagPlace-pickService-0-0} -> {ServiceCallMultiInactivePlace-pickService-0} {ServiceClientRespPlace-pickService-0} +tr {ServiceCallMultiExitTransition-pickService-0-1} {PickOutput-INSTANCE-0} {ServiceCallMultiActivePlace-pickService-0} {ServiceCallMultiFlagPlace-pickService-0-1} -> {ServiceCallMultiInactivePlace-pickService-0} {ServiceClientRespPlace-pickService-1} +tr {ServiceCallMultiExitTransition-pickService-1-0} {PickOutput-INSTANCE-1} {ServiceCallMultiActivePlace-pickService-1} {ServiceCallMultiFlagPlace-pickService-1-0} -> {ServiceCallMultiInactivePlace-pickService-1} {ServiceClientRespPlace-pickService-0} +tr {ServiceCallMultiExitTransition-pickService-1-1} {PickOutput-INSTANCE-1} {ServiceCallMultiActivePlace-pickService-1} {ServiceCallMultiFlagPlace-pickService-1-1} -> {ServiceCallMultiInactivePlace-pickService-1} {ServiceClientRespPlace-pickService-1} +tr {ServiceCallMultiExitTransition-placeService-0-0} {PlaceOutput-INSTANCE-0} {ServiceCallMultiActivePlace-placeService-0} {ServiceCallMultiFlagPlace-placeService-0-0} -> {ServiceCallMultiInactivePlace-placeService-0} {ServiceClientRespPlace-placeService-0} +tr {ServiceCallMultiExitTransition-placeService-0-1} {PlaceOutput-INSTANCE-0} {ServiceCallMultiActivePlace-placeService-0} {ServiceCallMultiFlagPlace-placeService-0-1} -> {ServiceCallMultiInactivePlace-placeService-0} {ServiceClientRespPlace-placeService-1} +tr {ServiceCallMultiExitTransition-placeService-1-0} {PlaceOutput-INSTANCE-1} {ServiceCallMultiActivePlace-placeService-1} {ServiceCallMultiFlagPlace-placeService-1-0} -> {ServiceCallMultiInactivePlace-placeService-1} {ServiceClientRespPlace-placeService-0} +tr {ServiceCallMultiExitTransition-placeService-1-1} {PlaceOutput-INSTANCE-1} {ServiceCallMultiActivePlace-placeService-1} {ServiceCallMultiFlagPlace-placeService-1-1} -> {ServiceCallMultiInactivePlace-placeService-1} {ServiceClientRespPlace-placeService-1} +tr {ServiceCallMultiExitTransition-sensorService-0-0} {SensorOut-INSTANCE-0} {ServiceCallMultiActivePlace-sensorService-0} {ServiceCallMultiFlagPlace-sensorService-0-0} -> {ServiceCallMultiInactivePlace-sensorService-0} {ServiceClientRespPlace-sensorService-0} +tr {ServiceClientCallConnectTransition-endControlService-0} {L-ObjectPlaced} {ServiceTogglePlace-endControlService-0} -> {ServiceClientCallConnectPlace-endControlService-0} +tr {ServiceClientCallConnectTransition-endControlService-1} {R-ObjectPlaced} {ServiceTogglePlace-endControlService-1} -> {ServiceClientCallConnectPlace-endControlService-1} +tr {ServiceClientCallConnectTransition-getControlService-0} {L-AwaitingControl} {ServiceTogglePlace-getControlService-0} -> {ServiceClientCallConnectPlace-getControlService-0} +tr {ServiceClientCallConnectTransition-getControlService-1} {R-AwaitingControl} {ServiceTogglePlace-getControlService-1} -> {ServiceClientCallConnectPlace-getControlService-1} +tr {ServiceClientCallConnectTransition-pickService-0} {L-Ready} {ServiceTogglePlace-pickService-0} -> {ServiceClientCallConnectPlace-pickService-0} +tr {ServiceClientCallConnectTransition-pickService-1} {R-Ready} {ServiceTogglePlace-pickService-1} -> {ServiceClientCallConnectPlace-pickService-1} +tr {ServiceClientCallConnectTransition-placeService-0} {L-ObjectPicked} {ServiceTogglePlace-placeService-0} -> {ServiceClientCallConnectPlace-placeService-0} +tr {ServiceClientCallConnectTransition-placeService-1} {R-ObjectPicked} {ServiceTogglePlace-placeService-1} -> {ServiceClientCallConnectPlace-placeService-1} +tr {ServiceClientCallConnectTransition-sensorService-0} SensorCall {ServiceTogglePlace-sensorService-0} -> {ServiceClientCallConnectPlace-sensorService-0} +tr {ServiceClientCallTransition-endControlService-0} {ServiceClientCallConnectPlace-endControlService-0} -> {ServiceClientCallPlace-endControlService-0} +tr {ServiceClientCallTransition-endControlService-1} {ServiceClientCallConnectPlace-endControlService-1} -> {ServiceClientCallPlace-endControlService-1} +tr {ServiceClientCallTransition-getControlService-0} {ServiceClientCallConnectPlace-getControlService-0} -> {ServiceClientCallPlace-getControlService-0} +tr {ServiceClientCallTransition-getControlService-1} {ServiceClientCallConnectPlace-getControlService-1} -> {ServiceClientCallPlace-getControlService-1} +tr {ServiceClientCallTransition-pickService-0} {ServiceClientCallConnectPlace-pickService-0} -> {ServiceClientCallPlace-pickService-0} +tr {ServiceClientCallTransition-pickService-1} {ServiceClientCallConnectPlace-pickService-1} -> {ServiceClientCallPlace-pickService-1} +tr {ServiceClientCallTransition-placeService-0} {ServiceClientCallConnectPlace-placeService-0} -> {ServiceClientCallPlace-placeService-0} +tr {ServiceClientCallTransition-placeService-1} {ServiceClientCallConnectPlace-placeService-1} -> {ServiceClientCallPlace-placeService-1} +tr {ServiceClientCallTransition-sensorService-0} {ServiceClientCallConnectPlace-sensorService-0} -> {ServiceClientCallPlace-sensorService-0} +tr {ServiceClientRespConnectTransition-endControlService-0} {ServiceClientRespConnectPlace-endControlService-0} -> {L-Done} {ServiceTogglePlace-endControlService-0} +tr {ServiceClientRespConnectTransition-endControlService-1} {ServiceClientRespConnectPlace-endControlService-1} -> {R-Done} {ServiceTogglePlace-endControlService-1} +tr {ServiceClientRespConnectTransition-getControlService-0} {ServiceClientRespConnectPlace-getControlService-0} -> {L-Ready} {ServiceTogglePlace-getControlService-0} +tr {ServiceClientRespConnectTransition-getControlService-1} {ServiceClientRespConnectPlace-getControlService-1} -> {R-Ready} {ServiceTogglePlace-getControlService-1} +tr {ServiceClientRespConnectTransition-pickService-0} {ServiceClientRespConnectPlace-pickService-0} -> {L-ObjectPicked} {ServiceTogglePlace-pickService-0} +tr {ServiceClientRespConnectTransition-pickService-1} {ServiceClientRespConnectPlace-pickService-1} -> {R-ObjectPicked} {ServiceTogglePlace-pickService-1} +tr {ServiceClientRespConnectTransition-placeService-0} {ServiceClientRespConnectPlace-placeService-0} -> {L-ObjectPlaced} {ServiceTogglePlace-placeService-0} +tr {ServiceClientRespConnectTransition-placeService-1} {ServiceClientRespConnectPlace-placeService-1} -> {R-ObjectPlaced} {ServiceTogglePlace-placeService-1} +tr {ServiceClientRespConnectTransition-sensorService-0} {ServiceClientRespConnectPlace-sensorService-0} -> SensorResponse {ServiceTogglePlace-sensorService-0} +tr {ServiceClientRespTransition-endControlService-0} {ServiceClientRespPlace-endControlService-0} -> {ServiceClientRespConnectPlace-endControlService-0} +tr {ServiceClientRespTransition-endControlService-1} {ServiceClientRespPlace-endControlService-1} -> {ServiceClientRespConnectPlace-endControlService-1} +tr {ServiceClientRespTransition-getControlService-0} {ServiceClientRespPlace-getControlService-0} -> {ServiceClientRespConnectPlace-getControlService-0} +tr {ServiceClientRespTransition-getControlService-1} {ServiceClientRespPlace-getControlService-1} -> {ServiceClientRespConnectPlace-getControlService-1} +tr {ServiceClientRespTransition-pickService-0} {ServiceClientRespPlace-pickService-0} -> {ServiceClientRespConnectPlace-pickService-0} +tr {ServiceClientRespTransition-pickService-1} {ServiceClientRespPlace-pickService-1} -> {ServiceClientRespConnectPlace-pickService-1} +tr {ServiceClientRespTransition-placeService-0} {ServiceClientRespPlace-placeService-0} -> {ServiceClientRespConnectPlace-placeService-0} +tr {ServiceClientRespTransition-placeService-1} {ServiceClientRespPlace-placeService-1} -> {ServiceClientRespConnectPlace-placeService-1} +tr {ServiceClientRespTransition-sensorService-0} {ServiceClientRespPlace-sensorService-0} -> {ServiceClientRespConnectPlace-sensorService-0} +tr ShowFeedback FeedbackIn -> FeedbackDone +tr SortBlue {PD-0-SortBlue} ObjectPoolBlue -> BlueOut {PD-0-SortBlue} +tr SortGreen {PD-0-SortGreen} ObjectPoolGreen -> GreenOut {PD-0-SortGreen} +tr SortRed {PD-1-SortRed} {PD-0-SortRed} ObjectPoolRed -> {PD-1-SortRed} {PD-0-SortRed} RedOut +tr TransitionSafe SensorResponse -> Safe +tr TransitionUnsafe SensorResponse -> Unsafe +tr UnsafeToSensorCall Unsafe -> SensorCall +pl {CallbackCapacityPlace-LeftCellTopic-0-0} (10) +pl {CallbackCapacityPlace-RightCellTopic-0-0} (10) +pl {CallbackCapacityPlace-UITopic-0-0} (10) +pl {DispatcherCapacityPlace-LeftCellTopic-0} (16) +pl {DispatcherCapacityPlace-RightCellTopic-0} (16) +pl {DispatcherCapacityPlace-UITopic-0} (16) +pl GetShared (1) +pl {InputSignalFalsePlace-Blue} (1) +pl {InputSignalFalsePlace-Green} (1) +pl {InputSignalFalsePlace-PickFail} (1) +pl {InputSignalFalsePlace-PickSuccess} (1) +pl {InputSignalFalsePlace-PlaceFail} (1) +pl {InputSignalFalsePlace-PlaceSuccess} (1) +pl {InputSignalFalsePlace-Red} (1) +pl {InputSignalFalsePlace-Sensor} (1) +pl {InputSignalFalsePlace-Stop} (1) +pl ObjectPoolBlue (1) +pl ObjectPoolGreen (1) +pl ObjectPoolRed (1) +pl {PD-0-SortRed} (1) +pl {PublisherCapacityPlace-LeftCellTopic-0} (10) +pl {PublisherCapacityPlace-LeftCellTopic-1} (10) +pl {PublisherCapacityPlace-RightCellTopic-0} (10) +pl {PublisherCapacityPlace-UITopic-0} (10) +pl {PublisherCapacityPlace-UITopic-1} (10) +pl {ServiceCallMultiInactivePlace-endControlService-0} (1) +pl {ServiceCallMultiInactivePlace-endControlService-1} (1) +pl {ServiceCallMultiInactivePlace-getControlService-0} (1) +pl {ServiceCallMultiInactivePlace-getControlService-1} (1) +pl {ServiceCallMultiInactivePlace-pickService-0} (1) +pl {ServiceCallMultiInactivePlace-pickService-1} (1) +pl {ServiceCallMultiInactivePlace-placeService-0} (1) +pl {ServiceCallMultiInactivePlace-placeService-1} (1) +pl {ServiceCallMultiInactivePlace-sensorService-0} (1) +pl {ServiceTogglePlace-endControlService-0} (1) +pl {ServiceTogglePlace-endControlService-1} (1) +pl {ServiceTogglePlace-getControlService-0} (1) +pl {ServiceTogglePlace-getControlService-1} (1) +pl {ServiceTogglePlace-pickService-0} (1) +pl {ServiceTogglePlace-pickService-1} (1) +pl {ServiceTogglePlace-placeService-0} (1) +pl {ServiceTogglePlace-placeService-1} (1) +pl {ServiceTogglePlace-sensorService-0} (1) +pl Unsafe (1) diff --git a/models/task-2/model-blocking-signals.pnml b/models/task-2/model-blocking-signals.pnml new file mode 100644 index 0000000..5ea8f7d --- /dev/null +++ b/models/task-2/model-blocking-signals.pnml @@ -0,0 +1,1098 @@ +<?xml version="1.0" encoding="UTF-8"?> +<pnml xmlns="http://www.pnml.org/version-2009/grammar/pnml"> + <net id="FullModel" type="http://www.pnml.org/version-2009/grammar/ptnet"> + <name> + <text>FullModel</text> + </name> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <inputsignals> + <inputsignal> + <inputsignalID>Red</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>Blue</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>Green</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>PickSuccess</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>PlaceSuccess</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>PickFail</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>PlaceFail</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>Stop</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>Sensor</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + </inputsignals> + </toolspecific> + <page id="top"> + <page id="SelectorPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + <place id="ObjectPoolRed"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorRed</subnet> + <balloonMarking> + <tokens> + <token>{"color" : "green", "name" : "green1", "pickSuccess" : "false", "placeSuccess" : "false", + "humanDetected" : "false", "sensorData" : "", "trace" : "", "locked" : "false" } </token> + </tokens> + </balloonMarking> + </toolspecific> + <initialMarking> + <text>1</text> + </initialMarking> + <name> + <text>ObjectPoolRed</text> + </name> + </place> + <place id="ObjectPoolBlue"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorBlue</subnet> + <balloonMarking> + <tokens> + <token>{"color" : "blue", "name" : "blue1", "pickSuccess" : "false", "placeSuccess" : "false", + "humanDetected" : "false", "sensorData" : "", "trace" : "", "locked" : "false" } </token> + </tokens> + </balloonMarking> + </toolspecific> + <initialMarking> + <text>1</text> + </initialMarking> + <name> + <text>ObjectPoolBlue</text> + </name> + </place> + <place id="ObjectPoolGreen"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorGreen</subnet> + <balloonMarking> + <tokens> + <token>{"color" : "red", "name" : "red1", "pickSuccess" : "false", "placeSuccess" : "false", + "humanDetected" : "false", "sensorData" : "", "trace" : "", "locked" : "false" } </token> + </tokens> + </balloonMarking> + </toolspecific> + <initialMarking> + <text>1</text> + </initialMarking> + <name> + <text>ObjectPoolGreen</text> + </name> + </place> + + <transition id="SortRed"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorRed</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(Red) AND (NOT Red)</inputsignalclause> + </toolspecific> + <name> + <text>SortRed</text> + </name> + </transition> + <transition id="SortBlue"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorBlue</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(Blue)</inputsignalclause> + </toolspecific> + <name> + <text>SortBlue</text> + </name> + </transition> + <transition id="SortGreen"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorGreen</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(Green)</inputsignalclause> + </toolspecific> + <name> + <text>SortGreen</text> + </name> + </transition> + + <place id="RedOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorRed</subnet> + </toolspecific> + <name> + <text>RedOut</text> + </name> + </place> + <place id="BlueOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorBlue</subnet> + </toolspecific> + <name> + <text>BlueOut</text> + </name> + </place> + <place id="GreenOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorGreen</subnet> + </toolspecific> + <name> + <text>GreenOut</text> + </name> + </place> + + <arc id="a1" source="SortRed" target="RedOut"> + </arc> + <arc id="a2" source="SortBlue" target="BlueOut"> + </arc> + <arc id="a3" source="SortGreen" target="GreenOut"> + </arc> + <arc id="a4" source="ObjectPoolRed" target="SortRed"> + </arc> + <arc id="a5" source="ObjectPoolBlue" target="SortBlue"> + </arc> + <arc id="a6" source="ObjectPoolGreen" target="SortGreen"> + </arc> + </page> + + <transition id="LeftCellTopic"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>topicTransitionType</type> + <topicName>LeftCellTopic</topicName> + <publishers> + <publisher> + <id>RedOut</id> + <limit>10</limit> + </publisher> + <publisher> + <id>BlueOut</id> + <limit>10</limit> + </publisher> + </publishers> + <subscribers> + <subscriber> + <id>L-AwaitingControl</id> + <limit>10</limit> + </subscriber> + </subscribers> + </toolspecific> + <name> + <text>LeftCellTopic</text> + </name> + </transition> + <transition id="RightCellTopic"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>topicTransitionType</type> + <topicName>RightCellTopic</topicName> + <publishers> + <publisher> + <id>GreenOut</id> + <limit>10</limit> + </publisher> + </publishers> + <subscribers> + <subscriber> + <id>R-AwaitingControl</id> + <limit>10</limit> + </subscriber> + </subscribers> + </toolspecific> + <name> + <text>RightCellTopic</text> + </name> + </transition> + + <transition id="UITopic"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>topicTransitionType</type> + <topicName>UITopic</topicName> + <publishers> + <publisher> + <id>L-Done</id> + <limit>10</limit> + </publisher> + <publisher> + <id>R-Done</id> + <limit>10</limit> + </publisher> + </publishers> + <subscribers> + <subscriber> + <id>FeedbackIn</id> + <limit>10</limit> + </subscriber> + </subscribers> + </toolspecific> + <name> + <text>UITopic</text> + </name> + </transition> + + <page id="LeftControllerPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + + <place id="L-AwaitingControl"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>LeftController</node> + <subnet>LC1</subnet> + </toolspecific> + <name> + <text>L-AwaitingControl</text> + </name> + </place> + <place id="L-Ready"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>LeftController</node> + <subnet>LC1</subnet> + </toolspecific> + <name> + <text>L-Ready</text> + </name> + </place> + <place id="L-ObjectPicked"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>LeftController</node> + <subnet>LC1</subnet> + </toolspecific> + <name> + <text>L-ObjectPicked</text> + </name> + </place> + <place id="L-ObjectPlaced"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>LeftController</node> + <subnet>LC1</subnet> + </toolspecific> + <name> + <text>L-ObjectPlaced</text> + </name> + </place> + <place id="L-Done"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>LeftController</node> + <subnet>LC1</subnet> + </toolspecific> + <name> + <text>L-Done</text> + </name> + </place> + </page> + + <page id="RightControllerPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + + <place id="R-AwaitingControl"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>RightController</node> + <subnet>RC1</subnet> + </toolspecific> + <name> + <text>R-AwaitingControl</text> + </name> + </place> + <place id="R-Ready"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>RightController</node> + <subnet>RC1</subnet> + </toolspecific> + <name> + <text>R-Ready</text> + </name> + </place> + <place id="R-ObjectPicked"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>RightController</node> + <subnet>RC1</subnet> + </toolspecific> + <name> + <text>R-ObjectPicked</text> + </name> + </place> + <place id="R-ObjectPlaced"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>RightController</node> + <subnet>RC1</subnet> + </toolspecific> + <name> + <text>R-ObjectPlaced</text> + </name> + </place> + <place id="R-Done"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>RightController</node> + <subnet>RC1</subnet> + </toolspecific> + <name> + <text>R-Done</text> + </name> + </place> + </page> + + <page id="FeedbackPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + <place id="FeedbackIn"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Feedback</node> + <subnet>Feedback</subnet> + </toolspecific> + <name> + <text>FeedbackIn</text> + </name> + </place> + + <transition id="ShowFeedback"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Feedback</node> + <subnet>Feedback</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>ShowFeedback</text> + </name> + </transition> + + <place id="FeedbackDone"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Feedback</node> + <subnet>Feedback</subnet> + </toolspecific> + <name> + <text>FeedbackDone</text> + </name> + </place> + + <arc id="a7" source="FeedbackIn" target="ShowFeedback"> + </arc> + <arc id="a8" source="ShowFeedback" target="FeedbackDone"> + </arc> + </page> + + <page id="SynchronizerPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + <page id="GetControlService"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>getControlService</serviceName> + </toolspecific> + + <place id="GetControlIn"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>GetControl</subnet> + </toolspecific> + <name> + <text>GetControlIn</text> + </name> + </place> + <place id="GetControlOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>GetControl</subnet> + </toolspecific> + <name> + <text>GetControlOut</text> + </name> + </place> + <referencePlace id="GetSharedRef" ref="GetShared"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>GetControl</subnet> + </toolspecific> + <name> + <text>GetSharedRef</text> + </name> + </referencePlace> + <transition id="Get"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>GetControl</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>Get</text> + </name> + </transition> + <arc id="a9" source="GetControlIn" target="Get"> + </arc> + <arc id="a10" source="Get" target="GetControlOut"> + </arc> + <arc id="a11" source="GetSharedRef" target="Get"> + </arc> + </page> + <page id="EndControlService"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>endControlService</serviceName> + </toolspecific> + + <place id="EndControlIn"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>EndControl</subnet> + </toolspecific> + <name> + <text>EndControlIn</text> + </name> + </place> + <place id="EndControlOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>EndControl</subnet> + </toolspecific> + <name> + <text>EndControlOut</text> + </name> + </place> + <referencePlace id="GetEndSharedRef" ref="GetShared"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>EndControl</subnet> + </toolspecific> + <name> + <text>GetEndSharedRef</text> + </name> + </referencePlace> + <transition id="End"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>EndControl</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>End</text> + </name> + </transition> + <arc id="a12" source="EndControlIn" target="End"> + </arc> + <arc id="a13" source="End" target="EndControlOut"> + </arc> + <arc id="a13b" source="End" target="GetEndSharedRef"> + </arc> + </page> + <page id="SharedSpacePage"> + <place id="GetShared"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>SharedSync</subnet> + <balloonMarking> + <tokens> + <token>{ "color":"NONE","name":"NONE","pickSuccess":"false","placeSuccess":"false", + "humanDetected":"false","sensorData":"NONE","trace":"NONE", "locked" : "true" } + </token> + </tokens> + </balloonMarking> + </toolspecific> + <initialMarking> + <text>1</text> + </initialMarking> + <name> + <text>GetShared</text> + </name> + </place> + </page> + </page> + + <transition id="GetControlServiceCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>getControlService</serviceName> + <serverInput>GetControlIn</serverInput> + <serverOutput>GetControlOut</serverOutput> + <serverCapacity>2</serverCapacity> + <channels> + <channel> + <cid>c1</cid> + <request>L-AwaitingControl</request> + <response>L-Ready</response> + </channel> + <channel> + <cid>c2</cid> + <request>R-AwaitingControl</request> + <response>R-Ready</response> + </channel> + </channels> + </toolspecific> + <name> + <text>GetControlServiceCall</text> + </name> + </transition> + <transition id="EndControlServiceCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>endControlService</serviceName> + <serverInput>EndControlIn</serverInput> + <serverOutput>EndControlOut</serverOutput> + <serverCapacity>2</serverCapacity> + <channels> + <channel> + <cid>c3</cid> + <request>L-ObjectPlaced</request> + <response>L-Done</response> + </channel> + <channel> + <cid>c4</cid> + <request>R-ObjectPlaced</request> + <response>R-Done</response> + </channel> + </channels> + </toolspecific> + <name> + <text>EndControlServiceCall</text> + </name> + </transition> + + <transition id="PickServiceCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>pickService</serviceName> + <serverInput>PickInput</serverInput> + <serverOutput>PickOutput</serverOutput> + <serverCapacity>2</serverCapacity> + <channels> + <channel> + <cid>c5</cid> + <request>L-Ready</request> + <response>L-ObjectPicked</response> + </channel> + <channel> + <cid>c6</cid> + <request>R-Ready</request> + <response>R-ObjectPicked</response> + </channel> + </channels> + </toolspecific> + <name> + <text>PickServiceCall</text> + </name> + </transition> + + <transition id="PlaceServiceCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>placeService</serviceName> + <serverInput>PlaceInput</serverInput> + <serverOutput>PlaceOutput</serverOutput> + <serverCapacity>2</serverCapacity> + <channels> + <channel> + <cid>c7</cid> + <request>L-ObjectPicked</request> + <response>L-ObjectPlaced</response> + </channel> + <channel> + <cid>c8</cid> + <request>R-ObjectPicked</request> + <response>R-ObjectPlaced</response> + </channel> + </channels> + </toolspecific> + <name> + <text>PlaceServiceCall</text> + </name> + </transition> + + <page id="ExecutorPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + + <page id="PickService"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>pickService</serviceName> + </toolspecific> + + <place id="PickInput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + </toolspecific> + <name> + <text>PickInput</text> + </name> + </place> + <place id="Picking"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + </toolspecific> + <name> + <text>Picking</text> + </name> + </place> + <place id="PickOutput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + </toolspecific> + <name> + <text>PickOutput</text> + </name> + </place> + + <transition id="Pick"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>Pick</text> + </name> + </transition> + <transition id="PickingFail"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(PickFail)</inputsignalclause> + </toolspecific> + <name> + <text>PickingFail</text> + </name> + </transition> + <transition id="PickingSuccess"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(PickSuccess)</inputsignalclause> + </toolspecific> + <name> + <text>PickingSuccess</text> + </name> + </transition> + <transition id="PickingAbort"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>PickingAbort</text> + </name> + </transition> + <referencePlace id="PickSafeRef" ref="Safe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + </toolspecific> + <name> + <text>PickSafeRef</text> + </name> + </referencePlace> + <referencePlace id="PickUnsafeRef" ref="Unsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + </toolspecific> + <name> + <text>PickUnsafeRef</text> + </name> + </referencePlace> + <arc id="a15" source="PickInput" target="Pick"> + </arc> + <arc id="a16" source="Pick" target="PickSafeRef"> + </arc> + <arc id="a17" source="PickSafeRef" target="Pick"> + </arc> + <arc id="a18" source="Pick" target="Picking"> + </arc> + <arc id="a19" source="Picking" target="PickingFail"> + </arc> + <arc id="a20" source="Picking" target="PickingSuccess"> + </arc> + <arc id="a21" source="Picking" target="PickingAbort"> + </arc> + <arc id="a22" source="PickingFail" target="PickOutput"> + </arc> + <arc id="a23" source="PickingSuccess" target="PickOutput"> + </arc> + <arc id="a24" source="PickingAbort" target="PickOutput"> + </arc> + <arc id="a24n1" source="PickingAbort" target="PickUnsafeRef"> + </arc> + <arc id="a24n2" source="PickUnsafeRef" target="PickingAbort"> + </arc> + </page> + + <page id="PlaceService"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>placeService</serviceName> + </toolspecific> + + <place id="PlaceInput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + </toolspecific> + <name> + <text>PlaceInput</text> + </name> + </place> + <place id="Placing"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + </toolspecific> + <name> + <text>Placing</text> + </name> + </place> + <place id="PlaceOutput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + </toolspecific> + <name> + <text>PlaceOutput</text> + </name> + </place> + + <transition id="Place"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>Place</text> + </name> + </transition> + <transition id="PlacingFail"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(PlaceFail)</inputsignalclause> + </toolspecific> + <name> + <text>PlacingFail</text> + </name> + </transition> + <transition id="PlacingSuccess"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(PlaceSuccess)</inputsignalclause> + </toolspecific> + <name> + <text>PlacingSuccess</text> + </name> + </transition> + <transition id="PlacingAbort"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>PlaceingAbort</text> + </name> + </transition> + <referencePlace id="PlaceSafeRef" ref="Safe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + </toolspecific> + <name> + <text>PlaceSafeRef</text> + </name> + </referencePlace> + <referencePlace id="PlaceUnsafeRef" ref="Unsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + </toolspecific> + <name> + <text>PlaceUnsafeRef</text> + </name> + </referencePlace> + <arc id="a25" source="PlaceInput" target="Place"> + </arc> + <arc id="a26" source="Place" target="PlaceSafeRef"> + </arc> + <arc id="a27" source="PlaceSafeRef" target="Place"> + </arc> + <arc id="a28" source="Place" target="Placing"> + </arc> + <arc id="a29" source="Placing" target="PlacingFail"> + </arc> + <arc id="a30" source="Placing" target="PlacingSuccess"> + </arc> + <arc id="a31" source="Placing" target="PlacingAbort"> + </arc> + <arc id="a32" source="PlacingFail" target="PlaceOutput"> + </arc> + <arc id="a33" source="PlacingSuccess" target="PlaceOutput"> + </arc> + <arc id="a34" source="PlacingAbort" target="PlaceOutput"> + </arc> + <arc id="a34n1" source="PlacingAbort" target="PlaceUnsafeRef"> + </arc> + <arc id="a34n2" source="PlaceUnsafeRef" target="PlacingAbort"> + </arc> + </page> + + <page id="SafetyModel"> + <place id="Unsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + <balloonMarking> + <tokens> + <token>{ "color":"NONE","name":"NONE","pickSuccess":"false","placeSuccess":"false", + "humanDetected":"false","sensorData":"NONE","trace":"-safety", "locked" : "true" } + </token> + </tokens> + </balloonMarking> + </toolspecific> + <initialMarking> + <text>1</text> + </initialMarking> + <name> + <text>Unsafe</text> + </name> + </place> + <place id="Safe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + </toolspecific> + <name> + <text>Safe</text> + </name> + </place> + <place id="SensorCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + </toolspecific> + <name> + <text>SensorCall</text> + </name> + </place> + <place id="SensorResponse"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + </toolspecific> + <name> + <text>SensorResponse</text> + </name> + </place> + + <transition id="UnsafeToSensorCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>UnsafeToSensorCall</text> + </name> + </transition> + <transition id="SafeToUnsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(Stop)</inputsignalclause> + </toolspecific> + <name> + <text>SafeToUnsafe</text> + </name> + </transition> + <transition id="TransitionSafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>TransitionSafe</text> + </name> + </transition> + <transition id="TransitionUnsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>TransitionUnsafe</text> + </name> + </transition> + <transition id="SafeToSensorCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>SafeToSensorCall</text> + </name> + </transition> + + <arc id="a49" source="Unsafe" target="UnsafeToSensorCall"> + </arc> + <arc id="a50" source="UnsafeToSensorCall" target="SensorCall"> + </arc> + <arc id="a51" source="Safe" target="SafeToUnsafe"> + </arc> + <arc id="a52" source="SafeToUnsafe" target="Unsafe"> + </arc> + <arc id="a53" source="SensorResponse" target="TransitionUnsafe"> + </arc> + <arc id="a54" source="TransitionUnsafe" target="Unsafe"> + </arc> + <arc id="a55" source="Safe" target="SafeToSensorCall"> + </arc> + <arc id="a56" source="SafeToSensorCall" target="SensorCall"> + </arc> + <arc id="a57" source="SensorResponse" target="TransitionSafe"> + </arc> + <arc id="a58" source="TransitionSafe" target="Safe"> + </arc> + </page> + </page> + + <transition id="SensorServiceCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>sensorService</serviceName> + <serverInput>SensorIn</serverInput> + <serverOutput>SensorOut</serverOutput> + <serverCapacity>1</serverCapacity> + <channels> + <channel> + <cid>c9</cid> + <request>SensorCall</request> + <response>SensorResponse</response> + </channel> + </channels> + </toolspecific> + <name> + <text>SensorServiceCall</text> + </name> + </transition> + + <page id="SensorPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + + <page id="SensorService"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>sensorService</serviceName> + </toolspecific> + + <place id="SensorIn"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Sensorics</node> + <subnet>SensorService</subnet> + </toolspecific> + <name> + <text>SensorIn</text> + </name> + </place> + <place id="SensorInter"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Sensorics</node> + <subnet>SensorService</subnet> + </toolspecific> + <name> + <text>SensorInter</text> + </name> + </place> + <place id="SensorOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Sensorics</node> + <subnet>SensorService</subnet> + </toolspecific> + <name> + <text>SensorOut</text> + </name> + </place> + <transition id="GetSensorData"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Sensorics</node> + <subnet>SensorService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(Sensor)</inputsignalclause> + </toolspecific> + <name> + <text>GetSensorData</text> + </name> + </transition> + <transition id="ProcessSensorData"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Sensorics</node> + <subnet>SensorService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>ProcessSensorData</text> + </name> + </transition> + <arc id="a59" source="SensorIn" target="GetSensorData"> + </arc> + <arc id="a60" source="GetSensorData" target="SensorInter"> + </arc> + <arc id="a61" source="SensorInter" target="ProcessSensorData"> + </arc> + <arc id="a62" source="ProcessSensorData" target="SensorOut"> + </arc> + </page> + </page> + </page> + </net> +</pnml> diff --git a/models/task-2/model-one-robot.pnml b/models/task-2/model-one-robot.pnml new file mode 100644 index 0000000..2a84101 --- /dev/null +++ b/models/task-2/model-one-robot.pnml @@ -0,0 +1,1098 @@ +<?xml version="1.0" encoding="UTF-8"?> +<pnml xmlns="http://www.pnml.org/version-2009/grammar/pnml"> + <net id="FullModel" type="http://www.pnml.org/version-2009/grammar/ptnet"> + <name> + <text>FullModel</text> + </name> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <inputsignals> + <inputsignal> + <inputsignalID>Red</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>Blue</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>Green</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>PickSuccess</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>PlaceSuccess</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>PickFail</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>PlaceFail</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>Stop</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>Sensor</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + </inputsignals> + </toolspecific> + <page id="top"> + <page id="SelectorPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + <place id="ObjectPoolRed"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorRed</subnet> + <balloonMarking> + <tokens> + <token>{"color" : "green", "name" : "green1", "pickSuccess" : "false", "placeSuccess" : "false", + "humanDetected" : "false", "sensorData" : "", "trace" : "", "locked" : "false" } </token> + </tokens> + </balloonMarking> + </toolspecific> + <initialMarking> + <text>1</text> + </initialMarking> + <name> + <text>ObjectPoolRed</text> + </name> + </place> + <place id="ObjectPoolBlue"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorBlue</subnet> + <balloonMarking> + <tokens> + <token>{"color" : "blue", "name" : "blue1", "pickSuccess" : "false", "placeSuccess" : "false", + "humanDetected" : "false", "sensorData" : "", "trace" : "", "locked" : "false" } </token> + </tokens> + </balloonMarking> + </toolspecific> + <initialMarking> + <text>1</text> + </initialMarking> + <name> + <text>ObjectPoolBlue</text> + </name> + </place> + <place id="ObjectPoolGreen"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorGreen</subnet> + <balloonMarking> + <tokens> + <token>{"color" : "red", "name" : "red1", "pickSuccess" : "false", "placeSuccess" : "false", + "humanDetected" : "false", "sensorData" : "", "trace" : "", "locked" : "false" } </token> + </tokens> + </balloonMarking> + </toolspecific> + <initialMarking> + <text>1</text> + </initialMarking> + <name> + <text>ObjectPoolGreen</text> + </name> + </place> + + <transition id="SortRed"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorRed</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(Red)</inputsignalclause> + </toolspecific> + <name> + <text>SortRed</text> + </name> + </transition> + <transition id="SortBlue"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorBlue</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(Blue)</inputsignalclause> + </toolspecific> + <name> + <text>SortBlue</text> + </name> + </transition> + <transition id="SortGreen"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorGreen</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(Green)</inputsignalclause> + </toolspecific> + <name> + <text>SortGreen</text> + </name> + </transition> + + <place id="RedOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorRed</subnet> + </toolspecific> + <name> + <text>RedOut</text> + </name> + </place> + <place id="BlueOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorBlue</subnet> + </toolspecific> + <name> + <text>BlueOut</text> + </name> + </place> + <place id="GreenOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorGreen</subnet> + </toolspecific> + <name> + <text>GreenOut</text> + </name> + </place> + + <arc id="a1" source="SortRed" target="RedOut"> + </arc> + <arc id="a2" source="SortBlue" target="BlueOut"> + </arc> + <arc id="a3" source="SortGreen" target="GreenOut"> + </arc> + <arc id="a4" source="ObjectPoolRed" target="SortRed"> + </arc> + <arc id="a5" source="ObjectPoolBlue" target="SortBlue"> + </arc> + <arc id="a6" source="ObjectPoolGreen" target="SortGreen"> + </arc> + </page> + + <transition id="LeftCellTopic"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>topicTransitionType</type> + <topicName>LeftCellTopic</topicName> + <publishers> + <publisher> + <id>RedOut</id> + <limit>10</limit> + </publisher> + <publisher> + <id>BlueOut</id> + <limit>10</limit> + </publisher> + </publishers> + <subscribers> + <subscriber> + <id>L-AwaitingControl</id> + <limit>10</limit> + </subscriber> + </subscribers> + </toolspecific> + <name> + <text>LeftCellTopic</text> + </name> + </transition> + <transition id="RightCellTopic"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>topicTransitionType</type> + <topicName>RightCellTopic</topicName> + <publishers> + <publisher> + <id>GreenOut</id> + <limit>10</limit> + </publisher> + </publishers> + <subscribers> + <subscriber> + <id>R-AwaitingControl</id> + <limit>10</limit> + </subscriber> + </subscribers> + </toolspecific> + <name> + <text>RightCellTopic</text> + </name> + </transition> + + <transition id="UITopic"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>topicTransitionType</type> + <topicName>UITopic</topicName> + <publishers> + <publisher> + <id>L-Done</id> + <limit>10</limit> + </publisher> + <publisher> + <id>R-Done</id> + <limit>10</limit> + </publisher> + </publishers> + <subscribers> + <subscriber> + <id>FeedbackIn</id> + <limit>10</limit> + </subscriber> + </subscribers> + </toolspecific> + <name> + <text>UITopic</text> + </name> + </transition> + + <page id="LeftControllerPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + + <place id="L-AwaitingControl"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>LeftController</node> + <subnet>LC1</subnet> + </toolspecific> + <name> + <text>L-AwaitingControl</text> + </name> + </place> + <place id="L-Ready"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>LeftController</node> + <subnet>LC1</subnet> + </toolspecific> + <name> + <text>L-Ready</text> + </name> + </place> + <place id="L-ObjectPicked"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>LeftController</node> + <subnet>LC1</subnet> + </toolspecific> + <name> + <text>L-ObjectPicked</text> + </name> + </place> + <place id="L-ObjectPlaced"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>LeftController</node> + <subnet>LC1</subnet> + </toolspecific> + <name> + <text>L-ObjectPlaced</text> + </name> + </place> + <place id="L-Done"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>LeftController</node> + <subnet>LC1</subnet> + </toolspecific> + <name> + <text>L-Done</text> + </name> + </place> + </page> + + <page id="RightControllerPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + + <place id="R-AwaitingControl"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>RightController</node> + <subnet>RC1</subnet> + </toolspecific> + <name> + <text>R-AwaitingControl</text> + </name> + </place> + <place id="R-Ready"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>RightController</node> + <subnet>RC1</subnet> + </toolspecific> + <name> + <text>R-Ready</text> + </name> + </place> + <place id="R-ObjectPicked"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>RightController</node> + <subnet>RC1</subnet> + </toolspecific> + <name> + <text>R-ObjectPicked</text> + </name> + </place> + <place id="R-ObjectPlaced"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>RightController</node> + <subnet>RC1</subnet> + </toolspecific> + <name> + <text>R-ObjectPlaced</text> + </name> + </place> + <place id="R-Done"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>RightController</node> + <subnet>RC1</subnet> + </toolspecific> + <name> + <text>R-Done</text> + </name> + </place> + </page> + + <page id="FeedbackPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + <place id="FeedbackIn"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Feedback</node> + <subnet>Feedback</subnet> + </toolspecific> + <name> + <text>FeedbackIn</text> + </name> + </place> + + <transition id="ShowFeedback"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Feedback</node> + <subnet>Feedback</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>ShowFeedback</text> + </name> + </transition> + + <place id="FeedbackDone"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Feedback</node> + <subnet>Feedback</subnet> + </toolspecific> + <name> + <text>FeedbackDone</text> + </name> + </place> + + <arc id="a7" source="FeedbackIn" target="ShowFeedback"> + </arc> + <arc id="a8" source="ShowFeedback" target="FeedbackDone"> + </arc> + </page> + + <page id="SynchronizerPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + <page id="GetControlService"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>getControlService</serviceName> + </toolspecific> + + <place id="GetControlIn"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>GetControl</subnet> + </toolspecific> + <name> + <text>GetControlIn</text> + </name> + </place> + <place id="GetControlOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>GetControl</subnet> + </toolspecific> + <name> + <text>GetControlOut</text> + </name> + </place> + <referencePlace id="GetSharedRef" ref="GetShared"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>GetControl</subnet> + </toolspecific> + <name> + <text>GetSharedRef</text> + </name> + </referencePlace> + <transition id="Get"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>GetControl</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>Get</text> + </name> + </transition> + <arc id="a9" source="GetControlIn" target="Get"> + </arc> + <arc id="a10" source="Get" target="GetControlOut"> + </arc> + <arc id="a11" source="GetSharedRef" target="Get"> + </arc> + </page> + <page id="EndControlService"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>endControlService</serviceName> + </toolspecific> + + <place id="EndControlIn"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>EndControl</subnet> + </toolspecific> + <name> + <text>EndControlIn</text> + </name> + </place> + <place id="EndControlOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>EndControl</subnet> + </toolspecific> + <name> + <text>EndControlOut</text> + </name> + </place> + <referencePlace id="GetEndSharedRef" ref="GetShared"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>EndControl</subnet> + </toolspecific> + <name> + <text>GetEndSharedRef</text> + </name> + </referencePlace> + <transition id="End"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>EndControl</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>End</text> + </name> + </transition> + <arc id="a12" source="EndControlIn" target="End"> + </arc> + <arc id="a13" source="End" target="EndControlOut"> + </arc> + <arc id="a13b" source="End" target="GetEndSharedRef"> + </arc> + </page> + <page id="SharedSpacePage"> + <place id="GetShared"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>SharedSync</subnet> + <balloonMarking> + <tokens> + <token>{ "color":"NONE","name":"NONE","pickSuccess":"false","placeSuccess":"false", + "humanDetected":"false","sensorData":"NONE","trace":"NONE", "locked" : "true" } + </token> + </tokens> + </balloonMarking> + </toolspecific> + <initialMarking> + <text>1</text> + </initialMarking> + <name> + <text>GetShared</text> + </name> + </place> + </page> + </page> + + <transition id="GetControlServiceCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>getControlService</serviceName> + <serverInput>GetControlIn</serverInput> + <serverOutput>GetControlOut</serverOutput> + <serverCapacity>2</serverCapacity> + <channels> + <channel> + <cid>c1</cid> + <request>L-AwaitingControl</request> + <response>L-Ready</response> + </channel> + <channel> + <cid>c2</cid> + <request>R-AwaitingControl</request> + <response>R-Ready</response> + </channel> + </channels> + </toolspecific> + <name> + <text>GetControlServiceCall</text> + </name> + </transition> + <transition id="EndControlServiceCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>endControlService</serviceName> + <serverInput>EndControlIn</serverInput> + <serverOutput>EndControlOut</serverOutput> + <serverCapacity>2</serverCapacity> + <channels> + <channel> + <cid>c3</cid> + <request>L-ObjectPlaced</request> + <response>L-Done</response> + </channel> + <channel> + <cid>c4</cid> + <request>R-ObjectPlaced</request> + <response>R-Done</response> + </channel> + </channels> + </toolspecific> + <name> + <text>EndControlServiceCall</text> + </name> + </transition> + + <transition id="PickServiceCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>pickService</serviceName> + <serverInput>PickInput</serverInput> + <serverOutput>PickOutput</serverOutput> + <serverCapacity>2</serverCapacity> + <channels> + <channel> + <cid>c5</cid> + <request>L-Ready</request> + <response>L-ObjectPicked</response> + </channel> + <channel> + <cid>c6</cid> + <request>R-Ready</request> + <response>R-ObjectPicked</response> + </channel> + </channels> + </toolspecific> + <name> + <text>PickServiceCall</text> + </name> + </transition> + + <transition id="PlaceServiceCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>placeService</serviceName> + <serverInput>PlaceInput</serverInput> + <serverOutput>PlaceOutput</serverOutput> + <serverCapacity>2</serverCapacity> + <channels> + <channel> + <cid>c7</cid> + <request>L-ObjectPicked</request> + <response>L-ObjectPlaced</response> + </channel> + <channel> + <cid>c8</cid> + <request>R-ObjectPicked</request> + <response>R-ObjectPlaced</response> + </channel> + </channels> + </toolspecific> + <name> + <text>PlaceServiceCall</text> + </name> + </transition> + + <page id="ExecutorPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + + <page id="PickService"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>pickService</serviceName> + </toolspecific> + + <place id="PickInput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + </toolspecific> + <name> + <text>PickInput</text> + </name> + </place> + <place id="Picking"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + </toolspecific> + <name> + <text>Picking</text> + </name> + </place> + <place id="PickOutput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + </toolspecific> + <name> + <text>PickOutput</text> + </name> + </place> + + <transition id="Pick"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>Pick</text> + </name> + </transition> + <transition id="PickingFail"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(PickFail)</inputsignalclause> + </toolspecific> + <name> + <text>PickingFail</text> + </name> + </transition> + <transition id="PickingSuccess"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(PickSuccess)</inputsignalclause> + </toolspecific> + <name> + <text>PickingSuccess</text> + </name> + </transition> + <transition id="PickingAbort"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>PickingAbort</text> + </name> + </transition> + <referencePlace id="PickSafeRef" ref="Safe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + </toolspecific> + <name> + <text>PickSafeRef</text> + </name> + </referencePlace> + <referencePlace id="PickUnsafeRef" ref="Unsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + </toolspecific> + <name> + <text>PickUnsafeRef</text> + </name> + </referencePlace> + <arc id="a15" source="PickInput" target="Pick"> + </arc> + <arc id="a16" source="Pick" target="PickSafeRef"> + </arc> + <arc id="a17" source="PickSafeRef" target="Pick"> + </arc> + <arc id="a18" source="Pick" target="Picking"> + </arc> + <arc id="a19" source="Picking" target="PickingFail"> + </arc> + <arc id="a20" source="Picking" target="PickingSuccess"> + </arc> + <arc id="a21" source="Picking" target="PickingAbort"> + </arc> + <arc id="a22" source="PickingFail" target="PickOutput"> + </arc> + <arc id="a23" source="PickingSuccess" target="PickOutput"> + </arc> + <arc id="a24" source="PickingAbort" target="PickOutput"> + </arc> + <arc id="a24n1" source="PickingAbort" target="PickUnsafeRef"> + </arc> + <arc id="a24n2" source="PickUnsafeRef" target="PickingAbort"> + </arc> + </page> + + <page id="PlaceService"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>placeService</serviceName> + </toolspecific> + + <place id="PlaceInput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + </toolspecific> + <name> + <text>PlaceInput</text> + </name> + </place> + <place id="Placing"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + </toolspecific> + <name> + <text>Placing</text> + </name> + </place> + <place id="PlaceOutput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + </toolspecific> + <name> + <text>PlaceOutput</text> + </name> + </place> + + <transition id="Place"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>Place</text> + </name> + </transition> + <transition id="PlacingFail"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(PlaceFail)</inputsignalclause> + </toolspecific> + <name> + <text>PlacingFail</text> + </name> + </transition> + <transition id="PlacingSuccess"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(PlaceSuccess)</inputsignalclause> + </toolspecific> + <name> + <text>PlacingSuccess</text> + </name> + </transition> + <transition id="PlacingAbort"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>PlaceingAbort</text> + </name> + </transition> + <referencePlace id="PlaceSafeRef" ref="Safe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + </toolspecific> + <name> + <text>PlaceSafeRef</text> + </name> + </referencePlace> + <referencePlace id="PlaceUnsafeRef" ref="Unsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + </toolspecific> + <name> + <text>PlaceUnsafeRef</text> + </name> + </referencePlace> + <arc id="a25" source="PlaceInput" target="Place"> + </arc> + <arc id="a26" source="Place" target="PlaceSafeRef"> + </arc> + <arc id="a27" source="PlaceSafeRef" target="Place"> + </arc> + <arc id="a28" source="Place" target="Placing"> + </arc> + <arc id="a29" source="Placing" target="PlacingFail"> + </arc> + <arc id="a30" source="Placing" target="PlacingSuccess"> + </arc> + <arc id="a31" source="Placing" target="PlacingAbort"> + </arc> + <arc id="a32" source="PlacingFail" target="PlaceOutput"> + </arc> + <arc id="a33" source="PlacingSuccess" target="PlaceOutput"> + </arc> + <arc id="a34" source="PlacingAbort" target="PlaceOutput"> + </arc> + <arc id="a34n1" source="PlacingAbort" target="PlaceUnsafeRef"> + </arc> + <arc id="a34n2" source="PlaceUnsafeRef" target="PlacingAbort"> + </arc> + </page> + + <page id="SafetyModel"> + <place id="Unsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + <balloonMarking> + <tokens> + <token>{ "color":"NONE","name":"NONE","pickSuccess":"false","placeSuccess":"false", + "humanDetected":"false","sensorData":"NONE","trace":"-safety", "locked" : "true" } + </token> + </tokens> + </balloonMarking> + </toolspecific> + <initialMarking> + <text>1</text> + </initialMarking> + <name> + <text>Unsafe</text> + </name> + </place> + <place id="Safe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + </toolspecific> + <name> + <text>Safe</text> + </name> + </place> + <place id="SensorCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + </toolspecific> + <name> + <text>SensorCall</text> + </name> + </place> + <place id="SensorResponse"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + </toolspecific> + <name> + <text>SensorResponse</text> + </name> + </place> + + <transition id="UnsafeToSensorCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>UnsafeToSensorCall</text> + </name> + </transition> + <transition id="SafeToUnsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(Stop)</inputsignalclause> + </toolspecific> + <name> + <text>SafeToUnsafe</text> + </name> + </transition> + <transition id="TransitionSafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>TransitionSafe</text> + </name> + </transition> + <transition id="TransitionUnsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>TransitionUnsafe</text> + </name> + </transition> + <transition id="SafeToSensorCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>SafeToSensorCall</text> + </name> + </transition> + + <arc id="a49" source="Unsafe" target="UnsafeToSensorCall"> + </arc> + <arc id="a50" source="UnsafeToSensorCall" target="SensorCall"> + </arc> + <arc id="a51" source="Safe" target="SafeToUnsafe"> + </arc> + <arc id="a52" source="SafeToUnsafe" target="Unsafe"> + </arc> + <arc id="a53" source="SensorResponse" target="TransitionUnsafe"> + </arc> + <arc id="a54" source="TransitionUnsafe" target="Unsafe"> + </arc> + <arc id="a55" source="Safe" target="SafeToSensorCall"> + </arc> + <arc id="a56" source="SafeToSensorCall" target="SensorCall"> + </arc> + <arc id="a57" source="SensorResponse" target="TransitionSafe"> + </arc> + <arc id="a58" source="TransitionSafe" target="Safe"> + </arc> + </page> + </page> + + <transition id="SensorServiceCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>sensorService</serviceName> + <serverInput>SensorIn</serverInput> + <serverOutput>SensorOut</serverOutput> + <serverCapacity>1</serverCapacity> + <channels> + <channel> + <cid>c9</cid> + <request>SensorCall</request> + <response>SensorResponse</response> + </channel> + </channels> + </toolspecific> + <name> + <text>SensorServiceCall</text> + </name> + </transition> + + <page id="SensorPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + + <page id="SensorService"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>sensorService</serviceName> + </toolspecific> + + <place id="SensorIn"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Sensorics</node> + <subnet>SensorService</subnet> + </toolspecific> + <name> + <text>SensorIn</text> + </name> + </place> + <place id="SensorInter"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Sensorics</node> + <subnet>SensorService</subnet> + </toolspecific> + <name> + <text>SensorInter</text> + </name> + </place> + <place id="SensorOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Sensorics</node> + <subnet>SensorService</subnet> + </toolspecific> + <name> + <text>SensorOut</text> + </name> + </place> + <transition id="GetSensorData"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Sensorics</node> + <subnet>SensorService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(Sensor)</inputsignalclause> + </toolspecific> + <name> + <text>GetSensorData</text> + </name> + </transition> + <transition id="ProcessSensorData"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Sensorics</node> + <subnet>SensorService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>ProcessSensorData</text> + </name> + </transition> + <arc id="a59" source="SensorIn" target="GetSensorData"> + </arc> + <arc id="a60" source="GetSensorData" target="SensorInter"> + </arc> + <arc id="a61" source="SensorInter" target="ProcessSensorData"> + </arc> + <arc id="a62" source="ProcessSensorData" target="SensorOut"> + </arc> + </page> + </page> + </page> + </net> +</pnml> diff --git a/models/task-2/model-without-sync.pnml b/models/task-2/model-without-sync.pnml new file mode 100644 index 0000000..2a84101 --- /dev/null +++ b/models/task-2/model-without-sync.pnml @@ -0,0 +1,1098 @@ +<?xml version="1.0" encoding="UTF-8"?> +<pnml xmlns="http://www.pnml.org/version-2009/grammar/pnml"> + <net id="FullModel" type="http://www.pnml.org/version-2009/grammar/ptnet"> + <name> + <text>FullModel</text> + </name> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <inputsignals> + <inputsignal> + <inputsignalID>Red</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>Blue</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>Green</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>PickSuccess</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>PlaceSuccess</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>PickFail</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>PlaceFail</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>Stop</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>Sensor</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + </inputsignals> + </toolspecific> + <page id="top"> + <page id="SelectorPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + <place id="ObjectPoolRed"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorRed</subnet> + <balloonMarking> + <tokens> + <token>{"color" : "green", "name" : "green1", "pickSuccess" : "false", "placeSuccess" : "false", + "humanDetected" : "false", "sensorData" : "", "trace" : "", "locked" : "false" } </token> + </tokens> + </balloonMarking> + </toolspecific> + <initialMarking> + <text>1</text> + </initialMarking> + <name> + <text>ObjectPoolRed</text> + </name> + </place> + <place id="ObjectPoolBlue"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorBlue</subnet> + <balloonMarking> + <tokens> + <token>{"color" : "blue", "name" : "blue1", "pickSuccess" : "false", "placeSuccess" : "false", + "humanDetected" : "false", "sensorData" : "", "trace" : "", "locked" : "false" } </token> + </tokens> + </balloonMarking> + </toolspecific> + <initialMarking> + <text>1</text> + </initialMarking> + <name> + <text>ObjectPoolBlue</text> + </name> + </place> + <place id="ObjectPoolGreen"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorGreen</subnet> + <balloonMarking> + <tokens> + <token>{"color" : "red", "name" : "red1", "pickSuccess" : "false", "placeSuccess" : "false", + "humanDetected" : "false", "sensorData" : "", "trace" : "", "locked" : "false" } </token> + </tokens> + </balloonMarking> + </toolspecific> + <initialMarking> + <text>1</text> + </initialMarking> + <name> + <text>ObjectPoolGreen</text> + </name> + </place> + + <transition id="SortRed"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorRed</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(Red)</inputsignalclause> + </toolspecific> + <name> + <text>SortRed</text> + </name> + </transition> + <transition id="SortBlue"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorBlue</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(Blue)</inputsignalclause> + </toolspecific> + <name> + <text>SortBlue</text> + </name> + </transition> + <transition id="SortGreen"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorGreen</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(Green)</inputsignalclause> + </toolspecific> + <name> + <text>SortGreen</text> + </name> + </transition> + + <place id="RedOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorRed</subnet> + </toolspecific> + <name> + <text>RedOut</text> + </name> + </place> + <place id="BlueOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorBlue</subnet> + </toolspecific> + <name> + <text>BlueOut</text> + </name> + </place> + <place id="GreenOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>selector</node> + <subnet>selectorGreen</subnet> + </toolspecific> + <name> + <text>GreenOut</text> + </name> + </place> + + <arc id="a1" source="SortRed" target="RedOut"> + </arc> + <arc id="a2" source="SortBlue" target="BlueOut"> + </arc> + <arc id="a3" source="SortGreen" target="GreenOut"> + </arc> + <arc id="a4" source="ObjectPoolRed" target="SortRed"> + </arc> + <arc id="a5" source="ObjectPoolBlue" target="SortBlue"> + </arc> + <arc id="a6" source="ObjectPoolGreen" target="SortGreen"> + </arc> + </page> + + <transition id="LeftCellTopic"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>topicTransitionType</type> + <topicName>LeftCellTopic</topicName> + <publishers> + <publisher> + <id>RedOut</id> + <limit>10</limit> + </publisher> + <publisher> + <id>BlueOut</id> + <limit>10</limit> + </publisher> + </publishers> + <subscribers> + <subscriber> + <id>L-AwaitingControl</id> + <limit>10</limit> + </subscriber> + </subscribers> + </toolspecific> + <name> + <text>LeftCellTopic</text> + </name> + </transition> + <transition id="RightCellTopic"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>topicTransitionType</type> + <topicName>RightCellTopic</topicName> + <publishers> + <publisher> + <id>GreenOut</id> + <limit>10</limit> + </publisher> + </publishers> + <subscribers> + <subscriber> + <id>R-AwaitingControl</id> + <limit>10</limit> + </subscriber> + </subscribers> + </toolspecific> + <name> + <text>RightCellTopic</text> + </name> + </transition> + + <transition id="UITopic"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>topicTransitionType</type> + <topicName>UITopic</topicName> + <publishers> + <publisher> + <id>L-Done</id> + <limit>10</limit> + </publisher> + <publisher> + <id>R-Done</id> + <limit>10</limit> + </publisher> + </publishers> + <subscribers> + <subscriber> + <id>FeedbackIn</id> + <limit>10</limit> + </subscriber> + </subscribers> + </toolspecific> + <name> + <text>UITopic</text> + </name> + </transition> + + <page id="LeftControllerPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + + <place id="L-AwaitingControl"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>LeftController</node> + <subnet>LC1</subnet> + </toolspecific> + <name> + <text>L-AwaitingControl</text> + </name> + </place> + <place id="L-Ready"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>LeftController</node> + <subnet>LC1</subnet> + </toolspecific> + <name> + <text>L-Ready</text> + </name> + </place> + <place id="L-ObjectPicked"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>LeftController</node> + <subnet>LC1</subnet> + </toolspecific> + <name> + <text>L-ObjectPicked</text> + </name> + </place> + <place id="L-ObjectPlaced"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>LeftController</node> + <subnet>LC1</subnet> + </toolspecific> + <name> + <text>L-ObjectPlaced</text> + </name> + </place> + <place id="L-Done"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>LeftController</node> + <subnet>LC1</subnet> + </toolspecific> + <name> + <text>L-Done</text> + </name> + </place> + </page> + + <page id="RightControllerPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + + <place id="R-AwaitingControl"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>RightController</node> + <subnet>RC1</subnet> + </toolspecific> + <name> + <text>R-AwaitingControl</text> + </name> + </place> + <place id="R-Ready"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>RightController</node> + <subnet>RC1</subnet> + </toolspecific> + <name> + <text>R-Ready</text> + </name> + </place> + <place id="R-ObjectPicked"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>RightController</node> + <subnet>RC1</subnet> + </toolspecific> + <name> + <text>R-ObjectPicked</text> + </name> + </place> + <place id="R-ObjectPlaced"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>RightController</node> + <subnet>RC1</subnet> + </toolspecific> + <name> + <text>R-ObjectPlaced</text> + </name> + </place> + <place id="R-Done"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>RightController</node> + <subnet>RC1</subnet> + </toolspecific> + <name> + <text>R-Done</text> + </name> + </place> + </page> + + <page id="FeedbackPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + <place id="FeedbackIn"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Feedback</node> + <subnet>Feedback</subnet> + </toolspecific> + <name> + <text>FeedbackIn</text> + </name> + </place> + + <transition id="ShowFeedback"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Feedback</node> + <subnet>Feedback</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>ShowFeedback</text> + </name> + </transition> + + <place id="FeedbackDone"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Feedback</node> + <subnet>Feedback</subnet> + </toolspecific> + <name> + <text>FeedbackDone</text> + </name> + </place> + + <arc id="a7" source="FeedbackIn" target="ShowFeedback"> + </arc> + <arc id="a8" source="ShowFeedback" target="FeedbackDone"> + </arc> + </page> + + <page id="SynchronizerPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + <page id="GetControlService"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>getControlService</serviceName> + </toolspecific> + + <place id="GetControlIn"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>GetControl</subnet> + </toolspecific> + <name> + <text>GetControlIn</text> + </name> + </place> + <place id="GetControlOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>GetControl</subnet> + </toolspecific> + <name> + <text>GetControlOut</text> + </name> + </place> + <referencePlace id="GetSharedRef" ref="GetShared"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>GetControl</subnet> + </toolspecific> + <name> + <text>GetSharedRef</text> + </name> + </referencePlace> + <transition id="Get"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>GetControl</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>Get</text> + </name> + </transition> + <arc id="a9" source="GetControlIn" target="Get"> + </arc> + <arc id="a10" source="Get" target="GetControlOut"> + </arc> + <arc id="a11" source="GetSharedRef" target="Get"> + </arc> + </page> + <page id="EndControlService"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>endControlService</serviceName> + </toolspecific> + + <place id="EndControlIn"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>EndControl</subnet> + </toolspecific> + <name> + <text>EndControlIn</text> + </name> + </place> + <place id="EndControlOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>EndControl</subnet> + </toolspecific> + <name> + <text>EndControlOut</text> + </name> + </place> + <referencePlace id="GetEndSharedRef" ref="GetShared"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>EndControl</subnet> + </toolspecific> + <name> + <text>GetEndSharedRef</text> + </name> + </referencePlace> + <transition id="End"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>EndControl</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>End</text> + </name> + </transition> + <arc id="a12" source="EndControlIn" target="End"> + </arc> + <arc id="a13" source="End" target="EndControlOut"> + </arc> + <arc id="a13b" source="End" target="GetEndSharedRef"> + </arc> + </page> + <page id="SharedSpacePage"> + <place id="GetShared"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Synchronizer</node> + <subnet>SharedSync</subnet> + <balloonMarking> + <tokens> + <token>{ "color":"NONE","name":"NONE","pickSuccess":"false","placeSuccess":"false", + "humanDetected":"false","sensorData":"NONE","trace":"NONE", "locked" : "true" } + </token> + </tokens> + </balloonMarking> + </toolspecific> + <initialMarking> + <text>1</text> + </initialMarking> + <name> + <text>GetShared</text> + </name> + </place> + </page> + </page> + + <transition id="GetControlServiceCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>getControlService</serviceName> + <serverInput>GetControlIn</serverInput> + <serverOutput>GetControlOut</serverOutput> + <serverCapacity>2</serverCapacity> + <channels> + <channel> + <cid>c1</cid> + <request>L-AwaitingControl</request> + <response>L-Ready</response> + </channel> + <channel> + <cid>c2</cid> + <request>R-AwaitingControl</request> + <response>R-Ready</response> + </channel> + </channels> + </toolspecific> + <name> + <text>GetControlServiceCall</text> + </name> + </transition> + <transition id="EndControlServiceCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>endControlService</serviceName> + <serverInput>EndControlIn</serverInput> + <serverOutput>EndControlOut</serverOutput> + <serverCapacity>2</serverCapacity> + <channels> + <channel> + <cid>c3</cid> + <request>L-ObjectPlaced</request> + <response>L-Done</response> + </channel> + <channel> + <cid>c4</cid> + <request>R-ObjectPlaced</request> + <response>R-Done</response> + </channel> + </channels> + </toolspecific> + <name> + <text>EndControlServiceCall</text> + </name> + </transition> + + <transition id="PickServiceCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>pickService</serviceName> + <serverInput>PickInput</serverInput> + <serverOutput>PickOutput</serverOutput> + <serverCapacity>2</serverCapacity> + <channels> + <channel> + <cid>c5</cid> + <request>L-Ready</request> + <response>L-ObjectPicked</response> + </channel> + <channel> + <cid>c6</cid> + <request>R-Ready</request> + <response>R-ObjectPicked</response> + </channel> + </channels> + </toolspecific> + <name> + <text>PickServiceCall</text> + </name> + </transition> + + <transition id="PlaceServiceCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>placeService</serviceName> + <serverInput>PlaceInput</serverInput> + <serverOutput>PlaceOutput</serverOutput> + <serverCapacity>2</serverCapacity> + <channels> + <channel> + <cid>c7</cid> + <request>L-ObjectPicked</request> + <response>L-ObjectPlaced</response> + </channel> + <channel> + <cid>c8</cid> + <request>R-ObjectPicked</request> + <response>R-ObjectPlaced</response> + </channel> + </channels> + </toolspecific> + <name> + <text>PlaceServiceCall</text> + </name> + </transition> + + <page id="ExecutorPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + + <page id="PickService"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>pickService</serviceName> + </toolspecific> + + <place id="PickInput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + </toolspecific> + <name> + <text>PickInput</text> + </name> + </place> + <place id="Picking"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + </toolspecific> + <name> + <text>Picking</text> + </name> + </place> + <place id="PickOutput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + </toolspecific> + <name> + <text>PickOutput</text> + </name> + </place> + + <transition id="Pick"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>Pick</text> + </name> + </transition> + <transition id="PickingFail"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(PickFail)</inputsignalclause> + </toolspecific> + <name> + <text>PickingFail</text> + </name> + </transition> + <transition id="PickingSuccess"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(PickSuccess)</inputsignalclause> + </toolspecific> + <name> + <text>PickingSuccess</text> + </name> + </transition> + <transition id="PickingAbort"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>PickingAbort</text> + </name> + </transition> + <referencePlace id="PickSafeRef" ref="Safe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + </toolspecific> + <name> + <text>PickSafeRef</text> + </name> + </referencePlace> + <referencePlace id="PickUnsafeRef" ref="Unsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PickService</subnet> + </toolspecific> + <name> + <text>PickUnsafeRef</text> + </name> + </referencePlace> + <arc id="a15" source="PickInput" target="Pick"> + </arc> + <arc id="a16" source="Pick" target="PickSafeRef"> + </arc> + <arc id="a17" source="PickSafeRef" target="Pick"> + </arc> + <arc id="a18" source="Pick" target="Picking"> + </arc> + <arc id="a19" source="Picking" target="PickingFail"> + </arc> + <arc id="a20" source="Picking" target="PickingSuccess"> + </arc> + <arc id="a21" source="Picking" target="PickingAbort"> + </arc> + <arc id="a22" source="PickingFail" target="PickOutput"> + </arc> + <arc id="a23" source="PickingSuccess" target="PickOutput"> + </arc> + <arc id="a24" source="PickingAbort" target="PickOutput"> + </arc> + <arc id="a24n1" source="PickingAbort" target="PickUnsafeRef"> + </arc> + <arc id="a24n2" source="PickUnsafeRef" target="PickingAbort"> + </arc> + </page> + + <page id="PlaceService"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>placeService</serviceName> + </toolspecific> + + <place id="PlaceInput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + </toolspecific> + <name> + <text>PlaceInput</text> + </name> + </place> + <place id="Placing"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + </toolspecific> + <name> + <text>Placing</text> + </name> + </place> + <place id="PlaceOutput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + </toolspecific> + <name> + <text>PlaceOutput</text> + </name> + </place> + + <transition id="Place"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>Place</text> + </name> + </transition> + <transition id="PlacingFail"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(PlaceFail)</inputsignalclause> + </toolspecific> + <name> + <text>PlacingFail</text> + </name> + </transition> + <transition id="PlacingSuccess"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(PlaceSuccess)</inputsignalclause> + </toolspecific> + <name> + <text>PlacingSuccess</text> + </name> + </transition> + <transition id="PlacingAbort"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>PlaceingAbort</text> + </name> + </transition> + <referencePlace id="PlaceSafeRef" ref="Safe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + </toolspecific> + <name> + <text>PlaceSafeRef</text> + </name> + </referencePlace> + <referencePlace id="PlaceUnsafeRef" ref="Unsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>PlaceService</subnet> + </toolspecific> + <name> + <text>PlaceUnsafeRef</text> + </name> + </referencePlace> + <arc id="a25" source="PlaceInput" target="Place"> + </arc> + <arc id="a26" source="Place" target="PlaceSafeRef"> + </arc> + <arc id="a27" source="PlaceSafeRef" target="Place"> + </arc> + <arc id="a28" source="Place" target="Placing"> + </arc> + <arc id="a29" source="Placing" target="PlacingFail"> + </arc> + <arc id="a30" source="Placing" target="PlacingSuccess"> + </arc> + <arc id="a31" source="Placing" target="PlacingAbort"> + </arc> + <arc id="a32" source="PlacingFail" target="PlaceOutput"> + </arc> + <arc id="a33" source="PlacingSuccess" target="PlaceOutput"> + </arc> + <arc id="a34" source="PlacingAbort" target="PlaceOutput"> + </arc> + <arc id="a34n1" source="PlacingAbort" target="PlaceUnsafeRef"> + </arc> + <arc id="a34n2" source="PlaceUnsafeRef" target="PlacingAbort"> + </arc> + </page> + + <page id="SafetyModel"> + <place id="Unsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + <balloonMarking> + <tokens> + <token>{ "color":"NONE","name":"NONE","pickSuccess":"false","placeSuccess":"false", + "humanDetected":"false","sensorData":"NONE","trace":"-safety", "locked" : "true" } + </token> + </tokens> + </balloonMarking> + </toolspecific> + <initialMarking> + <text>1</text> + </initialMarking> + <name> + <text>Unsafe</text> + </name> + </place> + <place id="Safe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + </toolspecific> + <name> + <text>Safe</text> + </name> + </place> + <place id="SensorCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + </toolspecific> + <name> + <text>SensorCall</text> + </name> + </place> + <place id="SensorResponse"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + </toolspecific> + <name> + <text>SensorResponse</text> + </name> + </place> + + <transition id="UnsafeToSensorCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>UnsafeToSensorCall</text> + </name> + </transition> + <transition id="SafeToUnsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(Stop)</inputsignalclause> + </toolspecific> + <name> + <text>SafeToUnsafe</text> + </name> + </transition> + <transition id="TransitionSafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>TransitionSafe</text> + </name> + </transition> + <transition id="TransitionUnsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>TransitionUnsafe</text> + </name> + </transition> + <transition id="SafeToSensorCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Executor</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>SafeToSensorCall</text> + </name> + </transition> + + <arc id="a49" source="Unsafe" target="UnsafeToSensorCall"> + </arc> + <arc id="a50" source="UnsafeToSensorCall" target="SensorCall"> + </arc> + <arc id="a51" source="Safe" target="SafeToUnsafe"> + </arc> + <arc id="a52" source="SafeToUnsafe" target="Unsafe"> + </arc> + <arc id="a53" source="SensorResponse" target="TransitionUnsafe"> + </arc> + <arc id="a54" source="TransitionUnsafe" target="Unsafe"> + </arc> + <arc id="a55" source="Safe" target="SafeToSensorCall"> + </arc> + <arc id="a56" source="SafeToSensorCall" target="SensorCall"> + </arc> + <arc id="a57" source="SensorResponse" target="TransitionSafe"> + </arc> + <arc id="a58" source="TransitionSafe" target="Safe"> + </arc> + </page> + </page> + + <transition id="SensorServiceCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>sensorService</serviceName> + <serverInput>SensorIn</serverInput> + <serverOutput>SensorOut</serverOutput> + <serverCapacity>1</serverCapacity> + <channels> + <channel> + <cid>c9</cid> + <request>SensorCall</request> + <response>SensorResponse</response> + </channel> + </channels> + </toolspecific> + <name> + <text>SensorServiceCall</text> + </name> + </transition> + + <page id="SensorPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + + <page id="SensorService"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>sensorService</serviceName> + </toolspecific> + + <place id="SensorIn"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Sensorics</node> + <subnet>SensorService</subnet> + </toolspecific> + <name> + <text>SensorIn</text> + </name> + </place> + <place id="SensorInter"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Sensorics</node> + <subnet>SensorService</subnet> + </toolspecific> + <name> + <text>SensorInter</text> + </name> + </place> + <place id="SensorOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Sensorics</node> + <subnet>SensorService</subnet> + </toolspecific> + <name> + <text>SensorOut</text> + </name> + </place> + <transition id="GetSensorData"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Sensorics</node> + <subnet>SensorService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(Sensor)</inputsignalclause> + </toolspecific> + <name> + <text>GetSensorData</text> + </name> + </transition> + <transition id="ProcessSensorData"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>Sensorics</node> + <subnet>SensorService</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>ProcessSensorData</text> + </name> + </transition> + <arc id="a59" source="SensorIn" target="GetSensorData"> + </arc> + <arc id="a60" source="GetSensorData" target="SensorInter"> + </arc> + <arc id="a61" source="SensorInter" target="ProcessSensorData"> + </arc> + <arc id="a62" source="ProcessSensorData" target="SensorOut"> + </arc> + </page> + </page> + </page> + </net> +</pnml> -- GitLab