Appia의 IT세상

[Stateflow] State label 입력을 위한 기본 문법 본문

Programming/Stateflow

[Stateflow] State label 입력을 위한 기본 문법

Appia 2019. 12. 22. 06:50
반응형

[Stateflow] State label 입력을 위한 기본 문법 

 

  앞서서 State 대해서 간단히 살펴 보았습니다. 제가 앞서 강의에서 State Junction 차이점은 State 경우에 State에서의 Action입력이 가능하다는 점을 이야기 했습니다. 그럼 State Action 입력하기 위해서 몇가지 문법 등에 대해서 알아 보도록 하겠습니다.

 

기본적으로 State Label 다음 3가지로 구성 됩니다.

Name State의 이름
%Comment  주석
keyword 각 상태변화에 대해서 명시해
stateAction keyword에 따른 동작

저희는 여기서 Keyword에 대해서 조금더 살펴 보도록 하겠습니다. 

Keyword Name  의미
entry(en) State에 들어왔을때,
exit(ex) State에서 빠져나갈때
during(du) State에 머무를 때

위의 Keyworkd들은 여러개 같이 쓰일 수 있습니다. 예를 들면, 

ex) en, du :

 

물론 위의 까지는 어디에서나 볼 수 있는 교과서 적인 이야기입니다. 제가 각 Keyword에 대해서 예를 들어서 설명 해보도록 하겠습니다.

 다음과 같은 State machine은 총 2개의  state로 구성되었습다. 처음 Step이 이루어지면 먼저 Initial State로 들어갑니다. 즉, Running 상태가 되는 거죠. Running안에는 entry라는 부분이 보일 것입다. 즉 Running 이란 State에 들어왔기 때문에 entry가 실행됩니다. 위의 그림은 조건중 Flag가 1이라고 가정할꼐요. 그럼 Running 상태에서 빠져나가게 되면서 c = 0 이 실행됩다. 

그런 후, Stop 상태로 들어갑니다. 여기서 또 입장했기 때문에 entry : 부분을 실행합니다. 그런 후 한 스텝을 맞추게 됩니다. 

다음 스텝에서 count는 1입니다. 즉 count 5가 아니기 때문에 현재의 상태에 머무르게 됩다. 그러면서 during 키워드의 Action들에 대해서 실행하게 됩니다. 

 

이 부분에 대해서는 반드시 알아야 하고, 향후에도 많이 쓰이기 때문에 많이 숙지 하셨으면 좋겠습니다. 혹 궁금하신점이나 문의 사항 있으시면 방명록이나 댓글 부탁드립니다. 

반응형
Comments