浏览代码

Fix some event processing

Yentl Van Tendeloo 8 年之前
父节点
当前提交
5e8b8ec56d
共有 2 个文件被更改,包括 19 次插入13 次删除
  1. 10 5
      wrappers/classes/modelverse.xml
  2. 9 8
      wrappers/modelverse_SCCD.py

+ 10 - 5
wrappers/classes/modelverse.xml

@@ -221,8 +221,8 @@
                         </transition>
 
                         <transition event="http_client_timeout" target="../../wait_for_action/disconnected">
-                            <raise scope="broad" event="exception">
-                                <parameter expr="self.current_ID"/>
+                            <raise event="exception">
+                                <parameter expr="'NetworkException'"/>
                                 <parameter expr="'Connection timeout'"/>
                             </raise>
                         </transition>
@@ -260,7 +260,8 @@
                         <transition cond="self.expect_response('Welcome to the Model Management Interface v2.0!', pop=True)" target="../login_ok"/>
                         <transition cond="self.expect_response('Wrong password!', pop=True)" target="../../wait_for_action/connected">
                             <raise event="exception">
-                                <parameter expr="{'name': 'PermissionDenied'}"/>
+                                <parameter expr="'PermissionDenied'"/>
+                                <parameter expr="'Permission denied!'"/>
                             </raise>
                         </transition>
                     </state>
@@ -1783,7 +1784,7 @@
 
             <state id="queue">
                 <state id="queue">
-                    <transition port="action_in" event="action" target=".">
+                    <transition event="action" target=".">
                         <parameter name="action_name"/>
                         <parameter name="ID"/>
                         <parameter name="context_ID"/>
@@ -1818,14 +1819,18 @@
                     </transition>
 
                     <transition event="exception" target=".">
+                        <parameter name="ID"/>
                         <parameter name="parameters"/>
+
                         <raise scope="output" event="exception" port="action_out">
                             <parameter expr="self.current_ID"/>
+                            <parameter expr="ID"/>
                             <parameter expr="parameters"/>
                         </raise>
 
                         <raise scope="broad" event="mv_exception">
                             <parameter expr="self.current_ID"/>
+                            <parameter expr="ID"/>
                             <parameter expr="parameters"/>
                         </raise>
                     </transition>
@@ -1835,7 +1840,7 @@
                         <raise scope="broad" event="mv_ready"/>
                     </transition>
 
-                    <transition port="action_in" event="data_input" target=".">
+                    <transition event="data_input" target=".">
                         <parameter name="value"/>
                         <parameter name="context_ID"/>
                         <script>

+ 9 - 8
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:   Thu Sep  7 08:48:00 2017
+Date:   Thu Sep  7 10:09:32 2017
 
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server
@@ -1558,7 +1558,7 @@ class Modelverse(RuntimeClassBase):
         # transition /initialized/queue/queue
         _initialized_queue_queue_0 = Transition(self, self.states["/initialized/queue/queue"], [self.states["/initialized/queue/queue"]])
         _initialized_queue_queue_0.setAction(self._initialized_queue_queue_0_exec)
-        _initialized_queue_queue_0.setTrigger(Event("action", "action_in"))
+        _initialized_queue_queue_0.setTrigger(Event("action", None))
         self.states["/initialized/queue/queue"].addTransition(_initialized_queue_queue_0)
         _initialized_queue_queue_1 = Transition(self, self.states["/initialized/queue/queue"], [self.states["/initialized/queue/queue"]])
         _initialized_queue_queue_1.setAction(self._initialized_queue_queue_1_exec)
@@ -1578,7 +1578,7 @@ class Modelverse(RuntimeClassBase):
         self.states["/initialized/queue/queue"].addTransition(_initialized_queue_queue_4)
         _initialized_queue_queue_5 = Transition(self, self.states["/initialized/queue/queue"], [self.states["/initialized/queue/queue"]])
         _initialized_queue_queue_5.setAction(self._initialized_queue_queue_5_exec)
-        _initialized_queue_queue_5.setTrigger(Event("data_input", "action_in"))
+        _initialized_queue_queue_5.setTrigger(Event("data_input", None))
         self.states["/initialized/queue/queue"].addTransition(_initialized_queue_queue_5)
         
         # transition /initialized/behaviour/operations
@@ -2143,7 +2143,7 @@ class Modelverse(RuntimeClassBase):
         self.i += 1
     
     def _initialized_behaviour_init_waiting_http_client_1_exec(self, parameters):
-        self.big_step.outputEventOM(Event("broad_cast", None, [Event("exception", None, [self.current_ID, 'Connection timeout'])]))
+        self.raiseInternalEvent(Event("exception", None, ['NetworkException', 'Connection timeout']))
     
     def _initialized_behaviour_init_wait_for_taskname_ack_0_guard(self, parameters):
         return self.expect_response('OK', pop=True)
@@ -2170,7 +2170,7 @@ class Modelverse(RuntimeClassBase):
         return self.expect_response('Welcome to the Model Management Interface v2.0!', pop=True)
     
     def _initialized_behaviour_login_wait_prompt_existing_1_exec(self, parameters):
-        self.raiseInternalEvent(Event("exception", None, [{'name': 'PermissionDenied'}]))
+        self.raiseInternalEvent(Event("exception", None, ['PermissionDenied', 'Permission denied!']))
     
     def _initialized_behaviour_login_wait_prompt_existing_1_guard(self, parameters):
         return self.expect_response('Wrong password!', pop=True)
@@ -2914,9 +2914,10 @@ class Modelverse(RuntimeClassBase):
         self.big_step.outputEventOM(Event("broad_cast", None, [Event("mv_data_output", None, [parameters])]))
     
     def _initialized_queue_queue_3_exec(self, parameters):
-        parameters = parameters[0]
-        self.big_step.outputEvent(Event("exception", "action_out", [self.current_ID, parameters]))
-        self.big_step.outputEventOM(Event("broad_cast", None, [Event("mv_exception", None, [self.current_ID, parameters])]))
+        ID = parameters[0]
+        parameters = parameters[1]
+        self.big_step.outputEvent(Event("exception", "action_out", [self.current_ID, ID, parameters]))
+        self.big_step.outputEventOM(Event("broad_cast", None, [Event("mv_exception", None, [self.current_ID, ID, parameters])]))
     
     def _initialized_queue_queue_4_exec(self, parameters):
         self.big_step.outputEvent(Event("ready", "ready", []))