Behavior/FunctionalBlock [ Rules ]
[ Top ] [ Behavior ] [ Rules ]
SUMMARY
Transform a sysml:CallOperationAction into a HiLeS Functional Block. ($Rev: 443 $)
DESCRIPTION
Copies the name and id values from the sysml block. Creates the ports required to connect the block to the Petri Net.
SEE ALSO
DOMAIN
SPECIFICATION
relation FunctionalBlock { checkonly domain SysML node:CallOperationAction { activity = a:Activity{}, name = nn, id = nid, target = nt:Pin{}, result = nr:Pin{}, arguments = na:Pin{}, } enforce domain HiLeS b:Functional { architecture = arch:Architecture{}, name = nn, id = nid, ports = bpts:Port{}, } enforce domain HiLeS pin:inport { architecture = arch:Architecture{}, name = "_PNIn", direction = PointDirection::input, } enforce domain HiLeS pout:outport { architecture = arch:Architecture{}, name = "_PNOut", direction = PointDirection::output, } when { ActivityPetriNet(a, pn, arch); } where { if nt->notEmpty() then InputPinPort(nt, tpin) OutputPinPort(nt, tpout) bpts->append(tpin); bpts->append(tpout); endif InputPinPort(nr, rpin); OutputPinPort(nr, rpout); InputPinPort(na, apin); OutputPinPort(na, apout); bpts->append(pin); bpts->append(pout); bpts->append(tpin); bpts->append(tpout bpts->append(apin); bpts->append(apout); } *