@xlia< system , 1.0 >: | |
system<and> mySystem { | |
@machine: | |
statemachine PhoneOperator { | |
@property: | |
type PhoneOperation enum {CALL, TERMINATE_CALL, ACCEPT_CALL} | |
type PhoneCallAction struct { | |
var int callerID; | |
var PhoneOperation op; | |
} | |
public var PhoneCallAction phoneaction; | |
public port input incomingAction(PhoneCallAction); | |
public port output forwardCallerID(int); | |
public port output forwardPhoneOperation(PhoneOperation); | |
@region: | |
state<initial> source {transition startup --> idle;} | |
state idle { | |
transition receiveRequest --> idle { | |
input incomingAction(phoneaction); | |
output forwardCallerID(phoneaction.callerID); | |
output forwardPhoneOperation(phoneaction.op); | |
} | |
} | |
} | |
@com: | |
connect<env>{ | |
input PhoneOperator->incomingAction; | |
output PhoneOperator->forwardCallerID; | |
output PhoneOperator->forwardPhoneOperation; | |
} | |
} | |