shmdump

Section: WIN SYSTEM (1W)
Updated: 2019.11.6
Index Return to Main Contents
 

呼称

shmdump - 共有メモリ・セグメント上のデータのモニタ  

形式

shmdump [-admoqrtwxz] [-s sec] [-f file] shmkey/- [ ch ... ]  

解説

shmdump は、キー  shmkey で与えられる共有メモリ・セグメントに巡回的に書き込まれている データの、各ブロックの最初の部分を読んでダンプしていきます。  shmkey として "-" を指定すると、共有メモリのかわりに標準入力から データが読み込まれます。 チャネルのリスト ch ... を指定すると、指定されたチャネルはすべて、1行1チャネルの形式で ダンプされます。 shmdump は共有メモリ上のブロック形式として、「書き込み時刻」付きの もの(recvt(1W)参照)および「書き込み時刻」無しのもの (order(1W)参照)のどちらでも、自動的に判別して読むことができます。 表示形式は以下のとおりです。  

「書き込み時刻」無しの場合

まずブロックサイズ(バイト)、次にタイムスタンプの時刻(年〜秒)を12桁で、 次に最初のチャネルブロックの先頭8バイトを16進数で表示します。  

「書き込み時刻」付きの場合

まずブロックサイズ(バイト)、続いて「書き込み時刻(RT=RealTime)」を年〜秒の 12桁で、その後にそれとタイムスタンプの時刻(TS=TimeStamp)との差 (RT-TS)を秒単位で表示し、次にタイムスタンプの時刻(TS)を年〜秒の12桁で、 次に最初のチャネルブロックの先頭8バイトを16進数で表示します。

上のいずれの場合でも、特定のチャネルを指定しないときは、 1ブロック(1秒分)の情報が1行に表示されますが、 チャネルのリストを指定したときは、1つの秒ブロックに複数のチャネルが入って いても、先頭のタイムスタンプが各行にコピーされて出力されます。  

オプション

-a
すべてのチャネルについてダンプします。なおこのオプションを指定した場合、 -{L,H,B}オプションが無効になってしまいますので注意してください。
-d
ReGISグラフィックスによる端末への波形表示モードで実行します。 これは試験的な実装です。xterm(--enable-regis-graphics 付きで コンパイルし起動時オプション '-ti 340')での動作は確認済みです。 表示するチャネルを 指定する必要があります(実用的には6チャネル程度まで)。 振幅スケールは上下矢印キーにより 1/1〜1/4096の範囲で、 時間軸横幅は左右矢印キーにより 1〜60秒の範囲で、それぞれ 実行中に変更できます。空行出力でスクロールしているので、 xtermのフォントサイズが適当な範囲(small〜medium, 8x12程度か) である必要があります。またウィンドウサイズを適宜引き伸ばす 必要があるかも知れません。DCオフセットが大きいときは ハイパスフィルターを併用するのが適当です(たとえば '-H 1.0:0.5:0.5:5.0')。 フィルター以外の他のオプションは指定しないほうが無難です。
-f file
チャネルのリストをファイル file から読み込みます。ファイル名の代わりに "-" を指定すると、標準入力から読み込みます。 リストは、空白、タブまたは改行で区切られた、16進数のチャネル番号です。 チャネルリストを標準入力から与えることと、データを標準入力から与えることは、 順序としてこの順番に読み込まれるので、両方同時に設定してもうまく行く場合が あるかもしれませんが、あまりお勧めしません。
なお,-rオプションまたは-xオプションが指定されたとき, file は出力ファイルを指定するのに使用することができます. このとき, file は書き込みのたびにオープン/クローズされますので外部のプログラムによる ファイルのローテーション等が可能です.
-m
MON形式のデータを扱います。データがMON形式のときはこれを 指定しなければなりません。MON形式については raw_mon(1W)を 参照してください。
-o
指定されたチャネル(-aオプションが指定されたときは全チャネル) のデータをWIN形式のまま、標準出力に書き出します。 このとき、通常の(1行1チャネルの)ダンプ出力は標準エラー出力に 書き出されます。
-q
1行1チャネルの形式のダンプ出力を抑制します。ふつうは-oオプション または-tオプションとともに指定されます。
-r
無変換で標準出力に書き出します。 このとき、通常の(1行1チャネルの)ダンプ出力は標準エラー出力に 書き出されます。このオプションを指定した場合は、-f-q-s 以外のすべてのオプションは無効になります。
-s sec
sec 秒間実行後、終了します。ふつうはこれで約 sec 秒分のデータがダンプされる ことになります。これを指定しない場合は、shmdumpは割り込みがあるまで 止まりません。
-t
指定されたチャネル(-aオプションが指定されたときは全チャネル) のデータをテキスト形式に変換して、標準出力に書き出します。 このとき、通常の(1行1チャネルの)ダンプ出力は標準エラー出力に 書き出されます。1秒分の形式は次の通りです。秒ヘッダー行に続いて、 1行に1チャネル×1秒分のデータが空白で区切って出力されます。
年 月 日 時 分 秒 実チャネル数<new-line>
チャネル番号 サンプリングレート データ データ ....<new-line>
チャネル番号 サンプリングレート データ データ ....<new-line>
-w
指定されたチャネル(-aオプションが指定されたときは全チャネル) のデータをWIN形式のまま一時ファイルに書き出し、続いてwin(1W)を起動します。 一時ファイルが作られるのは、環境変数 TMP に設定されたディレクトリ、それが なければ 環境変数 TEMP に設定されたディレクトリ、それもなければカレント ディレクトリです。このオプションは -oオプションを含みます。
-x
無変換(ただし16進数表示)で標準出力に書き出します。このとき1パケットが 1行になります. このとき、通常の(1行1チャネルの)ダンプ出力は標準エラー出力に 書き出されます。このオプションを指定した場合は、-f-q-s 以外のすべてのオプションは無効になります。
-z
データを共有メモリセグメントの先頭から読み出します。これが指定されないと、 データは最新の書き込み部分から(それの書き込みが終るのを待って)読み出されます。
-{L,H,B}
-tq を指定した場合の出力データにコマンドラインで指定したフィルターの特性で フィルターをかけます。フィルターの係数の決定には、
斉藤正徳,1978,漸化式ディジタル・フィルターの自動設計,物理探鉱,31, 112-135
のプログラムを使用しています。設定パラメタの選び方についてはこの 文献を参照してください。
-L fp:fs:ap:as
-tq を指定した場合の出力データにローパスをかけます。
-H fp:fs:ap:as
-tq を指定した場合の出力データにハイパスをかけます。
-B fl:fh:fs:ap:as
-tq を指定した場合の出力データにバンドパスをかけます。
-R rate
-tq を指定した場合の出力データをrateでリサンプリングします。
 

使用例

shmdump 11 0200
  チャネル0200だけを(あれば必ず)リストする

shmdump 11 0200 0201 0202
  チャネル0200,0201,0202を(あれば必ず)リストする

echo 0200 0201 0202 | shmdump -f - 11
  上と同じ。チャネルのリストを標準入力から与える

shmdump -f aso.ch 11
  チャネルファイル aso.ch にあるチャネルを(あれば必ず)リストする

shmdump -of aso.ch 11 > aso.dat
  チャネルファイル aso.ch にあるチャネルの波形を aso.datに出力

shmdump -of aso.ch -s 10 11 > aso.dat
  チャネルファイル aso.ch にあるチャネルの波形を約10秒分 aso.datに出力

shmdump -wf aso.ch -s 10 11
  チャネルファイル aso.ch にあるチャネルの波形を約10秒分winで表示

grep -w HIT /dat/etc/channels.tbl|shmdump -ws 10 -f - 11
  観測点 HIT の波形を約10秒分winで表示

cat 041222.1717|shmdump -tq - 0252
  ディスクファイル041222.1717からチャネル0252をテキスト形式で出力
 

ソース

`shmdump.c'
 

関連事項

winformat(1W), recvt(1W), order(1W), win(1W), raw_mon(1W)


 

Index

呼称
形式
解説
「書き込み時刻」無しの場合
「書き込み時刻」付きの場合
オプション
使用例
ソース
関連事項