Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

timerfindall

クラス: timer

表示状態に関係なく timer オブジェクトを検索

説明

out = timerfindall は、表示状態に関係なく、メモリ内に存在する timer オブジェクトを検索し、配列 out を返します。ObjectVisibility プロパティを使用して、オブジェクトの表示状態を設定します。

out = timerfindall(Name,Value) は、表示状態に関係なく、メモリ内に存在し、プロパティ値が Name,Value のペアの引数として渡された値と一致する timer オブジェクトを検索し、配列 out を返します。

out = timerfindall(t,Name,Value) は、Name,Value のペアの引数を t にリストされている timer オブジェクトに一致させ (ここで、t は timer オブジェクトの配列)、配列 out を返します。

out = timerfindall(S) は、構造体 S で定義されたプロパティ値と一致し、配列 out を返します。S のフィールド名は、timer オブジェクトのプロパティ名であり、フィールド値はその対応するプロパティ値です。

入力引数

t

クラス timer のオブジェクトの配列。

S

timer オブジェクト プロパティ名に対応するフィールド名をもつ構造体。フィールド値は、対応するプロパティ値です。

名前と値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

BusyMode

TimerFcn の前の実行が完了する前に、タイマーが TimerFcn を実行しなければならない場合に行う操作を示す文字ベクトルまたは string スカラー。Running='on' の場合、BusyMode は読み取り専用です。次の表は、ビジー モードをまとめたものです。

BusyMode の値

キューが空の場合の動作

キューが空でない場合の動作

メモ:

'drop'

キューにタスクを追加

タスクを無視

場合によって、TimerFcn 呼び出しをスキップ

'error'

キューにタスクを追加

タスクを完了。ErrorFcn で指定されたエラーをスロー。タイマーを停止

実行キュー内のタスクを実行した後、タイマーを停止

'queue'

キューにタスクを追加

キューが空になるまで待機してから、キューにタスクを格納

実行キューのタスクを管理するように、Period プロパティを調整

詳細については、タイマー キューの競合への対処を参照してください。

既定値: 'drop'

ErrorFcn

エラーの発生時にタイマーが実行する関数を定義する文字ベクトル、string スカラー、関数ハンドル、または cell 配列。エラーが発生すると、この関数が実行され、StopFcn が呼び出されます。

  • 文字ベクトルまたは string スカラーを使用してこのプロパティを指定した場合、MATLAB® は、コールバックの実行時にその文字ベクトルに含まれる MATLAB コードを評価します。

  • 関数ハンドルを使用してこのプロパティを指定する場合、MATLAB がコールバックを実行すると、timer オブジェクトとイベント構造体をコールバック関数に渡します。イベント構造体には、Type フィールド内のイベントのタイプと Data フィールド内のイベントの時間が含まれます。

  • コールバック関数が、timer オブジェクトとイベント データに加えて引数を受け入れる場合、このプロパティを、関数ハンドルと追加引数が含まれる cell 配列として指定します。

詳細については、タイマー コールバック関数を参照してください。

ExecutionMode

timer オブジェクトがタイマー イベントのスケジュールを設定する方法を指定する文字ベクトルまたは string スカラー。Running='on' の場合、ExecutionMode は読み取り専用です。次の表は、実行モードをまとめたものです。

実行モード

Period 時間の開始点

'singleShot'

このモードでは、タイマー コールバック関数は一度だけ実行されます。このため、Period プロパティは効果がありません。これは、既定の実行モードです。

'fixedRate'

タイマー コールバック関数を MATLAB 実行キューに追加した直後に開始します。

'fixedDelay'

MATLAB 実行キューの遅延に起因するタイム ラグ後、タイマー関数コールバックの実行が再開された後に開始します。

'fixedSpacing'

タイマー コールバック関数の実行が終了すると開始します。

  • 'singleShot' は、timer クラスに対する単一実行モードで、既定の値です。

  • 'fixedDelay''fixedRate' および 'fixedSpacing' は、サポートされている 3 つのマルチ実行モードです。これらのモードは、Period プロパティの開始点を定義します。Period プロパティは、実行間の時間間隔 (実行間隔は同じ) を指定します。実行が始まる時点のみ異なります。

既定値: 'singleShot'

Name

timer の名前を表す文字ベクトルまたは string スカラー。

既定値: 'timer-i'。ここで i はこのセッションで作成された i 番目の Timer オブジェクトを示す番号です。i を 1 にリセットするには、clear classes コマンドを実行します。

ObjectVisibility

'on' または 'off' の値を取り得る文字ベクトルまたは string スカラー。アプリケーションによって作成された timer オブジェクトにエンド ユーザーが簡単にアクセスできないようにする方法を提供します。関数 timerfind は、ObjectVisibility プロパティが 'off' に設定されているオブジェクトを返しません。オブジェクトは、表示されませんが有効です。表示されないものも含めて、メモリ内にあるすべての timer オブジェクトのリストを抽出するには、関数 timerfindall を使用します。

既定値: 'on'

Period

TimerFcn の実行間の遅延を秒単位で設定する 0.001 より大きい数値。タイマーで Period を使用するには、複数の timer オブジェクトのコールバック イベントのスケジュールを設定するように、ExecutionModeTasksToExecute を設定しなければなりません。

既定値: 1.0

StartDelay

タイマーの開始から TimerFcn で指定された関数の最初の実行までの遅延を秒単位で指定する 0 以上の数値。Running = 'on' の場合、StartDelay は読み取り専用です。

既定値: 0

StartFcn

タイマーの開始時に実行される関数を定義する文字ベクトル、string スカラー、関数ハンドル、または cell 配列。

  • 文字ベクトルまたは string スカラーを使用してこのプロパティを指定した場合、MATLAB は、コールバックの実行時にその文字ベクトルに含まれる MATLAB コードを評価します。

  • 関数ハンドルを使用してこのプロパティを指定する場合、MATLAB がコールバックを実行すると、timer オブジェクトとイベント構造体をコールバック関数に渡します。イベント構造体には、Type フィールド内のイベントのタイプと Data フィールド内のイベントの時間が含まれます。

  • コールバック関数が、timer オブジェクトとイベント データに加えて引数を受け入れる場合、このプロパティを、関数ハンドルと追加引数が含まれる cell 配列として指定します。

詳細については、タイマー コールバック関数を参照してください。

StopFcn

タイマーの停止時に実行される関数を定義する文字ベクトル、string スカラー、関数ハンドル、または cell 配列。

  • 文字ベクトルまたは string スカラーを使用してこのプロパティを指定した場合、MATLAB は、コールバックの実行時にその文字ベクトルに含まれる MATLAB コードを評価します。

  • 関数ハンドルを使用してこのプロパティを指定する場合、MATLAB がコールバックを実行すると、timer オブジェクトとイベント構造体をコールバック関数に渡します。イベント構造体には、Type フィールド内のイベントのタイプと Data フィールド内のイベントの時間が含まれます。

  • コールバック関数が、timer オブジェクトとイベント データに加えて引数を受け入れる場合、このプロパティを、関数ハンドルと追加引数が含まれる cell 配列として指定します。

詳細については、タイマー コールバック関数を参照してください。

タイマーは、以下の状態のときに停止します。

  • タイマーの stop メソッドを呼び出した場合。

  • タイマーが TimerFcn の実行を終了した場合。つまり、TasksExecuted 値が TasksToExecute によって設定された制限に達した場合。

  • エラーが発生します。ErrorFcn コールバックが最初に呼び出され、その後に StopFcn コールバックが呼び出されます。

StopFcn を使用して、メモリからの timer オブジェクトの削除などのクリーンアップ操作を定義できます。

Tag

オブジェクトのラベルを表す文字ベクトルまたは string スカラー。

TasksToExecute

0 より大きい数値。timer オブジェクトが実行する TimerFcn コールバックの回数を示します。TasksToExecute プロパティを使用して、実行回数を設定します。TasksToExecute を使用するには、複数のタイマー コールバック イベントのスケジュールを設定するように、ExecutionMode を設定しなければなりません。

既定値: Inf

TimerFcn

タイマー コールバック関数を定義する文字ベクトル、string スカラー、関数ハンドル、または cell 配列。タイマーを開始する前に、このプロパティを定義しなければなりません。

  • 文字ベクトルまたは string スカラーを使用してこのプロパティを指定した場合、MATLAB は、コールバックの実行時にその文字ベクトルに含まれる MATLAB コードを評価します。

  • 関数ハンドルを使用してこのプロパティを指定する場合、MATLAB がコールバックを実行すると、timer オブジェクトとイベント構造体をコールバック関数に渡します。イベント構造体には、Type フィールド内のイベントのタイプと Data フィールド内のイベントの時間が含まれます。

  • コールバック関数が、timer オブジェクトとイベント データに加えて引数を受け入れる場合、このプロパティを、関数ハンドルと追加引数が含まれる cell 配列として指定します。

詳細については、タイマー コールバック関数を参照してください。

UserData

オブジェクトに追加するデータ用の汎用フィールド。

読み取り専用の名前と値のペアの引数

AveragePeriod

タイマー開始後の TimerFcn の平均実行間隔 (秒単位)。タイマーが 2回、タイマー コールバックを実行するまで、値は NaN です。

InstantPeriod

TimerFcn の最新 2 回の実行の間隔 (秒単位)。タイマーが 2回、タイマー コールバックを実行するまで、値は NaN です。

Running

'off' または 'on' として定義される文字ベクトル。タイマーが現在コールバック関数を実行中かどうかを示します。

TasksExecuted

タイマーが開始してから、タイマーが TimerFcn を呼び出した回数。

Type

オブジェクト タイプを識別する文字ベクトル。

すべて展開する

4 つの timer オブジェクトを作成します。

t1 = timer('TimerFcn',@(~,~)disp('Timer 1 Fired!'));
t2 = timer('TimerFcn',@(~,~)disp('Timer 2 Fired!'));
t3 = timer('TimerFcn',@(~,~)disp('Timer 3 Fired!'));
t4 = timer('TimerFcn',@(~,~)disp('Timer 4 Fired!'));

タイマー t2t4 を非表示に設定します。

t2.ObjectVisibility = 'off';
t4.ObjectVisibility = 'off';

ワークスペースからタイマー t1t2 をクリアします。

clear t1 t2
whos
  Name      Size            Bytes  Class    Attributes

  t3        1x1               104  timer              
  t4        1x1               104  timer              

メモリ内の表示状態のすべてのタイマーを検索します。

timerfind
Timer Object Array

   Index:  ExecutionMode:  Period:  TimerFcn:               Name:
   1       singleShot      1        1x1 function_handle arraytimer-1
   2       singleShot      1        1x1 function_handle arraytimer-3

timerfind は、表示状態のタイマー t1t2 だけを検索します。タイマー t2 はワークスペースからはクリアされましたが、現在でも有効でメモリ内に存在しています。

メモリ内のすべてのタイマーを検索します。

timerfindall
Timer Object Array

   Index:  ExecutionMode:  Period:  TimerFcn:               Name:
   1       singleShot      1        1x1 function_handle arraytimer-1
   2       singleShot      1        1x1 function_handle arraytimer-2
   3       singleShot      1        1x1 function_handle arraytimer-3
   4       singleShot      1        1x1 function_handle arraytimer-4

t2t4 は非表示状態で、t1t2 はワークスペースからクリアされましたが、timerfindall はメモリ内に存在する 4 つの有効なタイマーをすべて検索します。

メモリからすべてのタイマーを削除します。

delete(timerfindall)

複数の個別のタイマーとタイマーの配列を作成します。

t1 = timer('Tag', 'broadcastProgress','UserData','Monday');
t2 = timer('Tag', 'displayProgress','UserData','Monday');
timerArr = [timer('Tag', 'broadcastProgress','UserData','Tuesday');
    timer('Tag', 'displayProgress','UserData','Tuesday');
    timer('Tag', 'displayProgress','UserData','Wednesday');];

タイマー t1timerArr(2) を非表示にします。

t1.ObjectVisibility = 'off';
timerArr(2).ObjectVisibility = 'off';

timerfind を使用して、メモリ内のすべてのタイマーを検索します。

out1 = timerfind
Timer Object Array

   Index:  ExecutionMode:  Period:  TimerFcn:               Name:
   1       singleShot      1        ''                      timer-2
   2       singleShot      1        ''                      timer-3
   3       singleShot      1        ''                      timer-5

timerfind は、非表示状態のタイマーを検索しません。

timerfindall を使用して、メモリ内のすべてのタイマーを検索します。

out2 = timerfindall
Timer Object Array

   Index:  ExecutionMode:  Period:  TimerFcn:               Name:
   1       singleShot      1        ''                      timer-1
   2       singleShot      1        ''                      timer-2
   3       singleShot      1        ''                      timer-3
   4       singleShot      1        ''                      timer-4
   5       singleShot      1        ''                      timer-5

timerfindall は、非表示状態のタイマーを含め、すべてのタイマーを検索します。

メモリ内に存在し、Tag プロパティの値が 'displayProgress' であるタイマーのみを検索します。

out3 = timerfindall('Tag','displayProgress')
Timer Object Array

   Index:  ExecutionMode:  Period:  TimerFcn:               Name:
   1       singleShot      1        ''                      timer-2
   2       singleShot      1        ''                      timer-4
   3       singleShot      1        ''                      timer-5

検索対象を、timerArr 内にある Tag プロパティの値が 'displayProgress' であるタイマーに制限します。

out4 = timerfindall(timerArr,'Tag','displayProgress')
Timer Object Array

   Index:  ExecutionMode:  Period:  TimerFcn:               Name:
   1       singleShot      1        ''                      timer-4
   2       singleShot      1        ''                      timer-5

対象となる Tag および UserData プロパティを含む struct を定義します。

searchStruct = struct('Tag','broadcastProgress','UserData','Monday')
searchStruct = 

         Tag: 'broadcastProgress'
    UserData: 'Monday'

検索条件として struct を使用して、メモリ内の timer オブジェクトを検索します。

out5 = timerfindall(searchStruct)
   Timer Object: timer-1

   Timer Settings
      ExecutionMode: singleShot
             Period: 1
           BusyMode: drop
            Running: off

   Callbacks
           TimerFcn: ''
           ErrorFcn: ''
           StartFcn: ''
            StopFcn: ''

timer オブジェクトを削除します。

delete(timerfindall)

4 つの timer オブジェクトを作成します。

t1 = timer('TimerFcn',@(~,~)disp('Timer 1 Fired!'));
t2 = timer('TimerFcn',@(~,~)disp('Timer 2 Fired!'));
t3 = timer('TimerFcn',@(~,~)disp('Timer 3 Fired!'));
t4 = timer('TimerFcn',@(~,~)disp('Timer 4 Fired!'));

タイマー t2t4 を非表示に設定し、ワークスペースからタイマー t1t2 をクリアします。

t2.ObjectVisibility = 'off';
t4.ObjectVisibility = 'off';
clear t1 t2; 
whos
  Name      Size            Bytes  Class    Attributes

  t3        1x1               104  timer              
  t4        1x1               104  timer              

有効で非表示状態のすべてのタイマーを検索します。

out = timerfindall('ObjectVisibility','off')
Timer Object Array

   Index:  ExecutionMode:  Period:  TimerFcn:               Name:
   1       singleShot      1        1x1 function_handle arraytimer-2
   2       singleShot      1        1x1 function_handle arraytimer-4

ワークスペースに存在するかどうかにかかわらず、有効で非表示状態のタイマーが両方とも timerfindall によって検索されます。

ヒント

  • timerfindall は、ObjectVisibility プロパティの値に関係なく、メモリ内の timer オブジェクトを検索します。ObjectVisibility'on' に設定したオブジェクトのみに検索を制限するには、timerfind を使用します。 .

R2006a より前に導入