…
|
||
---|---|---|
.. | ||
src | ||
CMakeLists.txt | ||
Kconfig | ||
README.rst | ||
prj.conf | ||
sample.yaml |
README.rst
.. zephyr:code-sample:: coap-download :name: CoAP download :relevant-api: coap Use the CoAP client API to download data via a GET request Overview ******** This sample demonstrates the use of the CoAP client API to make GET requests to a CoAP server. If the data to be fetched is larger than a single CoAP packet, a blockwise transfer will be used to receive the data. Once the transfer is complete, the sample prints the amount of data received and the time taken. Requirements ************ - :ref:`networking_with_host`, :ref:`networking_with_native_sim` - or, a board with hardware networking (tested on nucleo_h753zi) - Network connection between the board and host running a CoAP server Build and Running ***************** Build the CoAP download sample application like this: .. zephyr-app-commands:: :zephyr-app: samples/net/sockets/coap_download :board: <board to use> :conf: <config file to use> :goals: build :compact: The easiest way to run this sample application is to build and run it as a native_sim application. Some setup is required as described in :ref:`networking_with_native_sim`. Download a CoAP server application, for example `aiocoap`_ (Python), or `Eclipse Californium`_ (Java) has a demo `Simple File Server`_ application. Using ``aiocoap``: .. code-block:: bash python -m pip install "aiocoap[all]" mkdir file_root echo "some test data" > file_root/test.txt aiocoap-fileserver file_root You can also change the name of the CoAP resource to request via Kconfig: .. code-block:: cfg CONFIG_NET_SAMPLE_COAP_RESOURCE_PATH="resource_name_to_request" Launch :command:`net-setup.sh` in net-tools: .. code-block:: bash ./net-setup.sh Build and run the coap_download sample application for native_sim like this: .. zephyr-app-commands:: :zephyr-app: samples/net/sockets/coap_download :host-os: unix :board: native_sim :goals: run :compact: Sample output ============= .. code-block:: console [00:00:00.000,000] <inf> net_config: Initializing network [00:00:00.000,000] <inf> net_config: IPv4 address: 192.0.2.1 [00:00:00.110,000] <inf> net_config: IPv6 address: 2001:db8::1 [00:00:00.110,000] <inf> net_config: IPv6 address: 2001:db8::1 [00:00:00.110,000] <inf> coap_download: Network L4 is connected [00:00:00.110,000] <inf> coap_download: Starting CoAP download using IPv4 [00:00:00.180,000] <inf> coap_download: CoAP response, result_code=69, offset=0, len=100 [00:00:00.180,000] <inf> coap_download: CoAP download done, got 100 bytes in 70 ms [00:00:00.180,000] <inf> coap_download: Starting CoAP download using IPv6 [00:00:00.300,000] <inf> coap_download: CoAP response, result_code=69, offset=0, len=100 [00:00:00.300,000] <inf> coap_download: CoAP download done, got 100 bytes in 120 ms .. _aiocoap: https://github.com/chrysn/aiocoap .. _Eclipse Californium: https://github.com/eclipse-californium/californium .. _Simple File Server: https://github.com/eclipse-californium/californium/tree/main/demo-apps/cf-simplefile-server