Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Embedded State Machines and State Machine Extension #31

Open
pasetti opened this issue Jan 15, 2019 · 0 comments
Open

Embedded State Machines and State Machine Extension #31

pasetti opened this issue Jan 15, 2019 · 0 comments
Assignees

Comments

@pasetti
Copy link
Contributor

pasetti commented Jan 15, 2019

The rules for embedded state machines and state machine extension are not very clear in the FW Profile Definition Document and need to be clarified. I propose to do it as described below.

Let S be a state of state machine SM_A and let SM_B be a state machine derived from SM_A. The rules for adding embedded state machines to SM_B are as follows:

  • If state S is "empty" in SM_A (i.e. it does not have any embedded state machine), then it is allowed to add any embedded state machine in state S of SM_B
  • If state machine SM_E is embedded in state S in SM_A, then, in state S of SM_B, it is allowed to replace SM_E with a state machine derived from SM_E

The basic idea is that, during the state machine extension process, you are allowed either to add new embedded state machine or to replace existing embedded state machines with their children (i..e when you extend a state machine, you can also extend its embedded state machines - see figure below).

smembeddingandderivation
image

NB: Marcel points out to me that the current implementation of the FW Profile does not allow an embedded state machine in a base state machine to be overridden.

NB#2 This issue was initially and mistakenly submitted in the cordetfw project.

@pasetti pasetti self-assigned this Jan 15, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant