主要内容

基于事件可以在MATLAB通信

这个示例向您展示如何配置可以通道和消息传递信息的活动。它使用MathWorks®虚拟通道连接在一个回路配置。

这个例子是基于发送和接收消息在一个虚拟的网络,可以运行浏览器结合可能会提供一个更完整的理解代码是做什么。运行浏览器,打开,它使用相同的接口配置为接收通道的例子。确保启动前探险家开始运行示例,以便发生时看到所有的消息。

这个例子描述了工作流网络可以,但这个概念也适用于一个可以FD网络。

创建可以通道

创建渠道消息传输和接收。

txCh = canChannel (“MathWorks”,“虚拟1”1);rxCh = canChannel (“MathWorks”,“虚拟1”2);

打开DBC-file包含消息和信号定义,并将它附加到可以两个渠道。

db = canDatabase (“CANDatabaseEvent.dbc”);txCh。数据base = db; rxCh.Database = db;

创建可以消息

创建可以消息EngineMsg使用数据库的信息。

msgEngineMsg = canMessage (db,“EngineMsg”)
msgEngineMsg =消息与属性:信息识别ProtocolMode:“可以”ID: 100扩展:0的名字:“EngineMsg”数据细节时间戳:0数据:[0 0 0 0 0 0 0 0]的信号:[1×1 struct]长度:8协议标志错误:0远程:0其他信息数据库:[1×1。数据库用户数据:[]

基于事件的传输的配置信息

支持基于事件的消息传输,使用transmitEvent命令指定传输通道,通道上的信息登记,一个状态值。

transmitEvent (txCh msgEngineMsg,“上”);

启动基于事件的传播

开始接收和传输通道。

开始(rxCh);开始(txCh);

写新值数据房地产和直接VehicleSpeed信号触发自动基于事件的消息在CAN总线上的传输。

msgEngineMsg。数据= [250 100 0 0 20 0 0 0]; pause(1); msgEngineMsg.Signals.VehicleSpeed = 60; pause(1);

停止传输和接收通道。

停止(txCh);停止(rxCh);

分析基于事件的传播的行为

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

rxCh.MessagesAvailable
ans = 2

接收可用的消息。检查消息和注意,每个数据值集之前数据财产。

msgRx =接收(rxCh,正无穷,“OutputFormat”,“时间表”)
msgRx =2×8的时间表时间ID扩展名称数据长度误差信号远程_______ ___ ________ _________________ ________________________ ______ _______专攻0.045004秒100假{‘EngineMsg} {(250 100 0 0 0 0 0)} 8 {1×1 struct}假假1.0556秒100假{‘EngineMsg} {[250 100 0 0 60 0 0 0]} 8 {1×1 struct}假假

检查信号和注意的第二个实例VehicleSpeed数据值集之前吗VehicleSpeed信号。

信号= canSignalTimetable (msgRx)
信号=2×2的时间表0.045004秒时间VehicleSpeed EngineRPM _______ _______ ____ 20 2835 1.0556秒60 2835

消息视图配置为基于事件的传播

看到消息上配置自动变速器的传输通道,使用transmitConfiguration命令。

transmitConfiguration (txCh)
周期性消息事件消息ID扩展名称没有数据- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 100假EngineMsg 250 100 0 0 60 0 0 0

关闭通道和DBC-File

关闭访问渠道和DBC-file清算他们的工作空间变量。

清晰的rxChtxCh清晰的db