From 0e8b660de5f66f51233a298332bdf2a83c417f7c Mon Sep 17 00:00:00 2001 From: Line16 Date: Fri, 31 Mar 2023 17:27:28 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=E5=B0=8F=E7=94=B0=E6=80=A5PI=E4=BA=92?= =?UTF-8?q?=E6=8F=9B=E6=A9=9F=E8=83=BD=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bve-autopilot/ato.cpp | 23 +++++++++++++++++++ bve-autopilot/bve-autopilot.vcxproj | 8 +++---- bve-autopilot/tasc.cpp | 13 +++++++++++ ...1\345\217\267\351\240\206\345\256\210.cpp" | 5 ++++ ...261\351\200\232\347\212\266\346\205\213.h" | 1 + 5 files changed, 46 insertions(+), 4 deletions(-) diff --git a/bve-autopilot/ato.cpp b/bve-autopilot/ato.cpp index 9870b5d..2bbeec8 100644 --- a/bve-autopilot/ato.cpp +++ b/bve-autopilot/ato.cpp @@ -159,6 +159,29 @@ namespace autopilot } } + if (状態.互換モード() == 互換モード型::小田急PI) { + switch (地上子.Type) { + case 4: //制限速度設定 + if(地上子.Optional % 100 == 0)//制限解除 + 制限区間終了(_制限速度6, { 直前位置, 状態.現在位置() }); + else //制限開始 + { + int 制限速度 = (地上子.Optional % 100) * 5; + int 距離 = 300; //300m固定 + int 送信電文 = 距離 * 1000 + 制限速度; + 制限区間追加( + _制限速度6, 送信電文, { 直前位置, 状態.現在位置() }, + 4.0_kmph); + } + break; + case 5: //制限速度設定 + 制限区間追加( + _制限速度9, 地上子.Optional, { 直前位置, 状態.現在位置() }, + 5.0_kmph); + break; + } + } + _信号.地上子通過(地上子, 直前位置, 状態); _早着防止.地上子通過(地上子, 直前位置, 状態); } diff --git a/bve-autopilot/bve-autopilot.vcxproj b/bve-autopilot/bve-autopilot.vcxproj index 1db59bf..547fc1e 100644 --- a/bve-autopilot/bve-autopilot.vcxproj +++ b/bve-autopilot/bve-autopilot.vcxproj @@ -29,26 +29,26 @@ DynamicLibrary true - v143 + v142 Unicode DynamicLibrary false - v143 + v142 true Unicode DynamicLibrary true - v143 + v142 Unicode DynamicLibrary false - v143 + v142 true Unicode diff --git a/bve-autopilot/tasc.cpp b/bve-autopilot/tasc.cpp index 9889c48..e92f28e 100644 --- a/bve-autopilot/tasc.cpp +++ b/bve-autopilot/tasc.cpp @@ -84,6 +84,11 @@ namespace autopilot { case 255: // TASC 目標停止位置設定 停止位置を追加(static_cast(地上子.Optional), 状態); break; + case 200: // TASC 目標停止位置設定(追加:小田急PIのATO互換) + if (状態.互換モード() == 互換モード型::メトロ総合 || 状態.互換モード() == 互換モード型::小田急PI) { + 停止位置を追加(static_cast(地上子.Optional / 10), 状態); + } + break; case 1031: // TASC 停止位置許容誤差設定 最大許容誤差を設定(static_cast(地上子.Optional)); break; @@ -102,6 +107,14 @@ namespace autopilot { switch (地上子.Type) { + case 21: + //case 22:(小田急PIのATSと干渉するため暫定コメントアウト) + case 23:// TASC 目標停止位置設定(追加:メトロ対応TASC互換) + if (状態.互換モード() == 互換モード型::メトロ総合) { + 次駅停止位置を設定( + static_cast(地上子.Optional % 1000), 直前位置, 状態); + } + break; case 30: // TASC 目標停止位置設定 if (状態.互換モード() == 互換モード型::汎用ats) { 次駅停止位置を設定( diff --git "a/bve-autopilot/\344\277\241\345\217\267\351\240\206\345\256\210.cpp" "b/bve-autopilot/\344\277\241\345\217\267\351\240\206\345\256\210.cpp" index 689aef8..bfa2b52 100644 --- "a/bve-autopilot/\344\277\241\345\217\267\351\240\206\345\256\210.cpp" +++ "b/bve-autopilot/\344\277\241\345\217\267\351\240\206\345\256\210.cpp" @@ -434,6 +434,11 @@ namespace autopilot } } break; + case 22: // 信号現示受信(小田急PI互換) + if (状態.互換モード() == 互換モード型::小田急PI) { + 信号現示受信(地上子, 直前位置, 状態, false); + } + break; case 31: // 信号現示受信 (メトロ総合プラグイン互換) if (状態.互換モード() == 互換モード型::メトロ総合) { 信号現示受信(地上子, 直前位置, 状態, false); diff --git "a/bve-autopilot/\345\205\261\351\200\232\347\212\266\346\205\213.h" "b/bve-autopilot/\345\205\261\351\200\232\347\212\266\346\205\213.h" index 95c6a91..c0a7940 100644 --- "a/bve-autopilot/\345\205\261\351\200\232\347\212\266\346\205\213.h" +++ "b/bve-autopilot/\345\205\261\351\200\232\347\212\266\346\205\213.h" @@ -39,6 +39,7 @@ namespace autopilot { 汎用ats, メトロ総合, swp2, + 小田急PI, }; class 共通状態 From 28940dc95630c5bde4042717244b51359998caf3 Mon Sep 17 00:00:00 2001 From: Line16 Date: Wed, 12 Apr 2023 00:12:34 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=A1=E5=8F=B7=E7=8F=BE=E7=A4=BA?= =?UTF-8?q?=E5=8F=97=E4=BF=A1=E4=BA=88=E6=B8=AC=E3=81=AB=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bve-autopilot/bve-autopilot.vcxproj | 8 ++++---- ...1\345\217\267\351\240\206\345\256\210.cpp" | 20 ++++++++++++++++++- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/bve-autopilot/bve-autopilot.vcxproj b/bve-autopilot/bve-autopilot.vcxproj index 547fc1e..1db59bf 100644 --- a/bve-autopilot/bve-autopilot.vcxproj +++ b/bve-autopilot/bve-autopilot.vcxproj @@ -29,26 +29,26 @@ DynamicLibrary true - v142 + v143 Unicode DynamicLibrary false - v142 + v143 true Unicode DynamicLibrary true - v142 + v143 Unicode DynamicLibrary false - v142 + v143 true Unicode diff --git "a/bve-autopilot/\344\277\241\345\217\267\351\240\206\345\256\210.cpp" "b/bve-autopilot/\344\277\241\345\217\267\351\240\206\345\256\210.cpp" index bfa2b52..47c35de 100644 --- "a/bve-autopilot/\344\277\241\345\217\267\351\240\206\345\256\210.cpp" +++ "b/bve-autopilot/\344\277\241\345\217\267\351\240\206\345\256\210.cpp" @@ -436,7 +436,25 @@ namespace autopilot break; case 22: // 信号現示受信(小田急PI互換) if (状態.互換モード() == 互換モード型::小田急PI) { - 信号現示受信(地上子, 直前位置, 状態, false); + ATS_BEACONDATA Option; + Option = 地上子; //代入する + switch (地上子.Optional) + { + case 4: + Option.Optional = 7654320; + break; + case 5: + Option.Optional = 76543210; + break; + case -4: + Option.Optional = 7654210; + break; + case 3: + default: + Option.Optional = 765420; + break; + } + 信号現示受信(Option, 直前位置, 状態, true); } break; case 31: // 信号現示受信 (メトロ総合プラグイン互換) From 99ed0e874f228ea9dc5714e994a2b40ba5b37c44 Mon Sep 17 00:00:00 2001 From: Line16 Date: Fri, 14 Apr 2023 00:22:30 +0900 Subject: [PATCH 3/3] =?UTF-8?q?#22=E9=80=81=E4=BF=A1=E5=80=A4=E3=81=8C?= =?UTF-8?q?=E3=82=84=E3=82=80=E3=81=AA=E3=81=8F0=E3=81=AB=E3=81=AA?= =?UTF-8?q?=E3=81=A3=E3=81=A6=E3=81=84=E3=81=9F=E9=9A=9B=E3=81=AE=E5=8B=95?= =?UTF-8?q?=E4=BD=9C=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\344\277\241\345\217\267\351\240\206\345\256\210.cpp" | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git "a/bve-autopilot/\344\277\241\345\217\267\351\240\206\345\256\210.cpp" "b/bve-autopilot/\344\277\241\345\217\267\351\240\206\345\256\210.cpp" index 47c35de..dcaaf51 100644 --- "a/bve-autopilot/\344\277\241\345\217\267\351\240\206\345\256\210.cpp" +++ "b/bve-autopilot/\344\277\241\345\217\267\351\240\206\345\256\210.cpp" @@ -450,9 +450,11 @@ namespace autopilot Option.Optional = 7654210; break; case 3: - default: Option.Optional = 765420; break; + default: + Option.Optional = 0; + break; } 信号現示受信(Option, 直前位置, 状態, true); }