hipcdump

名前

hipcdump - サーバーとクライアントの間でやりとりされるHIPCパケットを表示する

書式

hipcdump LCMD RCMD

解説

hipcdumpLCMDRCMDで指定された2つのコマンドを実行し、LCMDの標準出力から受け取ったHIPCメッセージをRCMDの標準入力へ、RCMDの標準出力から受け取ったHIPCメッセージをLCMDの標準入力へそれぞれ渡す。その際、取り次いだHIPCメッセージの内容を以下の表示フォーマットに従って画面に表示する。

また、LCMDRCMDが標準エラー出力へ出力したデータもフォーマットに従って画面に表示する。

なお、このツールはsocatと共に利用されることが想定されている。

表示フォーマット

画面に表示される1行は左から、タイムスタンプ、行タイプ、データとなっている。データが標準エラー出力からのものである場合は、出力をそのまま表示する。データが取り次いだHIPCメッセージであった場合は、メッセージを整形して、タイムスタンプと行タイプに続けて、左からHIPCメッセージタイプ、四角括弧[]で囲まれたヘッダバイト、ボディバイト、縦線||で囲まれたボディバイトのASCII表示の順に表示する。

数値は全て16進数表示である。

出力行の行タイプは以下の通りである。

画面表示の例

13:05:00.848300 < HELLO[07 ff 00 05] 43 46 47 49 44  |CFGID|
13:05:00.848535 > SYS[02 6c 00 01] 01  |.|
13:05:00.848535 > SYS[02 00 01 01] 00  |.|
13:05:00.848535 > SYS[02 00 02 01] 01  |.|
13:05:00.848729 < GET[04 00 00 01]
13:05:00.848866 > SUCCESS[01 00 00 01] 00  |.|
13:05:00.849040 R STRUprm.led: 0
13:05:00.849055 < PUT[05 00 00 01] 01  |.|
13:05:00.849207 L led:1
13:05:00.849221 > SUCCESS[01 ff 00 00]
13:05:00.849475 < BYE[06 ff 00 00]
13:05:00.849623 > QUIT[00 ff 00 00]
13:05:00.849754 L end
13:05:00.849912 R end

利用例

サーバーがプログラムである場合

サーバーとクライアントが共に標準入出力で通信を行うプログラムである場合

hipcdump ./server ./client

サーバーがシリアルポートに接続されている場合

サーバーが/dev/ttyS0に接続されていて、通信ボーレートが9600bpsである場合

hipcdump 'socat /dev/ttyS0,raw,b9600,echo=0 STDIO' ./client

サーバーがTCPサーバーである場合

サーバーのIPアドレスが、192.168.0.111で、ポート番号が12345である場合

hipcdump 'socat tcp-connect:192.168.0.111:12345 STDIO' ./client


TOPページ

Last modified: 2015/07/27 08:00:59 +09:00