OpenTetsu API標準
OpenTetsu API標準は、システム間でデータを受け渡しするための標準的な方法として、タヌ電で使用されています。
自分のプロジェクトやソフトウェアでOpenTetsu API標準を使用するのは完全に無料です。
なぜ標準を作るのか?
このAPI標準はプラットフォームにとらわれず、また最も重要なこととして、トレインシミュレータのアドオンやプラグイン間でデータ構造を統一するために設計されています。元々はTrainCrewのために設計されたものですが、この標準は日本のトレインシミュレータにとって十分かつ柔軟なものです。
TrainCrewのAPIとの違い
TrainCrewが提供するAPIは包括的ですが、命名規則やデータ構造が明確ではありません(例えば、いくつかの変数はnullではなく空文字列として返されます)。OpenTetsuは、変数がグループにネストされた構造を提供し、変数の命名がより予測しやすくなっています。
API例
{
"atsState": {
"classType": "普通",
"speed": 112.0,
"state": "無表示"
},
"controllerState": {
"notch": -8,
"reverser": 1
},
"currentTime": "13:05:25.8310000",
"diagram": {
"direction": "outbound",
"boundFor": "館浜",
"remainingDistance": 4292.4,
"serviceType": "普通",
"stations": [
{
"distanceFromKmZero": 0.0,
"index": 0,
"name": "虹ケ浜",
"positionName": "虹ケ浜駅下り",
"stopType": 0,
"timings": {
"arrival": "13:05:35",
"departure": "13:05:55"
}
},
{
"distanceFromKmZero": 1940.2,
"index": 1,
"name": "海岸公園",
"positionName": "海岸公園駅下り",
"stopType": 0,
"timings": {
"arrival": "13:07:50",
"departure": "13:08:10"
}
},
{
"distanceFromKmZero": 3260.3,
"index": 2,
"name": "河原崎",
"positionName": "河原崎駅下り",
"stopType": 0,
"timings": {
"arrival": "13:09:45",
"departure": "13:10:05"
}
},
{
"distanceFromKmZero": 4292.4,
"index": 3,
"name": "駒野",
"positionName": "駒野駅3番下り",
"stopType": 0,
"timings": {
"arrival": "13:11:30",
"departure": "13:12:00"
}
}
]
},
"nextStation": {
"distance": 0.0,
"index": 0,
"isStopping": true,
"name": "虹ケ浜"
},
"runNumber": "1261",
"trainState": {
"carStates": [
{
"amperage": 0.0,
"bcPressure": 440.0,
"carNo": 1,
"isDoorClosed": false
},
{
"amperage": 0.0,
"bcPressure": 440.0,
"carNo": 2,
"isDoorClosed": false
},
{
"amperage": 0.0,
"bcPressure": 440.0,
"carNo": 3,
"isDoorClosed": false
},
{
"amperage": 0.0,
"bcPressure": 440.0,
"carNo": 4,
"isDoorClosed": false
}
],
"consist": 4,
"lamps": {
"ats": {
"brakeApplication": false,
"inOperation": true,
"isolated": false
},
"eBrake": true,
"ebTimer": false,
"overload": false,
"pilot": false,
"regenBrake": false
},
"mrPressure": 700.0,
"nextSpeedLimit": {
"distance": -1.0,
"limit": -1.0,
"type": "speedlimit"
},
"speed": 0.0,
"speedLimit": 110.0,
"speedLimitType": "speedlimit"
},
"signalStates": [
{
"name": "下り閉塞59",
"type": "standard",
"phase": "G",
"distance": 11.93904,
"transponders": [
{
"type": "SigIfStop",
"speedlimit": 45.0,
"distance": -151.1066
},
{
"type": "SigIfStop",
"speedlimit": 0.0,
"distance": -36.10801
},
{
"type": "Signal",
"speedlimit": 0.0,
"distance": 3.892306
},
{
"type": "SigIfStop",
"speedlimit": 30.0,
"distance": -86.10764
}
]
}
]
}最終更新