指定元素部件的动作序列的排序

您可以使用 MicroC 概要文件指定必须为元素部件执行的动作序列。

关于此任务

可以指定必须为类、隐式对象和文件执行的操作。

对元素部件执行顺序的指定基于下面这两个 MicroC 概念:

要指定模型元素可执行,请为该元素创建名为 doExecute 的方法。可以使用该方法指定特定动作序列中必须为该元素执行的动作。

注: 如果没有为可执行元素创建 doExecute 方法,那么该程序在代码生成期间将生成空的 doExecute 方法。

每个 doExecute 方法必须包含执行其计算和返回的代码,这意味着,它不能使用任何由操作系统提供的“等待”功能。

可以在元素的“特征”窗口的执行方案部分中指定该元素必须可执行或者是执行管理器。仅当您使用 MicroC 概要文件时,“特征”窗口中才会显示执行方案部分。

注: 将元素的并发性设置指定为连续时,可以决定该元素是否可执行以及是否是执行管理器。但是,如果将元素的并发性设置指定为活动,那么该程序将自动使该元素成为执行管理器

过程

  1. 通过单击新建按钮 “新建”按钮 创建 MicroC 项目,或者选择文件 > 新建来打开新建项目窗口。
  2. 项目名称字段中,输入项目名称。
  3. 所在文件夹字段中,单击浏览以选择项目的文件夹位置。
  4. 项目类型字段中,选择 MicroC 概要文件,然后在项目设置中选择 CodeCentric752C
  5. 单击确定。如果指定的位置不存在,那么产品将询问是否要创建该位置。单击 本产品生成 MicroC 项目。
  6. 使用图工具将类创建或添加到模型中。要向类分配执行方案,请突出显示类,右键单击并从下拉列表中选择特征
    “特征”窗口 - 已启用“执行方案”复选框
  7. 对于执行管理器,请在“特征”窗口的部件选项卡上指定其部件的执行顺序。
    “特征”窗口 - “部件”选项卡

结果

使用 MicroC 概要文件时,如果将某个元素定义为执行管理器,那么该元素有其自己的事件队列,即使并发性设置为连续也是如此。此行为与常规行为有所不同,常规行为下,只有在“特征”窗口的常规选项卡上将模型元素的并发性设置为活动时,该元素才有事件队列。

执行管理器的事件队列大小由 C_CG::Class::ExecutionManagerEventQueueSize 属性控制。

每个执行管理器都控制其可执行部件的执行。执行管理器有自己的事件队列来处理其状态图中定义的事件,以及处理您为它的那些本身不是执行管理器的部件定义的任何状态图中定义的事件。通过修改 C_CG::Class::ExecutionManagerDispatchEventOrder 属性的值,可以指定事件处理将在元素部件的 doExecute 方法之前还是之后进行。

注: 执行管理器还处理您为它的部件的部件定义的任何状态图,直到层次结构中的最低层次。但是,就 doExecute 调用而言,执行管理器将只调用为其直接部件定义的 doExecute 方法。

如果已将一个或多个模型元素指定为可执行,但模型中并非至少有一个活动元素,那么生成的代码将包含包级 doExecute 方法。这个包级方法将调用您在包的顶层为各个可执行元素定义的 doExecute 方法。通过修改 C_CG::Configuration::UseMainTask 属性的值,可以关闭这种缺省行为。

注: 包级 doExecute 方法只调用您为该包中的顶级元素定义的 doExecute 方法。它不处理层次结构中层次较低的那些未与执行管理器相关联的可执行元素。

反馈