NATS subscriber

This sample code demonstrates how to write a NATS subscriber 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

* 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.
    --------------------------------
    --------------------------------

* Run the NATS publisher client. Open a terminal window and type:

    nats-pub sensors DOOR89:CLOSED

  The terminal window will display:

    Published [sensors] : 'DOOR89:CLOSED'

* On the screen terminal window, the following message will appear:

    --------------------------------
    Subject: [7] sensors
    Sid: [2] z1
    Reply-to: not found
    Payload: [13] DOOR89:CLOSED
    --------------------------------


Final remarks
-------------

Full NATS support is not yet achieved. However, current publisher
and subscriber routines are enough to write basic NATS applications.
