static int light_resource_to_rep(const struct sol_coap_resource *resource, bool state, char *buf, int buflen) { uint8_t path[64]; int len = 0; memset(&path, 0, sizeof(path)); sol_coap_uri_path_to_buf(resource->path, path, sizeof(path)); len += snprintf(buf + len, buflen - len, OC_CORE_ELEM_JSON_START, path); /* FIXME */ len += snprintf(buf + len, buflen - len, OC_CORE_PROP_JSON_NUMBER, "power", 100); len += snprintf(buf + len, buflen - len, OC_CORE_JSON_SEPARATOR); len += snprintf(buf + len, buflen - len, OC_CORE_PROP_JSON_STRING, "name", "Soletta LAMP!"); len += snprintf(buf + len, buflen - len, OC_CORE_JSON_SEPARATOR); len += snprintf(buf + len, buflen - len, OC_CORE_PROP_JSON_BOOLEAN, "state", state ? "true" : "false" ); len += snprintf(buf + len, buflen - len, OC_CORE_ELEM_JSON_END); return len; }
static int light_resource_to_rep(const struct sol_coap_resource *resource, bool state, struct sol_buffer *buf) { SOL_BUFFER_DECLARE_STATIC(buffer, 64); int r; r = sol_coap_uri_path_to_buf(resource->path, &buffer, 0, NULL); SOL_INT_CHECK(r, < 0, r); r = sol_buffer_append_printf(buf, OC_CORE_ELEM_JSON_START, (char *)sol_buffer_steal(&buffer, NULL)); SOL_INT_CHECK(r, < 0, r); r = sol_buffer_append_printf(buf, OC_CORE_PROP_JSON_NUMBER, "power", 100); SOL_INT_CHECK(r, < 0, r); r = sol_buffer_append_printf(buf, OC_CORE_JSON_SEPARATOR); SOL_INT_CHECK(r, < 0, r); r = sol_buffer_append_printf(buf, OC_CORE_PROP_JSON_STRING, "name", "Soletta LAMP!"); SOL_INT_CHECK(r, < 0, r); r = sol_buffer_append_printf(buf, OC_CORE_JSON_SEPARATOR); SOL_INT_CHECK(r, < 0, r); r = sol_buffer_append_printf(buf, OC_CORE_PROP_JSON_BOOLEAN, "state", state ? "true" : "false" ); SOL_INT_CHECK(r, < 0, r); r = sol_buffer_append_printf(buf, OC_CORE_ELEM_JSON_END); SOL_INT_CHECK(r, < 0, r); return 0; }