Advanced Robot Control System  5.1-REV.51SF170515
ControlFunctions.hh
[詳解]
1 //
6 // Copyright (C) 2011-2016 Yuki YOKOKURA
7 // This program is free software;
8 // you can redistribute it and/or modify it under the terms of the BSD License.
9 // For details, see the License.txt file.
10 
11 #ifndef CONTROL_FUNCTIONS
12 #define CONTROL_FUCNTIONS
13 
14 #include "ConstParams.hh"
15 
16 // 前方宣言
17 namespace ARCS{
18  class VariableParams;
19  class Interface;
20 }
21 
22 namespace ARCS { // ARCS名前空間
28  public:
29  enum CtrlFuncMode {
30  CTRL_INIT, // 初期化モード
31  CTRL_LOOP, // 周期モード
32  CTRL_EXIT // 終了処理モード
33  };
34  ControlFunctions(); // コンストラクタ
35  ~ControlFunctions(); // デストラクタ
36  void InitialProcess(); // 初期化モードの実行
37  void ExitProcess(); // 終了処理モードの実行
38  void SaveDataFiles(); // データファイルの保存
39  void GetControlValue(VariableParams* VarParams); // 制御用変数値を取得する関数
40  void (*pCFuncs[ConstParams::THREAD_MAX])(ControlFunctions*); // 各制御用周期実行関数への関数ポインタ
41 
42  private:
43  ControlFunctions(const ControlFunctions&); // コピーコンストラクタ使用禁止
44  const ControlFunctions& operator=(const ControlFunctions&); // 代入演算子使用禁止
45  volatile CtrlFuncMode CmdFlag; // 動作モード設定フラグ
46  Interface* pIF; // インターフェースクラスへのポインタ
47  volatile unsigned long count; // [回] ループカウンタ (ControlFunction0を基準とする)
48  DataStorage* ExpData; // 実験データ格納/保存クラスへのポインタ
49  double Data[ConstParams::DATA_NUM]; // データ格納用変数
50  bool NetworkLink; // ネットワークリンクフラグ
51  bool Initializing; // ロボット初期化フラグ
52  volatile double IndicVars[ConstParams::INDICVARS_MAX]; // 任意変数値表示用 (ここに書き込めば好きな値を表示できる(最大8つまで))
53  // 制御用周期実行関数群
54  static void ControlFunction1(ControlFunctions* pCF); // 制御用周期実行関数1
55  static void ControlFunction2(ControlFunctions* pCF); // 制御用周期実行関数2
56  // グラフプロット用変数
57  volatile double PlotVarsA[ConstParams::PLOT_VAR_MAX]; // プロットA用変数
58  volatile double PlotVarsB[ConstParams::PLOT_VAR_MAX]; // プロットB用変数
59  volatile double PlotVarsC[ConstParams::PLOT_VAR_MAX]; // プロットC用変数
60  volatile double PlotVarsD[ConstParams::PLOT_VAR_MAX]; // プロットD用変数
61  };
62 }
63 
64 #endif
65 
const ControlFunctions & operator=(const ControlFunctions &)
void InitialProcess()
初期化モードの実行
Definition: ControlFunctions.cc:151
static constexpr unsigned int PLOT_VAR_MAX
プロット可能な変数の最大値 (変更不可)
Definition: ConstParams.hh:89
volatile unsigned long count
Definition: ControlFunctions.hh:47
ControlFunctions()
コンストラクタ
Definition: ControlFunctions.cc:170
Definition: ControlFunctions.hh:31
volatile double PlotVarsD[ConstParams::PLOT_VAR_MAX]
Definition: ControlFunctions.hh:60
static void ControlFunction2(ControlFunctions *pCF)
制御用周期実行関数2
Definition: ControlFunctions.cc:106
void GetControlValue(VariableParams *VarParams)
制御用変数値を取得する関数
Definition: ControlFunctions.cc:128
volatile double PlotVarsC[ConstParams::PLOT_VAR_MAX]
Definition: ControlFunctions.hh:59
Definition: ControlFunctions.hh:30
volatile double PlotVarsB[ConstParams::PLOT_VAR_MAX]
Definition: ControlFunctions.hh:58
定数値格納用クラス ARCSに必要な定数値を格納します。
Definition: ControlFunctions.hh:32
データ格納/ファイル出力クラス
Definition: DataStorage.hh:21
volatile double IndicVars[ConstParams::INDICVARS_MAX]
Definition: ControlFunctions.hh:52
Interface * pIF
Definition: ControlFunctions.hh:46
double Data[ConstParams::DATA_NUM]
Definition: ControlFunctions.hh:49
Definition: ControlFunctions.hh:17
bool Initializing
Definition: ControlFunctions.hh:51
インターフェースクラス
Definition: Interface.hh:26
CtrlFuncMode
Definition: ControlFunctions.hh:29
~ControlFunctions()
デストラクタ
Definition: ControlFunctions.cc:195
void SaveDataFiles()
データファイルの保存
Definition: ControlFunctions.cc:123
static constexpr unsigned int THREAD_MAX
スレッド最大数(これ変えても ControlFunctions.cc は追随しないので注意)
Definition: ConstParams.hh:56
DataStorage * ExpData
Definition: ControlFunctions.hh:48
Definition: VariableParams.hh:23
void(* pCFuncs[ConstParams::THREAD_MAX])(ControlFunctions *)
Definition: ControlFunctions.hh:40
制御用周期実行関数群クラス
Definition: ControlFunctions.hh:27
static constexpr unsigned int DATA_NUM
[-] 保存する変数の数
Definition: ConstParams.hh:52
bool NetworkLink
Definition: ControlFunctions.hh:50
static void ControlFunction1(ControlFunctions *pCF)
制御用周期実行関数1
Definition: ControlFunctions.cc:41
volatile double PlotVarsA[ConstParams::PLOT_VAR_MAX]
Definition: ControlFunctions.hh:57
static constexpr unsigned int INDICVARS_MAX
表示変数最大数 (変更不可)
Definition: ConstParams.hh:83
void ExitProcess()
終了処理モードの実行
Definition: ControlFunctions.cc:161
volatile CtrlFuncMode CmdFlag
Definition: ControlFunctions.hh:45