51 lines
1.9 KiB
ReStructuredText
51 lines
1.9 KiB
ReStructuredText
=====================
|
||
``poll`` Poll example
|
||
=====================
|
||
|
||
A test of the ``poll()`` and ``select()`` APIs using FIFOs and, if available,
|
||
``stdin``, and a TCP/IP socket. In order to use the TCP/IP select test, you must
|
||
have the following things selected in your NuttX configuration file:
|
||
|
||
- ``CONFIG_NET`` – Defined for general network support.
|
||
- ``CONFIG_NET_TCP`` – Defined for TCP/IP support.
|
||
- ``CONFIG_NET_NTCP_READAHEAD_BUFFERS`` – Defined to be greater than zero.
|
||
- ``CONFIG_EXAMPLES_POLL_NOMAC`` – (May be defined to use software assigned
|
||
MAC)
|
||
- ``CONFIG_EXAMPLES_POLL_IPADDR`` – Target IP address.
|
||
- ``CONFIG_EXAMPLES_POLL_DRIPADDR`` – Default router IP address.
|
||
- ``CONFIG_EXAMPLES_POLL_NETMASK`` – Network mask.
|
||
|
||
In order to for select to work with incoming connections, you must also select:
|
||
|
||
- ``CONFIG_NET_TCPBACKLOG`` – Incoming connections pend in a backlog until
|
||
``accept()`` is called.
|
||
|
||
In additional to the target device-side example, there is also a host-side
|
||
application in this directory. It can be compiled under Linux or Cygwin as
|
||
follows::
|
||
|
||
cd examples/usbserial
|
||
make -f Makefile.host TOPDIR=<nuttx-directory> TARGETIP=<target-ip>
|
||
|
||
Where ``<target-ip>`` is the IP address of your target board.
|
||
|
||
This will generate a small program called 'host'. Usage:
|
||
|
||
1. Build the ``examples/poll`` target program with TCP/IP poll support and start
|
||
the target.
|
||
|
||
2. Then start the host application::
|
||
|
||
./host
|
||
|
||
The host and target will exchange are variety of small messages. Each message
|
||
sent from the host should cause the select to return in target. The target
|
||
example should read the small message and send it back to the host. The host
|
||
should then receive the echo'ed message.
|
||
|
||
If networking is enabled, applications using this example will need to provide
|
||
the following definition in the ``defconfig`` file to enable the networking
|
||
library:
|
||
|
||
- ``CONFIG_NETUTILS_NETLIB=y``
|