ATCFS
 全て クラス 名前空間 ファイル 関数 変数 型定義 マクロ定義 ページ
Atc.h
[詳解]
1 // Copyright 2018 S520
2 // All rights reserved.
3 //
4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are met :
6 //
7 // 1. Redistributions of source code must retain the above copyright notice,
8 // this list of conditions and the following disclaimer.
9 // 2. Redistributions in binary form must reproduce the above copyright notice,
10 // this list of conditions and the following disclaimer in the documentation
11 // and / or other materials provided with the distribution.
12 //
13 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
14 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16 // DISCLAIMED.IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
17 // ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
20 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
22 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 
24 #ifndef ATC_H_
25 #define ATC_H_
26 #include <boost/container/vector.hpp>
27 #include <boost/array.hpp>
28 #include <boost/scoped_ptr.hpp>
29 #include "Base.h"
30 
31 #define LOGARGS __FILE__, __FUNCTION__, __LINE__ // For Debug
32 #define BRAKE_STEP 4
33 #define ALL_PATTERN 8
34 #define STA_PATTERN 3
35 #define USR_PATTERN 3
36 #define ALL_SIGNAL 12
37 
38 class Atc :private Base {
42  private:
45  boost::array<int, BRAKE_STEP>default_notch_;
47  boost::container::vector<double>pattern_list_;
50  boost::array<float, ALL_PATTERN>pattarn_end_loc_list_;
51  boost::array<int, ALL_PATTERN>pattern_is_valid_list_;
52  boost::array<int, ALL_PATTERN>pattern_tget_spd_list_;
53  boost::array<int, ALL_PATTERN>pattern_arrow_spd_list_;
54  boost::array<float, ALL_PATTERN>pattern_start_loc_list_;
57 
58  int SearchSignal(int spd);
59  int ItoV(int index);
60  int ItoV(int index, bool is_display);
61  void Reset(void);
62  void SetPatternList(void);
63  void ChangedAtcType(int atc_type);
64  void PassedLoop(int signal);
65  int SearchPattern(float distance);
66  void ValidPattern(int& tget_spd, int pattern_status);
67  int CalcPatternSpd(int tget_spd, float pattern_end_loc);
68  float CalcPatternLoc(int tget_spd, float pattern_end_loc, int pattern_status);
69  void CollectPattern(void);
70  void CalcPattern(void);
71  void ChangedArrowSignal(void);
72  int CalcBrake(int index, int tget_spd, float pattern_start_loc, float pattern_end_loc);
73  int SelectBrake(void);
74  int NonFuzzyCtrExe(void);
75  void BrakeExeA(void);
76  void BrakeExeD(void);
77  void DisplaySpd(int spd, boost::array<int, 3>&display_spd);
78  void ResetIndicatorNS(void);
79  void RunIndicatorNS(void);
80  void RunIndicatorA(void);
81  void RunIndicatorD(void);
82  void RunSubSpeedometer(void);
83  void PlaySound(void);
84 
86 
90  class AtcA {
91  private:
92  const Atc *atc_;
93 
94  public:
95  int signal_;
100 
101  explicit AtcA(const Atc *atc);
102  virtual ~AtcA(void);
103  void Init(void);
104  void ChangedSignal(int signal);
105  };
107 
111  class AtcD {
112  private:
113  const Atc *atc_;
114  float prev_spd_;
115 
116  public:
124  int tget_spd_;
127 
128  explicit AtcD(const Atc *atc);
129  virtual ~AtcD(void);
130  void Init(void);
131  void ChangedSignal(int signal);
132  void AtcCheck(void);
133 
135 
139  class SectionD :private Base {
140  private:
141  const Atc *atc_;
142  double prev_loc_;
143  boost::container::vector<float>section_loc_list_;
144 
145  public:
148 
149  explicit SectionD(const Atc *atc);
150  virtual ~SectionD(void);
151  void Init(void);
152  void RegSection(float distance);
153  void CalcSection(void);
154  };
156 
160  class StationD {
161  private:
162  const Atc *atc_;
164  boost::array<int, STA_PATTERN>pattern_is_ready_;
165 
166  public:
167  boost::array<float, STA_PATTERN>pattern_end_loc_;
168  boost::array<int, STA_PATTERN>pattern_is_valid_;
169  boost::array<int, STA_PATTERN>pattern_tget_spd_;
170 
171  explicit StationD(const Atc *atc);
172  virtual ~StationD(void);
173  void Init(void);
174  void RegStaStop(int signal);
175  void RegStaBranch(int distance);
176  void RegStaManual(int distance);
177  void RegStaEnd(int distance);
178  void RegStaLoc(void);
179  void IsStopSta(void);
180  };
182 
186  class PatternD {
187  private:
188  const Atc *atc_;
189 
190  public:
191  boost::array<float, USR_PATTERN>pattern_end_loc_;
192  boost::array<int, USR_PATTERN>pattern_is_valid_;
193  boost::array<int, USR_PATTERN>pattern_tget_spd_;
194 
195  explicit PatternD(const Atc *atc);
196  virtual ~PatternD(void);
197  void Init(void);
198  void RegPattern(int type, int optional);
199  };
201  boost::scoped_ptr<SectionD>section_d_;
202  boost::scoped_ptr<StationD>station_d_;
203  boost::scoped_ptr<PatternD>pattern_d_;
204  };
206 
210  class Fuzzy :private Base {
211  private:
212  const Atc *atc_;
217  boost::container::vector<float>fuzzy_Xp_;
218  boost::container::vector<float>fuzzy_Ugg_;
219  boost::container::vector<float>fuzzy_Uga_;
220  float fuzzy_Ucg_;
221  float fuzzy_Ucb_;
222  boost::container::vector<float>fuzzy_U_;
223  float fuzzy_Usb_;
224  float fuzzy_Usvb_;
225 
226  float FuzzyFuncL(float x, float a, float b);
227  float FuzzyFuncF(float x, float a, float b);
228  float FuzzyFuncA(float x, float a, float b);
229  float FuzzyFuncG(float x, float a, float b);
230  float FuzzyFuncQ(float x, float a, float b);
231  float FuzzyEstLoc(int tget_spd, int notch_num);
232 
233  public:
235  boost::array<int, ALL_PATTERN>fuzzy_step_;
236  boost::array<int, ALL_PATTERN>brake_timer_;
237  boost::array<int, ALL_PATTERN>prev_tget_spd_;
238  boost::array<float, ALL_PATTERN>prev_pattern_end_loc_;
239  boost::array<int, ALL_PATTERN>fuzzy_brake_notch_list_;
240 
241  explicit Fuzzy(const Atc *atc);
242  virtual ~Fuzzy(void);
243  void Init(void);
244  void FuzzyAdjDeceleration(void);
245  int FuzzyCtrInit(int index, float pattern_start_loc);
246  int FuzzyCtrExe(int index, int tget_spd, float pattern_end_loc);
247  };
249  boost::scoped_ptr<AtcA>atc_a_;
250  boost::scoped_ptr<AtcD>atc_d_;
251  boost::scoped_ptr<Fuzzy>fuzzy_;
252 
253  public:
255  int AtsNotch;
256  const float *TrainSpeed;
257  const float *Accel;
258  const int *Time;
259  const int *BrakeNotch;
260  const int *ManualBrakeNotch;
261  const int *PowerNotch;
262  double Location;
265  int atc_use_;
266  int atc_type_;
268  boost::array<int, ALL_SIGNAL>atc_spd_list_;
269  boost::array<float, BRAKE_STEP>atc_deceleration_;
274  boost::array<int, ALL_SIGNAL>atc_sig_indicator_;
275  boost::array<int, 3>atc_spd_7seg_;
277  int atc_spd_;
279  boost::array<int, 3>sub_spd_label_1_;
280  boost::array<int, 3>sub_spd_label_2_;
281  boost::array<int, 3>sub_spd_label_3_;
282  boost::array<int, 3>sub_spd_label_4_;
285  float lever_delay_;
286  int atc_ding_;
291  float Xe;
292  float Xo;
293  float Xk;
294 
295  Atc(void);
296  virtual ~Atc(void);
297  void InitNS(void);
298  void StartNS(void);
299  void ExitNS(void);
300  void ChangedSignalNS(int signal);
301  void PassedBeaconNS(int index, int signal, float distance, int optional);
302  void ResetSwDownNS(void);
303  void ResetSwUpNS(void);
304  void ExeNS(void);
305 };
306 
307 #endif // ATC_H_
void BrakeExeA(void)
アナログATC用のブレーキノッチを出力する関数
Definition: Atc.cpp:1086
const Atc * atc_
Atcクラスのオブジェクトを格納するポインタ
Definition: Atc.h:141
void PassedBeaconNS(int index, int signal, float distance, int optional)
SetBeaconDataで実行される関数
Definition: Atc.cpp:397
const float * TrainSpeed
列車速度[km/h]
Definition: Atc.h:256
int is_stop_svc_
ATC-30信号ブレーキフラグ
Definition: Atc.h:118
int is_stop_svc_
ATC-30信号ブレーキフラグ
Definition: Atc.h:97
float fuzzy_prev_Tc_
最後に出力ブレーキノッチが変化したゲーム内時刻[s]
Definition: Atc.h:215
const Atc * atc_
Atcクラスのオブジェクトを格納するポインタ
Definition: Atc.h:113
void FuzzyAdjDeceleration(void)
各ブレーキノッチの減速度の補正値を算出する関数
Definition: Atc.cpp:884
void SetPatternList(void)
デジタルATC用速度照査パターンを作成する関数
Definition: Atc.cpp:282
float fuzzy_Usvb_
「安全性がとても悪い(SVB)」の評価値
Definition: Atc.h:224
void RegStaLoc(void)
駅停車許容フラグをONにする関数
Definition: Atc.cpp:618
テンプレートを記述する基底クラス
Definition: Base.h:33
int NonFuzzyCtrExe(void)
予見Fuzzy制御ではないブレーキノッチを出力する関数
Definition: Atc.cpp:1056
boost::array< int, ALL_PATTERN > fuzzy_brake_notch_list_
全パターンの予見Fuzzy制御の最適ブレーキノッチ
Definition: Atc.h:239
int signal_
車内信号の信号インデックス
Definition: Atc.h:95
int atc_brake_notch_
ATC出力ブレーキノッチ(HBを含まない)
Definition: Atc.h:271
boost::container::vector< float > fuzzy_Xp_
予測減速完了地点[m]
Definition: Atc.h:217
void Init(void)
Initializeで実行する関数
Definition: Atc.cpp:213
ATC-1, ATC-2, ATC-NS, KS-ATC, DS-ATCを再現するクラス
Definition: Atc.h:41
virtual ~SectionD(void)
Definition: Atc.cpp:78
int next_reset_sw_down_sound_
1フレーム後の確認ボタンの押下音の状態
Definition: Atc.h:48
boost::array< int, ALL_PATTERN > fuzzy_step_
全パターンの予見Fuzzy制御の制御段階
Definition: Atc.h:235
int arrow_signal_
パターン照査速度の信号インデックス
Definition: Atc.h:122
boost::array< int, STA_PATTERN > pattern_is_ready_
駅への停車開始判定フラグ
Definition: Atc.h:164
int atc_signal_index_
ATC速度に対応する信号インデックス
Definition: Atc.h:276
void CollectPattern(void)
パターン情報を集約する関数
Definition: Atc.cpp:730
int atc_green_signal_
進行現示(0: 消灯, 1: 点灯)
Definition: Atc.h:273
int ItoV(int index)
信号インデックスを速度に変換する関数
Definition: Atc.cpp:248
int next_reset_sw_up_sound_
1フレーム後の確認ボタンの開放音の状態
Definition: Atc.h:49
boost::scoped_ptr< SectionD > section_d_
Definition: Atc.h:201
int adj_timer_
減速度補正を行う次のゲーム内時刻[ms]
Definition: Atc.h:214
boost::array< int, ALL_PATTERN > prev_tget_spd_
全パターンの以前の目標速度[km/h]
Definition: Atc.h:237
const int * PowerNotch
出力力行ノッチ
Definition: Atc.h:261
float FuzzyFuncG(float x, float a, float b)
Fuzzyメンバシップ関数G
Definition: Atc.cpp:854
int is_stop_sta_
駅停車後方許容地点フラグ
Definition: Atc.h:163
boost::scoped_ptr< PatternD > pattern_d_
Definition: Atc.h:203
boost::scoped_ptr< StationD > station_d_
Definition: Atc.h:202
int FuzzyCtrExe(int index, int tget_spd, float pattern_end_loc)
予見Fuzzy制御を行う関数
Definition: Atc.cpp:945
boost::array< float, STA_PATTERN > pattern_end_loc_
減速完了地点[m]
Definition: Atc.h:167
int atc_svc_lamp_
ATC常用(0: 消灯, 1: 点灯)
Definition: Atc.h:290
void RunIndicatorD(void)
デジタルATC用インジケーターの表示を実行する関数
Definition: Atc.cpp:1175
const Atc * atc_
Atcクラスのオブジェクトを格納するポインタ
Definition: Atc.h:188
void RunSubSpeedometer(void)
副速度計の表示を実行する関数
Definition: Atc.cpp:1200
void Init(void)
Initializeで実行する関数
Definition: Atc.cpp:189
int atc_spd_
ATC速度[km/h].
Definition: Atc.h:277
float adj_deceleration_
各ブレーキノッチの減速度補正値[m/s^2]
Definition: Atc.h:234
const int * Time
ゲーム内時刻[ms]
Definition: Atc.h:258
const float * Accel
加速度[km/h/s]
Definition: Atc.h:257
boost::scoped_ptr< AtcD > atc_d_
Definition: Atc.h:250
double Location
列車位置[m]
Definition: Atc.h:262
int atc_power_
ATC電源(0: 消灯, 1: 点灯)
Definition: Atc.h:264
float fuzzy_Usb_
「安全性が悪い(SB)」の評価値
Definition: Atc.h:223
int atc_ding_
ATCベルの状態
Definition: Atc.h:286
boost::array< int, ALL_PATTERN > pattern_is_valid_list_
全パターンの状態(0: 無効, 1: 有効)
Definition: Atc.h:51
SectionD(const Atc *atc)
Definition: Atc.cpp:53
boost::array< int, 3 > atc_spd_7seg_
7セグ用ATC速度表示
Definition: Atc.h:275
boost::array< int, 3 > sub_spd_label_1_
副速度計用目盛 ATC速度-20 km/h
Definition: Atc.h:279
boost::container::vector< float > section_loc_list_
以前の列車位置[m]
Definition: Atc.h:143
void IsStopSta(void)
駅停車完了判定を行う関数
Definition: Atc.cpp:626
void RegStaStop(int signal)
駅への停車開始判定を行う関数
Definition: Atc.cpp:565
int reset_sw_up_sound_
確認ボタンの解放音の状態
Definition: Atc.h:287
float lever_delay_
ブレーキハンドルの操作から指令出力までの遅れ時間[s]
Definition: Atc.h:285
void ResetIndicatorNS(void)
インジケーターの表示を初期化する関数
Definition: Atc.cpp:1140
boost::array< float, USR_PATTERN > pattern_end_loc_
減速完了地点[m]
Definition: Atc.h:191
void CalcPattern(void)
各パターン情報からパターン照査速度およびパターン降下開始地点を算出する関数
Definition: Atc.cpp:752
int tget_spd_
目標速度[km/h]
Definition: Atc.h:124
virtual ~Atc(void)
Definition: Atc.cpp:69
float FuzzyFuncA(float x, float a, float b)
Fuzzyメンバシップ関数A
Definition: Atc.cpp:842
boost::container::vector< float > fuzzy_Uga_
「正確に停止する(GA)」の評価値
Definition: Atc.h:219
int FuzzyCtrInit(int index, float pattern_start_loc)
予見Fuzzy制御を初期化する関数
Definition: Atc.cpp:923
const int * ManualBrakeNotch
手動ブレーキノッチ(HBを含む)
Definition: Atc.h:260
void InitNS(void)
Initializeで実行する関数
Definition: Atc.cpp:93
boost::container::vector< float > fuzzy_Ugg_
「うまく停止する(GG)」の評価値
Definition: Atc.h:218
int dsatc_arrow_spd_
DS-ATC用パターン照査速度[km/h].
Definition: Atc.h:278
予見Fuzzy制御を再現するクラス
Definition: Atc.h:210
int brake_notch_
出力ブレーキノッチ(HBを含まない)
Definition: Atc.h:44
int max_brake_notch_
常用最大ブレーキノッチ(HBを含まない)
Definition: Atc.h:43
int next_atc_ding_
1フレーム後のATCベルの状態
Definition: Atc.h:99
void StartNS(void)
ATCを投入する際に実行する関数
Definition: Atc.cpp:300
Atc(void)
Definition: Atc.cpp:36
float FuzzyFuncQ(float x, float a, float b)
Fuzzyメンバシップ関数Gの形状を制御する関数
Definition: Atc.cpp:870
boost::array< int, ALL_PATTERN > brake_timer_
全パターンの予見Fuzzy制御を実行する次のゲーム内時刻[ms]
Definition: Atc.h:236
void Init(void)
Initializeで実行する関数
Definition: Atc.cpp:202
int prev_tget_signal_
以前の目標速度の信号インデックス
Definition: Atc.h:126
PatternD(const Atc *atc)
Definition: Atc.cpp:61
int tget_signal_
目標速度の信号インデックス
Definition: Atc.h:125
double prev_loc_
Definition: Atc.h:142
virtual ~StationD(void)
Definition: Atc.cpp:81
boost::array< int, 3 > sub_spd_label_2_
副速度計用目盛 ATC速度-10 km/h
Definition: Atc.h:280
ATC-1, ATC-2を再現するクラス
Definition: Atc.h:90
boost::scoped_ptr< Fuzzy > fuzzy_
Definition: Atc.h:251
boost::array< int, ALL_SIGNAL > atc_sig_indicator_
ATC速度表示インジケータ(0: 消灯, 1: 点灯)
Definition: Atc.h:274
const Atc * atc_
Atcクラスのオブジェクトを格納するポインタ
Definition: Atc.h:162
virtual ~AtcD(void)
Definition: Atc.cpp:75
void RegSection(float distance)
閉塞境界位置を登録する関数
Definition: Atc.cpp:544
void Init(void)
Initializeで実行する関数
Definition: Atc.cpp:179
boost::array< int, ALL_PATTERN > pattern_arrow_spd_list_
全パターンのパターン照査速度[km/h]
Definition: Atc.h:53
void ChangedSignal(int signal)
SetSignalで実行され、車内信号を更新する関数
Definition: Atc.cpp:343
void CalcSection(void)
停止位置を算出する関数
Definition: Atc.cpp:556
float FuzzyFuncL(float x, float a, float b)
Fuzzyメンバシップ関数L
Definition: Atc.cpp:808
void ExeNS(void)
Elapseで実行する関数
Definition: Atc.cpp:1243
boost::array< int, 3 > sub_spd_label_3_
副速度計用目盛 ATC速度
Definition: Atc.h:281
ATC-NS, KS-ATC, DS-ATCを再現するクラス
Definition: Atc.h:111
boost::array< int, STA_PATTERN > pattern_is_valid_
パターンの状態(0: 無効, 1: 有効)
Definition: Atc.h:168
void ResetSwDownNS(void)
確認ボタンが押下された際に実行する関数
Definition: Atc.cpp:522
Fuzzy(const Atc *atc)
Definition: Atc.cpp:65
int is_stop_eb_
ATC-02, 03信号ブレーキフラグ
Definition: Atc.h:96
int debug_timer_
Debug出力する次のゲーム内時刻[ms].
Definition: Atc.h:55
boost::container::vector< float > fuzzy_U_
"(CG >= CB) And GA"の評価値
Definition: Atc.h:222
virtual ~PatternD(void)
Definition: Atc.cpp:84
float Xo
減速完了地点からの過走限界距離[m]
Definition: Atc.h:292
int SearchSignal(int spd)
速度に対応する信号インデックスを返す関数
Definition: Atc.cpp:238
int prev_arrow_signal_
以前のパターン照査速度の信号インデックス
Definition: Atc.h:123
StationD(const Atc *atc)
Definition: Atc.cpp:57
int is__brake_reset_
ブレーキ開放フラグ
Definition: Atc.h:98
int is_stop_eb_
ATC-02, 03信号ブレーキフラグ
Definition: Atc.h:117
int max_signal_
車両ATC最高速度に対応する信号インデックス
Definition: Atc.h:46
void PassedLoop(int signal)
ATC-1, 2, NSにおいて停止限界(ループコイル)を通過した際に実行する関数
Definition: Atc.cpp:461
void ResetSwUpNS(void)
確認ボタンが開放された際に実行する関数
Definition: Atc.cpp:533
float Xe
減速完了地点からの許容誤差[m]
Definition: Atc.h:291
void RegStaEnd(int distance)
駅停車パターン(オーバーラン防止)を登録する関数
Definition: Atc.cpp:609
boost::scoped_ptr< AtcA > atc_a_
Definition: Atc.h:249
int brake_timer_
ブレーキノッチを変更する次のゲーム内時刻[ms]
Definition: Atc.h:56
駅停車パターン関連を記述するクラス
Definition: Atc.h:160
boost::array< int, USR_PATTERN > pattern_is_valid_
パターンの状態(0: 無効, 1: 有効)
Definition: Atc.h:192
int arrow_spd_
パターン照査速度[km/h]
Definition: Atc.h:121
void RegStaBranch(int distance)
駅停車パターン(分岐制限)を登録する関数
Definition: Atc.cpp:577
void BrakeExeD(void)
デジタルATC用のブレーキノッチを出力する関数
Definition: Atc.cpp:1104
停止信号パターン関連を記述するクラス
Definition: Atc.h:139
float prev_spd_
1フレーム前の列車速度[km/h]
Definition: Atc.h:114
AtcD(const Atc *atc)
Definition: Atc.cpp:46
float fuzzy_Ucb_
「乗り心地が悪い(CB)」の評価値
Definition: Atc.h:221
const int * BrakeNotch
出力ブレーキノッチ(HBを含む)
Definition: Atc.h:259
int reset_sw_down_sound_
確認ボタンの押下音の状態
Definition: Atc.h:288
boost::container::vector< double > pattern_list_
デジタルATC用速度照査パターン
Definition: Atc.h:47
boost::array< float, ALL_PATTERN > pattarn_end_loc_list_
全パターンの減速完了地点[m]
Definition: Atc.h:50
int next_atc_ding_
1フレーム後のATCベルの状態
Definition: Atc.h:120
AtcA(const Atc *atc)
Definition: Atc.cpp:42
boost::array< float, ALL_PATTERN > pattern_start_loc_list_
全パターンのパターン降下開始地点[m]
Definition: Atc.h:54
int sub_atc_spd_
副速度計用 ATC速度[km/h]
Definition: Atc.h:283
float FuzzyEstLoc(int tget_spd, int notch_num)
減速完了地点を予測する関数
Definition: Atc.cpp:905
int sub_train_spd_
副速度計用 列車速度[km/h]
Definition: Atc.h:284
float CalcPatternLoc(int tget_spd, float pattern_end_loc, int pattern_status)
パターン降下開始地点を算出する関数
Definition: Atc.cpp:715
boost::array< int, ALL_SIGNAL > atc_spd_list_
信号インデックスに対応する速度[km/h]
Definition: Atc.h:268
int track_path_
開通区間数
Definition: Atc.h:146
int atc_use_
ATC(0: 消灯, 1: 点灯)
Definition: Atc.h:265
boost::array< float, ALL_PATTERN > prev_pattern_end_loc_
全パターンの以前の減速完了地点[m]
Definition: Atc.h:238
void ExitNS(void)
ATCを遮断する際に実行する関数
Definition: Atc.cpp:317
int CalcBrake(int index, int tget_spd, float pattern_start_loc, float pattern_end_loc)
パターンに対する最適ブレーキノッチを出力する関数
Definition: Atc.cpp:1019
virtual ~Fuzzy(void)
Definition: Atc.cpp:87
int SelectBrake(void)
全パターンに対する最大の最適ブレーキノッチを出力する関数
Definition: Atc.cpp:1042
int ServiceNotch
常用最大ブレーキノッチ(HBを含む)
Definition: Atc.h:254
void PlaySound(void)
サウンドを再生する関数
Definition: Atc.cpp:1224
const Atc * atc_
Atcクラスのオブジェクトを格納するポインタ
Definition: Atc.h:212
const Atc * atc_
Atcクラスのオブジェクトを格納するポインタ
Definition: Atc.h:92
void RegPattern(int type, int optional)
速度制限パターンの登録および消去を行う関数
Definition: Atc.cpp:641
void ChangedArrowSignal(void)
デジタルATC用車内信号を生成する関数
Definition: Atc.cpp:763
int atc_type_
ATC方式(0: ATC-1, 1: ATC-2, 2: ATC-NS, 3: KS-ATC, 4: DS-ATC)
Definition: Atc.h:266
void RegStaManual(int distance)
駅停車パターン(手動頭打ち)を登録する関数
Definition: Atc.cpp:587
boost::array< int, STA_PATTERN > pattern_tget_spd_
目標速度[km/h]
Definition: Atc.h:169
void RunIndicatorA(void)
アナログATC用インジケーターの表示を実行する関数
Definition: Atc.cpp:1160
float Xk
XeおよびXoを高速域で拡大させる係数
Definition: Atc.h:293
void DisplaySpd(int spd, boost::array< int, 3 > &display_spd)
速度を7セグに表示する関数
Definition: Atc.cpp:1122
float red_signal_loc_
停止信号地点[m]
Definition: Atc.h:147
boost::array< int, 3 > sub_spd_label_4_
副速度計用目盛 ATC速度+10 km/h
Definition: Atc.h:282
boost::array< float, BRAKE_STEP > atc_deceleration_
ATCブレーキ減速度[km/h/s].
Definition: Atc.h:269
void ChangedSignalNS(int signal)
SetSignalで実行される関数
Definition: Atc.cpp:328
void Reset(void)
ATC-1, 2, NSにおいて確認扱いの判定を行う関数
Definition: Atc.cpp:502
int atc_red_signal_
停止現示(0: 消灯, 1: 点灯)
Definition: Atc.h:272
int atc_reset_sw_
確認ボタンの状態(0: 開放, 1: 押下)
Definition: Atc.h:270
int CalcPatternSpd(int tget_spd, float pattern_end_loc)
パターン照査速度を算出する関数
Definition: Atc.cpp:692
void ChangedSignal(int signal)
SetSignalで実行され、開通区間数を更新する関数
Definition: Atc.cpp:386
void RunIndicatorNS(void)
インジケーターの表示を実行する関数
Definition: Atc.cpp:1149
void Init(void)
Initializeで実行する関数
Definition: Atc.cpp:148
int is__brake_reset_
ブレーキ開放フラグ
Definition: Atc.h:119
float max_deceleration_
常用最大減速度[km/h/s]
Definition: Atc.h:263
void Init(void)
Initializeで実行する関数
Definition: Atc.cpp:159
int atc_max_spd_
車両ATC最高速度[km/h]
Definition: Atc.h:267
int atc_eb_lamp_
ATC非常(0: 消灯, 1: 点灯)
Definition: Atc.h:289
void ChangedAtcType(int atc_type)
ATC方式を切り替える関数
Definition: Atc.cpp:441
boost::array< int, USR_PATTERN > pattern_tget_spd_
目標速度[km/h]
Definition: Atc.h:193
int fuzzy_prev_Nc_
最後に変化した出力ブレーキノッチの変化量の絶対値
Definition: Atc.h:216
制限速度パターン関連を記述するクラス
Definition: Atc.h:186
boost::array< int, BRAKE_STEP > default_notch_
標準ブレーキノッチ
Definition: Atc.h:45
int AtsNotch
ATS確認ノッチ(B1)
Definition: Atc.h:255
boost::array< int, ALL_PATTERN > pattern_tget_spd_list_
全パターンの目標速度[km/h]
Definition: Atc.h:52
float fuzzy_Ucg_
「乗り心地が良い(CG)」の評価値
Definition: Atc.h:220
virtual ~AtcA(void)
Definition: Atc.cpp:72
float FuzzyFuncF(float x, float a, float b)
Fuzzyメンバシップ関数F
Definition: Atc.cpp:824
int prev_brake_notch_
以前の出力ブレーキノッチ(HBを含まない)
Definition: Atc.h:213
void ValidPattern(int &tget_spd, int pattern_status)
パターンが無効の場合に目標速度を車両ATC最高速度に修正する関数
Definition: Atc.cpp:681
void AtcCheck(void)
ATC-NSにおいてATC-30信号ブレーキフラグのON, OFFを行う関数
Definition: Atc.cpp:486
int SearchPattern(float distance)
距離に対応する速度を返す関数
Definition: Atc.cpp:660