blob: a5bec3bc4285386dec9d896fa0dd4f50811a351e [file] [log] [blame]
NATS publisher
This sample code demonstrates how to write a NATS publisher sample
application.
See: http://nats.io/documentation/internals/nats-protocol/ for more
information about the NATS protocol.
Requirements
------------
* Ethernet LAN for testing purposes.
* Galileo Gen 2 Development Board.
* USB-UART cable: CH340, FTDI 6-pin or equivalent for debugging.
* NATS server, subscriber and publisher applications. See:
http://nats.io/documentation/tutorials/gnatsd-install/
http://nats.io/documentation/clients/nats-clients/
https://github.com/nats-io/nats
Building instructions
---------------------
* Read src/main.c, change the IP addresses according to the LAN
environment.
* On a terminal window, type:
make pristine && make
* To load the binary into the Galileo Dev Board, follow the steps
indicated here:
https://www.zephyrproject.org/doc/board/galileo.html
Usage
-----
* Follow nats.io documentation to setup the server and client
applications.
* Start the NATS server: open a terminal window and type:
gnatsd -D
The terminal window must display something like this:
[2045] 2016/07/27 17:40:20.928840 [INF] Starting nats-server version 0.8.2
[2045] 2016/07/27 17:40:20.928913 [DBG] Go build version go1.5.4
[2045] 2016/07/27 17:40:20.928922 [INF] Listening for client connections on 0.0.0.0:4222
[2045] 2016/07/27 17:40:20.929035 [DBG] Server id is X6QdoKdcVHDeWQcVIpJcb5
[2045] 2016/07/27 17:40:20.929048 [INF] Server is ready
* Start the NATS subscriber client. Open another terminal window and type:
nats-sub -t sensors
This command will start the NATS subscriber client. The terminal
window will show the following text:
Listening on [sensors]
* Connect the USB-UART cable to the Galileo. Open a terminal and run:
screen /dev/ttyUSB0 115200
* Connect Galileo to the LAN, Turn on the board.
* On the screen terminal window, the following text will appear:
WARNING: no console will be available to OS
error: no suitable video mode found.
--------------------------------
NATS PUB: OK
--------------------------------
NATS PUB: OK
--------------------------------
NATS PUB: OK
--------------------------------
* The NATS subscriber terminal window will display:
2016/07/27 17:44:22 [#1] Received on [sensors]: 'DOOR3:OPEN'
2016/07/27 17:44:23 [#2] Received on [sensors]: 'DOOR3:OPEN'
2016/07/27 17:44:24 [#3] Received on [sensors]: 'DOOR3:OPEN'
* If the NATS server sends a PING message:
[30741] 2016/07/27 18:58:28.289650 [DBG] 192.168.1.110:1025 - cid:1 - Client Ping Timer
the application will print:
--------------------------------
Ping-pong message processed
NATS PUB: OK
--------------------------------
Final remarks
-------------
Full NATS support is not yet achieved. However, current publisher
and subscriber routines are enough to write basic NATS applications.