トリガー

トリガーの編集画面。識別と置き場所、種類、周期、アクションを持つ周期の設定のカード、実行状況の帯、固定の間隔と飛ばした回数を持つ 100 ms のスケジューラー、コマンド、そしてトリガーにできないこと。

Markdown で表示

トリガーは、きっかけを 1 つのアクションに結び付けます。今あるきっかけの種類は周期だけです。スケジューラーが、決まった間隔で結び付いたアクションを発火させます。Logic の欄のトリガーの節でトリガーを選ぶと(あるいは新規… > 新しいトリガーで作ると)、その編集画面が開きます。読むには Logic の表示、編集するには Logic の構成が必要です。トリガーに操作の動詞はありません。自分で発火するものですし、手で走らせるのはアクション自身の実行です。

見出しは、トリガーの印、名前、「1 つのアクションを、決めた周期で自動的に実行する仕組みです。」の行、そしてそれが切られている間は無効のピルを見せます。入力の欄には識別と周期の設定が、右側の帯には実行状況が入ります。

識別

項目 意味 受け付ける値と既定 効果
名前 表示の名前です。そのトリガーが発火させた実行は、この名前で記録されます。 自由記述。新しいトリガーは TriggerN です。空の名前は Trigger として保存されます。 キーを押すたびに自動で保存されます。トリガーは識別で参照されるので、名前を変えてもほかには何も効きません。
置き場所の行 そのトリガーがどこに入っているかです。Triggers / <folder> / <name> のようになります。 読み取り専用。 トリガーにアドレスはありません。フォルダーを変えるには、ツリーの移動先を使います。
説明(任意) 自由記述です。 空です。 ありません。

周期の設定

項目 意味 受け付ける値と既定 効果
種類 きっかけです。 周期。唯一の種類です。 今日のところはありません。
周期(ms) 発火の間隔です。 100 以上の整数(スケジューラーの走査の分解能です)。既定は 1000 です。 それより小さい値、負の値、読み取れない入力は、保存されている周期をそのままにし、「周期は 100 ms 以上の整数にしてください(スケジューラーの分解能です)。」と出します。周期を変えると時計が戻ります。次の発火は、次の走査からまるまる 1 つ分の新しい周期のあとになります。
アクション そのトリガーが発火させるアクションです。 (なし)、またはこのステーションのどれかのアクション。既定は (なし) です。 アクションのないトリガーは何もせず、「アクションを結び付けてください。それまでトリガーは何もしません。」と述べます。アクションが削除されたものは「結び付けたアクションはもうありません。別のものを選んでください。」と述べ、アクションが無効なものは「結び付けたアクション「X」は無効なので、トリガーは何もしません。」と述べます。

どの入力欄も自動で保存されます。検証のメッセージは、カードの下で 0.5 秒ごとに評価し直されます。

実行状況

スケジューラーは 100 ms ごとに走査し、時刻の来たものをロジックのキューに投げます。

  • 作られたばかりのトリガー、有効にしたばかりのトリガー、そして周期、種類、アクションを編集したトリガーは、次の走査で時計をまきます。最初の発火は、そこから 1 つ分の周期のあとです。
  • 発火のあと、次の発火はその時点からまるまる 1 つ分の周期のあとです(固定の間隔)。込み合った時間のあとに、まとめて追いつく発火が起きることはありません。
  • そのトリガーの前の実行がまだキューにあるか実行中のときに来た発火は、待たせずに飛ばします。飛ばした回数が数えられ、次の発火が組み直されます。遅いアクションの後ろに順番待ちがたまることはありません。
  • アクションのない、あるいはアクションが無効なトリガーは何もしません。発火せずに組み直されるだけで、何もしないことが飛ばした回数に数えられることはありません。
  • 実行はそのトリガーの名前で記録され、その結果はアクションの最後の実行の帯に出ます。無効なトリガーが発火することはありません。

実行状況の帯は、動いている診断を見せます。最後の発火次の予定(スケジューラーが時計をまくまでは横線)、飛ばした回数(記憶の中の数で、再起動すると 0 に戻ります)、そして「前の実行がまだ終わっていないときに来た周期は、待たせずに飛ばします(たまりません)。イベントのコンソールに届くのは失敗した実行だけで、このトリガーの名前で記録されます。」という覚え書きです。

トリガーの最上位のパネルは、すべてのトリガーを、値の列にその状態とともに並べます。「1000 ms ごと · 最後 <when> · 飛ばし N」か、「無効」です。

コマンド

コマンド 何をするか 灰色になるとき 描かれないとき
有効化/無効化 有効の印を切り替えます。有効にすると時計をまき直します。 ステーションがロックされているか読み取り専用のとき。 ロールが Logic の構成を持たないとき。
複製 そのトリガーを(同じアクション、同じ周期のまま)空いている名前でトリガーの最上位に写し、開きます。複製は周期が設定されていない状態から始まります。 ステーションがロックされているか読み取り専用のとき。 ロールが Logic の構成を持たないとき。
トリガーを削除 「「X」を削除しますか?トリガーが取り除かれます。この操作は元に戻せません。」と尋ねます。 ステーションがロックされているか読み取り専用のとき。 ロールが Logic の構成を持たないとき。

結び付いたアクションを削除しても、トリガーは一緒に削除されず、結び付きが外れるだけです。

トリガーがしないこと

ほかのきっかけの種類はありません。値の変化でも、条件でも、時刻でも、起動時でも、何も発火しません。トリガーが発火させるアクションは 1 つだけで、複数はありませんし、手で発火させることもできません。そのときはアクション自身を実行してください。スケジューラーはランタイムとともに止まりますし、ステーションが閉じる途中で「ランタイム停止中」として拒否された発火は、黙って落とされます。