• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

src/29-Dec-2025-241185

CMakeLists.txtD29-Dec-2025256 138

KconfigD29-Dec-2025298 139

README.rstD29-Dec-20255.3 KiB12097

prj.confD29-Dec-2025706 3321

sample.yamlD29-Dec-2025246 1514

README.rst

1.. zephyr:code-sample:: coap-upload
2   :name: CoAP upload
3   :relevant-api: coap
4
5   Use the CoAP client API to upload data via a PUT request
6
7Overview
8********
9
10This sample demonstrates the use of the CoAP client API to upload a content to a
11CoAP server with PUT requests. The sample showcases various methods of uploading
12a content:
13
14  * Short upload with payload pointer,
15  * Short upload with payload callback,
16  * Block transfer upload with payload pointer,
17  * Block transfer upload with payload callback.
18
19The sample is compatible with the :zephyr:code-sample:`coap-server` sample, or
20can run against a standalone CoAP server, for example `aiocoap`_.
21
22Requirements
23************
24- :ref:`networking_with_host`, :ref:`networking_with_native_sim`
25- or, a board with hardware networking (tested on nrf7002dk board with ``wifi-ipv4`` snippet)
26- Network connection between the board and a host running a CoAP server
27
28Build and Running
29*****************
30Build the CoAP upload sample application like this:
31
32.. zephyr-app-commands::
33   :zephyr-app: samples/net/sockets/coap_upload
34   :board: <board to use>
35   :goals: build
36   :compact:
37
38The easiest way to run this sample application is to build and run it as a
39native_sim application. Some setup is required as described in
40:ref:`networking_with_native_sim`.
41
42Download a CoAP server application, for example `aiocoap`_ (Python).
43
44Using ``aiocoap``:
45
46.. code-block:: bash
47
48    python -m pip install "aiocoap[all]"
49    mkdir file_root
50    aiocoap-fileserver --write file_root
51
52Launch :command:`net-setup.sh` in net-tools:
53
54.. code-block:: bash
55
56    ./net-setup.sh
57
58Build and run the CoAP upload sample application for native_sim like this:
59
60.. zephyr-app-commands::
61   :zephyr-app: samples/net/sockets/coap_upload
62   :host-os: unix
63   :board: native_sim
64   :goals: run
65   :compact:
66
67Sample output
68=============
69
70.. code-block:: console
71
72    [00:00:00.000,000] <inf> net_config: Initializing network
73    [00:00:00.000,000] <inf> net_config: IPv4 address: 192.0.2.1
74    [00:00:00.110,000] <inf> net_config: IPv6 address: 2001:db8::1
75    [00:00:00.110,000] <inf> net_config: IPv6 address: 2001:db8::1
76    [00:00:00.110,000] <inf> net_samples_common: Network connectivity established and IP address assigned
77    [00:00:00.110,000] <inf> net_samples_common: Waiting for network...
78    [00:00:00.110,000] <inf> coap_upload:
79    [00:00:00.110,000] <inf> coap_upload: * Starting CoAP upload using IPv4
80    [00:00:00.110,000] <inf> coap_upload:
81    [00:00:00.110,000] <inf> coap_upload: ** CoAP upload short
82    [00:00:00.180,000] <inf> coap_upload: CoAP upload short done in 70 ms
83    [00:00:00.180,000] <inf> coap_upload:
84    [00:00:00.180,000] <inf> coap_upload: ** CoAP upload short with callback
85    [00:00:00.240,000] <inf> coap_upload: CoAP upload short with callback done in 60 ms
86    [00:00:00.240,000] <inf> coap_upload:
87    [00:00:00.240,000] <inf> coap_upload: ** CoAP upload blockwise
88    [00:00:00.300,000] <inf> coap_upload: CoAP upload blockwise ongoing, sent 128 bytes so far
89    [00:00:00.360,000] <inf> coap_upload: CoAP upload blockwise ongoing, sent 256 bytes so far
90    [00:00:00.420,000] <inf> coap_upload: CoAP upload blockwise ongoing, sent 384 bytes so far
91    [00:00:00.480,000] <inf> coap_upload: CoAP upload blockwise done in 240 ms
92    [00:00:00.480,000] <inf> coap_upload:
93    [00:00:00.480,000] <inf> coap_upload: ** CoAP upload blockwise with callback
94    [00:00:00.540,000] <inf> coap_upload: CoAP upload blockwise with callback ongoing, sent 128 bytes so far
95    [00:00:00.600,000] <inf> coap_upload: CoAP upload blockwise with callback ongoing, sent 256 bytes so far
96    [00:00:00.660,000] <inf> coap_upload: CoAP upload blockwise with callback ongoing, sent 384 bytes so far
97    [00:00:00.720,000] <inf> coap_upload: CoAP upload blockwise with callback done in 240 ms
98    [00:00:01.230,000] <inf> coap_upload:
99    [00:00:01.230,000] <inf> coap_upload: * Starting CoAP upload using IPv6
100    [00:00:01.230,000] <inf> coap_upload:
101    [00:00:01.230,000] <inf> coap_upload: ** CoAP upload short
102    [00:00:01.320,000] <inf> coap_upload: CoAP upload short done in 90 ms
103    [00:00:01.320,000] <inf> coap_upload:
104    [00:00:01.320,000] <inf> coap_upload: ** CoAP upload short with callback
105    [00:00:01.380,000] <inf> coap_upload: CoAP upload short with callback done in 60 ms
106    [00:00:01.380,000] <inf> coap_upload:
107    [00:00:01.380,000] <inf> coap_upload: ** CoAP upload blockwise
108    [00:00:01.440,000] <inf> coap_upload: CoAP upload blockwise ongoing, sent 128 bytes so far
109    [00:00:01.500,000] <inf> coap_upload: CoAP upload blockwise ongoing, sent 256 bytes so far
110    [00:00:01.560,000] <inf> coap_upload: CoAP upload blockwise ongoing, sent 384 bytes so far
111    [00:00:01.620,000] <inf> coap_upload: CoAP upload blockwise done in 240 ms
112    [00:00:01.620,000] <inf> coap_upload:
113    [00:00:01.620,000] <inf> coap_upload: ** CoAP upload blockwise with callback
114    [00:00:01.680,000] <inf> coap_upload: CoAP upload blockwise with callback ongoing, sent 128 bytes so far
115    [00:00:01.740,000] <inf> coap_upload: CoAP upload blockwise with callback ongoing, sent 256 bytes so far
116    [00:00:01.800,000] <inf> coap_upload: CoAP upload blockwise with callback ongoing, sent 384 bytes so far
117    [00:00:01.860,000] <inf> coap_upload: CoAP upload blockwise with callback done in 240 ms
118
119.. _aiocoap: https://github.com/chrysn/aiocoap
120