Advanced Robot Control System  5.1-REV.51SF170515
ConstParams.hh
[詳解]
1 //
7 // Copyright (C) 2011-2017 Yuki YOKOKURA
8 // This program is free software;
9 // you can redistribute it and/or modify it under the terms of the FreeBSD License.
10 // For details, see the License.txt file.
11 
12 #ifndef CONSTPARAMS
13 #define CONSTPARAMS
14 
15 #include "FrameGraphics.hh"
16 #include "DataStorage.hh"
17 
18 // 注意!:単一変数は ConstParams.hh で実体定義、配列&文字列は ConstParams.cc で実体定義すること。(C++はそうしなければいけないらしい(?))
19 
20 namespace ARCS { // ARCS名前空間
21  class ConstParams {
22  public:
23  // タイトルに表示させる制御系の名前(識別用に好きな名前を入力)
24  static const std::string CTRLNAME; // (60文字以内)
25 
26  // ARCS改訂番号(ARCSコード改変時にちゃんと変えること)
27  static const std::string ARCS_REVISION; // (16文字以内)
28 
29  // ARCSユーザインタフェースの設定
30  static constexpr unsigned long ARCS_UI_UPDATE_TIME = 33333; // [us] ARCS画面描画の更新時間(ここの時間は厳密ではない)
31  static constexpr unsigned int ARCS_UI_CPU_NUMBER = 3; // ARCS画面描画に割り当てるCPU番号(実時間スレッドとは別にすること)
32 
33  // 画面サイズの設定 (モニタ解像度に合うように設定すること)
34  // 1024×600(WSVGA) の場合に下記をアンコメントすること
35  //static constexpr int SCR_VERTICAL_MAX = 36; // [文字] 画面の最大高さ文字数
36  //static constexpr int SCR_HORIZONTAL_MAX = 127; // [文字] 画面の最大幅文字数
37  // 1024×768(XGA) の場合に下記をアンコメントすること
38  static constexpr int SCR_VERTICAL_MAX = 47; // [文字] 画面の最大高さ文字数
39  static constexpr int SCR_HORIZONTAL_MAX = 127; // [文字] 画面の最大幅文字数
40  // 1280×1024(SXGA) の場合に下記をアンコメントすること
41  //static constexpr int SCR_VERTICAL_MAX = 63; // [文字] 画面の最大高さ文字数
42  //static constexpr int SCR_HORIZONTAL_MAX = 159; // [文字] 画面の最大幅文字数
43  // 1920×1080(Full HD) の場合に下記をアンコメントすること
44  //static constexpr int SCR_VERTICAL_MAX = 66; // [文字] 画面の最大高さ文字数
45  //static constexpr int SCR_HORIZONTAL_MAX = 239; // [文字] 画面の最大幅文字数
46  // それ以外の解像度の場合は各自で値を探すこと
47 
48  // 実験データファイルの設定
49  static const std::string DATA_NAME;
51  static constexpr double DATA_TIME = 10;
52  static constexpr unsigned int DATA_NUM = 8;
53  static constexpr unsigned long DATA_RATE = 1;
54 
55  // SCHED_FIFO実時間スレッドの設定
56  static constexpr unsigned int THREAD_MAX = 2;
57  static constexpr unsigned int THREAD_NUM = 1;
58  static const unsigned long SAMPLING_TIME[];
59  static const unsigned int CPUCORE_NUMBER[THREAD_MAX];
60 
61  // 実験機アクチュエータの設定
62  static constexpr unsigned int ACTUATOR_MAX = 16;
63  static constexpr unsigned int ACTUATOR_NUM = 2;
64  enum ActType {
67  };
68  static const ActType ACT_TYPE[];
69  static const double ACT_FORCE_TORQUE_CONST[];
70  static const double ACT_RATED_CURRENT[];
71  static const double ACT_MAX_CURRENT[];
72  static const double ACT_GEAR_RATIO[];
73 
74  // エンコーダ関連の定数
75 
76  // トルクセンサ関連の定数
77 
78  // サーボアンプ関連の定数
79 
80  // インタフェースボード関連の定数
81 
82  // 任意変数値表示の設定
83  static constexpr unsigned int INDICVARS_MAX = 16;
84  static constexpr unsigned int INDICVARS_NUM = 4;
85  static const std::string INDICVARS_NAMES[];
86  static const std::string INDICVARS_FORMS[];
87 
88  // プロットの共通設定
89  static constexpr unsigned int PLOT_VAR_MAX = 8;
90  static const std::string PLOT_VAR_NAMES[];
91  static constexpr double PLOT_RESET_TIME = 10;
92  static constexpr double PLOT_TMIN = 0;
98 
99  // プロットAの設定
100  static constexpr bool PLOT_A_VISIBLE= true;
101  static constexpr int PLOT_A_LEFT = 290;
102  static constexpr int PLOT_A_TOP = 98;
103  static constexpr int PLOT_A_WIDTH = 725;
104  static constexpr int PLOT_A_HEIGHT = 162;
105  static constexpr double PLOT_A_FMAX = 1.0;
106  static constexpr double PLOT_A_FMIN = -1.0;
107  static constexpr unsigned int PLOT_A_VAR_NUM = 1;
108  static constexpr unsigned int PLOT_A_FGRID_NUM = 4;
109  static constexpr unsigned int PLOT_A_TGRID_NUM = 10;
110  static const std::string PLOT_A_FLABEL;
111  static const std::string PLOT_A_TLABEL;
112  static const std::string PLOT_A_FFORMAT;
113  static const std::string PLOT_A_TFORMAT;
114  static const std::string PLOT_A_VAR_NAMES[];
115 
116  // プロットBの設定
117  static constexpr bool PLOT_B_VISIBLE= true;
118  static constexpr int PLOT_B_LEFT = 290;
119  static constexpr int PLOT_B_TOP = 253;
120  static constexpr int PLOT_B_WIDTH = 725;
121  static constexpr int PLOT_B_HEIGHT = 162;
122  static constexpr double PLOT_B_FMAX = 150;
123  static constexpr double PLOT_B_FMIN = -150;
124  static constexpr unsigned int PLOT_B_VAR_NUM = 1;
125  static constexpr unsigned int PLOT_B_FGRID_NUM = 4;
126  static constexpr unsigned int PLOT_B_TGRID_NUM = 10;
127  static const std::string PLOT_B_FLABEL;
128  static const std::string PLOT_B_TLABEL;
129  static const std::string PLOT_B_FFORMAT;
130  static const std::string PLOT_B_TFORMAT;
131  static const std::string PLOT_B_VAR_NAMES[];
132 
133  // プロットCの設定
134  static constexpr bool PLOT_C_VISIBLE= true; // グラフ描画の有効/無効設定
135  static constexpr int PLOT_C_LEFT = 290; // [px] 左位置
136  static constexpr int PLOT_C_TOP = 408; // [px] 上位置
137  static constexpr int PLOT_C_WIDTH = 725; // [px] 幅
138  static constexpr int PLOT_C_HEIGHT = 162; // [px] 高さ
139  static constexpr double PLOT_C_FMAX = 10; // 縦軸最大値
140  static constexpr double PLOT_C_FMIN = -10; // 縦軸最小値
141  static constexpr unsigned int PLOT_C_VAR_NUM = 2; // プロットする変数の数 (≦PLOT_VAR_MAX)
142  static constexpr unsigned int PLOT_C_FGRID_NUM = 4; // 縦軸グリッドの分割数
143  static constexpr unsigned int PLOT_C_TGRID_NUM = 10; // 横軸グリッドの分割数
144  static const std::string PLOT_C_FLABEL; // 縦軸ラベル
145  static const std::string PLOT_C_TLABEL; // 横軸ラベル
146  static const std::string PLOT_C_FFORMAT; // 縦軸書式
147  static const std::string PLOT_C_TFORMAT; // 横軸書式
148  static const std::string PLOT_C_VAR_NAMES[];// 変数の名前
149 
150  // プロットDの設定
151  static constexpr bool PLOT_D_VISIBLE= true;// グラフ描画の有効/無効設定
152  static constexpr int PLOT_D_LEFT = 290; // [px] 左位置
153  static constexpr int PLOT_D_TOP = 563; // [px] 上位置
154  static constexpr int PLOT_D_WIDTH = 725; // [px] 幅
155  static constexpr int PLOT_D_HEIGHT = 162; // [px] 高さ
156  static constexpr double PLOT_D_FMAX = 2; // 縦軸最大値
157  static constexpr double PLOT_D_FMIN = -2; // 縦軸最小値
158  static constexpr unsigned int PLOT_D_VAR_NUM = 2; // プロットする変数の数 (≦PLOT_VAR_MAX)
159  static constexpr unsigned int PLOT_D_FGRID_NUM = 4; // 縦軸グリッドの分割数
160  static constexpr unsigned int PLOT_D_TGRID_NUM = 10; // 横軸グリッドの分割数
161  static const std::string PLOT_D_FLABEL; // 縦軸ラベル
162  static const std::string PLOT_D_TLABEL; // 横軸ラベル
163  static const std::string PLOT_D_FFORMAT; // 縦軸書式
164  static const std::string PLOT_D_TFORMAT; // 横軸書式
165  static const std::string PLOT_D_VAR_NAMES[];// 変数の名前
166 
167  private:
168  ConstParams(); // コンストラクタ使用禁止
169  ~ConstParams(); // デストラクタ使用禁止
170  ConstParams(const ConstParams&); // コピーコンストラクタ使用禁止
171  const ConstParams& operator=(const ConstParams&); // 代入演算子使用禁止
172  };
173 }
174 
175 #endif
176 
static const std::string PLOT_C_VAR_NAMES[]
Definition: ConstParams.hh:148
static constexpr unsigned int PLOT_A_VAR_NUM
プロットする変数の数 (≦PLOT_VAR_MAX)
Definition: ConstParams.hh:107
static const FrameGraphics::FGcolors PLOT_VAR_COLORS[]
線の色
Definition: ConstParams.hh:93
static constexpr unsigned int PLOT_C_TGRID_NUM
Definition: ConstParams.hh:143
static constexpr int PLOT_A_HEIGHT
[px] 高さ
Definition: ConstParams.hh:104
static constexpr double PLOT_D_FMIN
Definition: ConstParams.hh:157
static constexpr unsigned int THREAD_NUM
動作させるスレッドの数 (最大数は THREAD_NUM_MAX 個まで)
Definition: ConstParams.hh:57
static constexpr unsigned int PLOT_VAR_MAX
プロット可能な変数の最大値 (変更不可)
Definition: ConstParams.hh:89
static constexpr double DATA_TIME
[s] 保存時間
Definition: ConstParams.hh:51
static constexpr int PLOT_B_WIDTH
[px] 幅
Definition: ConstParams.hh:120
Definition: FrameGraphics.hh:41
static constexpr double PLOT_C_FMAX
Definition: ConstParams.hh:139
static constexpr unsigned int PLOT_A_TGRID_NUM
横軸グリッドの分割数
Definition: ConstParams.hh:109
static const std::string PLOT_D_TLABEL
Definition: ConstParams.hh:162
static constexpr double PLOT_D_FMAX
Definition: ConstParams.hh:156
static constexpr unsigned int PLOT_B_VAR_NUM
プロットする変数の数 (≦PLOT_VAR_MAX)
Definition: ConstParams.hh:124
static constexpr unsigned int PLOT_B_TGRID_NUM
横軸グリッドの分割数
Definition: ConstParams.hh:126
static constexpr int PLOT_D_WIDTH
Definition: ConstParams.hh:154
static const std::string PLOT_D_TFORMAT
Definition: ConstParams.hh:164
static constexpr unsigned int PLOT_A_FGRID_NUM
縦軸グリッドの分割数
Definition: ConstParams.hh:108
static const std::string PLOT_B_FFORMAT
縦軸書式
Definition: ConstParams.hh:129
static const std::string PLOT_D_FLABEL
Definition: ConstParams.hh:161
static constexpr int PLOT_A_WIDTH
[px] 幅
Definition: ConstParams.hh:103
static constexpr int PLOT_A_LEFT
[px] 左位置
Definition: ConstParams.hh:101
static const std::string PLOT_A_FFORMAT
縦軸書式
Definition: ConstParams.hh:112
static const std::string ARCS_REVISION
Definition: ConstParams.hh:27
static const std::string PLOT_C_FFORMAT
Definition: ConstParams.hh:146
static constexpr unsigned int PLOT_B_FGRID_NUM
縦軸グリッドの分割数
Definition: ConstParams.hh:125
static const std::string CTRLNAME
Definition: ConstParams.hh:24
static constexpr double PLOT_C_FMIN
Definition: ConstParams.hh:140
static const std::string PLOT_A_TLABEL
横軸ラベル
Definition: ConstParams.hh:111
static constexpr int PLOT_B_LEFT
[px] 左位置
Definition: ConstParams.hh:118
static const ActType ACT_TYPE[]
リニアモータか回転モータかの設定
Definition: ConstParams.hh:68
回転モータ
Definition: ConstParams.hh:66
static constexpr unsigned int PLOT_C_FGRID_NUM
Definition: ConstParams.hh:142
static constexpr double PLOT_TMIN
[s] 横軸最小値
Definition: ConstParams.hh:92
static constexpr DataStorage::SaveType DATA_TYPE
CSV形式「FORMAT_CSV」DAT形式(TAB区切り)「FORMAT_DAT」
Definition: ConstParams.hh:50
static const std::string PLOT_C_TFORMAT
Definition: ConstParams.hh:147
static constexpr FrameGraphics::FGcolors PLOT_AXIS_COLOR
軸の色
Definition: ConstParams.hh:94
static constexpr unsigned long DATA_RATE
[-] 保存データの間引き (計測データ数が割り切れる値にすること)
Definition: ConstParams.hh:53
static constexpr int PLOT_C_HEIGHT
Definition: ConstParams.hh:138
static constexpr double PLOT_A_FMIN
縦軸最小値
Definition: ConstParams.hh:106
static constexpr int PLOT_D_HEIGHT
Definition: ConstParams.hh:155
static constexpr FrameGraphics::FGcolors PLOT_GRID_COLOR
グリッドの色
Definition: ConstParams.hh:95
static constexpr unsigned int ACTUATOR_MAX
ARCSが対応しているアクチュエータの最大数
Definition: ConstParams.hh:62
static constexpr double PLOT_A_FMAX
縦軸最大値
Definition: ConstParams.hh:105
CSVファイルとして保存
Definition: DataStorage.hh:25
static constexpr bool PLOT_D_VISIBLE
Definition: ConstParams.hh:151
static constexpr int PLOT_C_WIDTH
Definition: ConstParams.hh:137
Definition: ControlFunctions.hh:17
static const std::string PLOT_D_FFORMAT
Definition: ConstParams.hh:163
static constexpr unsigned int ACTUATOR_NUM
実験装置のアクチュエータの総数
Definition: ConstParams.hh:63
static constexpr double PLOT_B_FMAX
縦軸最大値
Definition: ConstParams.hh:122
static constexpr unsigned int ARCS_UI_CPU_NUMBER
Definition: ConstParams.hh:31
static constexpr unsigned int INDICVARS_NUM
表示したい変数の数 (最大数 INDICVARS_MAX まで)
Definition: ConstParams.hh:84
static const std::string PLOT_C_TLABEL
Definition: ConstParams.hh:145
static constexpr unsigned int THREAD_MAX
スレッド最大数(これ変えても ControlFunctions.cc は追随しないので注意)
Definition: ConstParams.hh:56
ActType
Definition: ConstParams.hh:64
static constexpr bool PLOT_A_VISIBLE
グラフ描画の有効/無効設定
Definition: ConstParams.hh:100
static const std::string INDICVARS_FORMS[]
任意に表示したい変数値の表示形式(printfの書式と同一)
Definition: ConstParams.hh:86
アクチュエータタイプの定義
Definition: ConstParams.hh:65
static constexpr int PLOT_A_TOP
[px] 上位置
Definition: ConstParams.hh:102
static constexpr int PLOT_B_TOP
[px] 上位置
Definition: ConstParams.hh:119
static constexpr unsigned int PLOT_C_VAR_NUM
Definition: ConstParams.hh:141
static constexpr unsigned long ARCS_UI_UPDATE_TIME
Definition: ConstParams.hh:30
static constexpr int PLOT_D_LEFT
Definition: ConstParams.hh:152
FGcolors
Definition: FrameGraphics.hh:29
static constexpr int PLOT_B_HEIGHT
[px] 高さ
Definition: ConstParams.hh:121
static const double ACT_MAX_CURRENT[]
[A] 瞬時最大許容電流値の設定
Definition: ConstParams.hh:71
static const std::string DATA_NAME
ファイル名
Definition: ConstParams.hh:49
static const std::string PLOT_B_FLABEL
縦軸ラベル
Definition: ConstParams.hh:127
Definition: FrameGraphics.hh:37
static const std::string PLOT_D_VAR_NAMES[]
Definition: ConstParams.hh:165
static const std::string PLOT_A_FLABEL
縦軸ラベル
Definition: ConstParams.hh:110
static const unsigned long SAMPLING_TIME[]
制御周期は Ts[0] ≦ Ts[1] … ≦ Ts[N] になるようにすること
Definition: ConstParams.hh:58
static constexpr double PLOT_RESET_TIME
[s] プロットのリセット時間
Definition: ConstParams.hh:91
static constexpr int PLOT_C_LEFT
Definition: ConstParams.hh:135
Definition: ConstParams.hh:21
static constexpr int SCR_VERTICAL_MAX
Definition: ConstParams.hh:38
static const std::string PLOT_VAR_NAMES[]
変数の名前
Definition: ConstParams.hh:90
static constexpr int PLOT_C_TOP
Definition: ConstParams.hh:136
static const std::string INDICVARS_NAMES[]
任意に表示したい変数値の変数名(12文字まで入力可)
Definition: ConstParams.hh:85
static const std::string PLOT_B_VAR_NAMES[]
変数の名前
Definition: ConstParams.hh:131
static const double ACT_RATED_CURRENT[]
[A] 定格電流値の設定
Definition: ConstParams.hh:70
SaveType
ファイル形式の定義
Definition: DataStorage.hh:24
static const std::string PLOT_B_TLABEL
横軸ラベル
Definition: ConstParams.hh:128
static constexpr unsigned int PLOT_D_VAR_NUM
Definition: ConstParams.hh:158
const ConstParams & operator=(const ConstParams &)
static constexpr unsigned int DATA_NUM
[-] 保存する変数の数
Definition: ConstParams.hh:52
static const double ACT_FORCE_TORQUE_CONST[]
[Nm/A], [N/A] トルク/推力定数の設定
Definition: ConstParams.hh:69
static constexpr int PLOT_D_TOP
Definition: ConstParams.hh:153
static const double ACT_GEAR_RATIO[]
減速比の設定
Definition: ConstParams.hh:72
static constexpr double PLOT_B_FMIN
縦軸最小値
Definition: ConstParams.hh:123
static const std::string PLOT_B_TFORMAT
横軸書式
Definition: ConstParams.hh:130
static constexpr unsigned int INDICVARS_MAX
表示変数最大数 (変更不可)
Definition: ConstParams.hh:83
static const std::string PLOT_A_VAR_NAMES[]
変数の名前
Definition: ConstParams.hh:114
static const std::string PLOT_A_TFORMAT
横軸書式
Definition: ConstParams.hh:113
static constexpr FrameGraphics::FGcolors PLOT_BACK_COLOR
背景色
Definition: ConstParams.hh:96
Definition: FrameGraphics.hh:40
static const std::string PLOT_C_FLABEL
Definition: ConstParams.hh:144
static constexpr FrameGraphics::FGcolors PLOT_TEXT_COLOR
文字色
Definition: ConstParams.hh:97
static constexpr bool PLOT_C_VISIBLE
Definition: ConstParams.hh:134
static constexpr int SCR_HORIZONTAL_MAX
Definition: ConstParams.hh:39
static const unsigned int CPUCORE_NUMBER[THREAD_MAX]
使用するCPUコア番号
Definition: ConstParams.hh:59
static constexpr unsigned int PLOT_D_FGRID_NUM
Definition: ConstParams.hh:159
static constexpr unsigned int PLOT_D_TGRID_NUM
Definition: ConstParams.hh:160
static constexpr bool PLOT_B_VISIBLE
グラフ描画の有効/無効設定
Definition: ConstParams.hh:117