oic; incoming data is now in mbuf chain, instead of in flat buffer.
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/3ab30861 Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/3ab30861 Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/3ab30861 Branch: refs/heads/develop Commit: 3ab3086108a98527c53a0dde7f80a672be2ab23c Parents: 5c307f6 Author: Marko Kiiskila <[email protected]> Authored: Fri Jan 6 11:30:54 2017 -0800 Committer: Marko Kiiskila <[email protected]> Committed: Fri Jan 6 15:03:00 2017 -0800 ---------------------------------------------------------------------- apps/bleprph_oic/src/main.c | 8 ++++---- apps/ocf_sample/src/main.c | 14 ++++++++------ mgmt/oicmgr/src/oicmgr.c | 15 ++++++++------- 3 files changed, 20 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/3ab30861/apps/bleprph_oic/src/main.c ---------------------------------------------------------------------- diff --git a/apps/bleprph_oic/src/main.c b/apps/bleprph_oic/src/main.c index 81fa813..b59e12b 100755 --- a/apps/bleprph_oic/src/main.c +++ b/apps/bleprph_oic/src/main.c @@ -284,7 +284,8 @@ app_set_light(oc_request_t *request, oc_interface_mask_t interface) { bool state; int len; - const uint8_t *data; + uint16_t data_off; + struct os_mbuf *m; struct cbor_attr_t attrs[] = { [0] = { .attribute = "state", @@ -296,14 +297,13 @@ app_set_light(oc_request_t *request, oc_interface_mask_t interface) } }; - len = coap_get_payload(request->packet, &data); - if (cbor_read_flat_attrs(data, len, attrs)) { + len = coap_get_payload(request->packet, &m, &data_off); + if (cbor_read_mbuf_attrs(m, data_off, len, attrs)) { oc_send_response(request, OC_STATUS_BAD_REQUEST); } else { hal_gpio_write(LED_BLINK_PIN, state == true); oc_send_response(request, OC_STATUS_CHANGED); } - } static void http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/3ab30861/apps/ocf_sample/src/main.c ---------------------------------------------------------------------- diff --git a/apps/ocf_sample/src/main.c b/apps/ocf_sample/src/main.c index 2fdfb12..55d1b81 100644 --- a/apps/ocf_sample/src/main.c +++ b/apps/ocf_sample/src/main.c @@ -73,7 +73,8 @@ put_light(oc_request_t *request, oc_interface_mask_t interface) { bool state; int len; - const uint8_t *data; + uint16_t data_off; + struct os_mbuf *m; struct cbor_attr_t attrs[] = { [0] = { .attribute = "state", @@ -87,8 +88,8 @@ put_light(oc_request_t *request, oc_interface_mask_t interface) printf("PUT_light:\n"); - len = coap_get_payload(request->packet, &data); - if (cbor_read_flat_attrs(data, len, attrs)) { + len = coap_get_payload(request->packet, &m, &data_off); + if (cbor_read_mbuf_attrs(m, data_off, len, attrs)) { oc_send_response(request, OC_STATUS_BAD_REQUEST); } else { printf("value: %d\n", state); @@ -148,7 +149,8 @@ observe_light(oc_client_response_t *rsp) { bool state; int len; - const uint8_t *data; + uint16_t data_off; + struct os_mbuf *m; struct cbor_attr_t attrs[] = { [0] = { .attribute = "state", @@ -160,8 +162,8 @@ observe_light(oc_client_response_t *rsp) } }; - len = coap_get_payload(rsp->packet, &data); - if (cbor_read_flat_attrs(data, len, attrs)) { + len = coap_get_payload(rsp->packet, &m, &data_off); + if (cbor_read_mbuf_attrs(m, data_off, len, attrs)) { printf("OBSERVE_light: %d\n", state); light_state = state; } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/3ab30861/mgmt/oicmgr/src/oicmgr.c ---------------------------------------------------------------------- diff --git a/mgmt/oicmgr/src/oicmgr.c b/mgmt/oicmgr/src/oicmgr.c index df86c5f..75e8bde 100644 --- a/mgmt/oicmgr/src/oicmgr.c +++ b/mgmt/oicmgr/src/oicmgr.c @@ -31,13 +31,12 @@ #include <cborattr/cborattr.h> #include <tinycbor/cbor.h> -#include <tinycbor/cbor_buf_writer.h> -#include <tinycbor/cbor_buf_reader.h> +#include <tinycbor/cbor_mbuf_reader.h> #include <oic/oc_api.h> struct omgr_cbuf { struct mgmt_cbuf ob_mj; - struct cbor_buf_reader ob_reader; + struct cbor_mbuf_reader ob_reader; }; struct omgr_state { @@ -104,7 +103,8 @@ omgr_oic_op(oc_request_t *req, oc_interface_mask_t mask, int isset) { struct omgr_state *o = &omgr_state; const struct mgmt_handler *handler; - const uint8_t *data; + uint16_t data_off; + struct os_mbuf *m; int rc = 0; extern CborEncoder g_encoder; @@ -117,10 +117,11 @@ omgr_oic_op(oc_request_t *req, oc_interface_mask_t mask, int isset) goto bad_req; } - rc = coap_get_payload(req->packet, &data); - cbor_buf_reader_init(&o->os_cbuf.ob_reader, data, rc); + rc = coap_get_payload(req->packet, &m, &data_off); + cbor_mbuf_reader_init(&o->os_cbuf.ob_reader, m, data_off); - cbor_parser_init(&o->os_cbuf.ob_reader.r, 0, &o->os_cbuf.ob_mj.parser, &o->os_cbuf.ob_mj.it); + cbor_parser_init(&o->os_cbuf.ob_reader.r, 0, &o->os_cbuf.ob_mj.parser, + &o->os_cbuf.ob_mj.it); /* start generating the CBOR OUTPUT */ /* this is worth a quick note. We are encoding CBOR within CBOR, so we
