28 #define arcs_assert(a) (assert(a))
31 #define EventLogVar(a)
43 template <
size_t NumOfVar,
unsigned long SmplTime,
unsigned int SaveTime,
unsigned int Rate>
49 : Data({0}), Buff({0}), Nindex(0), Tindex(0), Mcount(0)
61 template<
typename T1,
typename... T2>
62 void SetData(
const T1& u1,
const T2&... u2){
64 if(Nindex < N) Buff.at(Nindex) = (double)u1;
72 if(Mcount % Rate == 0){
75 for(
size_t n = 0; n < N; ++n){
76 Data[n][Tindex] = Buff.at(n);
88 std::ofstream fout(FileName.c_str(), std::ios::out | std::ios::trunc);
95 fout.setf(std::ios::scientific);
101 for(
size_t j = 0; j < Tindex; ++j){
102 for(
size_t i = 0; i < N; ++i){
105 if(FileType == DataStorageType::FORMAT_CSV) fout <<
',';
106 if(FileType == DataStorageType::FORMAT_DAT) fout <<
'\t';
124 static constexpr size_t N = NumOfVar;
125 static constexpr size_t T = SaveTime*1e9/SmplTime/Rate;
126 std::array<std::array<double, T>, N> Data;
127 std::array<double, N> Buff;
#define PassedLog()
イベントログ用マクロ(ファイルと行番号のみ記録版)
Definition ARCSeventlog.hh:26
#define arcs_assert(a)
ARCS用assertマクロ a : assert条件
Definition ARCSassert.hh:17
DataStorageType
ファイル形式の定義
Definition DataStorage.hh:36
@ FORMAT_DAT
DAT(タブ区切り)ファイルとして保存
データ格納/ファイル出力クラス(テンプレート版)
Definition DataStorage.hh:44
DataStorage()
コンストラクタ
Definition DataStorage.hh:48
void ClearCounter(void)
要素数カウンタをクリア
Definition DataStorage.hh:115
~DataStorage()
デストラクタ
Definition DataStorage.hh:55
void SaveDataFile(const std::string &FileName, const DataStorageType FileType) const
CSV/DATファイルの保存
Definition DataStorage.hh:86
void SetData(const T1 &u1, const T2 &... u2)
データを格納する関数
Definition DataStorage.hh:62