Appia의 IT세상

[Stateflow]State Action, Condition Action과 Transition Action 본문

Programming/Stateflow

[Stateflow]State Action, Condition Action과 Transition Action

Appia 2019. 12. 24. 07:19
반응형

[Stateflow]State Action, Condition Action과 Transition Action

불러오는 중입니다...

 앞서서, [Stateflow] State label 입력을 위한 기본 문법이라는 주제로 State label 작성하는 법에 대해서 살펴 보았습니다. 그러면 이번에는 State Action, Condition Action, Transition Action 대해서 살펴 보겠습니다.

앞서 강의에서 State Action 대해서는 간단히 살펴 보았습니다. 그러면 Condition Action, Transition Action 대해서 살펴보면 기본 형태는 다음과 같습니다.

 앞서 Flowchart에서 다루어 것과 비슷하지만, [/] 토대로 Condition Action Transition Action 나눌 있습니다. 그럼 Stateflow에서 부분들에 대해서 살펴보겠습니다. 중에서도 Condition Action State Action 대해서 살펴 보겠습니다. 간단히 정의를 다시 해보면, Condition Action Condition 만족할 실행되는 Action입니다. State Action State 대한 변경(Entry, Exit)또는 State 머무를 실행되는 Action 입니다.

 

 실제 위의 그림은 Condition Action 명시한 것입니다. 위의 그림에서 Condition 따라서 실행할 있게 Condition Action들이 기재 되어 있습니다. 위의 부분을 State Action 입력하면 다음과 같습니다.

같은 조건에 수행되지만 가독성 부분에서 State Action 이용하는 것이 조금 좋다는 것을 느낄 있습니다.

 

위의 부분들에 대해서 복합적으로 사용될 순서에 대해서 매우 헷갈리게 됩니다. 실제 포스팅에서 Transition Action 기재한 이유가 순서에 대해서 같이 생각해야 하기 때문입니다. 위를 조금 쉽게 표현 하기 위해서 다음과 같은 로직을 작성해보았습니다.

일단 앞서 Transition Condition U>0 True 경우 {a = a+1;} 실행합니다. 하지만 a> 2 되지 False 경우 Transition Action 실행되지 않습니다.

 

만약 모든 조건은 만족 경우는 다음과 같은 Flow 바탕으로 로직이 실행됩니다.

Start Entry -> Condition Action -> Start Exit -> Transition Action -> End Entry

 

생각보다 헷갈릴 있고 생각이 필요한 부분입니다. 악의적으로 이렇게 구성하지 않지만, 남의 로직을 경우가 있으면 이런 부분에 대해서 정확하게 알고 있습니다. 좋습니다.

 

요약 :

Condition Action Condition 만족할 실행

State Action State 대한 변경(Entry, Exit) 또는 지속될 실행되는 Action

만약 모든 조건은 만족 경우 :

Start Entry -> Condition Action -> Start Exit -> Transition Action -> End Entry

불러오는 중입니다...

오늘은 [Stateflow]State Action, Condition Action과 Transition Action 라는 주제로 포스팅을 작성해 보았습니다. 혹시 궁금하시거나 물어보시고 싶으신 점이 있으시면 언제든지 댓글과 방명록 글 부탁드립니다. 

반응형
Comments