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.


Compiler Warnings
-----------------

The network layer used in this sample code will be replaced once the
new IP stack is ready. So, "netz" is tagged as "deprecated" and the
following warnings will be displayed by the compiler:

warning: 'netz_tx' is deprecated [-Wdeprecated-declarations]
