shuchuan的个人博客分享 http://blog.sciencenet.cn/u/shuchuan

博文

关于timer的一些介绍

已有 508 次阅读 2019-4-25 15:13 |个人分类:MATLAB|系统分类:科研笔记

一、创建方式

1、直接创建

t=timer('Name','test','TimerFcn',@ExecuteTask,'ErrorFcn',@ExecuteError,'Period',1,...

'ExecutionMode','fixedRate');

2、利用set和get函数进行创建和属性读取

t=timer;

set(t,'Name','test','TimerFcn',@ExecuteTask,'ErrorFcn',@ExecuteError,'Period',1,...

'ExecutionMode','fixedRate'); 

get(t,'Name');   %获取定时器的名称

3、使用结构体形式创建

t=timer;

t.Name='test';

t.TimerFcn=@ExecuteTask;

t.ErrorFcn=@ExecuteError;

t.Period=1;

t.ExecutionMode='fixedRate';


二、timer的主要属性及取值

timer的属性主要有:AveragePeriod、BusyMode、ErrorFcn、ExecutionMode、InstantPeriod、Name、

ObjectVisibility、Period、Running、StartFcn、StopFcn、Tag、TasksExecuted、TasksToExecute、TimerFcn、Type、UserData;

常用的属性主要有:Name、Period、TimerFcn、ExecutionMode、TasksExecuted、TasksToExecute等;

timer对象的回调函数有:TimerFcn、ErrorFcn、StartFcn、StopFcn,其中TimerFcn必不可少;

timer的所有回调函数都至少有两个输入参数obj和event,其经典格式为:

function my_callback_fcn(obj, event, p1, p2...)

obj和event为必选的输入参数。obj就是前面创建的timer对象,包含着timer的所有参数;event是一个结构体,包含Type和Data两个字段,Type保存的是当前的Timer对象执行的事件,比如StartFcn、StopFcn等,Data是一个结构体,包含time一个字段,保存的是执行该事件的系统时间。所以event的使用是event.Type获取timer到底在执行哪个事件,event.Data.time获取执行该事件的系统时间;p1、p2等是其它自定义的输入参数,根据需要可以自己添加。


三、一个例子

t=timer('StartDelay',4,'Period',3,'TasksToExecute',2,'ExecutionMode','fixedRate');

t.StartFcn={@my_callback_fcn,'my start message'};

t.StopFcn={@my_callback_fcn,'my stop message'};

t.TimerFcn=@(x,y)disp('hello world!');

start(t)


function my_callback_fcn(obj,event,string_arg)

txt1='event occurred at';

txt2=string_arg;

event_type=event.Type;

event_time=datestr(event.Data.time);

msg=[event_type txt1 event_time];

disp(msg)

disp(txt2)

end



http://blog.sciencenet.cn/blog-3265439-1175451.html

上一篇:[转载]利用MATLAB绘制亚洲地图
下一篇:wget的使用

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备14006957 )

GMT+8, 2019-10-19 12:29

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部