デジタル鉄道模型フォーラム

フル表示版: ルート機能での複数ポイント開通制御について
このページは簡易表示版です。適切なフォーマットで閲覧するには、フル表示版をご覧ください。
Nardiさん作成の次の資料にある複数ポイントの一括開通操作をやってみたいのですが
Desktop Station Softwareでどの様に設定すれば良いかご教示頂けないでしょうか。

参考資料
https://desktopstation.net/tmi/award2017...ta2017.pdf

よろしくお願いします。
公式サイトに説明が記載されていますので参照してみてください。
https://desktopstation.net/wiki/doku.php/layout_route
公式サイトの「Rotue機能」ページは拝見しています。
というより、そのページを見て複数ポイントの開通制御ができる事を知りました。

「Rotue機能」ページを読んでいるのですが、ポイントやS88の状態を条件に設定する事でルートの開閉を判断できる事、
ルートの開閉に応じて信号機を制御できる事、は分かったのですが、複数ポイントの開通制御はどうすれば良いのか読み取れませんでした。
ルート機能では、信号機とポイントは、同じ扱いとなります。

ポイントの状態は常にソフトが監視しており、またルート信号機をクリックすると、その状態となるように操作が行われます。S88が絡む場合は、在線状態に応じてソフト側で制御が行われます。

複数ポイントの開通制御」とは、具体的にどんな動きを想定されているのでしょうか?

複数ポイントの開通制御」=「複数のポイントを、何らかの方法で開通状態にすること」という意味でしたら、該当のポイントでルートを設定したルート信号機をクリックすることで、指定されたポイントが開通するという動きは、既に実装されております。
仰る通り「複数のポイントを、何らかの方法で開通状態にすること」が期待値です。
頂いたコメントを元に色々試した結果、期待値通りに動作させることができました。

失敗した原因は、全て私の勘違いでした。

ルートアイテムのリストはルート開通を判断する条件式としか使用していない、と思っていた
⇒ルートアイテムを登録したときの分岐方向に合わせて当該ポイントを操作する、という事も兼ねている
 ルート操作する時は演算子は無視される

ルート信号機はルート開閉状態を表しているだけ、と思っていた
⇒矢印シンボルでルート信号機をクリックする事で当該ルートを開通状態にする、という操作もできる

手動での操作に成功したので、イベントスクリプトに組み込もうとしたのですが、期待と異なる動作をしたのでご確認頂けないでしょうか。

予め、ルートを 4 つ作成し、次のテキストをメモ帳からイベントスクリプト画面に Copy & Paste したところ、4 つとも Route.0 となってしまいました。
また、開始トリガは「電源投入時」、「イベントを実行可にする」にチェックしましたが、スクリプトは実行されませんでした。
なお、マウス操作にて一行ずつスクリプトを登録した場合は問題なく動作しました。
Ver. 0.97d で確認しました。

DESKTOPSTATION,SCRIPT,2013
SETROUTE,Route.1,0,0
SETROUTE,Route.2,0,0
SETROUTE,Route.0,0,0
SETROUTE,Route.3,0,0
EXIT,0,0,0

それと、ルート機能の説明ページにある演算子の箇所ですが、1 AND 2 OR 3 AND 4 としたい場合は、
No.0 AND
No.1 OR
No.2 AND
No.3 NOP
となるのではないかと思うのですがいかがでしょうか。
次のテキストをメモ帳からイベントスクリプト画面に Copy & Paste したところ、4 つとも Route.0 となってしまいました。

0.96で確認してますが、こちらの手元は、再現されないのですが・・・。

開始トリガは「電源投入時」、「イベントを実行可にする」にチェックしましたが、スクリプトは実行されませんでした。

STARTボタンを押したときにこのスクリプトが実行されます。こちらで以下のスクリプトを試しましたが、模擬モードで試した限りは、正常に動いております。
なお、ルートを順に切り替えてるように見えますが、ポイントの初期化という意味では、あまり意味はない処理となるかと思います。

DESKTOPSTATION,SCRIPT,2013
SETROUTE,0,,0
WAIT,30,,0
SETROUTE,2,,0

※WAITを置いたのは、ルートの切り替え動作を目視で確認するためです。
ご確認、有難うございます。

再現されないとの事、改めて確認してみました。
yaasan さんのサンプルスクリプトを拝見して気付きましたが、ルートの指定方法が間違っていました。

SETROUTE のパラメータは、イベント編集画面の表示に合わせて「Route.数字」を指定していました。
yaasan さんのサンプルスクリプト通り、数字のみにしたところ問題なく Paste できました。

それと、本スクリプトはご推測の通りポイントの初期化を目的としています。
あまり意味はない処理とのアドバイスですが、その理由をご教示頂けないでしょうか。
ルート設定機能で初期化する(=SetRouteを連続して一気に実行する)のは、あまり意味がないという理由は、

・ルートに設定された共通の同じポイントに何度も切り替えの指示を出してしまうこと
・ルートに入っていないポイントや信号機は操作されない
・ポイントや信号機は、div→str→div と操作しないと反映されない場合がある(デコーダが状態を覚えてしまっている場合など)

などがあります。
これらを含めて初期化するには、1つ1つに、ポイントや信号機操作のコマンドを打ち込むのが確実で間違いがありません。

SetRouteで全部初期化したと思い込んで、初期化されないケースも出てきます。よって、意味はあまりなく、推奨することはしておりません。
ご説明、有難うございます。
ルート機能でのポイント初期化が推奨されない理由について理解できました。

ただ、これは完全に好みの問題なのですが、せっかくルート機能があるので、ポイント操作をスクリプトにハードコーディングせず、ポイント管理は全てルート機能にオフロードしたい、という思いではあります。