为目标计算机的事件创建监听器
本示例演示了如何为在 Simulink® Real-Time™ 目标计算机上发生的事件定义 MATLAB® 监听器。监听器通过一个代表目标计算机的 Target 对象来检测事件。本示例中,监听器监听的 Target 对象事件包括:
目标计算机已连接
目标计算机已断开连接
目标计算机上已安装实时应用程序
目标计算机已开始运行实时应用程序
目标计算机停止运行实时应用程序
注意:与其定义监听器,不如使用 EventManager 组件来管理一组事件观察者和回调函数。有关详细信息,请参阅EventManager。
创建目标对象并连接
该代码创建了一个 Target 对象来表示目标计算机,并连接到该目标计算机。在命令行窗口中,输入:
tg = slrealtime; connect(tg);
开放模型并编译实时应用
为了演示如何处理与目标对象和实时应用程序相关的事件,本示例使用了模型 slrt_ex_osc。
model = 'slrt_ex_osc'; open_system(model); modelSTF = getSTFName(tg); set_param(model,"SystemTargetFile",modelSTF);

构建实时应用程序
要构建模型,请在命令行窗口中输入:
evalc('slbuild(model)');
创建目标对象和事件监听器
该代码为某些目标计算机事件定义了 MATLAB 监听器。
listenerConnected = listener(tg,'Connected',@(~,~)disp('Connected to target computer')); listenerDisconnected = listener(tg,'Disconnected',@(~,~)disp('Disconnected from target computer')); listenerLoaded = listener(tg,'Loaded',@(~,~)disp('Loaded application on target computer')); listenerStarted = listener(tg,'Started',@(~,~)disp('Started application on target computer')); listenerStopped = listener(tg,'Stopped',@(~,~)disp('Stopped application on target computer'));
监听目标对象事件发出的监听器消息
该代码执行一系列目标计算机操作,并在各操作之间设置暂停,以便留出时间观察事件状态消息。
load(tg,model); start(tg); stop(tg); disconnect(tg);
Loaded application on target computer Started application on target computer Importing Log file 1 of 1 ... Stopped application on target computer Disconnected from target computer
运行脚本以观察监听器的运行情况
要观察 Target 对象事件监听器的运行情况,请运行该脚本。
run CreateListenersForTargetComputerEventsExample
关于目标对象事件的更多信息
要列出可用的 Target 对象事件,请使用 events(tg) 函数。有关目标计算机事件的信息,请参阅Target对象事件列表。有关 MATLAB 监听器的更多信息,参阅 事件和侦听程序概述。
bdclose(model);