Exemple #1
0
static void
res_get_handler(void *request,   void *response,
                uint8_t *buffer, uint16_t preferred_size,
                int32_t *offset)
{
    s_ns_t* ps_ns = NULL;

    ps_ns = emb6_get();

    if ((ps_ns != NULL) || (ps_ns->inif != NULL))
    REST.set_response_payload(response, buffer,
                              snprintf((char *)buffer, preferred_size,
                              "RSSI: %i dBm, Power: %i dBm, Sensitivity: %i dBm",
                              ps_ns->inif->get_rssi(),
                              ps_ns->inif->get_txpower(),
                              ps_ns->inif->get_sensitivity()));
}
static void
res_get_handler(void *request,   void *response,
                uint8_t *buffer, uint16_t preferred_size,
                int32_t *offset)
{
    int length = 0;
    const char *len = NULL;
    char message[64];

    s_ns_t* ps_ns = NULL;
    ps_ns = emb6_get();

    if ((ps_ns != NULL) || (ps_ns->inif != NULL))
    {
        /* Some data that has the length up to REST_MAX_CHUNK_SIZE. For more,
         * see the chunk resource. */
        length = snprintf((char *)message, REST_MAX_CHUNK_SIZE,
                 "RSSI: %i dBm, Power: %i dBm, Sensitivity: %i dBm",
                 ps_ns->inif->get_rssi(),
                 ps_ns->inif->get_txpower(),
                 ps_ns->inif->get_sensitivity());

        /* The query string can be retrieved by rest_get_query() or parsed for
         * its key-value pairs. */
        if(REST.get_query_variable(request, "len", &len)) {
            length = atoi(len);
            if(length < 0) {
                length = 0;
            }
            if(length > REST_MAX_CHUNK_SIZE) {
                length = REST_MAX_CHUNK_SIZE;
            }
            memcpy(buffer, message, length);
        } else {
            memcpy(buffer, message, length);
        }

        /* text/plain is the default, hence this option could be omitted. */
        REST.set_header_content_type(response, REST.type.TEXT_PLAIN);
        REST.set_header_etag(response, (uint8_t *)&length, 1);
        REST.set_response_payload(response, buffer, length);
    }
}