forked from h-sendai/DAQ-Middleware
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChanges.ja
386 lines (329 loc) · 20.6 KB
/
Changes.ja
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
1.4.2 2017-01-16 Hiroshi Sendai
サマリー
- run.py -dのバグフィックス
- daqmw-rpmのSL 7サポートが不完全だったのを修正
- Raspbianサポート
- SampleReader2の追加
詳細
BUGFIX: リモートブート使用時にrun.py -dでDISPLAY環境変数を設定するルーチンが
正常動作しなかったのを修正
BUGFIX: RPMパッケージをセットアップするコマンドdaqmw-rpmがScientific Linux 7で
正常動作しなかったのを修正
FEATURE: ソースコードでRaspbianをサポート
FEATURE: SampleReader2を追加しました。SampleReaderではソケットリードタイム
アウトが起きると致命的エラーとしていましたが、SampleReader2では
致命的エラーとはしません。読み出し発生イベントレートが小さい
宇宙線実験などでの利用を想定しています。
1.4.1 2015-07-22 Hiroshi Sendai
サマリー
- リモートブート時にrun.py -T (ログファイル名に日付時刻を付けるオプション)
が正常動作しなかったのを修正
- ログファイル名にDAQコンポーネントが動いている計算機のIPアドレスを
いれるオプションをrun.pyに追加 (-i)
詳細
BUGFIX: リモートブート時にrun.py -T (ログファイル名に日付時刻を付けるオプション)
が正常動作しなかったのを修正しました。ローカルブートでは正常に動作して
いました。
FEATURE: run.pyに、ログファイル名にDAQコンポーネントが動いている計算機の
IPアドレスを入れるオプション(-i)を追加しました。計算機を分離する
などして同一のコンポーネント名が複数動いているシステムでNFSなどファイル
共有を利用してのログの集約に使用できます。
1.4.0 2015-06-01 Hiroshi Sendai
サマリー
- Scientific Linux 7のサポートを開始しました。
- run.pyについて内部でpgrepコマンドをやめて、/proc/<pid>/cmdlineを調べる
ように変更しました。ユーザーのかたから見える部分に変更はありません。
- 簡単なDAQコンポーネントの例題(TinySource)のバグフィックス
- DaqOperatorがWebモードで動作中にrun.pyでコンポーネントを再起動すると
DaqOperatorプロセスのCPU使用率が100%になることがあるのを修正
詳細
FEATURE: Scientific Linux 7のサポートを開始しました。
INTERNAL: Scientific Linux 7からpgrepはprocps-ngのものになり、
Scientific Linux 5, 6のpgrepからオプションが変更になりました。
DAQ-Middleware付属のrun.pyではDAQコンポーネントの起動などに
pgrepコマンドを内部で使っています。
オプションの変更により、場合わけが必要になりましたが、今後
ふたたび変更される可能性を考え、pgrepの使用をやめ、run.py内で
/proc/<pid>cmdlineをスキャンする方式に変更しました。
(註) pgrepは同様な方法でプロセスを検索しています。
BUGFIX: TinySourceのタイムアウトに関するバグを修正しました。
newcompで作る雛型、およびSampleReader, SampleMonitor, SampleLogger,
Dispatcherには影響しません。
BUGFIX: DaqOperatorがWebモードで動作中にrun.pyでコンポーネントを再起動すると
DaqOperatorプロセスのCPU使用率が100%になることがありましたので
修正しました。
1.3.1 2014-12-24 Hiroshi Sendai
サマリー
- SampleMonitorでのデータバッファについてバッファオーバーフローが
発生しないように長さを確認するようにしました。
- SampleReader、SampleLogger、SampleMonitorの名前を変更する
シェルスクリプトをexamples/change-SampleComp-name/ディレクトリ
以下にいれました。
- SampleLoggerのタイポの修正
詳細
FEATURE: SampleMonitorでのデータバッファについてバッファオーバーフローが
発生しないように長さを確認するようにしました。
(1回のdaq_run()で1MBのデータまで受け取ることができるように
しました。これを大きくするにはSampleMonitor.h中のDATA_BUF_SIZEの
値を変更してください。
memcpy()の前にデータ長を確認するようにしました。
FEATURE: センサーテスト実験などで SampleReader、SampleMonitorなどをコピーし
名前を変更して開発するときに、機械的に行える名前の変更をシェル
スクリプト化しました。examples/change-SampleComp-name/ディレクトリ
以下にいれてあります。new_comp_camel_caseの行を新しいコンポーネント名
に置き換えて実行してください。new_comp_camel_caseで指定する
コンポーネント名はSampleReaderのように単語の切れ目を大文字化
したものを推奨します。
FEATURE: SampleLogger.h中のタイポの修正
SampleLogger::daq_configure()中の
SampleLoggqer::configure -> SampleLogger::configure
SampleLogger.h中のインクルードガードをSampleMonitorにあわせる
SAMPLE_LOGGER -> SAMPLELOGGER_H
1.3.0 2013-11-29 Hiroshi Sendai
サマリー
- config.xmlを作成するためのGUIプログラムを追加しました。
- SampleMonitorのコードにコンフィギュレーションパラメータを取得する
コードを追加しました。
- Sock.h中のドキュメンテーションバグを修正しました。
- インポートのリングバッファ長、リングバッファのタイムアウトをconfig.xmlで
設定可能にしました。
- DAQ-MiddlewareがベースとしているOpenRTM-aistについて
RPMバイナリで配布しているバイナリはtimeoutが正しく動作するパッチをあてた
ものを配布するようにしました。
- UbuntuおよびDebianで配布されているxalanコマンドに対応しました。
詳細
FEATURE: config.xmlを作成するためのGUIプログラム (/usr/bin/confPanel.py)
を追加しました。これを使って
1コンポーネントのシステム (Skeleton)
2コンポーネントのシステム (Source - Sink)
4コンポーネントのシステム (Source - Dispatch - (Sink0, Sink1))
用のconfig.xmlを作成することができます。
FEATURE: SampleMonitorのコードにコンフィギュレーションパラメータを取得する
コードを追加しました。
FEATURE: インポートのリングバッファ長、インポートのリングバッファに関する
タイムアウトを設定可能にしました。設定しない場合のデフォルト値は
リングバッファ長は256、タイムアウトは0.005秒(5ミリ秒)です
(従来はそれぞれ128、100ミリ秒でした)。
設定は下記のようにconfig.xmlを書きます(リングバッファ長4096、タイムアウト
10ミリ秒)。timeoutの単位は秒です。
<inPorts>
<inPort from="SampleReader0:samplereader_out"
buffer_length="4096"
buffer_read_timeout="0.010"
buffer_write_timeout="0.010">
samplemonitor_in
</inPort>
</inPorts>
よりくわしくは付属の「開発マニュアル」をご覧ください。
「開発マニュアル」は
/usr/share/daqmw/docs/DAQ-Middleware-1.3.0-DevManual.pdf
あるいは
http://daqmw.kek.jp/docs/DAQ-Middleware-1.3.0-DevManual.pdf
にあります。
FEATURE: UbuntuおよびDebianで配布されているxalanコマンドに対応しました。
上記ふたつのディストリビューションのxalanコマンドは、コマンド名、
引数指定が違っていてcondition_xml2jsonスクリプトが正常に動作
しなかったのを修正しました。
DOC BUG FIX:
Sock.h中のドキュメンテーションバグを修正しました。
readAll()およびsendAll()は成功するとSUCCESSを返します
(読み取り/書き込みバイト数ではありません)。
DEPENDENCY FIX:
DAQ-MiddlewareはOpenRTM-aistをベースとして使っています。インポートの
タイムアウトが正しく動作していなかったのを修正しました。
1.2.2 2013-07-31 Hiroshi Sendai
サマリー
- daqmw-emulatorに-Nオプションを追加しました。-Nオプションを指定すると
ガウシャンデータの生成をしません。
- Conditionデータベースコードを修正しました。
- BoostのバージョンによりSampleLoggerのコンパイルに失敗するのを修正しました。
- エラーログを永遠に出力するのを修正しました。
詳細
FEATURE: daqmw-emulatorに-Nオプションを追加しました。-Nオプションを指定すると
ガウシャンデータの生成をしません。
ガウシャンデータを生成するところがボトルネックになって1Gbpsで
データを送ることができなかったのでこのオプションを追加しました。
FEATURE: Conditionデータベースを修正しました。修正点は以下のとおりです:
- long longタイプをサポートするようになりました。
- サポートされていないタイプが指定されていた場合はコンパイルに
失敗するようになりました。
- 変数が初期化されていないと警告がでるようになりました。
FEATURE: エラーログを1回だけ出力するようにしました。いままでは永遠に出力
しつづけていました。また出力しているメソッド(daq_onError())を
virtualに変更し、継承したクラスではユーザーが
カスタマイズすることができるようになりました。
エラーログを1回だけ出力するようにするためには既存のDAQコンポーネント
の再コンパイルが必要になります。
BUG FIX: 使用するBoostのバージョンによりSampleLoggerのコンパイルに失敗
するのを修正しました。Boost::Filesystemがアップデートされたことに
よります。
1.2.1 2012-09-28 Hiroshi Sendai
サマリー
- SampleFilterコンポーネントを追加した。コンフィギュレーションファイルは
conf/filter.xml。
- daq.jsの修正
詳細
FEATURE: SampleFilterコンポーネントを追加しました。2012年8月の
トレーニングコースでリクエストを受けたものです。十分に
テストされていないので実験的な実装であると思ってください。
SampleReaderが送ってくるデータのモジュール番号が
4以下のものを後段(SampleMonitor)に送るようになっています。
BUG FIX: WebUIを使うときにはdaq.jsが定期的に各コンポーネントの
状態、取り扱ったバイト数などをDAQ Operatorに聞きにいきます。
現在は2秒間隔で聞きに行っています。負荷が大きい、コンポーネント
数が多いなどの理由から2秒以内に返答がない場合がありえますが
いままでは返答を受け取ったかどうかを考慮せずに必ず2秒おき
にリクエストを出していました。これを返答を受け取ってから
2秒後に次のリクエストを出すように修正しました。
1.2.0 2012-06-29 Hiroshi Sendai
サマリー
- APIは1.1.1から変更ありません。
- Scientific Linux 6.x.のサポート
- mod_wsgiをサポートしました。Scientific Linux 6.xではmod_pythonのかわりに
mod_wsgiを使います。mod_wsgiを使う場合はdaq.pyへのURLは
http://localhost/daqmw/scripts/daq.py
に変更になりました。daq.pyへ直接アクセスするユーザーはURLを変更する
必要があります。Scientific Linux 5.xではdaq.pyへのURLの変更は
ありません。WebUIのオペレータパネルのURLは変更ありません。
(http://localhost/daqmw/operatorPanel/operatorPanel0.html).
- Xerces 3.xのサポートを追加しました。
- daqcomユーティリティを追加しました。これを使うとコマンドラインからhttpd
サーバーに指令を送ることができます。
- 単純なエミュレータ(以前はemulator-GEN_GAUSSとして別に配布していたもの)を
追加しました。実行形式ファイルは/usr/bin/daqamw-emulatorです。
ソースコードは/usr/share/daqmw/daqmw-emulator/にあります。
- コンディションファイルの数値を変更するサンプルGUIとしてconditionPanel
を追加しました(中谷さんからいただきました)。
実行形式ファイルは/usr/bin/conditionPanel.pyです。実行にはwxPython
が必要です。
- いろいろなバグフィックス
- condition.xmlで指定した実数が整数として認識されることがあるのを直しました。
- SampleLogger/FileUtilsのwrite_data()で指定したより一回多く書くことが
あるのを直しました。
- gcc 4.7でコンパイルしたときにSockライブラリでエラーでコンパイルが
できないのを直しました。
- python 2.7.xでrun.pyを走らせると警告がでるのを直しました。
- DaqOperaatorCompのevent_byte_sizeでバッファオーバーフローするのを
直しました。
- writeAll()でEPIPEエラーがおきたときの戻り値を修正しました。
- Firefoxがボタンを押すごとにSYNパケットを送るのを修正しました。
- run.pyでprogname変数が定義されていないのを直しました。
詳細
BUG FIX: condition.xmlでは小数値を指定できる。".0"で終わる値が整数として
認識されていた。
BUG FIX: SampleLogger/FileUtilsのwrite_data()で現在のファイルサイズと
最大ファイルサイズとして指定した値が同じだった場合、一回余分に
ライトするのを直した。
FEATURE: 単純なエミュレータを追加(以前はemulator-GEN_GAUSSとして配布して
いたもの).
ソースコードは/usr/share/daqmw/daqmw-emluatorに入る。
FEATURE: run.pyでgiopMaxMsgSizeを指定するオプション -M を追加した。引数として
k、mを数字のあとに指定するとキロ、メガとして認識される。
FEATURE: mod_wsgiのサポートを入れた。Scientific Linux 5.xではmod_pythonを
使う。Scientific Linux 6.xではmod_wsgiを使う。
FEATURE: Xerces 3.xをサポートした。Scientific Linux 6.xにはxerces-3.0パッケージ
がある。
BUG FIX: read(), alarm(), close()を使うのにgcc 4.7ではunistd.hを
インクルードする必要があった。Sockライブラリではインクルードして
いなかったのを修正した。
BUG FIX: run.pyをpython 2.7.xで走らせると
"FutureWarning: This search is broken in 1.3 and earlier,
and will be fixed in a future version."
と警告がでていたので出ないように修正した。
BUG FIX: DaqOperatorCompで使っているevent_byte_size変数の型はunsigned long long
であり、unsigned long longの最大値は20桁である。数値からストリング
への変換で使用しているバッファが20桁整数を保持するには小さすぎた
ので修正した。
BUG FIX: Sock.cppのwriteAll()でEPIPEエラーが起きたときにERROR_FATALを返して
いなかったのを直した。
BUG FIX: Firefoxがボタンを押すごとにSYNパケットを送り続けるのを修正した。
修正前はメモリをたくさん消費しボタンを押しても反応がなくなる
ことになっていた。
BUG FIX: run.pyのエラーメッセージ中でprogname変数を使っていたが、未定義
だったのを修正した。
FEATURE: daqcomユーティリティを追加した。これを使ってhttpdサーバーと通信
することができる。daqcom --helpでヘルプがでる。
1.1.1 2011-12-01 Hiroshi Sendai
Summary
- API has not changed from 1.1.0.
- Update Developer's Manual.
- Fix memory leaks on DaqOperatorComp.
- Sock library UDP part bug fix.
- Add -O option to run.py (specify log file when run in Web mode).
- sleep time in daq_base_dummy() (this method is called when the component
is in LOADED, CONFIGURED, and UNCONFIGURED) is reduced to 10 m sec.
To incorporate this fix, users have to recompile their components.
Details
BUG FIX: UPD part of Socket library was not set properly. This bug does not
affect on Socket TCP library.
BUG FIX: There were several memory leaks on DaqOperatorComp.
BUG FIX: sleep time in daq_base_dummy() (was 1 second) caused ParameterClient.h
timeout.
1.1.0 2011-06-17 Hiroshi Sendai
Summary
- Add x86_64 architecture support.
- API changes: set_footer() and check_footer() are now has one argument
for footer buffer. All users have to rewrite their source code if you
use set_footer() and check_footer(). To use new API, remove second
argument of set_footer() and check_footer and re-compile the components.
- Backward compatibility to DAQ-Middleware for MLF (2010.10 etc) on
reset_onError(). All users have to recompile their components to use
backward compatibility feature.
- Add Web User interface.
Details
API: set_footer() and check_footer() has only one argument for footer
buffer.
BUG FIX: Backward compatibility on reset_onError().
FEATURE: Support x86_64 architecture on Scientific Linux 5.x, CentOS 5 and
RedHat Enterprise Linux. Changes are:
- Fix idl for x86_64. Compile verified on x86_64 with omniORB 4.1.4,
i686 with omniORB 4.0.7 and i686 with omniORB 4.1.4
- Install library files to /usr/lib64 if uname -m returns x86_64 AND
/usr/lib64 exists. Otherwise library files will be installed in
/usr/lib.
- New variable DAQMW_LIB_DIR in comp.mk. If uname -m returns x86_64
AND /usr/lib64 exists, DAQMW_LIB_DIR=/usr/lib64.
Otherwise DAQMW_LIB_DIR=/usr/lib.
Makefile of the Sample components in examples directory uses
this variable now.
FEATURE: Don't remove source files. Previous comp.mk would remove
source files if source file name is *.cc.
FEATURE: Stricter check on ROOT development environment on ROOTSYS variable
of the SampleMonitor's Makefile.
FEATURE: Add Web user interface.
CLEANUP: Remove unused data_header_footer.h.
1.0.2 2011-02-08 Hiroshi Sendai
Summary
- Add sample implementation of the logger component in examples directory
(/usr/share/daqmw/examples/Logger). Sample configuration file is at
/usr/share/daqmw/conf/4comps.xml .
- All users have to recompile their components to have display valid strings
when fatal error occured.
Details
BUG FIX: Correction of the order of strings at toString() in FatalType.h
FEATURE: Add SampleLogger in examples directory.
CLEANUP: Remove unneccessary include files from example source.
1.0.1 2011-01-21 Hiroshi Sendai
Summary
- All users have to recompile their components to have get_run_number() work
properly.
- Libraries (Sock, Json) have not been changed.
- We have dispatcher in the example directory.
- We have documentation in the documentation directory (/usr/share/daqmw/docs).
Details
BUG FIX: get_run_number() did not return the run number but always returned 0.
BUF FIX: DaqOperator coredumped if the component is SkeletonComp only.
FEATURE: Add dispatcher component in the example directory
(/usr/share/daqmw/examples).
FEATURE: Add documentation (DAQ-Middleware Technical Manual and Developer's
Manual).
CLEANUP: Remove ConfFileParser::setList(std::vector & list, char*, char*)
from ConfFileParser.cpp because no one does not use this method.
CLEANUP: Remove src/DaqOperator/ServerSocket.{h,cpp}. No one does not use
this.
CLEANUP: add #include <stdio.h> in src/lib/SiTCP/CPP/Sock/Sock.h and
src/DaqOperator/CreateDom.h to be able to compile with gcc44.
CLEANUP: Move set_status() from private to protected in
src/DaqComponent/DaqComponentBase.h (pointed out by Hosoya san).
1.0.0 2010-08-01 Hiroshi Sendai
DAQ-Middleware 1.0.0 Initial Release.