计时

班级:计时器

查找计时器对象

Description

例子

out= TimerFind找到the可见的计时器对象和returns an array,out

例子

out= timerFind(名称,价值找到可见的计时器对象将属性值与通过的属性值匹配为名称,价值配对参数并返回一个数组,out

例子

out= timerFind(t,,,,名称,价值matches名称,价值pair arguments to the timer objects listed int,,,,wheret可以是计时器对象的数组,并返回一个数组,out

例子

out= timerFind(s匹配结构中定义的属性值,s, 和returns an array,out。这field names ofs是计时器对象属性名称,字段值是相应的属性值。

输入参数

t

Array of objects of class计时器

s

带有字段名称对应的结构计时器对象属性名称。字段值是相应的属性值。

名称值对参数

指定可选的逗号分隔对名称,价值arguments.姓名是参数名称和价值是相应的值。姓名必须出现在引号中。您可以按任何顺序指定几个名称和值对参数姓名1,Value1,...,NameN,ValueN

“ busymode'

字符向量或字符串标量表示计时器必须执行时采取的动作TIMERFCNbefore the completion of previous execution of theTIMERFCN。什么时候running ='on',,,,BusyMode仅阅读。该表总结了繁忙的模式。

BusyMode

Behavior if Queue Empty

行为如果队列不为空

Notes

'drop'

Adds task to queue

Drops task

Possible skipping ofTIMERFCN呼叫

'error'

Adds task to queue

完成任务;抛出错误ErrorFcn;停止计时器

完成执行队列任务后停止计时器

'队列'

Adds task to queue

等待队列清除,然后在队列中输入任务

调整Period在执行队列中管理任务的属性

处理计时器排队冲突for more information.

默认:'drop'

'ErrorFcn'

Character vector, string scalar, function handle, or cell array defining the function that the timer executes when an error occurs. If there is an error, this function executes, and then callsStopFCN

  • 如果您使用字符向量或字符串标量指定此属性,则在MATLAB时®executes the callback it evaluates the MATLAB code contained in the character vector.

  • 如果使用函数句柄指定此属性,则MATLAB执行回调时,它将通过计时器对象和回调函数的事件结构。事件结构包含事件类型Type场和活动的时间Data场地。

  • If your callback function accepts arguments in addition to the计时器对象和事件数据,将此属性指定为包含函数句柄和其他参数的单元格数组。

For more information, see计时器回调函数

'executionMode'

Character vector or string scalar that defines how the计时器object schedules timer events. Whenrunning ='on',,,,ExecutionMode仅阅读。该表总结了执行模式。

执行模式

TimePeriodstart Point

'单发'

在此模式下,计时器回调函数仅执行一次。因此,Period财产无效。这是默认执行模式。

'固定利率'

在计时器回调函数添加到MATLAB执行队列后立即开始

“固定德利”

在计时器函数回调在MATLAB执行队列中延迟后的时间滞后后重新启动执行

“固定空间”

在计时器回调函数完成执行时开始。

  • '单发'一世s the single execution mode for the计时器类,是默认值。

  • “固定德利”,,,,'固定利率', 和“固定空间”是三种支持的多XCECUTI万博1manbetxON模式。这些模式定义了Period财产。这Period属性指定执行之间的时间量,这是相同的。只有执行开始的点是不同的。

默认:'单发'

'姓名'

字符向量或字符串标量代表计时器姓名。

默认:'计时器 -一世',,,,where一世是一个指示一世th timer object created this session. To reset一世到1,执行清晰的课程命令。

“对象可视化”

字符向量或字符串标量,可能的值'上'或者'off',这为您提供了一种方法,可以阻止最终用户访问您的应用程序创建的计时器对象。这计时函数不会返回其对象对象可视性属性设置为'off'。不可见的对象仍然有效。要检索内存中所有计时器对象的列表,包括无形的对象,请使用TimerFindall功能。

默认:'上'

'时期'

大于0.001的数字,指定在执行之间的延迟数秒TIMERFCN。用于计时器使用Period,您必须设置ExecutionModeTasksToExecute安排多个计时器对象回调事件。

默认:1.0

'startDelay'

数字大于或等于0,指定计时器开始和指定函数的第一个执行之间指定延迟的数字TIMERFCN。什么时候running ='on',,,,StartDelay仅阅读。

默认:0

'startfcn'

字符向量,字符串标量,函数句柄或单元格数组定义计时器启动时执行的函数。

  • 如果使用字符向量或字符串标量指定此属性,则MATLAB执行回调时,它会评估字符向量中包含的MATLAB代码。

  • 如果使用函数句柄指定此属性,则MATLAB执行回调时,它将通过计时器对象和回调函数的事件结构。事件结构包含事件类型Type场和活动的时间Data场地。

  • If your callback function accepts arguments in addition to the计时器对象和事件数据,将此属性指定为包含函数句柄和其他参数的单元格数组。

For more information, see计时器回调函数

'stopFcn'

字符向量,字符串标量,函数句柄或单元格数组定义计时器停止时执行的函数。

  • 如果使用字符向量或字符串标量指定此属性,则MATLAB执行回调时,它会评估字符向量中包含的MATLAB代码。

  • 如果使用函数句柄指定此属性,则MATLAB执行回调时,它将通过计时器对象和回调函数的事件结构。事件结构包含事件类型Type场和活动的时间Data场地。

  • If your callback function accepts arguments in addition to the计时器对象和事件数据,将此属性指定为包含函数句柄和其他参数的单元格数组。

For more information, see计时器回调函数

计时器停止

  • You call the timer停止method.

  • 计时器完成执行TIMERFCN。换句话说,价值任务交换reaches the limit set byTasksToExecute

  • 发生错误。这ErrorFcn回调首先称为StopFCN打回来。

您可以使用StopFCN定义清理操作,例如从内存中删除计时器对象。

'Tag'

代表对象标签的字符向量或字符串标量。

“ TaskStoExecute”

数字大于0,表明计时器对象的次数是执行TIMERFCN打回来。使用TasksToExecute设置执行次数的属性。使用TasksToExecute,您必须设置ExecutionMode安排多个计时器回调事件。

默认:Inf

'timerfcn'

Character vector, string scalar, function handle, or cell array defining the timer callback function. You must define this property before you can start the timer.

  • 如果使用字符向量或字符串标量指定此属性,则MATLAB执行回调时,它会评估字符向量中包含的MATLAB代码。

  • 如果使用函数句柄指定此属性,则MATLAB执行回调时,它将通过计时器对象和回调函数的事件结构。事件结构包含事件类型Type场和活动的时间Data场地。

  • If your callback function accepts arguments in addition to the计时器对象和事件数据,将此属性指定为包含函数句柄和其他参数的单元格数组。

For more information, see计时器回调函数

'用户数据'

要添加到对象的数据的通用字段。

Read Only Name-Value Pair Arguments

平均水平

平均时间为几秒钟TIMERFCN自计时器启动以来的执行。值是直到计时器执行两个计时器回调。

InstantPeriod

这t一世me in seconds between the last two executions ofTIMERFCN。值是直到计时器执行两个计时器回调。

跑步

字符向量定义为'off'或者'上',指示计时器当前是否正在执行回调函数。

任务交换

这number of times the timer calledTIMERFCN自计时器开始。

Type

标识对象类型的字符向量。

Examples

expand all

Create several individual timers and an array of timers.

T1= timer('Tag',,,,“广播播放”,,,,'用户数据',,,,“周一”);t2 =计时器('Tag',,,,“ displayprogress',,,,'用户数据',,,,“周一”);timerarr = [timer(timer)('Tag',,,,“广播播放”,,,,'用户数据',,,,'周二');计时器('Tag',,,,“ displayprogress',,,,'用户数据',,,,'周二');计时器('Tag',,,,“ displayprogress',,,,'用户数据',,,,'Wednesday');];

在内存中找到所有计时器。

out1 = timerFind
out1=1×6 object计时器对象阵列索引:executionMode:executionMode:timerfcn:name:1 filex-spacing 30 @(〜,〜)logstack()logstack()timer-1 2 singleshot 1''timer-2 3 singleshot 1'timer-3 timer-3 4 singleshot 1'singleshot 1''定时器-4 5单打1''Timer-5 6单打1''Timer-6

Find only those timers in memory that have theTag适当的价值“ displayprogress'

out2 = timerfind('Tag',,,,“ displayprogress'
out2 =1×3对象计时器对象阵列索引:executionMode:executionMode:timerfcn:name:1 singleshot 1''timer-3 2单打肖特1''Timer-5 3 Singleshot 1''Timer-6

将对计时器的搜索限制为计时器对象计时器Tag适当的价值“ displayprogress'

out3 = timerFind(timerarr,'Tag',,,,“ displayprogress'
out3 =2×1对象计时器对象阵列索引:executionMode:executionMode:timerfcn:name:1 singleshot 1''timer-5 2单打1''Timer-6

定义a结构containing theTag用户数据感兴趣的属性。

搜索struct = struct('Tag',,,,“广播播放”,,,,'用户数据',,,,“周一”
搜索struct =带有字段的结构:标签:'BroadcastProgress'UserData:“星期一”

使用结构作为在内存中找到计时器对象的搜索标准。

out4 = timerFind(searchStruct)
out4 = Timer Object: timer-2 Timer Settings ExecutionMode: singleShot Period: 1 BusyMode: drop Running: off Callbacks TimerFcn: '' ErrorFcn: '' StartFcn: '' StopFcn: ''

Delete the timer objects.

删除(T1)DELETE(T2)DELETE(TIMERARR)

通过创建一个计时器来模拟内存中现有计时器。创建一个具有自定义名称的新计时器。列出所有可见的计时器。

castertimers = [计时器计时器];mytimername =“ mytimer”;另一个二聚体=计时器('姓名',,,,myTimerName); timerfind
计时器对象阵列索引:executionMode:executionMode:timerfcn:name:1 singleshot 1''timer-1 2 singleshot 1''timer-2 3 singleshot 1''timer-3 4 singleshot 1'mytimer

删除指定的计时器并列出所有可见计时器。

delete(timerFind(timerFind)('姓名',,,,myTimerName)); timerfind
计时器对象阵列索引:executionMode:executionMode:timerfcn:name:1 singleshot 1''timer-1 2 singleshot 1''Timer-2 3 Singleshot 1''Timer-3

Delete all visible timers from memory.

删除(timerFind)

利用计时至find ‘lost' timer object references. References are lost when you clear the timer object from the workspace, but do not delete it from memory.

创建两个计时器对象。由于回调函数不需要计时器或事件对象,因此您可以使用tilde()operator to ignore the inputs in the function handle.

T1= timer('timerfcn',@(〜,〜)disp(“计时器1被解雇!”);t2 =计时器('timerfcn',@(〜,〜)disp(“计时器2开火!”);谁是
名称大小字节类属性T1 1x1 104计时器T2 1x1 104计时器

Clear one of the timer objects from the workspace. To actually remove the timer from memory, you need to both clear it and delete it.

clearT1谁是
名称大小字节类属性T2 1x1 104计时器

尝试删除计时器,T1

删除(T1)
未定义的功能或变量“ T1”。

计时器,T1,由于已清除了其引用,因此无法使用删除从内存中删除。

在内存中找到有效的计时器对象。

out = timerFind
定时器对象数组索引:ExecutionMode:Period: TimerFcn: Name: 1 singleShot 1 1x1 function_handle arraytimer-1 2 singleShot 1 1x1 function_handle arraytimer-2

由于发现了两个计时器,因此确定工作空间中不存在哪个计时器。

〜= t2
ans = 1 0

第一个计时器对象out一世s not equal toT2。以前是T1。它被重新分配给T1。由于它仍然有效,因此可以启动计时器。

T1= out(1); start(t1)
计时器1开火!

删除计时器对象。计时提供了一种在内存中访问计时器对象的方法。它不会复制对象;因此,您不需要删除outfrom memory. To verify, use计时

删除(T1)删除(T2)TimerFind
ans = []

创建四个计时器对象。

T1= timer('timerfcn',@(〜,〜)disp(“计时器1被解雇!”);t2 =计时器('timerfcn',@(〜,〜)disp(“计时器2开火!”);t3 =计时器('timerfcn',@(〜,〜)disp(“计时器3开火!”);t4 =计时器('timerfcn',@(〜,〜)disp('Timer 4 Fired!');

Clear two timers from the workspace.

clearT2T3

经过计时删除要从内存中删除所有计时器对象,无论它们是否存在于工作区中。

删除(timerFind)timerFind
ans = []

更多关于

expand all

Tips

  • 计时只找到可见的计时器对象。可见的计时器对象是在内存中的对象对象可视性属性设置为'上'。To find objects that are hidden, but still valid, useTimerFindall

也可以看看

||

在R2006a之前引入