主要内容

使用MATLAB系统阻塞进程消息有效负载

这个例子展示了如何发送、接收和处理消息使用MATLAB系统块。作者使用系统对象块模型自定义行为来发送和接收消息和操作消息有效负载。

装载和打开模型

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

open_system (“slexMessageArrivalExample”);

使用getInterfaceImpl系统对象API指定消息端口

getInterfaceImpl本例中使用指定输入和输出消息的端口在MATLAB系统块消息发送者和接收者的消息。消息发送者,getInterfaceImpl用于定义MATLAB系统块的输出一条消息。这个动作提示系统对象创建一个消息输出。消息接收器,getInterfaceImpl用于定义系统对象作为消息的输入和输出数据。

%函数来发送消息函数界面= getInterfaceImpl(~)导入matlab.system.interface。*;界面=输出(“着干活”,消息);结束
%函数接收消息和输出数据函数接口= getInterfaceImpl (obj)导入matlab.system.interface。*;界面=[输入(“三机”消息),输出(“着干活”数据),输出(“out2”、数据);结束

设置和样品时间的分布函数

以下四个繁殖专家需要设置消息发送者:getOutputSizeImpl,getOutputDataTypeImpl,isOutputComplexImpl,isOutputFixedSizeImpl

在这个示例中,消息队列的最大容量为16的消息。随机数发生器的样品时间为0.1。接收机的采样时间为1。消息接收器样本时间在MATLAB中设置系统块使用getSampleTimeImplAPI。

函数sts = getSampleTimeImpl (obj) sts = createSampleTime (obj,“类型”,“离散”,“SampleTime”,obj.SampleTime);结束

模拟模型和评估结果

范围块显示结果。这些结果表明,当你运行模拟,随机数发生器产生一个数字大于0 50%的时间,如预期。