文档

自定义总线对象导入和导出

您可以使用总线编辑器将总线对象导入到基本工作空间,并从基本工作空间导出总线对象,如保存和导入总线对象.默认情况下,总线编辑器可以将总线对象保存到MATLAB,也可以从MATLAB导入总线对象®代码文件或mat文件。文件必须位于可以使用普通工具访问的位置开放保存对话框。

您可以编写定制的MATLAB函数,提供可选的导入或导出(或两者)功能。例如,您可以编写一个定制函数,以组织使用的格式将对象存储为数据库中的记录。

在设计和实现自定义总线对象导入或导出功能后,使用Simulink万博1manbetx®自定义管理器的注册功能。注册过程为总线编辑器建立自定义导入和导出函数作为回调导入到基础工作区导出到文件命令。回调将替换总线编辑器的默认功能。定制总线编辑器的导入和导出功能对其他MATLAB或Simulink函数没有影响。万博1manbetx取消导入或导出定制将恢复该操作的默认总线编辑器功能,而不会影响其他操作。

要从外部C代码创建总线对象,不需要进行定制。看到从外部C代码创建总线对象

必需的背景知识

定制总线对象的导入或导出要求您理解:

  • MATLAB语言和编程技术

  • 万博1manbetxSimulink总线对象语法

  • 将总线对象转换成的专有格式,以及访问存储对象的工具所必需的技术。

  • 用于从用户获取数据的任何特定于平台的技术,例如存储或访问总线对象所在位置的名称。

编写总线对象导出函数

自定义总线对象导出函数至少需要一个参数。您可以使用其他参数来处理函数的特殊操作。第一个参数的值是一个单元格数组,其中包含总线编辑器选择的所有总线对象的名称。您可以使用函数、全局变量或任何其他MATLAB技术为任何附加参数提供值。自定义导出函数的一般算法为:

  1. 迭代第一个参数中的对象名称列表。

  2. 获取与每个名称对应的总线对象。

  3. 将总线对象转换为专有语法。

  4. 将转换后的总线对象保存在本地存储库中。

这个例子显示了这样一个导出回调函数的语法外壳是:

函数myExportCallBack(selectedBusObjects) disp('自定义导出被调用了!');for idx = 1:length(selectedBusObjects) disp([selectedBusObjects{idx} ' was selected for export.']);结束

虽然这个函数不导出任何总线对象,但它在语法上是有效的,可以注册。它接受总线对象名称的单元格数组,遍历它们,并打印每个名称。一个可操作的导出函数:

  • 使用每个名称从基本工作空间检索相应的总线对象

  • 将对象转换为专有格式

  • 存储转换后的对象。

附加的逻辑是特定于企业的。

编写总线对象导入函数

自定义总线对象导入函数可以接受零个或多个参数来执行其任务。可以使用函数、全局变量或任何其他MATLAB技术来提供参数值。此外,该函数还可以向用户轮询信息,例如在何处获取总线对象信息。自定义总线对象导入函数的一般算法是:

  1. 从本地存储库获取总线对象信息。

  2. 将每个总线对象定义转换为万博1manbetx仿真软件。公共汽车对象。

  3. 将每个总线对象保存到MATLAB基础工作区。

这个例子显示了一个导入回调函数的语法shell是:

function myImportCallBack disp('自定义导入被调用了!');

尽管这个函数不导入任何总线对象,但它在语法上是有效的,可以向Simulink Customization Manager注册。万博1manbetx操作导入函数:

  • 获取在何处获取要导入的总线对象的指定

  • 将每个总线对象转换为万博1manbetx仿真软件。公共汽车对象

  • 在基本工作区中存储对象

附加的逻辑是特定于企业的。

注册自定义

要自定义总线对象导入或导出,请提供自定义注册功能,在启动Simulink软件或刷新Simulink自定义时输入和配置自定义管理器。万博1manbetx使用自定义注册函数的步骤如下:

  1. 创建一个名为sl_customization.m包含自定义注册功能。或者,您可以使用现有的定制文件。

  2. 在文件的顶部,创建一个名为sl_customization它接受一个参数(或在现有文件中使用自定义函数)。当调用该函数时,此参数的值是Customization Manager。

  3. 配置sl_customization函数设置importCallbackFcnexportCallbackFcn为函数句柄,用于指定自定义总线对象的导入和导出函数。

  4. 如果sl_customization.m是一个新的自定义文件,把它放在MATLAB搜索路径的任何地方。两个经常使用的地点是matlabroot和当前工作文件夹。或者,您可以扩展搜索路径。

下面是一个简单的自定义注册函数示例:

function sl_customization(cm) disp('我的定制文件已加载');cm.BusEditorCustomizer.importCallbackFcn = @myImportCallBack;cm.BusEditorCustomizer.exportCallbackFcn = @ (x) myExportCallBack (x);

当Simu万博1manbetxlink启动时,它遍历MATLAB搜索路径,寻找名为sl_customization.m.万博1manbetxSimulink加载它找到的每个这样的文件(不仅仅是第一个文件)并执行sl_customization函数的顶部,建立函数指定的自定义。

执行示例自定义函数将显示一条消息(实际函数可能不会显示这条消息)。该函数确定总线编辑器使用名为myImportCallBack ()来导入总线对象和一个名为myExportCallBack (x)导出总线对象。

当注册发生时,回调注册中出现的句柄对应的函数可以是未定义的。但是,它必须在总线编辑器调用函数时定义。同样的范围和要求适用于用于提供附加参数值的任何函数或全局变量。

其他函数也可以存在于sl_customization.m文件。然而,Simulink软件万博1manbetx忽略名为sl_customization.m,除非它启动或刷新自定义。对定制文件中函数的任何更改都将被忽略,直到其中一个事件发生。相比之下,对MATLAB路径上的其他MATLAB代码文件的更改将立即生效。

有关更多信息,请参见注册自定义

改变自定义

中建立的句柄可以更改sl_customization功能:

  • 更改函数以指定更改的句柄

  • 保存功能

  • 通过执行刷新自定义sl_refresh_customizations

万博1manbetxSimulink遍历MATLAB路径并重新加载sl_customization.m在每个文件中执行第一个函数,就像在Simulink启动时一样。万博1manbetx

属性中的设置可以恢复为默认的导入或导出行为sl_customization适当的函数BusEditorCustomizer元素[]然后刷新自定义。或者,您可以通过执行以下操作在一个操作中消除这两个自定义:

cm.BusEditorCustomizer.clear

在哪里厘米之前设置为自定义管理器对象(参见注册自定义).

对导入和导出回调函数本身的更改,与对将它们注册为自定义的句柄的更改不同,会立即生效,除非它们在sl_customization.m文件本身。如果回调函数在sl_customization.m文件,它们将在下次刷新自定义时生效。将回调函数保存在单独的文件中通常会提供更灵活和模块化的结果。

另请参阅

功能

相关的话题

这个话题有用吗?