Stormworks向け。鉄道用トランスポンダのうち、送信部を構築するための共通システムを目指す。
もし、希望の機能があれば、このGistに対してコメントするか、高原個人宛でTwitterやDiscordへ要望を投げると対応可能。
無線周波数は19998を指定。送信にあたっては必ず小アンテナを用いる。
チャンネル | 用途 | 備考 |
---|---|---|
N 1 | GPS X座標 | |
N 2 | GPS Y座標 | |
N 3 | コンパスセンサー | 運転台の前向きに矢印を向けて設置。進行方向は後に示す公式を用いて判定 |
N 4 | 速度[m/s] | 速度の絶対値(m/s)を送信 |
N 5 | 列車番号 | |
N 6 | 種別等の情報 | この部分の共通化は将来の課題 |
N 11 | 保安装置の送信周波数 | 現時点ではSASARACOSが該当 |
N 12 | 保安装置の受信周波数 | 現時点ではSASARACOSが該当 |
B 1 | 運転台起動中 | R-BUSの制御権に連動させるとよい |
B 2 | 次駅停車 | 停車のときON |
B 3 | 戸開情報 | 開いているときON |
len
という便利関数が入っているので、ビークルのGPSの値と列車のGPSの値を、xとyそれぞれ差を取って、カンマで区切ってlenに投げ込めばよい。
判定範囲は1メートルくらいで十分。進行方向判定と組み合わせるとトラブルもない。
判定地点にコンパスセンサーを含むビークルを置くとき、そのコンパスセンサーの矢印の向きを判定したい向きに合わせてx
とする。
また、列車から送られたコンパスセンサー情報をy
とする。
このとき、cos((x-y)*pi2)
の値が1付近(しきい値は適当に決定する)のとき、同じ向きであると判定できる。また、-1付近のとき、逆向きと判定できる。しきい値は0.5から0.7くらいにしておくのが無難。
高原が参加しているマルチプレイにおいて登場する種別と、その上下関係からして、次のような設定があるとちょうどいいように思われる
- 各駅停車(普通)
- 快速
- 準急
- 急行
- 特急(無料)
- 特急(有料)
- 回送
未指定・回送を0に割り当て、そこから順にとるならトラブルが少なそうに思われる。
快速を急行より上位に取る通例の方式にするか、準急より下位に取る方式にするか、あるいは修飾語として独立させるかなどが悩ましい。