瀏覽代碼

Fixes to better support manual operations

Yentl Van Tendeloo 7 年之前
父節點
當前提交
43cdf488bb
共有 6 個文件被更改,包括 18 次插入9 次删除
  1. 二進制
      bootstrap/bootstrap.m.gz
  2. 二進制
      bootstrap/minimal.m.gz
  3. 5 0
      unit/test_all.py
  4. 2 3
      wrappers/classes/modelverse.xml
  5. 8 3
      wrappers/modelverse.py
  6. 3 3
      wrappers/modelverse_SCCD.py

二進制
bootstrap/bootstrap.m.gz


二進制
bootstrap/minimal.m.gz


+ 5 - 0
unit/test_all.py

@@ -219,14 +219,19 @@ class TestModelverse(unittest.TestCase):
         thrd.start()
 
         assert transformation_execute_MT("test/print_pn", {"PetriNet": "test/my_pn"}, {}, (ctrl, "inp", "outp")) == True
+        print("Joining")
         thrd.join()
+        print("Joined")
         assert set(log) == set(['"p1" --> 1',
                                 '"p2" --> 2',
                                 '"p3" --> 3'])
 
+        print("MAN")
         assert transformation_execute_MANUAL("test/pn_design_to_runtime", {"PetriNet": "test/my_pn"}, {"PetriNet_Runtime": "test/my_pn_RT"}, manual_callback) == True
+        print("OK")
         assert transformation_execute_AL("test/pn_simulate", {"PetriNet_Runtime": "test/my_pn_RT"}, {"PetriNet_Runtime": "test/my_pn_RT"}) == True
         assert transformation_execute_MT("test/pn_runtime_to_design", {"PetriNet_Runtime": "test/my_pn_RT"}, {"PetriNet": "test/my_pn"}) == True
+        print("MT OK")
 
         log = []
         ctrl = log_output.Controller(log, keep_running=False)

+ 2 - 3
wrappers/classes/modelverse.xml

@@ -725,9 +725,8 @@
                                         self.inputs[self.input_context] = []
                                         print("Got context")
                                     </script>
-
                                     <raise event="result">
-                                        <parameter expr="self.input_context"/>
+                                        <parameter expr="['SC', self.parameters[0], self.input_context]"/>
                                     </raise>
                                 </transition>
                             </state>
@@ -769,7 +768,7 @@
                                         print("Operating on model " + str(model))
                                     </script>
                                     <raise event="result">
-                                        <parameter expr="model"/>
+                                        <parameter expr="['OP', self.parameters[0], self.context, model]"/>
                                     </raise>
                                 </transition>
                                 <transition cond="self.expect_response('Model loaded, ready for commands!')" target="../../../../going_scripted"/>

+ 8 - 3
wrappers/modelverse.py

@@ -173,7 +173,7 @@ def __transformation_execute(operation_name, input_models_dict, output_models_di
         port_sc = statechart[0].addOutputListener(statechart[2])
 
     INPUT("transformation_execute", None, [operation_name, input_models_dict, output_models_dict, tracability_model, fetch_output])
-    context = OUTPUT()
+    op, name, context = OUTPUT()
     if statechart is not None:
         while 1:
             empty = True
@@ -211,11 +211,16 @@ def transformation_execute_AL(operation_name, input_models_dict, output_models_d
     return __transformation_execute(operation_name, input_models_dict, output_models_dict, statechart, tracability_model, fetch_output)
 
 def transformation_execute_MANUAL(operation_name, input_models_dict, output_models_dict, callback=None, tracability_model=""):
-    INPUT("transformation_execute_MANUAL", None, [operation_name, input_models_dict, output_models_dict, tracability_model])
-    context = OUTPUT()
+    INPUT("transformation_execute", None, [operation_name, input_models_dict, output_models_dict, tracability_model])
+    print("Wait for context")
+    op, name, context, model = OUTPUT()
+    print("Got context: " + str(context))
     if callback is not None:
         callback(context)
+        print("Callback complete")
+    print("Send exit")
     INPUT("exit", context, [])
+    print("Exitted")
     return OUTPUT()
 
 def transformation_signature(operation_name):

+ 3 - 3
wrappers/modelverse_SCCD.py

@@ -1,7 +1,7 @@
 """
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
-Date:   Wed Nov  8 09:22:09 2017
+Date:   Wed Nov  8 10:08:42 2017
 
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server
@@ -2656,7 +2656,7 @@ class Modelverse(RuntimeClassBase):
         self.input_context = str(uuid.uuid4())
         self.inputs[self.input_context] = []
         print("Got context")
-        self.raiseInternalEvent(Event("result", None, [self.input_context]))
+        self.raiseInternalEvent(Event("result", None, [['SC', self.parameters[0], self.input_context]]))
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_send_operation_1_guard(self, parameters):
         return self.expect_response('Success: ready for AL execution', pop=True) or self.expect_response('Success: ready for MT execution', pop=True)
@@ -2688,7 +2688,7 @@ class Modelverse(RuntimeClassBase):
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_edit_model_1_exec(self, parameters):
         model = self.responses.pop(0).split(": ", 1)[1]
         print("Operating on model " + str(model))
-        self.raiseInternalEvent(Event("result", None, [model]))
+        self.raiseInternalEvent(Event("result", None, [['OP', self.parameters[0], self.context, model]]))
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_edit_model_1_guard(self, parameters):
         return self.expect_response_partial('Operating on: ', pop=False)