SSブログ

複線8信号レイアウト信号管理 [自動運転]

 すごい勢いでYaasan様が開発するので、レビューです。
 R4bです。Delayを入れる必要がなくなったので、ソースは短くなりました。
 ただし、信号機のアクセサリ部分は今までDelay50msだったのが200msになったので、全体のループのDelayなども見直しました。Delayの希望としては50~100msです。
 また、今回は「複線8信号レイアウト信号管理」なので、S88は8ポート(内回り4ch、外回り4ch)使っています。前回、駅に電車を止めて出発させていましたが、この部分は電車を止めて出発するまでDelayを入れてS88の検出を止めてしまっていますので、これをやると電車が止まっている間信号機管理が止まってしまうため、取りあえず電車制御はやめています。また変数Fを加えています。これは、S88検出をしてAcc制御した場合はループのDelayを抜くためのフラグです。(あまりにもS88の検出ループが長くなってしまうので)。また、8Chのため分岐用のIf文が倍になっています。
 で、今回のソースです。(ちょっと前回とS88のchなど変更しています)
------------
70 F=0
75 T=5
80 L=3
85 S=35
90 D=50
100 A=GS8(0)
105 PRINT "S88(",A,")"
110 IF A&128 GOSUB 200
120 IF A&64 GOSUB 300
130 IF A&32 GOSUB 400
140 IF A&16 GOSUB 500
150 IF A&1 GOSUB 600
160 IF A&2 GOSUB 700
170 IF A&4 GOSUB 800
180 IF A&8 GOSUB 900
190 IF F=0 DELAY 200
192 F=0:CLS
195 GOTO 100
200 ACC 42,0:ACC 43,0:ACC 54,1:ACC 51,1
210 F=1:RETURN
300 ACC 46,0:ACC 47,0:ACC 42,1:ACC 55,1
310 F=1:RETURN
400 ACC 50,0:ACC 51,0:ACC 46,1:ACC 43,1
410 F=1:RETURN
500 ACC 54,0:ACC 55,0:ACC 50,1:ACC 47,1
510 F=1:RETURN
600 ACC 62,0:ACC 63,0:ACC 70,1:ACC 67,1
610 F=1:RETURN
700 ACC 58,0:ACC 59,0:ACC 62,1:ACC 71,1
710 F=1:RETURN
800 ACC 66,0:ACC 67,0:ACC 58,1:ACC 63,1
810 F=1:RETURN
900 ACC 70,0:ACC 71,0:ACC 66,1:ACC 59,1
910 F=1:RETURN
------------
 Export、Importするソースはbasという拡張子ですが、中身はテキストです。
 バグかどうかわかりませんが、Exportすると、ファイル内に以前のソースごと入ってしまうようです。(何回かSaveとLoadをしているせいでしょうか)ファイル内の一番下が最新のソースのようです。?
 あとは、Serialの通信速度を落としたとのことで、当たり前ですが、旧スケッチとDSBasicEditor0.1を組み合わせると文字化けしてちゃんと通信できません。
 ただ、格段に操作性は上がりました。プログラムを入れるだけならDSBasic側のモニタは要らないぐらいです。一つ要望を言うと、プログラムをPC側から止めたいです。(ESCキーはSerialを通らないので)
 で、今回の動画です。内回り、外回りを定速で電車が動いていて、信号機がたんたんと変わっていくだけですが、信号機関連はDSBasicで動作しています。

 明日、明後日は家族旅行のためおりません。

コメント(0)  トラックバック(0) 

コメント 0

コメントを書く

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

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

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