mq2raw
Section: SYSTEM (1W)
Updated: 2025.4.17 WIN
Index
Return to Main Contents
名称
mq2raw - MQTTブローカーから RAW 形式データを受信
形式
mq2raw [-abgsD] [-t topic] [-p port]
[-q qos]
[-i id]
[-c cafile]
[-d capath]
[-C certfile]
[-k keyfile]
[-u user]
[-P pswd]
host
outkey
shmsize
[
logfile
]
mq2raw -a/-b [-gsD] [-t topic] [-p port]
[-q qos]
[-i id]
[-c cafile]
[-d capath]
[-C certfile]
[-k keyfile]
[-u user]
[-P pswd]
host
[
logfile
] (-a/-bを指定したときは outkeyとshmsizeを省略可)
mq2rawd [-abgs] [-t topic] [-p port]
[-q qos]
[-i id]
[-c cafile]
[-d capath]
[-C certfile]
[-k keyfile]
[-u user]
[-P pswd]
host
outkey
shmsize
[
logfile
]
mq2rawd -a/-b [-gs] [-t topic] [-p port]
[-q qos]
[-i id]
[-c cafile]
[-d capath]
[-C certfile]
[-k keyfile]
[-u user]
[-P pswd]
host
[
logfile
] (-a/-bを指定したときは outkeyとshmsizeを省略可)
解説
mq2raw は、ホスト
host
のMQTTブローカーに接続して WIN 形式データを受信 (subscribe) し、
それをキー
outkey
で与えられる共有メモリ・セグメントに巡回的に書き込みます。
ただしオプション-a/-bを指定した場合には出力先が
共有メモリではなく標準出力になります。
受信するMQTTメッセージのトピックはデフォルトで "win/data" です。
共有メモリ・キーは32ビットの整数値です。
outkey
をもつ共有メモリ・セグメントが存在しない場合は、大きさ
shmsize
(KB) の共有メモリ・セグメントが作られます。すでに存在している場合は、
そのサイズが
shmsize
(KB) よりも小さいとエラーになります。
オプション-a/-bを指定した場合には
outkey
と
shmsize
は省略可能です。
ブローカーから受信された1メッセージのペイロードが
共有メモリ上の1ブロックになります。
その形式は、書き込み時刻付き・ブロック末尾のブロック長付きです。
共有メモリ上の形式については order(1W), recvt(1W) を
参照してください。
mq2rawd は daemon モードで起動します。
ログファイル名
logfile
を指定すると、ここに動作ログがとられ、指定しないとログ情報は標準出力
(オプション-a/-bを指定した場合に限り標準エラー出力)
に送られます。ただし daemon モードで動いている時は syslogd(8) に送られます。
ログファイルは書き込みのたび毎にオープン/クローズされます。
mq2raw は、HUPシグナルを受けると
ログファイル
logfile
に流量情報を書き出します。これには起動時、または
前回HUPシグナルを受けたときからの、
メッセージ数、バイト数、毎秒メッセージ数、毎秒バイト数
が含まれます。
mq2raw は特定のWIN チャネル番号のデータのみを選別して受信することは
できません。受信後にチャネル番号で選別するには、raw_raw(1W) 等が使えます。
mq2raw は、引数なしで起動すると簡単な使用法を表示します。
オプション
- -a
-
ASCII形式(shmdump(1W) -tq の形式)で標準出力へ書き出します。
このデータをパイプで shmx(1W) に入力することにより、
望む1つまたは複数のチャネルのリアルタイム波形表示をすることができます。
-aが指定されたとき、2つ目と3つ目の引数
outkey
と
shmsize
は省略可能で、それらを省略した場合は
logfile
がさらに省略可能な2つ目の引数になります。
- -b
-
バイナリ形式で標準出力へ書き出します。これはWINフォーマットの
波形ファイルをそのままダンプ(cat)したのと同じで形式で、
shmdump(1W) が、入力共有メモリキーとして " - " を指定されたときに
期待する形式です。したがってこのデータをパイプで shmdump(1W)に
入力して利用することができます。
-bが指定されたとき、2つ目と3つ目の引数
outkey
と
shmsize
は省略可能で、それらを省略した場合は
logfile
がさらに省略可能な2つ目の引数になります。
- -s
-
SSL/TLS化されたブローカーに接続します。
- -t topic
-
受信するべきMQTTメッセージのトピックを
topic
に設定します。トピックは任意の文字列で、'/'で区切って階層化することができます。
1つまたは複数の階層をそれぞれワイルドカード '+'と'#' で表現することにより、
複数のトピックを受信指定することもできます。トピックの詳細については
MQTTの資料を見てください。
- -p port
-
MQTTブローカー
host
のTCPポート番号を
port
に指定します。デフォルトは 1883 です。ただしオプション -s
で SSL/TLS化した場合のデフォルトは 8883 です。
- -q qos
-
MQTTブローカーとの間の通信品質(QoS)を
qos
に設定します。設定できる値は 0,1,2 のいずれかで、デフォルトは 0 です。
QoSの意味についてはMQTTの資料を見てください。
- -u user
-
- -P pswd
-
MQTTブローカーがユーザー認証を必要とする場合、ユーザー名
user
とパスワード
pswd
をそれぞれ設定します。
- -c cafile
-
- -d capath
-
SSL/TLS対応のブローカーの場合、CA(認証局)証明書である
PEM形式のファイル
cafile
またはそれを内容として持つディレクトリ
capath
のいずれかを指定します。
デフォルトでそれぞれ /etc/ssl/certs と /etc/ssl/cert.pem が使用され
(試され)ますが、これらがいずれもが有効ではない場合は指定が必要です。
- -C certfile
-
- -k keyfile
-
SSL/TLS対応のブローカーがクライアント認証を必要とする場合、
PEM形式の証明書ファイル
certfile
と
PEM形式の秘密鍵ファイル
keyfile
の2つをそれぞれ指定します。
- -D
-
daemon モードで起動します。
- -g
-
デバッグ情報を出力します。
ここで出力されるトピック・QoS・メッセージIDは受信された
各メッセージに付いてきたものです。
使用例
ホスト mybroker のMQTTブローカーからWINデータを受信してキー 21 の
共有メモリ(大きさ1000KB)に書き出します。
MQTTのユーザー名user、パスワードpassです。
mq2raw -u user -P pass mybroker 21 1000
このとき、並行してWINデータパケットをUDPポート 7000 で受信して
キー 11 の共有メモリに書き出しているとします。
recvt 7000 11 1000
これら2系統のデータを1つの共有メモリに合流させるには、
次の3つの方法があります。
(1) sendt_raw 21 localhost 7000
MQTT経由のデータをUDPに転送して共有メモリ 11 にまとめる。
(2) raw2mq -u user -P pass 11 mybroker
UDP経由のデータをMQTTに転送して共有メモリ 21 にまとめる。
(3) rawmix 11 21 31 1000
共有メモリ 11 と 21 のデータを別の共有メモリ 31 にまとめる。
ホスト mybroker のMQTTブローカーからWINデータを受信して、shmx(1W) で
チャネル番号 9100,9102,9103 の3チャネルの波形をモニターします。
mq2raw -a mybroker -u user -P pass | shmx 9100 9101 9102
上と同様ですが、バイナリ/ASCII変換は shmdump(1W) で行います。
mq2raw -b mybroker -u user -P pass | shmdump -tq - 9100 9101 9102 |\
shmx 9100 9101 9102
ソース
- mq2raw.c
-
関連事項
raw2mq(1W), order(1W), recvt(1W), raw_raw(1W), rawmix(1W)
Index
- 名称
-
- 形式
-
- 解説
-
- オプション
-
- 使用例
-
- ソース
-
- 関連事項
-
This document was created by
man2html,
using the manual pages.
Time: 02:46:09 GMT, July 02, 2025