Advanced Robot Control System  5.1-REV.51SF170515
VariableParams.hh
[詳解]
1 // 変数値格納用クラス
2 // 2016/08/18 Yuki YOKOKURA
3 //
4 // ARCSに必要な変数値を格納します。
5 // (実時間スレッド間,ARCS の間で共有される各種変数を格納する)
6 //
7 // Copyright (C) 2011-2016 Yuki YOKOKURA
8 // This program is free software;
9 // you can redistribute it and/or modify it under the terms of the GNU General Public License
10 // as published by the Free Software Foundation; either version 3 of the License, or any later version.
11 // This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
12 // without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 // See the GNU General Public License for more details <http://www.gnu.org/licenses/>.
14 // In addition, you can negotiate about other options of licenses instead of GPL.
15 // If you would like to get other licenses, please contact us <yokokura(a)vos.nagaokaut.ac.jp>.
16 
17 #ifndef VARIABLEPARAMS
18 #define VARIABLEPARAMS
19 
20 #include "ConstParams.hh"
21 
22 namespace ARCS { // ARCS名前空間
24  public:
25  VariableParams(); // コンストラクタ
26  ~VariableParams(); // デストラクタ
27 
28  // 以下の変数は Spinlock or Mutex で保護されるべきである
29  // (がとりあえず排他制御なしで様子見。volatileはほとんど気休め。)
30 
31  // 緊急停止関連の変数
32  volatile bool EmergencyStopFlag;
33  std::string EmergencyStopCond;
34  std::string EmergencyStopFile;
36 
37  // 状態関連の変数
38  volatile bool NetworkLink;
39  volatile bool Initializing;
40 
41  // 以下はスレッド関連の変数
42  volatile double Time;
43  volatile double PeriodicTime[ConstParams::THREAD_MAX] = {0};
44  volatile double ComputationTime[ConstParams::THREAD_MAX] = {0};
45  volatile double MaxTime[ConstParams::THREAD_MAX] = {0};
46  volatile double MinTime[ConstParams::THREAD_MAX] = {0};
47 
48  // 以下は任意変数値表示のための変数
49  volatile double IndicVars[ConstParams::INDICVARS_MAX] = {0}; // ここに書き込めば好きな値を表示できる(最大8つまで)
50 
51  // アクチュエータ指令値と応答値関連の変数
52  volatile double CurrentReferences[ConstParams::ACTUATOR_MAX] = {0}; // [A] アクチュエータの電流指令値
53  volatile double PositionResponses[ConstParams::ACTUATOR_MAX] = {0}; // [m]/[rad] アクチュエータの位置応答値
54 
55  // 以下はグラフプロットのための変数
56  volatile double PlotVarsA[ConstParams::PLOT_VAR_MAX] = {0}; // プロットA
57  volatile double PlotVarsB[ConstParams::PLOT_VAR_MAX] = {0}; // プロットB
58  volatile double PlotVarsC[ConstParams::PLOT_VAR_MAX] = {0}; // プロットC
59  volatile double PlotVarsD[ConstParams::PLOT_VAR_MAX] = {0}; // プロットD
60 
61  private:
62  VariableParams(const VariableParams&); // コピーコンストラクタ使用禁止
63  const VariableParams& operator=(const VariableParams&); // 代入演算子使用禁止
64  };
65 }
66 
67 #endif
68 
std::string EmergencyStopFile
緊急停止時ファイル名
Definition: VariableParams.hh:34
static constexpr unsigned int PLOT_VAR_MAX
プロット可能な変数の最大値 (変更不可)
Definition: ConstParams.hh:89
volatile bool EmergencyStopFlag
緊急停止フラグ true = 緊急停止, false = 通常
Definition: VariableParams.hh:32
volatile double PlotVarsB[ConstParams::PLOT_VAR_MAX]
Definition: VariableParams.hh:57
~VariableParams()
Definition: VariableParams.cc:31
volatile double Time
[s] 時刻 (一番速いスレッド THREAD0 の時刻)
Definition: VariableParams.hh:42
volatile double PeriodicTime[ConstParams::THREAD_MAX]
[s] 計測された制御周期
Definition: VariableParams.hh:43
定数値格納用クラス ARCSに必要な定数値を格納します。
static constexpr unsigned int ACTUATOR_MAX
ARCSが対応しているアクチュエータの最大数
Definition: ConstParams.hh:62
Definition: ControlFunctions.hh:17
volatile double PlotVarsC[ConstParams::PLOT_VAR_MAX]
Definition: VariableParams.hh:58
volatile double ComputationTime[ConstParams::THREAD_MAX]
[s] 計測された消費時間
Definition: VariableParams.hh:44
volatile double MinTime[ConstParams::THREAD_MAX]
[s] 計測された制御周期の最小値
Definition: VariableParams.hh:46
static constexpr unsigned int THREAD_MAX
スレッド最大数(これ変えても ControlFunctions.cc は追随しないので注意)
Definition: ConstParams.hh:56
std::string EmergencyStopCond
緊急停止時該当条件
Definition: VariableParams.hh:33
volatile double MaxTime[ConstParams::THREAD_MAX]
[s] 計測された制御周期の最大値
Definition: VariableParams.hh:45
volatile double IndicVars[ConstParams::INDICVARS_MAX]
Definition: VariableParams.hh:49
Definition: VariableParams.hh:23
volatile double PositionResponses[ConstParams::ACTUATOR_MAX]
Definition: VariableParams.hh:53
VariableParams()
Definition: VariableParams.cc:22
volatile bool Initializing
ロボット初期化フラグ
Definition: VariableParams.hh:39
volatile double PlotVarsA[ConstParams::PLOT_VAR_MAX]
Definition: VariableParams.hh:56
volatile double CurrentReferences[ConstParams::ACTUATOR_MAX]
Definition: VariableParams.hh:52
volatile double PlotVarsD[ConstParams::PLOT_VAR_MAX]
Definition: VariableParams.hh:59
const VariableParams & operator=(const VariableParams &)
static constexpr unsigned int INDICVARS_MAX
表示変数最大数 (変更不可)
Definition: ConstParams.hh:83
volatile bool NetworkLink
ネットワークリンクフラグ
Definition: VariableParams.hh:38
int EmergencyStopLine
緊急停止時行番号
Definition: VariableParams.hh:35