일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 비주얼베이직
- 아웃룩
- VBA
- matlab
- 깃
- python3
- Outlook
- office
- 파이썬GUI
- git
- 문자열
- 안드로이드
- Android
- Windows11
- 윈도우10
- 오피스
- 엑셀
- Excel
- html
- 파워포인트
- win32com
- python
- 윈도우11
- pandas
- 파이썬
- windows
- pythongui
- Windows10
- pyqt5
- 파이썬3
Appia의 IT세상
[Stateflow]State Action, Condition Action과 Transition Action 본문
[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 라는 주제로 포스팅을 작성해 보았습니다. 혹시 궁금하시거나 물어보시고 싶으신 점이 있으시면 언제든지 댓글과 방명록 글 부탁드립니다.
'Programming > Stateflow' 카테고리의 다른 글
[Stateflow] State안의 Flowchart, Mealy Chart, Moore Chart (0) | 2019.12.25 |
---|---|
[Stateflow] Stateflow Logging방법 ,Super step (0) | 2019.12.24 |
[Stateflow] State label 입력을 위한 기본 문법 (0) | 2019.12.22 |
[Stateflow] State Machine 디자인에 앞서 State에 대하여.. (0) | 2019.12.20 |
[Stateflow] Pattern wizard를 이용한 자동 Pattern 그리기 (0) | 2019.12.17 |