创建自定义块可以
您可以创建自定义收到
和传输
块使用硬件目前不支持的车辆网络工具箱™。金宝app选择下列工作流程之一。
使用仿真软件总线的块金宝app(推荐)——使用仿真软件金宝app®总线信号连接块。创建函数和功能块Builder和功能块。
块使用可以消息数据类型——使用消息数据类型可以分享信息。编写和编译自己的c++代码来定义函数,和MATLAB®代码创建块。
块使用金宝app公共汽车
创建自定义块车辆网络工具箱,使用仿真软件可以巴士,你可以使用s函数生成器。金宝app充分说明建筑S-functions和街区这样,明白了使用总线功能构建器创建一个函数(金宝app模型)。下面的示例使用该主题中概述的步骤。
这个例子展示了如何构建两个自定义块发送和接收消息。这些块使用仿真软件消息总线与可以包并解金宝app包块。
创建一个消息总线仿金宝app真软件MATLAB可以或FD工作区。
canMessageBusType
或
canFDMessageBusType
这些功能在工作区中创建一个变量命名
CAN_MESSAGE_BUS
或CAN_FD_MESSAGE_BUS
,分别。你稍后使用这个变量来构建S-functions。打开一个新的空白模型在仿真软件中,并添加到你的一个模金宝app型s函数生成器(金宝app模型)块的块库。
双击功能建筑块开放对话框。第一个函数构建传输。
在对话框的设置中,定义一个函数名称和指定使用仿真软件总线。金宝app
函数名称:
CustomCANTransmit
数据属性:输入端口:总线:
在
总线名称:CAN_MESSAGE_BUS
如下图所示。可以FD组总线名称
CAN_FD_MESSAGE_BUS
。
在你的函数和积木,使用另一个对话框中的选项卡来定义的代码交互与您的设备驱动程序,并删除不必要的端口。
点击构建。代码文件放置在MATLAB的当前工作目录。
新的功能建筑块在你的模型中,并重复的步骤构建一个名为CustomCANReceive的功能。使用相同的设置,除了输入和输出端口。receive块输出端口使用相同的总线名称传递函数的输入。
建立接收函数,从您的模型和删除两个功能建筑块。在这一点上,您可以使用s函数生成器生成的文件为一组模板,您可以进一步编辑和编译自己的工具。或者,您可以使用功能(金宝app模型)块运行功能。
添加两个功能块模型。开每一块,并设置其模型参数s函数名称字段,所以你有一个每个CustomCANTransmit CustomCANReceive。
此时,您可以创建一个要访问的每个块的面具为您的硬件参数。这个例子不需要为这些块面具。
其他必要的块添加到您的模型,包括:
组块参数和连接。
一个典型的模型可能看起来像这样。在这里常数(金宝app模型)块和一个显示(金宝app模型)块允许连接和模型的验证行为。
块使用可以消息数据类型
请注意
为便于设计和利用以上仿真软件功能,建议您使用仿真软件公共汽车而不是可以在可能的消息数据类型。金宝app看到使用仿真软件总线的块金宝app。
创建自己的阻塞与其他车辆使用网络工具箱,可以使用一个自定义的数据类型。注册这个定义可以在c++函数数据类型。
请注意
你必须使用一个c++文件类型功能(. cpp
)创建自定义块使用可以消息数据类型。使用一个c文件类型功能(。c
)可能会导致链接器错误。
注册和使用自定义数据类型,可以在你的s函数:
定义
IMPORT_SCANUTIL
进口所需的符号标识符当你编译功能:#定义IMPORT_SCANUTIL
包括
can_datatype.h
头位于
顶部的功能:matlabroot
\ \ vnt \ vntblks \工具箱包括\ candatatype# include“can_datatype.h”
请注意
头
can_message.h
包括由can_datatype.h
位于
。看到matlabroot
\工具箱\ \ \ src \ scanutil \可以共享can_message.h
申请信息CAN_MESSAGE
和CAN_DATATYPE
结构。在建立的链接你的功能
scanutil.lib
位于
文件夹中。共享库matlabroot
\ \ vnt \ vntblks \ lib \工具箱拱
scanutil.dll
位于matlabroot
\ bin \拱
调用这个函数在
mdlInitializeSizes
(金宝app模型)初始化自定义数据类型:mdlInitialize_CAN_datatype(年代);
自定义数据类型ID使用
ssGetDataTypeId
(金宝app模型):dataTypeID = ssGetDataTypeId(年代,SL_CAN_MESSAGE_DTYPE_NAME);
做下列之一:
创建一个接收块,设置输出端口数据类型
CAN_MESSAGE
:ssSetOutputPortDataType (S portID dataTypeID);
创建一个传输块,设置输入端口类型
CAN_MESSAGE
:ssSetInputPortDataType (S portID dataTypeID);
另请参阅
功能
相关的话题
- C / c++函数基础知识(金宝app模型)
- 使用总线功能构建器创建一个函数(金宝app模型)