mirror of
https://github.com/obgm/libcoap.git
synced 2026-11-12 11:40:39 +03:00
Create a new include/coap2/coap_resource_internal.h to hold all the information not available to applications. Makefile.am: Include coap_resource_internal.h in EXTRA_DIST. Remove functions no longer visible from CTAGS_IGNORE. examples/coap-rd.c: examples/contiki/server.c: examples/etsi_iot_01.c: tests/test_wellknown.c Replace direct access to coap_resource_t variables with functions as appropriate. include/coap2/resource.h: include/coap2/subscribe.h: include/coap2/coap_resource_internal.h: (New) include/coap2/coap_subscribe_internal.h: Move coap_resource_t, coap_addr_t, non API #defines and non API functions from resource.h into coap_resource_internal.h, coap_subscribe_internal.h and subscribe.h. Replace inline functions accessing coap_resource_t with actual function definitions. Add new functions coap_resource_release_userdata_handler() and coap_attr_get_value(). include/coap2/block.h: Use coap_resource_t typedef. include/coap2/coap_forward_decls.h: Include coap_resource_t and coap_addr_t typedefs. Also typedef coap_context_t to get rid of #include circular requirements. include/coap2/coap_internal.h: win32/libcoap.vcxproj: win32/libcoap.vcxproj.filters: Include coap_resource_internal.h. include/coap2/net.h: Remove "typedef struct coap_context_t" and do this in coap_forward_decls.h. src/resource.c: Update with the replaced inline functions. Add in the new functions coap_resource_release_userdata_handler() and coap_attr_get_value(). libcoap-2.map: libcoap-2.sym: Update with new function visibility. man/Makefile.am: man/coap_attribute.txt.in: man/coap_observe.txt.in: man/coap_resource.txt.in: Update with the new coap_resource_t and coap_attr_t usage.
Example of libcoap running on contiki
=====================================
To run the example, do
$ make
$ sudo ./server.minimal-net
(and in a second terminal)
$ sudo ip -6 a a aaaa::1/64 dev tap0
and query `coap://[aaaa::1000]/time?ticks` with any coap tool,
or query `coap://[aaaa::1000]/.well-known/core`
This will
* download contiki from the upstream git sources
* build the server application
* run the server application, creating a virtual network device tap0 (unless
that exists)
* configure your network interface to make the server accessible.
* return the appropriate response from the server to the client.
The server creates a resource for 'time' with a query 'ticks'. This is
reported for `.well-known/core`. The work flow for adding more resources does
not differ from regular libcoap usage. If you seem to run out of memory
creating the resources, tweak the number of pre-allocated resources
in `coap_config.h.contiki`.