SSブログ

メモリーと信号のリスト [python]

さて、前回までにメモリーの読み出し、信号現示の読み出し、スロットルの制御が出来ることが分かりましたので、
特定の列車の位置を探し出し、信号現示に従って速度を制御するスクリプトを試作していきます。

まず、読み出すべきメモリー値や信号のSystem Nameを登録します。
pythonではリストとして変数を持てます。
例えば、メモリーのリストを
memoriList = ['IM:AUTO:0005', 'IM:AUTO:0004', 'IM:AUTO:0020', 'IM:AUTO:0019', 'IM:AUTO:0018', 'IM:AUTO:0014', 'IM:AUTO:0013', 'IM:AUTO:0012', 'IM:AUTO:0021', 'IM:AUTO:0022', 'IM:AUTO:0011', 'IM:AUTO:0010', 'IM:AUTO:0009', 'IM:AUTO:0023', 'IM:AUTO:0024', 'IM:AUTO:0001', 'IM:AUTO:0002', 'IM:AUTO:0003', 'IM:AUTO:0015', 'IM:AUTO:0016', 'IM:AUTO:0017', 'IM:AUTO:0008', 'IM:AUTO:0007', 'IM:AUTO:0006']
こんな感じで定義できます。

3つめを取り出すときは
a = memoriList[2]
です。(0からなので、3つめは2)

このメモリーリストに対して、参照すべき信号のリストを
singoList = ['IH:SE8C:"LT273";"LT274"', 'IH:SE8C:"LT275";"LT276"', 'IH:SE8C:"LT287";"LT288"', 'IH:SE8C:"LT285";"LT286"', 'IH:SE8C:"LT283";"LT284"', 'IH43', 'IH:SE8C:"LT261";"LT262"', 'IH:SE8C:"LT263";"LT264"', 'IH:SE8C:"LT301";"LT302"', 'IH:SE8C:"LT303";"LT304"', 'IH45', 'IH:SE8C:"LT265";"LT266"', 'IH:SE8C:"LT267";"LT268"', 'IH:SE8C:"LT305";"LT306"', 'IH:SE8C:"LT307";"LT308"', 'IH46', 'IH:SE8C:"LT257";"LT258"', 'IH:SE8C:"LT259";"LT260"', 'IH:SE8C:"LT277";"LT278"', 'IH:SE8C:"LT279";"LT280"', 'IH:SE8C:"LT281";"LT282"', 'IH44', 'IH:SE8C:"LT269";"LT270"', 'IH:SE8C:"LT271";"LT272"', 'IH47']
このように決めます。
メモリーは占有センサ(=閉塞区間)のブロックに対応してます。リストの同じ順番にその閉塞区間で見るべき先の信号機を対応させています。
IH44など、ダミーの信号機の部分は場内信号機で、場内の場合はどれか一つが緑現示なら緑、黄なら黄となるようにダミーを立てています。そのようなLogixを組んでいます。

たとえば、memoriList[10]の列車はsingoList[10]を参照すればいいようになってます。
ですので、ある列車がmemoriList[10]にいることが分かれば、singoList[10]の現示に従って速度を調節すれば良い訳です。

次回は、目的の列車がどこにいるかを探すルーチンです。
タグ:Python DCC
nice!(1)  コメント(1)  トラックバック(0) 

nice! 1

コメント 1

pururu

ジュンパパ様、niceありがとうございます。
by pururu (2013-05-02 09:24) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。