ATC-1, ATC-2, ATC-NS, KS-ATC, DS-ATCを再現するクラス [詳解]
#include <Atc.h>


クラス | |
| class | AtcA |
| ATC-1, ATC-2を再現するクラス [詳解] | |
| class | AtcD |
| ATC-NS, KS-ATC, DS-ATCを再現するクラス [詳解] | |
| class | Fuzzy |
| 予見Fuzzy制御を再現するクラス [詳解] | |
公開メンバ関数 | |
| Atc (void) | |
| virtual | ~Atc (void) |
| void | InitNS (void) |
| Initializeで実行する関数 [詳解] | |
| void | StartNS (void) |
| ATCを投入する際に実行する関数 [詳解] | |
| void | ExitNS (void) |
| ATCを遮断する際に実行する関数 [詳解] | |
| void | ChangedSignalNS (int signal) |
| SetSignalで実行される関数 [詳解] | |
| void | PassedBeaconNS (int index, int signal, float distance, int optional) |
| SetBeaconDataで実行される関数 [詳解] | |
| void | ResetSwDownNS (void) |
| 確認ボタンが押下された際に実行する関数 [詳解] | |
| void | ResetSwUpNS (void) |
| 確認ボタンが開放された際に実行する関数 [詳解] | |
| void | ExeNS (void) |
| Elapseで実行する関数 [詳解] | |
公開変数類 | |
| int | ServiceNotch |
| 常用最大ブレーキノッチ(HBを含む) [詳解] | |
| int | AtsNotch |
| ATS確認ノッチ(B1) [詳解] | |
| const float * | TrainSpeed |
| 列車速度[km/h] [詳解] | |
| const float * | Accel |
| 加速度[km/h/s] [詳解] | |
| const int * | Time |
| ゲーム内時刻[ms] [詳解] | |
| const int * | BrakeNotch |
| 出力ブレーキノッチ(HBを含む) [詳解] | |
| const int * | ManualBrakeNotch |
| 手動ブレーキノッチ(HBを含む) [詳解] | |
| const int * | PowerNotch |
| 出力力行ノッチ [詳解] | |
| double | Location |
| 列車位置[m] [詳解] | |
| float | max_deceleration_ |
| 常用最大減速度[km/h/s] [詳解] | |
| int | atc_power_ |
| ATC電源(0: 消灯, 1: 点灯) [詳解] | |
| int | atc_use_ |
| ATC(0: 消灯, 1: 点灯) [詳解] | |
| int | atc_type_ |
| ATC方式(0: ATC-1, 1: ATC-2, 2: ATC-NS, 3: KS-ATC, 4: DS-ATC) [詳解] | |
| int | atc_max_spd_ |
| 車両ATC最高速度[km/h] [詳解] | |
| boost::array< int, ALL_SIGNAL > | atc_spd_list_ |
| 信号インデックスに対応する速度[km/h] [詳解] | |
| boost::array< float, BRAKE_STEP > | atc_deceleration_ |
| ATCブレーキ減速度[km/h/s]. [詳解] | |
| int | atc_reset_sw_ |
| 確認ボタンの状態(0: 開放, 1: 押下) [詳解] | |
| int | atc_brake_notch_ |
| ATC出力ブレーキノッチ(HBを含まない) [詳解] | |
| int | atc_red_signal_ |
| 停止現示(0: 消灯, 1: 点灯) [詳解] | |
| int | atc_green_signal_ |
| 進行現示(0: 消灯, 1: 点灯) [詳解] | |
| boost::array< int, ALL_SIGNAL > | atc_sig_indicator_ |
| ATC速度表示インジケータ(0: 消灯, 1: 点灯) [詳解] | |
| boost::array< int, 3 > | atc_spd_7seg_ |
| 7セグ用ATC速度表示 [詳解] | |
| int | atc_signal_index_ |
| ATC速度に対応する信号インデックス [詳解] | |
| int | atc_spd_ |
| ATC速度[km/h]. [詳解] | |
| int | dsatc_arrow_spd_ |
| DS-ATC用パターン照査速度[km/h]. [詳解] | |
| boost::array< int, 3 > | sub_spd_label_1_ |
| 副速度計用目盛 ATC速度-20 km/h [詳解] | |
| boost::array< int, 3 > | sub_spd_label_2_ |
| 副速度計用目盛 ATC速度-10 km/h [詳解] | |
| boost::array< int, 3 > | sub_spd_label_3_ |
| 副速度計用目盛 ATC速度 [詳解] | |
| boost::array< int, 3 > | sub_spd_label_4_ |
| 副速度計用目盛 ATC速度+10 km/h [詳解] | |
| int | sub_atc_spd_ |
| 副速度計用 ATC速度[km/h] [詳解] | |
| int | sub_train_spd_ |
| 副速度計用 列車速度[km/h] [詳解] | |
| float | lever_delay_ |
| ブレーキハンドルの操作から指令出力までの遅れ時間[s] [詳解] | |
| int | atc_ding_ |
| ATCベルの状態 [詳解] | |
| int | reset_sw_up_sound_ |
| 確認ボタンの解放音の状態 [詳解] | |
| int | reset_sw_down_sound_ |
| 確認ボタンの押下音の状態 [詳解] | |
| int | atc_eb_lamp_ |
| ATC非常(0: 消灯, 1: 点灯) [詳解] | |
| int | atc_svc_lamp_ |
| ATC常用(0: 消灯, 1: 点灯) [詳解] | |
| float | Xe |
| 減速完了地点からの許容誤差[m] [詳解] | |
| float | Xo |
| 減速完了地点からの過走限界距離[m] [詳解] | |
| float | Xk |
| XeおよびXoを高速域で拡大させる係数 [詳解] | |
非公開メンバ関数 | |
| int | SearchSignal (int spd) |
| 速度に対応する信号インデックスを返す関数 [詳解] | |
| int | ItoV (int index) |
| 信号インデックスを速度に変換する関数 [詳解] | |
| int | ItoV (int index, bool is_display) |
| 信号インデックスを速度に変換する関数 [詳解] | |
| void | Reset (void) |
| ATC-1, 2, NSにおいて確認扱いの判定を行う関数 [詳解] | |
| void | SetPatternList (void) |
| デジタルATC用速度照査パターンを作成する関数 [詳解] | |
| void | ChangedAtcType (int atc_type) |
| ATC方式を切り替える関数 [詳解] | |
| void | PassedLoop (int signal) |
| ATC-1, 2, NSにおいて停止限界(ループコイル)を通過した際に実行する関数 [詳解] | |
| int | SearchPattern (float distance) |
| 距離に対応する速度を返す関数 [詳解] | |
| void | ValidPattern (int &tget_spd, int pattern_status) |
| パターンが無効の場合に目標速度を車両ATC最高速度に修正する関数 [詳解] | |
| int | CalcPatternSpd (int tget_spd, float pattern_end_loc) |
| パターン照査速度を算出する関数 [詳解] | |
| float | CalcPatternLoc (int tget_spd, float pattern_end_loc, int pattern_status) |
| パターン降下開始地点を算出する関数 [詳解] | |
| void | CollectPattern (void) |
| パターン情報を集約する関数 [詳解] | |
| void | CalcPattern (void) |
| 各パターン情報からパターン照査速度およびパターン降下開始地点を算出する関数 [詳解] | |
| void | ChangedArrowSignal (void) |
| デジタルATC用車内信号を生成する関数 [詳解] | |
| int | CalcBrake (int index, int tget_spd, float pattern_start_loc, float pattern_end_loc) |
| パターンに対する最適ブレーキノッチを出力する関数 [詳解] | |
| int | SelectBrake (void) |
| 全パターンに対する最大の最適ブレーキノッチを出力する関数 [詳解] | |
| int | NonFuzzyCtrExe (void) |
| 予見Fuzzy制御ではないブレーキノッチを出力する関数 [詳解] | |
| void | BrakeExeA (void) |
| アナログATC用のブレーキノッチを出力する関数 [詳解] | |
| void | BrakeExeD (void) |
| デジタルATC用のブレーキノッチを出力する関数 [詳解] | |
| void | DisplaySpd (int spd, boost::array< int, 3 > &display_spd) |
| 速度を7セグに表示する関数 [詳解] | |
| void | ResetIndicatorNS (void) |
| インジケーターの表示を初期化する関数 [詳解] | |
| void | RunIndicatorNS (void) |
| インジケーターの表示を実行する関数 [詳解] | |
| void | RunIndicatorA (void) |
| アナログATC用インジケーターの表示を実行する関数 [詳解] | |
| void | RunIndicatorD (void) |
| デジタルATC用インジケーターの表示を実行する関数 [詳解] | |
| void | RunSubSpeedometer (void) |
| 副速度計の表示を実行する関数 [詳解] | |
| void | PlaySound (void) |
| サウンドを再生する関数 [詳解] | |
基底クラス Base に属する継承非公開メンバ関数 | |
| template<typename T > | |
| T | VectorGetOrDefault (const boost::container::vector< T > &v, int index, char *file, char *func, int line) |
| vectorコンテナへの範囲外アクセス時にデフォルト値を返す関数 [詳解] | |
| template<typename T , std::size_t N> | |
| T | ArrayGetOrDefault (const boost::array< T, N > &a, int index, char *file, char *func, int line) |
| arrayコンテナへの範囲外アクセス時にデフォルト値を返す関数 [詳解] | |
| template<typename T > | |
| T | VectorTryGet (const boost::container::vector< T > &v, int index, char *file, char *func, int line) |
| template<typename T , std::size_t N> | |
| T | ArrayTryGet (const boost::array< T, N > &a, int index, char *file, char *func, int line) |
非公開変数類 | |
| int | max_brake_notch_ |
| 常用最大ブレーキノッチ(HBを含まない) [詳解] | |
| int | brake_notch_ |
| 出力ブレーキノッチ(HBを含まない) [詳解] | |
| boost::array< int, BRAKE_STEP > | default_notch_ |
| 標準ブレーキノッチ [詳解] | |
| int | max_signal_ |
| 車両ATC最高速度に対応する信号インデックス [詳解] | |
| boost::container::vector< double > | pattern_list_ |
| デジタルATC用速度照査パターン [詳解] | |
| int | next_reset_sw_down_sound_ |
| 1フレーム後の確認ボタンの押下音の状態 [詳解] | |
| int | next_reset_sw_up_sound_ |
| 1フレーム後の確認ボタンの開放音の状態 [詳解] | |
| boost::array< float, ALL_PATTERN > | pattarn_end_loc_list_ |
| 全パターンの減速完了地点[m] [詳解] | |
| boost::array< int, ALL_PATTERN > | pattern_is_valid_list_ |
| 全パターンの状態(0: 無効, 1: 有効) [詳解] | |
| boost::array< int, ALL_PATTERN > | pattern_tget_spd_list_ |
| 全パターンの目標速度[km/h] [詳解] | |
| boost::array< int, ALL_PATTERN > | pattern_arrow_spd_list_ |
| 全パターンのパターン照査速度[km/h] [詳解] | |
| boost::array< float, ALL_PATTERN > | pattern_start_loc_list_ |
| 全パターンのパターン降下開始地点[m] [詳解] | |
| int | debug_timer_ |
| Debug出力する次のゲーム内時刻[ms]. [詳解] | |
| int | brake_timer_ |
| ブレーキノッチを変更する次のゲーム内時刻[ms] [詳解] | |
| boost::scoped_ptr< AtcA > | atc_a_ |
| boost::scoped_ptr< AtcD > | atc_d_ |
| boost::scoped_ptr< Fuzzy > | fuzzy_ |
ATC-1, ATC-2, ATC-NS, KS-ATC, DS-ATCを再現するクラス
| Atc::Atc | ( | void | ) |
|
virtual |
|
private |
アナログATC用のブレーキノッチを出力する関数


|
private |
デジタルATC用のブレーキノッチを出力する関数


|
private |
パターンに対する最適ブレーキノッチを出力する関数
| index | パターン番号 |
| tget_spd | 目標速度[km/h] |
| pattern_start_loc | パターン降下開始地点[m] |
| pattern_end_loc | 減速完了地点[m] |

|
private |
各パターン情報からパターン照査速度およびパターン降下開始地点を算出する関数


|
private |
パターン降下開始地点を算出する関数
| tget_spd | 目標速度[km/h] |
| pattern_end_loc | 減速完了地点[m] |
| pattern_status | パターン状態(0: 無効, 1: 有効) |


|
private |
パターン照査速度を算出する関数
減速完了地点内方は目標速度のフラットパターンとなる
| tget_spd | 目標速度[km/h] |
| pattern_end_loc | 減速完了地点[m] |


|
private |
デジタルATC用車内信号を生成する関数


|
private |
ATC方式を切り替える関数
| atc_type | ATC方式 |

| void Atc::ChangedSignalNS | ( | int | signal | ) |
SetSignalで実行される関数
| signal | 現在のセクションの信号番号 |

|
private |
パターン情報を集約する関数

|
private |
速度を7セグに表示する関数
| spd | 速度[km/h] |
| display_spd | 速度を表示する配列 |

| void Atc::ExeNS | ( | void | ) |
Elapseで実行する関数


| void Atc::ExitNS | ( | void | ) |
ATCを遮断する際に実行する関数

| void Atc::InitNS | ( | void | ) |
Initializeで実行する関数


|
private |
信号インデックスを速度に変換する関数
ATC-1のみ220km/h以上300km/h未満は"対応速度+5km/h"、300km/h以上は"対応速度+3km/h"を返す
| index | 信号インデックス |


|
private |
信号インデックスを速度に変換する関数
is_display が偽かつATC-1のみ220km/h以上300km/h未満は"対応速度+5km/h"、300km/h以上は"対応速度+3km/h"を返す
| index | 信号インデックス |
| is_display | パネル表示用かどうか |

|
private |
予見Fuzzy制御ではないブレーキノッチを出力する関数

| void Atc::PassedBeaconNS | ( | int | index, |
| int | signal, | ||
| float | distance, | ||
| int | optional | ||
| ) |
SetBeaconDataで実行される関数
| index | 地上子種別 |
| signal | 対となるセクションの信号番号 |
| distance | 対となるセクションまでの距離[m] |
| optional | 地上子に設定された任意の値 |


|
private |
ATC-1, 2, NSにおいて停止限界(ループコイル)を通過した際に実行する関数
信号番号が0の際に03信号を発信する
| signal | 対となるセクションの信号番号 |

|
private |
サウンドを再生する関数

|
private |
ATC-1, 2, NSにおいて確認扱いの判定を行う関数
ATC-03信号の場合は列車速度が0km/h、ATC-30信号の場合は30km/h以下である場合、ブレーキ開放フラグがONになる

|
private |
インジケーターの表示を初期化する関数

| void Atc::ResetSwDownNS | ( | void | ) |
確認ボタンが押下された際に実行する関数


| void Atc::ResetSwUpNS | ( | void | ) |
確認ボタンが開放された際に実行する関数

|
private |
アナログATC用インジケーターの表示を実行する関数


|
private |
デジタルATC用インジケーターの表示を実行する関数


|
private |
インジケーターの表示を実行する関数


|
private |
副速度計の表示を実行する関数


|
private |
距離に対応する速度を返す関数
指定された距離の近似値に対応する速度を検索する
| distance | 距離[m] |

|
private |
速度に対応する信号インデックスを返す関数
指定された速度以下の近似値に対応する信号インデックスを検索する
| spd | 速度[km/h] |

|
private |
全パターンに対する最大の最適ブレーキノッチを出力する関数


|
private |
デジタルATC用速度照査パターンを作成する関数

| void Atc::StartNS | ( | void | ) |
ATCを投入する際に実行する関数

|
private |
パターンが無効の場合に目標速度を車両ATC最高速度に修正する関数
| tget_spd | 目標速度[km/h] |
| pattern_status | パターン状態(0: 無効, 1: 有効) |

| const float* Atc::Accel |
加速度[km/h/s]
|
private |
| int Atc::atc_brake_notch_ |
ATC出力ブレーキノッチ(HBを含まない)
|
private |
| boost::array<float, BRAKE_STEP> Atc::atc_deceleration_ |
ATCブレーキ減速度[km/h/s].
| int Atc::atc_ding_ |
ATCベルの状態
| int Atc::atc_eb_lamp_ |
ATC非常(0: 消灯, 1: 点灯)
| int Atc::atc_green_signal_ |
進行現示(0: 消灯, 1: 点灯)
| int Atc::atc_max_spd_ |
車両ATC最高速度[km/h]
| int Atc::atc_power_ |
ATC電源(0: 消灯, 1: 点灯)
| int Atc::atc_red_signal_ |
停止現示(0: 消灯, 1: 点灯)
| int Atc::atc_reset_sw_ |
確認ボタンの状態(0: 開放, 1: 押下)
| boost::array<int, ALL_SIGNAL> Atc::atc_sig_indicator_ |
ATC速度表示インジケータ(0: 消灯, 1: 点灯)
| int Atc::atc_signal_index_ |
ATC速度に対応する信号インデックス
| int Atc::atc_spd_ |
ATC速度[km/h].
| boost::array<int, 3> Atc::atc_spd_7seg_ |
7セグ用ATC速度表示
| boost::array<int, ALL_SIGNAL> Atc::atc_spd_list_ |
信号インデックスに対応する速度[km/h]
| int Atc::atc_svc_lamp_ |
ATC常用(0: 消灯, 1: 点灯)
| int Atc::atc_type_ |
ATC方式(0: ATC-1, 1: ATC-2, 2: ATC-NS, 3: KS-ATC, 4: DS-ATC)
| int Atc::atc_use_ |
ATC(0: 消灯, 1: 点灯)
| int Atc::AtsNotch |
ATS確認ノッチ(B1)
|
private |
出力ブレーキノッチ(HBを含まない)
|
private |
ブレーキノッチを変更する次のゲーム内時刻[ms]
| const int* Atc::BrakeNotch |
出力ブレーキノッチ(HBを含む)
|
private |
Debug出力する次のゲーム内時刻[ms].
|
private |
標準ブレーキノッチ
| int Atc::dsatc_arrow_spd_ |
DS-ATC用パターン照査速度[km/h].
|
private |
| float Atc::lever_delay_ |
ブレーキハンドルの操作から指令出力までの遅れ時間[s]
| double Atc::Location |
列車位置[m]
| const int* Atc::ManualBrakeNotch |
手動ブレーキノッチ(HBを含む)
|
private |
常用最大ブレーキノッチ(HBを含まない)
| float Atc::max_deceleration_ |
常用最大減速度[km/h/s]
|
private |
車両ATC最高速度に対応する信号インデックス
|
private |
1フレーム後の確認ボタンの押下音の状態
|
private |
1フレーム後の確認ボタンの開放音の状態
|
private |
全パターンの減速完了地点[m]
|
private |
全パターンのパターン照査速度[km/h]
|
private |
全パターンの状態(0: 無効, 1: 有効)
|
private |
デジタルATC用速度照査パターン
|
private |
全パターンのパターン降下開始地点[m]
|
private |
全パターンの目標速度[km/h]
| const int* Atc::PowerNotch |
出力力行ノッチ
| int Atc::reset_sw_down_sound_ |
確認ボタンの押下音の状態
| int Atc::reset_sw_up_sound_ |
確認ボタンの解放音の状態
| int Atc::ServiceNotch |
常用最大ブレーキノッチ(HBを含む)
| int Atc::sub_atc_spd_ |
副速度計用 ATC速度[km/h]
| boost::array<int, 3> Atc::sub_spd_label_1_ |
副速度計用目盛 ATC速度-20 km/h
| boost::array<int, 3> Atc::sub_spd_label_2_ |
副速度計用目盛 ATC速度-10 km/h
| boost::array<int, 3> Atc::sub_spd_label_3_ |
副速度計用目盛 ATC速度
| boost::array<int, 3> Atc::sub_spd_label_4_ |
副速度計用目盛 ATC速度+10 km/h
| int Atc::sub_train_spd_ |
副速度計用 列車速度[km/h]
| const int* Atc::Time |
ゲーム内時刻[ms]
| const float* Atc::TrainSpeed |
列車速度[km/h]
| float Atc::Xe |
減速完了地点からの許容誤差[m]
| float Atc::Xk |
XeおよびXoを高速域で拡大させる係数
| float Atc::Xo |
減速完了地点からの過走限界距離[m]
1.8.6