Code Monkey home page Code Monkey logo

fsmmanager's Introduction

1) FSMManager

FSMManager

2) FSM 종류

1. Basic FSM : 직접 만든 FSM

2. Squirrel FSM : Squirrel Framework 를 사용한 FSM

스크린샷 2021-07-01 오전 9 18 13

3. Akka FSM : Akka Actor 를 사용한 FSM

스크린샷 2021-07-01 오전 9 18 00 스크린샷 2021-07-01 오전 9 17 16 스크린샷 2021-07-01 오전 9 17 31

3) FSM 구성도

1. Basic FSM

1] 클래스 구조

스크린샷 2021-07-05 오후 3 22 10 스크린샷 2021-07-05 오후 2 04 43

2] 호출 예시

스크린샷 2021-07-05 오후 2 05 55 스크린샷 2021-07-05 오후 2 07 56 스크린샷 2021-07-05 오후 2 06 32

3] 상태 추가

스크린샷 2021-07-01 오전 9 06 42

4] 상태 삭제

스크린샷 2021-07-01 오전 9 07 02

5] 상태 천이

스크린샷 2021-07-01 오전 9 08 59

2. Squirrel

1] 상태 천이

스크린샷 2021-06-25 오후 4 16 02

4) API

1. Basic FSM

2. Squirrel FSM

1] addFsmContainer (String name, AbstractFsm abstractFsm, AbstractState abstractState, AbstractEvent abstractEvent)

@brief : 새로운 FSM 을 추가하는 함수 (FSM Container 클래스에 UntypedStateMachineBuilder 와 UntypedStateMachine 를 관리)
@param name : FSM 이름
@param abstractFsm : FSM 로직 클래스
@param abstractState : FSM 상태 정의
@param abstractEvent : FSM 이벤트 정의

2] removeFsmContainer (String name)

@brief : 지정한 이름의 FSM 을 삭제하는 함수
@param name : FSM 이름

3] getFsmContainer (String name)

@brief : 지정한 이름의 FSM Container 클래스의 객체를 반환하는 함수
@param name : FSM 이름

4] setFsmCondition (String name, String from, Strain to, String event)

@brief : 지정한 이름의 FSM 에 새로운 상태 천이 조건을 추가하는 함수
@param name : FSM 이름
@param from : 천이 전 상태 이름
@param to : 천이 후 상태 이름
@param event : 상태 천이를 트리거할 이벤트 이름

5] setFsmOnEntry (String name, String state, String funcName)

@brief : 지정한 상태 시작 시 실행할 FSM 의 함수를 지정하는 함수
@param name : FSM 이름
@param state : 상태 이름
@param funcName : FSM 함수 이름

6] setFsmOnExit (String name, String state, String funcName)

@brief : 지정한 상태 종료 시 실행할 FSM 의 함수를 지정하는 함수
@param name : FSM 이름
@param state : 상태 이름
@param funcName : FSM 함수 이름

7] getFsmCurState (String name)

@brief : 지정한 이름의 FSM 의 현재 상태를 반환하는 함수
@param name : FSM 이름

8] getFsmLastState (String name)

@brief : 지정한 이름의 FSM 의 바로 이전 상태를 반환하는 함수
@param name : FSM 이름

9] setFsmFinalState (String name, String state)

@brief : 지정한 이름의 FSM 의 마지막 상태를 지정하는 함수
@param name : FSM 이름
@param state : 마지막 상태 이름

10] buildFsm (String name, String initState, boolean isDebugMode)

@brief : 지정한 이름의 FSM 을 초기화하여 새로 생성하는 함수
@param name : FSM 이름
@param initState : FSM 초기 상태 이름
@param isDebugMode : FSM 내부 로그 출력 여부

11] fireFsm (String name, String event, FutureCallBack callback)

@brief : 지정한 이름의 FSM 에 이벤트를 발생시키는 함수
@param name : FSM 이름
@param event : 발생할 이벤트 이름
@param callback : 이벤트 발생 시 FSM 로직에서 실행할 callback 함수

3. Akka FSM

fsmmanager's People

Contributors

samuel-jeong avatar

Watchers

 avatar

Forkers

cckmit

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.