void extlight_handler(void* request, void* response, uint8_t *buffer, uint16_t preferred_size, int32_t *offset) { uint16_t light; light = light_ziglet_read(); const uint16_t *accept = NULL; int num = REST.get_header_accept(request, &accept); if ((num==0) || (num && accept[0]==REST.type.TEXT_PLAIN)) { REST.set_header_content_type(response, REST.type.TEXT_PLAIN); snprintf((char *)buffer, REST_MAX_CHUNK_SIZE, "%u", light); REST.set_response_payload(response, (uint8_t *)buffer, strlen((char *)buffer)); } else if (num && (accept[0]==REST.type.APPLICATION_JSON)) { REST.set_header_content_type(response, REST.type.APPLICATION_JSON); snprintf((char *)buffer, REST_MAX_CHUNK_SIZE, "{'light':%u}", light); REST.set_response_payload(response, buffer, strlen((char *)buffer)); } else { REST.set_response_status(response, REST.status.NOT_ACCEPTABLE); const char *msg = "Supporting content-types text/plain and application/json"; REST.set_response_payload(response, msg, strlen(msg)); } }
PROCESS_THREAD(test_process, ev, data) { PROCESS_BEGIN(); uint16_t light; light_ziglet_init(); while(1) { etimer_set(&et, SENSOR_READ_INTERVAL); PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et)); light = light_ziglet_read(); PRINTF("Light = %u\n", light); } PROCESS_END(); }