怎么调试matlab函数,Matlab控件回调函数编写与软件调试

一、引言 在完成了遥控原理Matlab程序实现、可视化界面设计与控件使用之后,本篇讲述第三大模块:控件回调函数的编写与软件的调试。 控件回调函数的编写与软件的调试是个实践性很强的工作,需要不断的实践和摸索,建议读者对照源代码Telecommand_demo.m阅读

一、引言

在完成了遥控原理Matlab程序实现、可视化界面设计与控件使用之后,本篇讲述第三大模块:控件回调函数的编写与软件的调试。

控件回调函数的编写与软件的调试是个实践性很强的工作,需要不断的实践和摸索,建议读者对照源代码Telecommand_demo.m阅读本篇,细细体会各控件之间的逻辑关系,并按照文中提示自己上机调试。

二、预备工作

在正式开始编写各控件的回调函数之前,应当首先完成如下预备工作:

1.程序初始化完善

程序初始化的工作,是在主函数Telecommand_demo中完成,需要在程序自动生成的源代码基础上增加一部分语句,完善程序的初始化功能。

完善后的主函数Telecommand_demo如下:

function varargout = Telecommand_demo(varargin)

global handles    % 设定句柄handles为全局变量

if nargin == 0

fig = openfig(mfilename,'reuse');

set(fig,'Color',[1 1 0.76], 'Name', '遥控系统原理及工作过程演示');

% 背景颜色和图形名字的设定

handles = guihandles(fig);

guidata(fig, handles);

if nargout > 0

……    (该部分为程序自动生成,故此处省略)

end

程序中有注释的部分均为添加的指令。其中,设定句柄为全局变量,以便控件之间信息的获取和传递,这是GUIDE程序设计中一项重要的技巧,将在下文重点讲述。

2.控件pushbutton_step回调函数pushbutton_step_Callback

运行此时的程序Telecommand_demo,其界面只提供“单步执行”、“自动演示”和“退出程序”三个指令选项,必须首先进入“单步执行”的界面进行回调函数的编写,故应当首先编写控件pushbutton_step 的回调函数pushbutton_step_Callback。

显然pushbutton_step的回调函数功能很简单,即:显示单步执行的控件“开始”、“发送”、“接收”、“执行”,隐藏控件“单步执行”、“自动演示”和“退出程序”。基本方法是:利用handles访问相应控件的句柄,并通过set语句进行相应属性的设置。

控件pushbutton_step回调函数编写如下:

function varargout = pushbutton_step_Callback(h, eventdata, handles, varargin)

set(handles.pushbutton_step, 'Visible', 'off', 'Userdata',[0 0 0 0 0 0 0])

% 将“单步执行”控件隐藏,并给其属性Userdata赋初值[0 0 0 0 0 0 0]

set(handles.pushbutton_continous, 'Visible', 'off')   % 将“自动演示”控件隐藏

set(handles.pushbutton_exit, 'Visible', 'off')        % 将“退出程序”控件隐藏

set(handles.popupmenu_NO, 'Userdata',[0 0])  % 初始化控件popupmenu_NO的用户数值Userdata

set(handles.pushbutton_start, 'Visible', 'on')    % 显示控件“开始”、“发送”、“接收”、“执行”

set(handles.pushbutton_send, 'Visible', 'on')

set(handles.pushbutton_receive, 'Visible', 'on')

set(handles.pushbutton_do, 'Visible', 'on')

在Matlab的命令窗口输入“help set”,系统将罗列出set语句的所有基本语法,其最为常用的句式是:SET(H,‘PropertyName’,PropertyValue),H表示句柄,PropertyName表示属性名称,PropertyValue则为赋给PropertyName的属性值。这段程序显然就是通过句柄访问控件,并将属性值on(或off)赋给属性Visible,实现控件的隐藏及显示功能。

除此之外,还有将数组[0 0 0 0 0 0 0]和[0 0]分别赋给控件pushbutton_step和控件popupmenu_NO的属性Userdata(用户数据),,主要用来判断是否已完成相应操作,这种设计思想将在下文中介绍。

3.控件pushbutton_start回调函数pushbutton_start_Callback

运行程序Telecommand_demo,在界面点击“单步执行”,即可进入单步执行的界面。按照软件控件的设计,此时只有控件显示“开始”,其余的控件(如:按钮、弹出式菜单)均点击不相应。故在控件pushbutton_start的回调函数下实现指令参数功能的选择,需要将设置控件Popupmenu的Enable属性。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值