48 lines
1.7 KiB
Plaintext
48 lines
1.7 KiB
Plaintext
|
README.txt
|
||
|
==========
|
||
|
|
||
|
psmq is publish subscribe message queue. It's a set of programs and libraries
|
||
|
to implement publish/subscribe way of inter process communication on top of
|
||
|
POSIX message queue.
|
||
|
|
||
|
Manuals, source code and more info at:
|
||
|
https://psmq.kurwinet.pl
|
||
|
|
||
|
|
||
|
Little demo using psmqd broker, psmq_pub and psmq_sub:
|
||
|
|
||
|
# start broker and make it log to file
|
||
|
nsh> psmqd -b/brok -p/sd/psmqd/psmqd.log
|
||
|
|
||
|
# start subscribe thread that will read all messages send on /can/* topic
|
||
|
nsh> psmq_sub -n/sub -b/brok -t/can/* -o/sd/psmq-sub/can.log
|
||
|
n/connected to broker /brok
|
||
|
n/subscribed to /can/*
|
||
|
n/start receiving data
|
||
|
|
||
|
# publish some messages
|
||
|
nsh> psmq_pub -b/brok -t/can/engine/rpm -m50
|
||
|
nsh> psmq_pub -b/brok -t/adc/volt -m30
|
||
|
nsh> psmq_pub -b/brok -t/can/room/10/temp -m23
|
||
|
nsh> psmq_pub -b/brok -t/pwm/fan1/speed -m300
|
||
|
|
||
|
# check out subscribe thread logs
|
||
|
nsh> cat /sd/psmq-sub/can.log
|
||
|
[1970-01-01 00:00:53] topic: /can/engine/rpm, priority: 0, paylen: 3, payload:
|
||
|
[1970-01-01 00:00:53] 0x0000 35 30 00 50.
|
||
|
[1970-01-01 00:00:58] topic: /can/room/10/temp, priority: 0, paylen: 3, payload:
|
||
|
[1970-01-01 00:00:58] 0x0000 32 33 00 23.
|
||
|
|
||
|
As you can see /adc/volt and /pwm/fan1/speed haven't been received by subscribe
|
||
|
thread.
|
||
|
|
||
|
Content:
|
||
|
|
||
|
* psmqd - broker, relays messages between clients
|
||
|
* psmq_sub - listens to specified topics, can be used as logger for
|
||
|
communication (optional)
|
||
|
* psmq_pub - publishes messages directly from shell. Can send binary data, but
|
||
|
requires pipes, so on nuttx it can only send ASCII.
|
||
|
* libpsmq - library used to communicate with the broker and send/receive
|
||
|
messages
|