主要内容

事件触发可以消息传输

此示例显示了如何使用自动化的CAN消息传输功能的车辆网络工具箱™在事件上发送消息。它使用MathWorks Virtual CAN频道在环回配置中连接。正如该示例的基础上,基于发送和接收可以在虚拟网络上的消息,运行Can Explorer结合可以更完全了解代码正在进行的内容。要运行CAN资源管理器,请打开并配置它以使用与示例的接收通道相同的接口。在开始运行该示例之前,请务必启动CAN Explorer,以便在发生时查看所有消息。

创建CAN频道

创建可以在其中使用自动消息发送命令的频道。

txch = canchannel('mathworks''虚拟1',1);rxch = canchannel('mathworks''虚拟1',2);

在此示例中,您将使用CAN数据库文件来定义和解码消息。打开数据库并将其附加到CAN频道。

db = candatabase('candatabaseevent.dbc');txch.database = db;rxch.database = db;

创建CAN消息

您可以使用数据库信息创建用于注册事件发送的CAN消息。

Msgenginemsg = CanMessage(DB,'Enginemsg'
Msgenginemsg =具有属性的消息:消息识别协议介质:'CAN'ID:100扩展:0名称:'Enginemsg'数据详细信息时间戳:0数据:[0 0 0 0 0 0 0 0]信号:[1x1结构]长度:8协议标志错误:0 Remote:0其他信息数据库:[1x1 can.database] userdata:[]

配置事件传输的消息

要为事件发送配置消息,请使用传递仪命令指定通道的命令,要在通道上注册的消息,以及模式值。

传输(TXCH,Msgenginemsg,'在');

启动事件消息发送

启动通道并将新值写入数据属性或直接向信号触发基于事件的基于事件的消息传输到CAN总线。

开始(RXCH);开始(TXCH);msgenginemsg.data = [250 100 0 0 20 0 0 0];暂停(1);msgenginemsg.signals.vehiclespeed = 60;暂停(1);停止(TXCH);停止(RXCH);

分析事件传输行为

接收信道现在具有两个可用的消息,对应于两个传输的两个更新。

rxch.
RXCH =具有属性的频道:设备信息DeviceVendor:'Mathworks'设备:'Virtual 1'DeviceChannelIndex:2 DeviceerIalNumber:0 ProtocolMode:'CAN'状态信息运行:0 MessageAvailable:2 MessageStrace:0 MessageStransMited:0初始化:1初始化:2-feb-2021 17:22:13 Filterhistory:'标准ID过滤器:允许全部|扩展ID筛选器:允许所有'通道信息BusStatus:'n / a'silentmode:0 transceivername:'n / a'收发器:'n / a'recovererrorcount:0 TransitErrorcount:0 BusSpeed:500000 SJW:[] Tseg1:[]tseg2:[] numofsamples:[]其他信息数据库:[1x1 can.database] userdata:[]

接收并检查每条消息以查看每个消息都有先前设置的数据值。

Msgrx =接收(RXCH,INF,'输出格式''时间表'
msgrx =.2×8时间表时间ID扩展名称数据长度信号错误远程___________ ___ ___________________________________________________________________________0.07335 sec 100 false {'enginemsg'}} 8 {1x1 struct} false false 1.1006 sec 100 false{'Enginemsg'} {[250 100 0 0 60 0 0 0]} 8 {1x1结构}假假
信号= CansignAligmetable(MSGRX)
信号=2×2时间表时间车辆繁忙enginerpm ___________ _________________________0.07335秒20 2835 1.1006 SEC 60 2835

查看为事件发送配置的消息

要查看在频道上进行事件发送的消息,请使用传输控制文件命令。

传输控制(TXCH)
定期消息无事件消息ID扩展名称数据-------- ----------------------------100假Enginemsg 250 100 0 0 0 60 0 0 0