ControlFunctions.hh
00001 // 制御用周期実行関数群クラス
00002 // 2011/03/31 Yuki YOKOKURA
00003 //
00004 // 実際の制御プログラムを実行します。
00005 //
00006 // Copyright (C) 2011 Yuki YOKOKURA
00007 // This program is free software;
00008 // you can redistribute it and/or modify it under the terms of the GNU General Public License
00009 // as published by the Free Software Foundation; either version 3 of the License, or any later version.
00010 // This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
00011 // without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00012 // See the GNU General Public License for more details <http://www.gnu.org/licenses/>.
00013 // Besides, you can negotiate about other options of licenses instead of GPL.
00014 // If you would like to get other licenses, please contact us<yuki@katsura.sd.keio.ac.jp>.
00015 
00016 #ifndef CONTROL_FUNCTIONS
00017 #define CONTROL_FUCNTIONS
00018 
00019 #include <math.h>
00020 #include "Parameters.hh"
00021 #include "PCI-3340.hh"
00022 #include "PCI-6205.hh"
00023 #include "DataStorage.hh"
00024 
00025 namespace ARCS {        // ARCS名前空間
00026         enum CtrlFuncMode {
00027                 CTRL_INIT,      // 初期化モード
00028                 CTRL_LOOP,      // 周期モード
00029                 CTRL_EXIT       // 終了処理モード
00030         };
00031 
00032         class ControlFunctions {
00033                 private:
00034                         // 制御用周期実行関数群
00035                         static void ControlFunction0(ControlFunctions* pCF);    // 制御用周期実行関数0
00036                         static void ControlFunction1(ControlFunctions* pCF);    // 制御用周期実行関数1
00037                         static void ControlFunction2(ControlFunctions* pCF);    // 制御用周期実行関数2
00038                         static void ControlFunction3(ControlFunctions* pCF);    // 制御用周期実行関数3
00039                         static void ControlFunction4(ControlFunctions* pCF);    // 制御用周期実行関数4
00040                         static void ControlFunction5(ControlFunctions* pCF);    // 制御用周期実行関数5
00041                         static void ControlFunction6(ControlFunctions* pCF);    // 制御用周期実行関数6
00042                         static void ControlFunction7(ControlFunctions* pCF);    // 制御用周期実行関数7
00043                         
00044                 public:
00045                         ControlFunctions();                                                                     // コンストラクタ
00046                         ~ControlFunctions();                                                            // デストラクタ
00047                         void InitialProcess();                                                          // 初期化モードの実行
00048                         void ExitProcess();                                                                     // 終了処理モードの実行
00049                         void SaveDataFiles();                                                           // データファイルの保存
00050                         void GetControlValue(VariableParams* VarParams);        // 制御用変数値を取得する関数
00051                         void (*pCFuncs[8])(ControlFunctions*);                          // 各制御用周期実行関数への関数ポインタ
00052         };
00053 }
00054 
00055 #endif
00056 
 All Classes Files