Переглянути джерело

Many cleanups to shift to the much simplified model

Yentl Van Tendeloo 8 роки тому
батько
коміт
6b5f486a84

+ 2 - 10
models/control_PW.mvc

@@ -16,19 +16,11 @@ SimpleClassDiagram Control_PW{
         name : String
     }
 
-    Class Positionable {
-    }
-
-    Class Boundary : Named, Positionable {}
-    Class Port : Named, Positionable {}
-    Class Transition : Named, Positionable {}
-    Class State : Named, Positionable {
+    Class Transition : Named {}
+    Class State : Named {
         initial : Boolean
     }
 
-    Association Has1 (Boundary, State) {}
-    Association Has2 (Boundary, Port) {}
-    Association Has3 (Boundary, Transition) {}
     Association PortTransition (Port, Transition) {}
     Association From (State, Transition) {}
     Association To (Transition, State) {}

+ 39 - 64
models/control_model.mvc

@@ -1,61 +1,44 @@
 Control_PW control_model_PW {
-    Boundary ctrl_powerwindow_dsl {
-        name = "ctrl_powerwindow_dsl"
-
-        Port p_cmdStop {
-            name = "cmdStop"
-        }
-        Port p_cmdUp {
-            name = "cmdUp"
-        }
-        Port p_cmdDown {
-            name = "cmdDown"
-        }
-        Port p_detectedObject {
-            name = "detectedObject"
-        }
-
-        State neutral {
-            name = "neutral"
-            initial = True
-        }
-        State movingDown {
-            name = "movingDown"
-            initial = False
-        }
-        State emergency {
-            name = "emergency"
-            initial = False
-        }
-        State movingUp {
-            name = "movingUp"
-            initial = False
-        }
+    State neutral {
+        name = "neutral"
+        initial = True
+    }
+    State movingDown {
+        name = "movingDown"
+        initial = False
+    }
+    State emergency {
+        name = "emergency"
+        initial = False
+    }
+    State movingUp {
+        name = "movingUp"
+        initial = False
+    }
 
-        Transition cmdStop1 {
-            name = "cmdStop"
-        }
-        Transition cmdDown1 {
-            name = "cmdDown"
-        }
-        Transition cmdUp1 {
-            name = "cmdUp"
-        }
-        Transition cmdStop2 {
-            name = "cmdStop"
-        }
-        Transition cmdDown2 {
-            name = "cmdDown"
-        }
-        Transition cmdUp2 {
-            name = "cmdUp"
-        }
-        Transition detectedObject {
-            name = "detectedObject"
-        }
-        Transition s_ {
-            name = ""
-        }
+    Transition cmdStop1 {
+        name = "cmdStop"
+    }
+    Transition cmdDown1 {
+        name = "cmdDown"
+    }
+    Transition cmdUp1 {
+        name = "cmdUp"
+    }
+    Transition cmdStop2 {
+        name = "cmdStop"
+    }
+    Transition cmdDown2 {
+        name = "cmdDown"
+    }
+    Transition cmdUp2 {
+        name = "cmdUp"
+    }
+    Transition detectedObject {
+        name = "detectedObject"
+    }
+    Transition s_ {
+        name = ""
     }
 
     From (movingDown, cmdStop1) {}
@@ -74,12 +57,4 @@ Control_PW control_model_PW {
     To (detectedObject, emergency) {}
     From (emergency, s_) {}
     To (s_, neutral) {}
-
-    PortTransition (p_detectedObject, detectedObject) {}
-    PortTransition (p_cmdDown, cmdDown1) {}
-    PortTransition (p_cmdDown, cmdDown2) {}
-    PortTransition (p_cmdUp, cmdUp1) {}
-    PortTransition (p_cmdUp, cmdUp2) {}
-    PortTransition (p_cmdStop, cmdStop1) {}
-    PortTransition (p_cmdStop, cmdStop2) {}
 }

+ 2 - 17
models/environment_PW.mvc

@@ -28,30 +28,15 @@ SimpleClassDiagrams Environment_PW{
         name : String
     }
 
-    Class Positionable {
-    }
-
-    Class Port : Named, Positionable {}
-    Class Boundary : Named, Positionable {}
-    Class Activity : Named, Positionable {
+    Class Activity : Named {
         duration : Natural
     }
-    Class CommunicationSequence : Activity {
-        actor : String
-    }
+    Class CommunicationSequence : Activity {}
     Class Parallel : Activity {}
     Class Sequence : Activity {}
     Class Alternative : Activity {}
     Class Event : Activity {}
 
     Association Contains (Activity, Activity) {}
-    Association HasActivity (Boundary, Activity) {
-        target_lower_cardinality = 1
-        target_upper_cardinality = 1
-    }
-    Association HasPort (Boundary, Port) {}
-    Association HasActivity (TopActivity, Activity) {}
-    Association HasEventSequence (CommunicationSequence, Event) {}
     Association Next (Activity, Activity) {}
-    Association PortEvent (Port, Event) {}
 }

+ 36 - 58
models/environment_model.mvc

@@ -1,61 +1,46 @@
 Environment_PW environment_model_PW {
-    Boundary DriverBlockWindow {
-        name = "DriverBlockWindow"
+    Parallel {
+        name = "s_"
+        duration = 0
 
-        Port p_lockOut {
-            name = "lockOut"
-        }
-        Port p_windowCommands {
-            name = "windowCommands"
-        }
-        Port p_stickHead {
-            name = "stickHead"
-        }
-
-        Parallel {
-            name = "s_"
+        {Contains} CommunicationSequence {
+            name = "driver"
+            actor = "driver"
             duration = 0
 
-            {Contains} CommunicationSequence {
-                name = "driver"
-                actor = "driver"
-                duration = 0
-
-                {Contains} Event cmdUpD {
-                    name = "cmdUpD"
-                    duration = 3
-                }
-                {Contains} Event cmdStopD {
-                    name = "cmdStopD"
-                    duration = 4
-                }
-                {Contains} Event cmdDownP {
-                    name = "cmdDown"
-                    duration = 3
-                }
-                {Contains} Event lockOut {
-                    name = "lockOut"
-                    duration = 1
-                }
+            {Contains} Event cmdUpD {
+                name = "cmdUpD"
+                duration = 3
+            }
+            {Contains} Event cmdStopD {
+                name = "cmdStopD"
+                duration = 4
+            }
+            {Contains} Event cmdDownP {
+                name = "cmdDown"
+                duration = 3
             }
+            {Contains} Event lockOut {
+                name = "lockOut"
+                duration = 1
+            }
+        }
 
-            {Contains} CommunicationSequence {
-                name = "passenger"
-                actor = "passenger"
-                duration = 0
+        {Contains} CommunicationSequence {
+            name = "passenger"
+            duration = 0
 
-                {Contains} Event cmdUp1 {
-                    name = "cmdUp"
-                    duration = 3
-                }
-                {Contains} Event stickHead {
-                    name = "stickHead"
-                    duration = 3
-                }
-                {Contains} Event cmdUp2 {
-                    name = "cmdUp"
-                    duration = 2
-                }
+            {Contains} Event cmdUp1 {
+                name = "cmdUp"
+                duration = 3
+            }
+            {Contains} Event stickHead {
+                name = "stickHead"
+                duration = 3
+            }
+            {Contains} Event cmdUp2 {
+                name = "cmdUp"
+                duration = 2
             }
         }
     }
@@ -66,11 +51,4 @@ Environment_PW environment_model_PW {
 
     Next (cmdUp1, stickHead) {}
     Next (stickHead, cmdUp2) {}
-
-    PortEvent (p_stickHead, stickHead) {}
-    PortEvent (p_windowCommands, cmdUpD) {}
-    PortEvent (p_windowCommands, cmdDownP) {}
-    PortEvent (p_windowCommands, cmdUp1) {}
-    PortEvent (p_windowCommands, cmdUp2) {}
-    PortEvent (p_lockOut, lockOut) {}
 }

+ 0 - 47
models/plant_PW.mvc

@@ -1,47 +0,0 @@
-include "primitives.alh"
-
-SimpleClassDiagrams Plant_PW{
-    SimpleAttribute String {
-        constraint = $
-            String function constraint(model : Element, name : String):
-                if (is_physical_string(model["model"][name])):
-                    return "OK"!
-                else:
-                    return "String has non-string value"!
-            $
-    }
-
-    Class Named {
-        name : String
-    }
-    Class Port {
-        name : String
-    }
-
-    Class Switch : Named {}
-    Class Boundary : Named {}
-    Class PowerWindow : Named{}
-    Class Sensor : Named {}
-
-    Class Movement : Switch {}
-    Class LockOut : Switch {}
-    Class Infrared : Sensor {}
-    Class ForceDetecting : Sensor {}
-
-    Class Rocker : Movement {}
-    Class PushPull : Movement {}
-
-    Class Side : PowerWindow{}
-    Class Roof : PowerWindow{}
-
-    Association ConnectSwitch (Port, Switch) {}
-    Association has1 (Boundary, Switch) {}
-    Association Controls (Movement, PowerWindow) {}
-    Association HasSwitch (PowerWindow, Switch) {}
-    Association Locks (LockOut, PowerWindow) {}
-    Association HasSensor (PowerWindow, Sensor) {}
-    Association Around (Boundary, PowerWindow) {}
-    Association Interface (Boundary, Port) {}
-    Association ConnectSensor (Port, Sensor) {}
-    Association has2 (Boundary, Sensor) {}
-}

+ 0 - 58
models/plant_model.mvc

@@ -1,58 +0,0 @@
-Plant_PW plant_model_PW {
-    Boundary plant_powerwindow_dsl{
-        name = "plant_powerwindow_dsl"
-        Port driverWindowCommands {
-            name = "driverWindowCommands"
-        }
-        Port lockCommands {
-            name = "lockCommands"
-        }
-        Port detectObject {
-            name = "detectObject"
-        }
-        Port controlPassengerWindowCommands {
-            name = "controlPassengerWindowCommands"
-        }
-        Port passengerWindowCommands {
-            name = "passengerWindowCommands"
-        }
-
-        Side driver {
-            name = "driver"
-
-            PushPull pushpull1 {
-                name = "pushpull1"
-            }
-            PushPull pushpull2 {
-                name = "pushpull2"
-            }
-            LockOut lockout {
-                name = "lockout"
-            }
-
-        }
-
-        Side passenger {
-            name = "passenger"
-
-            Rocker rocker {
-                name = "rocker"
-            }
-
-            Infrared IRSensor {
-                name = "IRSensor"
-            }
-        }
-    }
-
-    Controls (lockout, passenger) {}
-    Controls (pushpull1, driver) {}
-    Controls (pushpull2, passenger) {}
-    Controls (rocker, passenger) {}
-
-    ConnectSwitch (driverWindowCommands, pushpull1) {}
-    ConnectSwitch (controlPassengerWindowCommands, pushpull2) {}
-    ConnectSwitch (lockCommands, lockout) {}
-    ConnectSwitch (passengerWindowCommands, rocker) {}
-    ConnectSensor (detectObject, IRSensor) {}
-}

+ 0 - 594
models/plant_to_EPN.mvc

@@ -1,594 +0,0 @@
-All_RAM pw_to_epn {
-    Composite schedule {
-        {Contains} Success success {}
-        {Contains} Atomic R_no_sensor {
-            LHS {
-                Pre_PW_Plant/Side {
-                    label = "1"
-                }
-            }
-            NAC {
-                Pre_PW_Plant/Side n_nac_s{
-                    label = "1"
-                }
-                Pre_PW_Plant/Infrared n_nac_i{
-                    label = "2"
-                }
-                Pre_PW_Plant/HasSensor (n_nac_s, n_nac_i) {
-                    label = "3"
-                }
-            }
-            RHS {
-                Post_Encapsulated_PetriNet/Boundary n_0{
-                    label = "0"
-                }
-
-                Post_Encapsulated_PetriNet/Port n_4{
-                    label = "4"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlGoingDown"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Port n_6{
-                    label = "6"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlMovingUp"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Port n_50{
-                    label = "50"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlNeutral"!
-                        $
-                }
-
-                Post_Encapsulated_PetriNet/Transition n_16{
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlMovingUp"!
-                        $
-                    label = "16"
-                }
-                Post_Encapsulated_PetriNet/Transition n_18{
-                    label = "18"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlMovingUp"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Transition n_20{
-                    label = "20"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlNeutral"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Transition n_22{
-                    label = "22"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlNeutral"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Transition n_24{
-                    label = "24"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlNeutral"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Transition n_26{
-                    label = "26"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlMovingUp"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Transition n_28{
-                    label = "28"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlMovingUp"!
-                        $
-                }
-                
-                Post_Encapsulated_PetriNet/Place n_9{
-                    label = "9"
-                    value_nbTokens = $
-                        Integer function value(host_model : Element, name : String, mapping : Element):
-                            return 0!
-                        $
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "top"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Place n_11{
-                    label = "11"
-                    value_nbTokens = $
-                        Integer function value(host_model : Element, name : String, mapping : Element):
-                            return 0!
-                        $
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "middle"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Place n_14{
-                    label = "14"
-                    value_nbTokens = $
-                        Integer function value(host_model : Element, name : String, mapping : Element):
-                            return 1!
-                        $
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "bottom"!
-                        $
-                }
-
-                Post_Encapsulated_PetriNet/Has3 (n_0, n_4){
-                    label = "5"
-                }
-                Post_Encapsulated_PetriNet/Has3 (n_0, n_6){
-                    label = "7"
-                }
-                Post_Encapsulated_PetriNet/Has3 (n_0, n_50){
-                    label = "8"
-                }
-
-                Post_Encapsulated_PetriNet/Has2 (n_0, n_16){
-                    label = "17"
-                }
-                Post_Encapsulated_PetriNet/Has2 (n_0, n_18){
-                    label = "19"
-                }
-                Post_Encapsulated_PetriNet/Has2 (n_0, n_20){
-                    label = "21"
-                }
-                Post_Encapsulated_PetriNet/Has2 (n_0, n_22){
-                    label = "23"
-                }
-                Post_Encapsulated_PetriNet/Has2 (n_0, n_24){
-                    label = "25"
-                }
-                Post_Encapsulated_PetriNet/Has2 (n_0, n_26){
-                    label = "27"
-                }
-                Post_Encapsulated_PetriNet/Has2 (n_0, n_28){
-                    label = "29"
-                }
-
-                Post_Encapsulated_PetriNet/Has1 (n_0, n_9){
-                    label = "10"
-                }
-                Post_Encapsulated_PetriNet/Has1 (n_0, n_11){
-                    label = "13"
-                }
-                Post_Encapsulated_PetriNet/Has1 (n_0, n_14){
-                    label = "15"
-                }
-
-                Post_Encapsulated_PetriNet/PortTransition (n_6, n_16){
-                    label = "32"
-                }
-                Post_Encapsulated_PetriNet/PortTransition (n_6, n_18){
-                    label = "49"
-                }
-                Post_Encapsulated_PetriNet/PortTransition (n_4, n_28){
-                    label = "54"
-                }
-                Post_Encapsulated_PetriNet/PortTransition (n_4, n_26){
-                    label = "53"
-                }
-                Post_Encapsulated_PetriNet/PortTransition (n_50, n_20){
-                    label = "52"
-                }
-                Post_Encapsulated_PetriNet/PortTransition (n_50, n_22){
-                    label = "51"
-                }
-                Post_Encapsulated_PetriNet/PortTransition (n_50, n_24){
-                    label = "12"
-                }
-
-                Post_Encapsulated_PetriNet/P2T (n_9, n_20) {
-                    label = "40"
-                }
-                Post_Encapsulated_PetriNet/P2T (n_9, n_26) {
-                    label = "36"
-                }
-                Post_Encapsulated_PetriNet/P2T (n_11, n_16) {
-                    label = "34"
-                }
-                Post_Encapsulated_PetriNet/P2T (n_11, n_22) {
-                    label = "42"
-                }
-                Post_Encapsulated_PetriNet/P2T (n_11, n_28) {
-                    label = "38"
-                }
-                Post_Encapsulated_PetriNet/P2T (n_14, n_18) {
-                    label = "31"
-                }
-                Post_Encapsulated_PetriNet/P2T (n_14, n_24) {
-                    label = "44"
-                }
-
-                Post_Encapsulated_PetriNet/T2P (n_16, n_9) {
-                    label = "35"
-                }
-                Post_Encapsulated_PetriNet/T2P (n_18, n_11) {
-                    label = "33"
-                }
-                Post_Encapsulated_PetriNet/T2P (n_20, n_9) {
-                    label = "41"
-                }
-                Post_Encapsulated_PetriNet/T2P (n_22, n_11) {
-                    label = "43"
-                }
-                Post_Encapsulated_PetriNet/T2P (n_24, n_14) {
-                    label = "45"
-                }
-                Post_Encapsulated_PetriNet/T2P (n_26, n_11) {
-                    label = "37"
-                }
-                Post_Encapsulated_PetriNet/T2P (n_28, n_14) {
-                    label = "39"
-                }
-            }
-        }
-        {Contains} Atomic R_sensor {
-            LHS {
-                Pre_PW_Plant/Side s_s{
-                    label = "1"
-                }
-                Pre_PW_Plant/Infrared s_i{
-                    label = "2"
-                }
-                Pre_PW_Plant/HasSensor (s_s, s_i) {
-                    label = "3"
-                }
-            }
-            RHS {
-                Post_Encapsulated_PetriNet/Boundary s_0{
-                    label = "0"
-                }
-
-                Post_Encapsulated_PetriNet/Port s_36{
-                    label = "36"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlNeutral"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Port s_38{
-                    label = "38"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlMovingUp"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Port s_40{
-                    label = "40"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlMovingDown"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Port s_42{
-                    label = "42"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "detectedObject"!
-                        $
-                }
-
-                Post_Encapsulated_PetriNet/Place s_9{
-                    label = "9"
-                    value_nbTokens = $
-                        Integer function value(host_model : Element, name : String, mapping : Element):
-                            return 0!
-                        $
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "top"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Place s_11{
-                    label = "11"
-                    value_nbTokens = $
-                        Integer function value(host_model : Element, name : String, mapping : Element):
-                            return 0!
-                        $
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "middle"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Place s_14{
-                    label = "14"
-                    value_nbTokens = $
-                        Integer function value(host_model : Element, name : String, mapping : Element):
-                            return 1!
-                        $
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "bottom"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Place s_19{
-                    label = "19"
-                    value_nbTokens = $
-                        Integer function value(host_model : Element, name : String, mapping : Element):
-                            return 0!
-                        $
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "topDetectedFrame"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Place s_23{
-                    label = "23"
-                    value_nbTokens = $
-                        Integer function value(host_model : Element, name : String, mapping : Element):
-                            return 0!
-                        $
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "middleDetectedFrame"!
-                        $
-                }
-
-                Post_Encapsulated_PetriNet/Transition s_32{
-                    label = "32"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "ControlUp+Object"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Transition s_33{
-                    label = "33"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "ControlUp+Object"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Transition s_27{
-                    label = "27"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlNeutral"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Transition s_29{
-                    label = "29"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlNeutral"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Transition s_16{
-                    label = "16"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlMovingUp"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Transition s_18{
-                    label = "18"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlMovingUp"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Transition s_20{
-                    label = "20"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlNeutral"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Transition s_22{
-                    label = "22"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlNeutral"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Transition s_24{
-                    label = "24"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlNeutral"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Transition s_26{
-                    label = "26"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlMovingUp"!
-                        $
-                }
-                Post_Encapsulated_PetriNet/Transition s_28{
-                    label = "28"
-                    value_name = $
-                        String function value(host_model : Element, name : String, mapping : Element):
-                            return "InControlMovingUp"!
-                        $
-                }
-
-                Post_Encapsulated_PetriNet/PortTransition (s_42, s_32){
-                    label = "68"
-                }
-                Post_Encapsulated_PetriNet/PortTransition (s_42, s_33){
-                    label = "69"
-                }
-                Post_Encapsulated_PetriNet/PortTransition (s_38, s_18){
-                    label = "70"
-                }
-                Post_Encapsulated_PetriNet/PortTransition (s_38, s_16){
-                    label = "71"
-                }
-                Post_Encapsulated_PetriNet/PortTransition (s_40, s_26){
-                    label = "59"
-                }
-                Post_Encapsulated_PetriNet/PortTransition (s_40, s_28){
-                    label = "58"
-                }
-                Post_Encapsulated_PetriNet/PortTransition (s_36, s_27){
-                    label = "a_0"
-                }
-                Post_Encapsulated_PetriNet/PortTransition (s_36, s_29){
-                    label = "a_1"
-                }
-                Post_Encapsulated_PetriNet/PortTransition (s_36, s_20){
-                    label = "a_2"
-                }
-                Post_Encapsulated_PetriNet/PortTransition (s_36, s_22){
-                    label = "a_3"
-                }
-                Post_Encapsulated_PetriNet/PortTransition (s_36, s_24){
-                    label = "a_4"
-                }
-
-                Post_Encapsulated_PetriNet/P2T (s_19, s_27){
-                    label = "60"
-                }
-                Post_Encapsulated_PetriNet/P2T (s_23, s_29){
-                    label = "64"
-                }
-                Post_Encapsulated_PetriNet/P2T (s_9, s_32){
-                    label = "62"
-                }
-                Post_Encapsulated_PetriNet/P2T (s_9, s_20){
-                    label = "52"
-                }
-                Post_Encapsulated_PetriNet/P2T (s_9, s_26){
-                    label = "48"
-                }
-                Post_Encapsulated_PetriNet/P2T (s_11, s_28){
-                    label = "50"
-                }
-                Post_Encapsulated_PetriNet/P2T (s_11, s_22){
-                    label = "55"
-                }
-                Post_Encapsulated_PetriNet/P2T (s_11, s_16){
-                    label = "46"
-                }
-                Post_Encapsulated_PetriNet/P2T (s_11, s_18){
-                    label = "45"
-                }
-                Post_Encapsulated_PetriNet/P2T (s_14, s_24){
-                    label = "56"
-                }
-                Post_Encapsulated_PetriNet/P2T (s_14, s_18){
-                    label = "44"
-                }
-
-                Post_Encapsulated_PetriNet/T2P (s_32, s_19){
-                    label = "63"
-                }
-                Post_Encapsulated_PetriNet/T2P (s_33, s_23){
-                    label = "67"
-                }
-                Post_Encapsulated_PetriNet/T2P (s_27, s_9){
-                    label = "61"
-                }
-                Post_Encapsulated_PetriNet/T2P (s_29, s_11){
-                    label = "65"
-                }
-                Post_Encapsulated_PetriNet/T2P (s_16, s_9){
-                    label = "47"
-                }
-                Post_Encapsulated_PetriNet/T2P (s_18, s_11){
-                    label = "45"
-                }
-                Post_Encapsulated_PetriNet/T2P (s_20, s_9){
-                    label = "53"
-                }
-                Post_Encapsulated_PetriNet/T2P (s_26, s_11){
-                    label = "49"
-                }
-                Post_Encapsulated_PetriNet/T2P (s_22, s_11){
-                    label = "55"
-                }
-                Post_Encapsulated_PetriNet/T2P (s_28, s_14){
-                    label = "51"
-                }
-                Post_Encapsulated_PetriNet/T2P (s_24, s_14){
-                    label = "57"
-                }
-
-                Post_Encapsulated_PetriNet/Has3 (s_0, s_42){
-                    label = "43"
-                }
-                Post_Encapsulated_PetriNet/Has3 (s_0, s_36){
-                    label = "37"
-                }
-                Post_Encapsulated_PetriNet/Has3 (s_0, s_38){
-                    label = "39"
-                }
-                Post_Encapsulated_PetriNet/Has3 (s_0, s_40){
-                    label = "41"
-                }
-
-                Post_Encapsulated_PetriNet/Has2 (s_0, s_32){
-                    label = "34"
-                }
-                Post_Encapsulated_PetriNet/Has2 (s_0, s_33){
-                    label = "35"
-                }
-                Post_Encapsulated_PetriNet/Has2 (s_0, s_27){
-                    label = "30"
-                }
-                Post_Encapsulated_PetriNet/Has2 (s_0, s_29){
-                    label = "31"
-                }
-                Post_Encapsulated_PetriNet/Has2 (s_0, s_16){
-                    label = "7"
-                }
-                Post_Encapsulated_PetriNet/Has2 (s_0, s_18){
-                    label = "8"
-                }
-                Post_Encapsulated_PetriNet/Has2 (s_0, s_20){
-                    label = "13"
-                }
-                Post_Encapsulated_PetriNet/Has2 (s_0, s_22){
-                    label = "15"
-                }
-                Post_Encapsulated_PetriNet/Has2 (s_0, s_24){
-                    label = "17"
-                }
-                Post_Encapsulated_PetriNet/Has2 (s_0, s_26){
-                    label = "10"
-                }
-                Post_Encapsulated_PetriNet/Has2 (s_0, s_28){
-                    label = "12"
-                }
-
-                Post_Encapsulated_PetriNet/Has1 (s_0, s_9){
-                    label = "4"
-                }
-                Post_Encapsulated_PetriNet/Has1 (s_0, s_11){
-                    label = "5"
-                }
-                Post_Encapsulated_PetriNet/Has1 (s_0, s_14){
-                    label = "6"
-                }
-                Post_Encapsulated_PetriNet/Has1 (s_0, s_19){
-                    label = "21"
-                }
-                Post_Encapsulated_PetriNet/Has1 (s_0, s_23){
-                    label = "25"
-                }
-            }
-        }
-    }
-
-    Initial (schedule, R_no_sensor) {}
-    OnSuccess (R_no_sensor, R_no_sensor) {}
-    OnFailure (R_no_sensor, R_sensor) {}
-    OnSuccess (R_sensor, R_sensor) {}
-    OnFailure (R_sensor, success) {}
-}