サウンドフロー・非常制動機能

サウンドフローに、非常制動機能を追加しましたので、使い方を紹介します。

  • ATSなどでの非常制動
  • ブレーキ排気等の再現

まず、ATSの部分に非常制動を組み込みます。DSSP上では、以下のように記述しています。分岐ジャンプがありますが、ラベルより前にEMGコマンドを置くと反応しなくなるので気を付けてください(非常制動に限りませんが)

コピペできるスクリプトは以下のようになります。

DESKTOPSTATION,SOUNDLOW,SMILESOUND
label,START,,
if,fnc==1,PLAY_ON,START
label,PLAY_ON,,
emg,1,,
if,spd!=0,RUNNING,
wait,500,,
play,ATSalm.wav,2,0
play,ATSchk.wav,8,0
label,PLAY_LOOP,,
if,fnc==1,PLAY_LOOP,
exit
,,,
label,RUNNING,,
play,ATSalm.wav,6,0
play,ATSalm.wav,0,0
label,STOP,,
if,spd>0,STOP,
play,ATSalm.wav,4,0
play,ATSchk.wav,5,0
label,PLAY_LOOP3,,
if,fnc==1,PLAY_LOOP3,
emg,0,,
exit
,,,

ATS.csv

ブレーキ排気(例えばB排気.csv)は、別フローで作成し、F1を押されたときに動作するフローの中でコールするようにするとよいでしょう。

B排気の中のフローのスクリプトを書くと、以下のようになります。特徴は、emg==0とemg==1の部分です。これは、たとえば上記のATSのフローが動作しているとき、emgに1がセットされていると、このemg変数も1に変化することを利用して、排気音を出す例です。非常制動が解除されると、このemg変数の値も0に変化するので、待つ処理をやめて、ユルメ音を出して、また先頭に戻るという動きをさせます。

DESKTOPSTATION,SOUNDLOW,SMILESOUND
label,START,,
if,emg==0,START,
play,E233_B排気.wav,1,0
label,PLAY_LOOP,,
if,emg==1,PLAY_LOOP,
play,E233_Bユルメ.wav,1,0
ret,,,

B排気.csv