raw_mond rawkey monkey shmsize [ chfile [ logfile ]]
raw_mond は daemon モードで起動します。
ログファイル名 logfile を指定すると、ここに動作ログがとられます。 指定しないとログ情報は標準出力に送られます(ただし、daemon モードで動い ている時は syslogd(8) に送られます)。ログファイルは書き込みのたび毎に オープン/クローズされます。
raw_mon は、引数なしで起動すると簡単な使用法を表示します。
チャネルファイルは、1行に1つずつ、16進数でチャネル番号を 書き並べたテキストファイルです。各行の先頭の項目だけが読まれ、 空白またはタブで区切られた以降の項目は無視されます。また先頭 が '#' である行も無視されます。raw_mon プロセスは ハングアップシグナルを受け取ると、チャネルファイルを読み直します。
共有メモリ上の形式については order(1W) と winformat(1W) を参照してください。
MON 形式は、0.2秒ごとの各区間での最大値と最小値だけを保存する、 非可逆の圧縮データ形式です。通常の win フォーマット(RAW 形式) と比べると、秒ブロックが時刻ヘッダー(秒ヘッダー)とチャネル数分の チャネルブロックからなるところまでは同じですが、 チャネルブロックの内部構造が異なります。1チャネル・1秒分のデータから なるチャネルブロックは、次の形式です。
チャネル番号 | 第1区間の | 第2区間の | 第5区間の | |
最大最小値 | 最大最小値 | ... | 最大最小値 | |
2B | 可変長 | 可変長 | 可変長 | |
チャネルブロック(可変長) |
先頭の2バイトはチャネル番号で、その後には0.2秒区間の最小値と 最大値がエンコードされた可変長(1〜7バイト)のブロックが、5区間分 (1秒分)続きます。1つの0.2秒区間の最小値と最大値は、次の形式で エンコードされています。図中で二重の縦線はバイト境界の意味です。 1バイト内のビットの並びは、左が上位ビットです。複数バイト長の 値の表現はビッグエンディアン(上位バイトが先)で、負の値は2の補数表示です。
(1)最小値と最大値の両方が、7 bits で表現できるとき、
最小値の | 最大値の | 値 | 最小値の | 最大値の |
上位3bit | 上位3bit | 00 | 下位4bit | 下位4bit |
3 b | 3 b | 2 b | 4 b | 4 b |
1つの0.2秒区間の最大最小値(2 B) |
(2)最小値と最大値の両方が、11 bits で表現できるとき、
最小値の | 最大値の | 値 | 最小値の | 最大値の |
上位3bit | 上位3bit | 01 | 下位1B | 下位1B |
3 b | 3 b | 2 b | 1 B | 1 B |
1つの0.2秒区間の最大最小値(3 B) |
(3)最小値と最大値の両方が、19 bits で表現できるとき、
最小値の | 最大値の | 値 | 最小値の | 最大値の |
上位3bit | 上位3bit | 10 | 下位2B | 下位2B |
3 b | 3 b | 2 b | 2 B | 2 B |
1つの0.2秒区間の最大最小値(5 B) |
(4)最小値と最大値の両方が、27 bits で表現できるとき、
最小値の | 最大値の | 値 | 最小値の | 最大値の |
上位3bit | 上位3bit | 11 | 下位3B | 下位3B |
3 b | 3 b | 2 b | 3 B | 3 B |
1つの0.2秒区間の最大最小値(7 B) |