トリガー
トリガーの編集画面。識別と置き場所、種類、周期、アクションを持つ周期の設定のカード、実行状況の帯、固定の間隔と飛ばした回数を持つ 100 ms のスケジューラー、コマンド、そしてトリガーにできないこと。
トリガーは、きっかけを 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 つだけで、複数はありませんし、手で発火させることもできません。そのときはアクション自身を実行してください。スケジューラーはランタイムとともに止まりますし、ステーションが閉じる途中で「ランタイム停止中」として拒否された発火は、黙って落とされます。