Files
libcoap/examples/zephyr
Jon Shallow ea01661faf Zephyr: Support C++ builds
Some of the Zephyr include files need to be C++, not C based. The 'extern "C"'
wrapper in include/coap3/coap.h means that all #include are treated as being C.

Remove 'extern "C"' wrapper from include/coap3/coap.h and add wrapper to
include files after #include and before any function / structure definitions.

Add in a C++ build test for CI.
2025-08-21 12:17:41 +01:00
..
2025-06-26 15:23:23 +01:00
2025-08-21 12:17:41 +01:00
2025-08-21 12:17:41 +01:00
2025-08-21 12:17:41 +01:00
2025-07-19 12:17:38 +01:00

Example of libcoap running in Zephyr
====================================
If the Zephyr project environment is already installed outside of the libcoap
environment, then ZEPHYR_PROJECT need to be set to where it is already installed
(i.e export ZEPHYR_PROJECT=~/zephyrproject ).

If ZEPHYR_PROJECT is not set, then this defaults in this Makefile to the directory
zephyrproject under the examples/zephyr directory.

To build the coap-client example, do

    $ make

The executable gets built in ${ZEPHYR_PROJECT}/zephyr/build/zephyr/zephyr.exe
which is then copied to coap-client in the examples/zephyr directory.

./coap-client does a 'GET coaps://libcoap-net' using PSK with logging enabled.

For using the native_sim board using Linux, you may need to do something like
the following (ens32 is the external interface name, your environment may
be different)

    $ sudo ${ZEPHYR_PROJECT}/tools/net-tools/net-setup.sh start
    $ sudo iptables -t nat -A POSTROUTING -o ens32 -j MASQUERADE
    $ sudo sysctl -w net.ipv4.conf.all.forwarding=1

so that ./coap-client is able to route traffic out onto the internet and get
responses.