主要内容

事件触发CAN信息传输

此示例演示如何使用车辆网络工具箱的自动CAN消息传输功能™ 在事件发生时发送消息。它使用以环回配置连接的MathWorks虚拟CAN通道。由于此示例基于在虚拟网络上发送和接收CAN消息,因此结合运行CAN Explorer可以更全面地了解代码的作用。要运行CAN Explorer,请打开并将其配置为使用与示例的接收通道相同的界面。确保在开始运行示例之前启动CAN Explorer,以便在出现所有消息时查看它们。

创建CAN通道

创建要在其上使用自动消息传输命令的CAN通道。

txCh=canChannel(“数学作品”,“虚拟1”1);rxCh = canChannel (“数学作品”,“虚拟1”, 2);

在本例中,您将使用CAN数据库文件来定义和解码消息。打开数据库并将其连接到CAN通道。

db=canDatabase(“CANDatabaseEvent.dbc”); txCh.Database=db;rxCh.Database=db;

创建CAN消息

可以使用数据库信息创建can消息来注册事件传输。

msgEngineMsg = canMessage (db,“引擎管理器”)
msgEngineMsg=具有属性的消息:消息标识协议模式:“CAN”ID:100扩展:0名称:“EngineMsg”数据详细信息时间戳:0数据:[0 0 0 0]信号:[1x1结构]长度:8协议标志错误:0远程:0其他信息数据库:[1x1 CAN.Database]用户数据:[]

为事件传输配置消息

要配置用于事件传输的消息,请使用传送器命令指定通道、要在通道上注册的消息和模式值。

变速器(txCh、MSGENGENEMG、,“开”);

启动事件消息传输

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

启动(rxCh);启动(txCh);msgenginemg.Data=[250 100 0 0 20 0 0 0];暂停(1);msgenginemg.Signals.VehicleSpeed=60;暂停(1);停止(txCh);停止(rxCh);

分析事件传输行为

接收通道现在有两个可用的消息,对应于导致两次传输的两个更新。

rxCh
rxCh = Channel with properties: Device Information DeviceVendor: 'MathWorks' Device: 'Virtual 1' DeviceChannelIndex: 2 DeviceSerialNumber: 0 ProtocolMode: 'CAN' Status Information Running: 0 MessagesAvailable: 2 MessagesReceived: 0 messagesstranscommitted: 0 InitializationAccess: 1 InitialTimestamp: 23- 2 -2021 17:22:13 FilterHistory:'Standard ID Filter: Allow All | Extended ID Filter: Allow All' Channel Information BusStatus: 'N/A' SilentMode: 0 TransceiverName: 'N/A' TransceiverState: 'N/A' ReceiveErrorCount: 0 TransmitErrorCount: 0 BusSpeed: 500000 SJW: [] TSEG1: [] TSEG2: [] NumOfSamples: [] Other Information Database: [1x1 can.]数据库用户数据:[]

接收并检查每条消息,以查看每条消息是否具有先前设置的数据值。

msgRx = receive(rxCh, Inf,)“输出格式”,“时间表”)
msgRx =2×8时刻表UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU uuu0.07335秒100假{'EngineMsg'}{[25010002000]}8{1x1结构}假1.1006秒100假{'EngineMsg'}{[2501000600]}8{1x1结构}假假
信号=信号时刻表(msgRx)
信号=2×2时间表计时车速度引擎PM uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

查看为事件传输配置的消息

要查看通道上配置的用于事件传输的消息,请使用传输配置指挥部。

transmitConfiguration (txCh)
定期消息无事件消息ID扩展名称数据--------------------------------------------------100错误引擎MSG 250 100 0 0 60 0 0 0 0