mq2raw

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

名称

mq2raw - MQTTブローカーから RAW 形式データを受信  

形式

mq2raw [-gsD] [-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 [-gs] [-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 は、ホスト  host のMQTTブローカーに接続して WIN 形式データを受信 (subscribe) し、 それをキー  outkey で与えられる共有メモリ・セグメントに巡回的に書き込みます。 受信するMQTTメッセージのトピックはデフォルトで "win/data" です。

共有メモリ・キーは32ビットの整数値です。  outkey をもつ共有メモリ・セグメントが存在しない場合は、大きさ  shmsize  (KB) の共有メモリ・セグメントが作られます。すでに存在している場合は、 そのサイズが  shmsize  (KB) よりも小さいとエラーになります。

ブローカーから受信された1メッセージのペイロードが、 共有メモリ上の1ブロックになります。 その形式は、書き込み時刻付き・ブロック末尾のブロック長付きです。 共有メモリ上の形式については order(1W), recvt(1W) を 参照してください。

mq2rawd は daemon モードで起動します。

ログファイル名  logfile を指定すると、ここに動作ログがとられ、指定しないとログ情報は標準出力に 送られます(ただし、daemon モードで動い ている時は syslogd(8) に送られます)。 ログファイルは書き込みのたび毎に オープン/クローズされます。

mq2raw は、HUPシグナルを受けると ログファイル  logfile に流量情報を書き出します。これには起動時、または 前回HUPシグナルを受けたときからの、

  メッセージ数、バイト数、毎秒メッセージ数、毎秒バイト数
が含まれます。

mq2raw は特定のWIN チャネル番号のデータのみを選別して受信することは できません。受信後にチャネル番号で選別するには、raw_raw(1W) 等が使えます。

mq2raw は、引数なしで起動すると簡単な使用法を表示します。

 

オプション

-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)に書き出します。


  mq2raw 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 11 mybroker

     UDP経由のデータをMQTTに転送して共有メモリ 21 にまとめる。

(3)  rawmix 11 21 31 1000

     共有メモリ 11 と 21 のデータを別の共有メモリ 31 にまとめる。
 

ソース

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: 07:38:35 GMT, March 23, 2025