VFSM: CalculatorSimple

VFSM type: CalculatorSimple(user vfsm)

Prefix: Dig

IOid name: MyCmd (type: CMD-IN)

IOid name: Ofu_Calculate (type: OFUN)
-->Virtual Input: Error (12)
-->Virtual Input: ErrorClear (13)
-->Virtual Input: Ok (11)
-->Virtual Output: AddToNumber (7)
-->Virtual Output: CalculateAll (5)
-->Virtual Output: CalculateLast (6)
-->Virtual Output: ChangeOperation (14)
-->Virtual Output: ChangeSign (9)
-->Virtual Output: Clear (13)
-->Virtual Output: DeleteLastDigit (8)
-->Virtual Output: DisplayClearMsg (3)
-->Virtual Output: DisplayResetMsg (4)
-->Virtual Output: Reset (15)
-->Virtual Output: Unexpected (1)

IOid name: Ofu_Expression (type: OFUN)
-->Virtual Input: ExprEmpty (0)
-->Virtual Input: ExprNotEmpty (1)
-->Virtual Output: CheckExpression (1)

IOid name: Ofu_Parse (type: OFUN)
-->Virtual Input: AckMatched (2)
-->Virtual Input: AddSubMatched (3)
-->Virtual Input: BackspaceMatched (11)
-->Virtual Input: ClearMatched (7)
-->Virtual Input: DigitMatched (1)
-->Virtual Input: MulDivMatched (4)
-->Virtual Input: NOT_AckMatched (~2)
-->Virtual Input: NOT_ClearMatched (~7)
-->Virtual Input: NOT_ResetMatched (~8)
-->Virtual Input: ResetMatched (8)
-->Virtual Input: SignMatched (9)
-->Virtual Input: TerminateMatched (6)
-->Virtual Output: ClearDisplay (2)
-->Virtual Output: MatchKey (1)

IOid name: Expression (type: DAT)
-->Virtual Input: Expression_CHANGED (CHANGED)

IOid name: Key (type: DAT)
-->Virtual Input: Key_CHANGED (CHANGED)

Always: input actions valid in each state:
Key_CHANGED
MatchKey
Expression_CHANGED
CheckExpression

State transition table, state ' Init ':
Init
EntryAction:
ExitAction:
ClearDisplay
Idle
always

State transition table, state ' Idle ':
Idle
EntryAction:
ExitAction:
DigitMatched
ClearDisplay
ExprNotEmpty and ( MulDivMatched or AddSubMatched )
ChangeOperation
MulDivMatched and ExprEmpty
CalculateLast
AddSubMatched and ExprEmpty
CalculateAll
ClearMatched
Clear
ResetMatched
Reset
BackspaceMatched or SignMatched
Unexpected
AddToNumber
DigitMatched or ClearMatched
Idle_Busy
BackspaceMatched or SignMatched or MulDivMatched or ResetMatched
Calculate
AddSubMatched or MulDivMatched

State transition table, state ' AddToNumber ':
AddToNumber
EntryAction:
AddToNumber
ExitAction:
Number
Ok and AckMatched

State transition table, state ' Calculate ':
Calculate
EntryAction:
ExitAction:
Idle
Ok and AckMatched
Error
Error and AckMatched
ErrorClear
ErrorClear and AckMatched

State transition table, state ' Number ':
Number
EntryAction:
ExitAction:
AddSubMatched or TerminateMatched and ExprNotEmpty
CalculateAll
MulDivMatched
CalculateLast
BackspaceMatched
DeleteLastDigit
ClearMatched
Clear
ResetMatched
Reset
SignMatched
ChangeSign
AddToNumber
DigitMatched
Calculate
AddSubMatched or MulDivMatched or ResetMatched or TerminateMatched

State transition table, state ' Error ':
Error
EntryAction:
ExitAction:
ResetMatched
Reset
NOT_ResetMatched and NOT_AckMatched
DisplayResetMsg
Idle_Return
ResetMatched

State transition table, state ' ErrorClear ':
ErrorClear
EntryAction:
ExitAction:
ClearMatched
Clear
ResetMatched
Reset
NOT_ResetMatched and NOT_ClearMatched and NOT_AckMatched
DisplayClearMsg
Idle_Return
ClearMatched or ResetMatched

State transition table, state ' CalculateT ':
CalculateT
EntryAction:
ExitAction:

State transition table, state ' Idle_Busy ':
Idle_Busy
EntryAction:
ExitAction:
Idle
Ok and AckMatched
Error
Error and AckMatched
ErrorClear
ErrorClear and AckMatched

State transition table, state ' Idle_Return ':
Idle_Return
EntryAction:
ExitAction:
Idle
Ok and AckMatched
Total number of states: 11