主要内容

使用MATLAB系统块的流程消息有效载荷

此示例显示了如何使用MATLAB系统块发送,接收和处理消息。将系统对象用于作者块来建模自定义行为以发送和接收消息并操纵消息有效载荷。

加载并打开模型

打开消息发送和接收系统的模型。该模型包含一个随机数生成器作为数据源。基于该数据,消息发送者将带有正弦波有效负载的消息发送到队列块。队列块存储消息,消息接收器将消息转换回数据。

open_system(“ slexmessagearrivalexample”);

采用getInterfaceimpl系统对象API指定消息端口

getInterfaceimpl在此示例中用于指定MATLAB系统块中的输入和输出消息端口,用于消息发送者和消息接收器。对于消息发送者,getInterfaceimpl用于将MATLAB系统块的输出定义为消息。此操作提示系统对象创建消息输出。对于消息接收者,getInterfaceimpl用于将系统对象的输入定义为消息和输出作为数据。

百分比发送消息的功能功能接口= getInterfaceimpl(〜)导入matlab.system.interface。*;接口=输出(“ out1”, 信息);结尾
%功能以接收消息和输出作为数据功能接口= getInterfaceimpl(obj)导入matlab.system.interface。*;接口= [输入(“ in1”, 信息),...输出(“ out1”,数据),输出(“ out2”, 数据)];结尾

设置传播器和样品时间

以下四个传播器需要在消息发送者中设置:getOutputsizeImpl,,,,GetOutputDatatypl,,,,ISOUTPUTCOMPLEXIMPL,,,,isOutputfixedSizeImpl

在此示例中,消息队列的最大容量为16条消息。随机数生成器的样品时间为0.1。接收器的示例时间为1。消息接收器样本时间是在MATLAB系统块中设置的getSampletimeImplAPI。

功能sts = getSampletimeImpl(obj)sts = createSampletime(obj,'类型',,,,'离散的',,,,...'采样时间',obj.sampletime);结尾

模拟模型并审查结果

范围块显示结果。这些结果表明,当您运行更多的模拟时,随机数生成器会产生大于零50%的时间,如预期的时间。