SinelaboreRT Header Logo

SinelaboreRT

As simple as possible, but not any simpler!

User Tools

Site Tools


wiki:news:27okt2012

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
wiki:news:27okt2012 [2012/11/19 19:23] – [Points to consider with regions] pmuellerwiki:news:27okt2012 [2012/11/19 19:29] – [Points to consider with regions] pmueller
Line 151: Line 151:
 ** Regions must work on the same instance data ** ** Regions must work on the same instance data **
  
-State diagrams follow the //run-to-completion// concept: Transitions that fire are fully executed and the state machine reaches a stable state configuration until it returns and can respond to the next event. To ensure this a copy of the instance data is kept and state changes are only performed on that copy. In practice this means that changes in one region does not influence other regions. Look into the following example. If the event  ''evClosed'' is sent region ''ValveA'' and ''ValveB'' change state. But there is no state change in region ''Motor'' at the same time. The reason is that the transition from ''Stop'' → ''Run'' was not triggered at the beginning of the machine execution. This behavior ensures that the result of a machine execution step is 100% predictable and e.g. not independent of the execution order of regions. +State diagrams follow the //run-to-completion// concept: Transitions that fire are fully executed and the state machine reaches a stable state configuration until it returns and can respond to the next event. To ensure this a copy of the instance data is kept and state changes are only performed on that copy. In practice this means that changes in one region does not influence other regions. Look into the following figure below 
 + 
 +  * If the event  ''evClosed'' is sent region ''ValveA'' and ''ValveB'' change state.  
 +  * But there is no state change in region ''Motor'' at the same time. The reason is that the transition from ''Stop'' → ''Run'' was not triggered at the beginning of the machine execution.  
 +  * This behavior ensures that the result of a machine execution step is 100% predictable and e.g. not dependent of the execution order of the regions. 
 +  * But on the other side it means that a second run of the machine is required to reach state ''MachineRun''. I.e. the region ''Motor'' is always one cycle behind the ''Valve'' regions.
  
 {{ :wiki:news:problems_with_regions_2.png?nolink | Problems with regions II}} {{ :wiki:news:problems_with_regions_2.png?nolink | Problems with regions II}}
wiki/news/27okt2012.txt · Last modified: 2022/08/17 19:47 by pmueller

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki