主要内容

本页采用了机器翻译。点击此处可查看英文原文。

addFragment

将片段添加到操作数中

自 R2024b 起

    说明

    fragment = addFragment(operand,fragmentType) fragmentType 类型的片段添加到 operand 指定的操作数中。

    示例

    fragment = addFragment(___,Name=Value) 支持上述语法中的输入参量,且可使用一个或多个名称-值参量指定选项。例如,要在现有片段后添加片段,可将 After 设置为有效的片段对象。

    示例

    示例

    全部折叠

    以编程方式创建一个序列图,描述行人在有交通信号灯的十字路口过马路的情景。

    要了解有关序列图的更多信息,请参阅以交互方式编写序列图

    打开交通灯示例

    加载 TLExample 架构模型。

    model = systemcomposer.openModel('TLExample');

    TLExample architecture model with various components.

    创建一个名为 'InhibitCopy' 的新序列图。

    diagram = model.addInteraction('InhibitCopy');

    添加生命线

    为架构中的每个组件添加生命线。

    sourceLifeline = diagram.addLifeline('TLExample/source');
    pollerLifeline = diagram.addLifeline('TLExample/poller');
    switchLifeline = diagram.addLifeline('TLExample/switch');
    lampLifeline = diagram.addLifeline('TLExample/lampController');
    controllerLifeline = diagram.addLifeline('TLExample/controller');

    获取交互的根片段和根操作数。

    rootFragment = diagram.RootFragment;
    rootOperand = rootFragment.Operands(1);

    添加消息和片段

    向根操作数添加两条消息。

    sourceToPollerMsg = rootOperand.addMessage(sourceLifeline, "switchout", pollerLifeline, "sw", "rising(sw-1){sw==1}");
    pollerToSwitchMsg = rootOperand.addMessage(pollerLifeline, "switchEvent", switchLifeline, "switchEvent", "switchEvent{switchEvent==1}");

    向根操作数添加一个条件片段。

    altFrag = rootOperand.addFragment('Alt');

    为条件片段的每个操作数指定保护表达式。

    op1 = altFrag.Operands(1);
    op1.Guard = "switch/inhibit==0";
    op2 = altFrag.addOperand("switch/inhibit==1");

    向条件片段的第一个操作数添加两条消息。

    switchToLampControllerMsg1 = op1.addMessage(switchLifeline, "lampColor", lampLifeline, "switchPed", "switchPed{switchPed==1}");
    switchToControllerMsg = op1.addMessage(switchLifeline, "switchPush", controllerLifeline, "pedRequest", "pedRequest");

    在条件片段的第二个操作数中添加一条消息。

    switchToLampControllerMsg2 = op2.addMessage(switchLifeline, "lampColor", lampLifeline, "switchPed", "switchPed{switchPed==2}");

    添加持续时间约束

    在条件片段第一个操作数中的两个消息之间添加一个持续时间约束。

    startEvent = switchToLampControllerMsg1.End;
    endEvent = switchToControllerMsg.End;
    expression = "t > 12msec";
    durationConstraint = diagram.addDurationConstraint(startEvent, endEvent, expression);

    打开序列图

    打开新创建的序列图。

    open(diagram);

    Newly created sequence diagram called 'InhibitCopy'.

    输入参数

    全部折叠

    操作数,指定为 systemcomposer.interaction.Operand 对象。

    片段类型,指定为其中一个值:

    • "Opt" - 可选片段

    • "Alt" - 替代片段

    • "Loop" - 循环片段

    • "Par" - 平行片段

    • "Strict" - 弱顺序片段

    • "Seq" - 严格顺序片段

    数据类型: char | string

    名称-值参数

    全部展开

    将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

    示例: addFragment(op, "Loop", MinIterations=1, MaxIterations=5)

    片段

    全部展开

    序列图中用于放置新片段的元素,指定为这些对象之一:

    示例: addFragment(op, "Seq", After=frag)

    新片段中操作数的数目,指定为 double 数值。

    只有 systemcomposer.interaction.AltFragmentsystemcomposer.interaction.ParFragment 对象支持多个操作数。

    示例: addFragment(op, "Alt", NumOperands=2)

    数据类型: double

    Loop 片段

    全部展开

    循环片段的最小重复次数,指定为 double 数值。

    示例: addFragment(op, "Loop", MinIterations=1, MaxIterations=5)

    数据类型: double

    循环片段的最大重复次数,指定为双精度值。

    示例: addFragment(op, "Loop", MinIterations=1, MaxIterations=5)

    数据类型: double

    详细信息

    全部折叠

    版本历史记录

    在 R2024b 中推出