没有合适的资源?快使用搜索试试~ 我知道了~
首页Matlab控件回调函数编写与软件调试
Matlab控件回调函数编写与软件调试
需积分: 50 11 下载量 23 浏览量
更新于2023-06-08
收藏 83KB DOC 举报
Matlab控件回调函数编写与软件调试,简要介绍matlab的回调函数与gui界面调试
资源详情
资源推荐
Matlab 控件回调函数编写与软件调试
一、引言
在完成了遥控原理 Matlab 程序实现、可视化界面设计与控件使用之后,
本篇讲述第三大模块:控件回调函数的编写与软件的调试。
控件回调函数的编写与软件的调试是个实践性很强的工作,需要不断的实
践和摸索,建议读者对照源代码 Telecommand_demo.m 阅读本篇,细细体会各
控件之间的逻辑关系,并按照文中提示自己上机调试。
二、预备工作
在正式开始编写各控件的回调函数之前,应当首先完成如下预备工作:
1.程序初始化完善
程序初始化的工作,是在主函数 Telecommand_demo 中完成,需要在程序
自动生成的源代码基础上增加一部分语句,完善程序的初始化功能。
完善后的主函数 Telecommand_demo 如下:
设定句柄 为全局变量
''
! "##$%&''(''遥控系统原理及工作过程演
示'
背景颜色和图形名字的设定
)
**(该部分为程序自动生成,故此处省略)
程序中有注释的部分均为添加的指令。其中,设定句柄为全局变量,以便
控件之间信息的获取和传递,这是 GUIDE 程序设计中一项重要的技巧,将在
下文重点讲述。
2.控件 pushbutton_step 回调函数 pushbutton_step_Callback
运行此时的程序 Telecommand_demo,其界面只提供“单步执行”、“自动演
示”和“退出程序”三个指令选项,必须首先进入“单步执行”的界面进行回调函数
的编写,故应当首先编写控件 pushbutton_step 的回调函数
pushbutton_step_Callback。
显然 pushbutton_step 的回调函数功能很简单,即:显示单步执行的控件
“开始”、“发送”、“接收”、“执行”,隐藏控件“单步执行”、“自动演示”和“退出程
序”。基本方法是:利用 handles 访问相应控件的句柄,并通过 set 语句进行相
应属性的设置。
控件 pushbutton_step 回调函数编写如下:
!+
$',''-''.'
"'
将“单步执行”控件隐藏,并给其属性 . 赋初值"'
$',''-'将“自
动演示”控件隐藏
$/',''-'将“退出
程序”控件隐藏
$(0'.'"'初始化控件
(0 的用户数值 .
$','''显示控件
“开始”、“发送”、“接收”、“执行”
$','''
$','''
$','''
在 Matlab 的命令窗口输入“help set”,系统将罗列出 set 语句的所有基本语
法,其最为常用的句式是:SET(H,1PropertyName2,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 属
性。
回调函数 pushbutton_start_Callback 语句较为单一,编写如下:
!+
$(0'3'''实现 & 个
控件的指令参数可选
$'3'''
$'3'''
$'3'''
$'3'''
$4'3'''
$'3''-'控件“开始”
使能功能失效
三、控件回调函数编写与程序调试
预备工作完毕后,就可以进行“单步执行”界面中控件回调函数的编写与调
试了。此时若运行程序 Telecommand_demo,点击按钮“单步执行”将得到响
应,可进入相应界面。
应当指出的是,回调函数的编写和程序的调试同步进行,回调函数的修
改和功能的完善是需要反复调试而成,不可能一蹴而就。在完成这一部分
时,请读者务必理解程序流程及相应子函数的调用过程。
1.遥控指令与 Popupmenu 回调函数
通过选择指令参数,构建出完整的遥控指令,这是通过 Popupmenu 控件
和 Edit Text 控件实现。由于 Edit Text 控件只用来显示帧码和控制字,并不提
供相应的回调函数,故只需要编写 Popupmenu 控件的回调函数。
在进行这一部分的设计时,需要考虑到以下四个方面:选择参数后形成的
指令应和相应控制字是实时对应的关系;无序选择指令参数若应不影响指令
的生成;应实时判断指令是否选择完毕,一旦选择完毕则控件“显示”方可以使
用;指令参数不可重复选择。
按照以上的设计思想,控件 popupmenu_Head 的回调函数
popupmenu_Head_Callback 编写如下:
4!+
4将 4 和 4 设定为全局变量,以便各子
函数均可调用
44 表示帧码序列,4 表示帧码长度
4$4','获取
用户选项
54判断用户选项并给帧码 4 赋初值
#
4"########'
44
6
4"#########$$$
########'
44
$4'3''-'指令
选择后使能功能失效,不可重选
$7''64将帧
码转化为字符串并送至帧码显示栏
08$'.'
08##获取 的 .并将
下标为 # 的数值赋为 #
$'.'08更新
的 .
08调用函数 08,判断是否已经完成指令参数的
选择
(0!+
剩余11页未读,继续阅读
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功