raw2mq
Section: WIN SYSTEM (1W)
Updated: 2025.4.21
Index
Return to Main Contents
名称
raw2mq - RAW 形式データをMQTTブローカーへ送信
形式
raw2mq [-agjnsD] [-t topic] [-p port]
[-q qos]
[-i id]
[-c cafile]
[-d capath]
[-C certfile]
[-k keyfile]
[-u user]
[-P pswd]
[-l/-L chfile]
inkey
host
[
logfile
]
raw2mqd [-agjs] [-t topic] [-p port]
[-q qos]
[-i id]
[-c cafile]
[-d capath]
[-C certfile]
[-k keyfile]
[-u user]
[-P pswd]
[-l/-L chfile]
inkey
host
[
logfile
]
解説
raw2mq はホスト
host
のMQTTブローカーに接続し、キー
inkey
の共有メモリ・セグメントに巡回的に書き込まれている
WIN 形式のデータを送信 (publish) します。
MQTTメッセージのトピックはデフォルトで "win/data" です。
共有メモリ
inkey
上の形式は、時間順整列の有無・書き込み時刻の有無・
ブロック末尾のブロック長の有無、のいずれも問いません。
共有メモリ上の形式については order(1W), recvt(1W) を
参照してください。
共有メモリ上の1ブロックからブロック長情報と書き込み時刻情報を
除いた部分
(すなわち通常はタイムスタンプと波形データからなる1秒分)が
1つのMQTTメッセージのペイロードとして送信されます
(ただしオプション -a または -j が指定された場合は下記参照)。
raw2mqd は daemon モードで起動します。
ログファイル名
logfile
を指定すると、ここに動作ログがとられ、指定しないとログ情報は標準出力に
送られます(ただし、daemon モードで動いている時は syslogd(8) に送られます)。
ログファイルは書き込みのたび毎にオープン/クローズされます。
raw2mq は、HUPシグナルを受けると
ログファイル
logfile
に流量情報を書き出します。これには起動時、
または前回HUPシグナルを受けたときからの、
メッセージ数、バイト数、毎秒メッセージ数、毎秒バイト数
が含まれます。
raw2mq は特定のWIN チャネル番号のデータのみを選別して送信することは
できません(ただしオプション -a または -j が
-l または -Lと同時に指定された場合は下記参照)。
送信前にチャネル番号で選別するには、raw_raw(1W) 等が使えます。
raw2mq は、引数なしで起動すると簡単な使用法を表示します。
オプション
- -s
-
SSL/TLS化されたブローカーに接続します。
- -t topic
-
送信するMQTTメッセージのトピックを
topic
に設定します。トピックは任意の文字列で、'/'で区切って階層化することができます。
トピックの詳細についてはMQTTの資料を見てください。
- -p port
-
MQTTブローカー
host
のTCPポート番号を
port
に指定します。デフォルトは 1883 です。ただしオプション -s
で SSL/TLS化した場合のデフォルトは 8883 です。
- -q qos
-
MQTTブローカーとの間の通信品質(QoS)を
qos
に設定します。設定できる値は 0,1,2 のいずれかで、デフォルトは 0 です。
QoSの意味についてはMQTTの資料を見てください。
- -a
-
ASCII形式で出力します。このときデータは1秒×1チャネル毎のMQTTメッセージとして、
チャネル毎に別々のトピック名がついて、
shmdump(1W) -tq の形式で出力されます。
このデータをMQTTクライアントで受信(subscript)してパイプで shmx(1W)
に入力することにより、
望む1つまたは複数のチャネルのリアルタイム波形表示をすることができます。
このときのトピック名は
topic ではなく、topic/a/CHID (CHIDは16進数4桁のチャネル番号)
になります。この場合に限り、
topic
は空文字列("")または空白(" ")でもよく、そのときトピック名は a/CHID になります。
-aオプションは-jオプションと同時に指定することができます。
- -j
-
JSON形式で出力します。
このときデータは1秒分×1チャネル毎のMQTTメッセージとして、
チャネル毎に別々のトピック名を持ち、 winmonitor.js / smoothie.js
によるリアルタイム波形表示システムで受信(subscript)
表示することができるJSON形式です。
このときのトピック名は topic ではなく、topic/j/CHID
(CHIDは16進数4桁のチャネル番号)になります。この場合に限り、
topic
は空文字列("")または空白(" ")でもよく、そのときトピック名は j/CHID になります。
-jオプションは-aオプションと同時に指定することができます。
- -u user
-
- -P pswd
-
MQTTブローカーがユーザー認証を必要とする場合、ユーザー名
user
とパスワード
pswd
をそれぞれ設定します。
- -l chfile
-
-jまたは-aオプションと共に指定されたとき、
WIN形式のチャネル表ファイル
chfile
を読んで、その中にあるチャネルだけを出力します。
チャネル表ファイルの形式については win(1W) を参照してください。
出力の際のトピック名はチャネル毎に
topic/j/STN/CMP または topic/a/STN/CMP
等になり(STNはチャネル表から得た観測点コード、CMPは同じく成分名)、
データ中のCHID部分も同様にSTN/CMPになります。
- -L chfile
-
オプション-lとほぼ同じですが、
出力されるのはチャネル表に従って物理量に変換された後の値です。
またトピック名はチャネル毎に topic/J/STN/CMP または
topic/A/STN/CMP 等になり、データ中のCHID部分も同様にSTN/CMPになります。
- -n
-
オプション-lまたは-Lが指定されている場合でも、トピック名の
STN/CMP の部分を CHID にします。
- -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
-
デバッグ情報を出力します。
使用例
キー11の共有メモリに流れているデータを、ASCII形式で、
チャネルごとに別々のトピックで、ホスト host のMQTTブローカーへ
送信(publish)します。トピックとして "" を指定したので、
トピック名は a/CHID になります。MQTTのユーザー名user、パスワードpassです。
raw2mq -aj -t "" -u user -P pass 11 host
送信されたデータのうち 9100,9101,9102の3チャネルをMQTTクライアントで受信
(subscript)して、shmx(1W) でリアルタイム波形表示します。
mosquitto_sub -h host -u user -P pass -t a/9100 -t a/9101 -t a/9102 |\
shmx 9100 9101 9102
webブラウザで下のようなURLをアクセスするとwinmonitor.js/smoothie.jsによる
チャネル9100のリアルタイム波形表示が見えるかもしれません。
http://host/winmonitor.html?CH=9100&FPS=0&SEC=10&COL=1&WIDTH=1000&HEIGHT=200
ソース
- raw2mq.c
-
関連事項
mq2raw(1W), order(1W), recvt(1W), raw_raw(1W), shmx(1W), win(1W)
Index
- 名称
-
- 形式
-
- 解説
-
- オプション
-
- 使用例
-
- ソース
-
- 関連事項
-
This document was created by
man2html,
using the manual pages.
Time: 14:01:48 GMT, December 16, 2025