見出し画像

Rosso Laboratory

2つ目の駅にも対応させる

前回の続きで、折角なら2つ以上の駅にも対応できるスクリプトを作っておこうと思い、書いてみました。

LAYOUT
doorTAG = 0
doorside = 0
    if ev == 'init':
        vrmapi.LAYOUT().CrossingGroupCTRL(10, 2)
        vrmapi.LAYOUT().CrossingGroupCTRL(11, 2)

TRAIN
    if ev == 'init':
        global doorTAG
        global doorside
    elif ev == 'after':
        if param['eventUID'] == 100:
            obj.CloseDoor(doorside, False)
            vrmapi.LAYOUT().CrossingGroupCTRL(doorTAG, 2)
            obj.SetEventAfter(3,200)
        if param['eventUID'] == 200:
            obj.AutoSpeedCTRL(400,1.0)
    elif ev == 'autospeed':
        s = obj.GetSpeed()
        if s == 0:
            obj.OpenDoor(doorside, False)
            vrmapi.LAYOUT().CrossingGroupCTRL(doorTAG, 1)
            obj.SetEventAfter(10,100)

SENSOR_01
    if ev == 'init':
        obj.SetSNSMode(0)
    elif ev == 'catch':
        global doorTAG
        global doorside
        doorTAG = 10
        doorside = 0
        train = obj.GetTrain()
        train.AutoSpeedCTRL(435,0)

SENSOR_02
    if ev == 'init':
        obj.SetSNSMode(0)
    elif ev == 'catch':
        global doorTAG
        global doorside
        doorTAG = 11
        doorside = 1
        train = obj.GetTrain()
        train.AutoSpeedCTRL(435,0)

注意すべき点は、CrossingGroupCTRL()のホームドアタグを文字列から数字に変えた点です。ここに変数を使うと文字列は対応していないらしく数字で指定するしかありませんでした。あと動作しなくて苦労した点はTRAINの'after'と'autospeed'の両方に同じグローバル宣言を書いていたことで、2つ同じものを書くと動作しなくなるんですね。よって'init'の方にまとめました(^_^;) これでセンサーにてホームドアタグ番号、左右どちら側か、制動距離を指定できるので複数の駅に対応できることになりました(^^)/ 但しこれだと1路線に複数の編成が走っていると対応できていないような気がします。まだ改良の余地はありますか(^_^;)
PVアクセスランキング にほんブログ村


ランキングに参加中。クリックして応援お願いします!

名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

※ブログ作成者から承認されるまでコメントは反映されません。

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最新の画像もっと見る

最近の「Pythonスクリプト」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事