Ejemplo n.º 1
0
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));
	  }
}
Ejemplo n.º 2
0
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();
}