主要内容

本页采用了机器翻译。点击此处可查看英文原文。

getCallbackDataForSignal

获取实时仪表对象中某个信号的回调数据

说明

[time,data] = getCallbackDataForSignal(instrument_object,event_data,blockPath,portIndex,Name,Value) 通过模块路径和端口索引,从 Speedgoat® 目标计算机获取某个信号的回调数据。

示例

[time,data] = getCallbackDataForSignal(instrument_object,event_data,signalName) 通过信号名称从目标计算机获取该信号的回调数据。回调函数的 eventData 参数包含自上次回调执行以来目标计算机上所有可用的新数据。

如果在调用 addSignal 函数时为 Decimation or BusElement 参量设置了值,则针对该信号的 getCallbackDataForSignal 函数调用必须为这些参量设置相同的值。

有关事件和回调的信息,请参阅Add Callbacks for Target Computer Events示例中的Simulink Real-Time App Generator部分。

示例

示例

全部折叠

通过实时应用程序文件中信号的模块路径和端口索引,获取该信号的回调数据。由于 getCallbackDataForSignal 函数将事件数据作为参量,因此应在 slrealtime.instrument 回调函数内部调用该函数。

mldatxFileName = 'slrt_ex_pendulum_100Hz.mldatx';
hInst = slrealtime.Instrument(mldatxFileName);
connectCallback(hInst,@my_callback);
addSignal(hInst,'slrt_ex_pendulum_100Hz/cartposition',1);
% . . . inside the my_callback (an slrealtime.instrument callback), 
% . . . you can call getCallbackDataForSignal
[cv_time,cv_data] = getCallbackDataForSignal(hInst,hEvnt,'slrt_ex_pendulum_100Hz/cartposition',1);

使用实时应用程序文件中信号的名称,获取该信号的回调数据。由于 getCallbackDataForSignal 函数将事件数据作为参量,因此应在 slrealtime.instrument 回调函数内部调用该函数。

mldatxFileName = 'slrt_ex_pendulum_100Hz.mldatx';
hInst = slrealtime.Instrument(mldatxFileName);
connectCallback(hInst,@my_callback);
addSignal(hInst,'cartposition');
% . . . inside the my_callback (an slrealtime.instrument callback), 
% . . . you can call getCallbackDataForSignal
[cv_time,cv_data] = getCallbackDataForSignal(hInst,hEvnt,'cartposition');

输入参数

全部折叠

要创建仪表对象,请使用 Instrument 函数。

示例: hInst

eventData 对象标识了触发回调操作的事件。

示例: hEvnt

对于选定的模块,gcb 返回完整的模块路径名称。

示例: slrt_ex_pendulum_100Hz/Pendulum

对于所选信号,其输出端口索引和信号名称可在 Simulink Real-Time 探索器或模型数据编辑器中的信号层次结构中查看。

示例: 1

对于所选信号,端口索引和信号名称可在 Simulink Real-Time explorer 或模型数据编辑器中的信号层次结构中查看。

示例: cartposition

Name,Value 参数对用于选择要添加到仪表对象 instrument_object 的信号属性,并为这些属性设置数值。

示例: 'Decimation',2

名称-值参数

全部折叠

将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称 - 值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

如果使用的是 R2021a 之前的版本,请使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: 'Decimation',2

指定要流式传输的非虚拟总线中的特定元素。BusElement 值的语法:

  • 以所选索引开始,用于总线数组 '(index).',或为标量总线信号时为空

  • 包含从第一层到叶元素的路径

  • 用句点分隔层次结构的每个级别 '.'

  • 具有叶子作为末层

  • 表示路径中总线数组的索引为 '(index)'

示例: 'BusElement','u1'

示例: 'BusElement','u4(1).b'

示例: 'BusElement','(1).a'

为信号指定一个抽取值。抽取的允许值范围为 1 至 256。

示例: 'Decimation',2

输出参量

全部折叠

时间值是指目标计算机返回的当前时间。

该数据值是目标计算机返回的当前信号数据。

版本历史记录

在 R2020b 中推出