//Reads button presses and adds to variable for LEDs PROCESS_THREAD(authority_process, ev, data){ PROCESS_BEGIN(); #ifdef DEBUG volatile unsigned int *resetreas_reg = (unsigned int*) 0x40000400; if(*resetreas_reg != 1){ printf("\n Reset reason: %d \n", *resetreas_reg); PROCESS_WAIT_EVENT(); //This single line made things work and not crash? What is this unstable hell-machine? } *resetreas_reg = 0xF00F; #endif rest_init_engine(); #if WITH_IPSO ipso_objects_init(); #endif rest_activate_resource(&res_door, "doors/door"); while(1){ PROCESS_WAIT_EVENT(); //wait for requests and process data } PROCESS_END(); }
PROCESS_THREAD(felicia_main, ev, data) { static struct etimer timer; PROCESS_BEGIN(); /* Initialize the CoAP server and activate resources */ rest_init_engine(); #if PLATFORM_HAS_LEDS #ifdef RESOURCE_LED0_CONF_LED rest_activate_resource(&resource_led, (char *)"led"); rest_activate_resource(&resource_led0, (char *)"led/0"); #endif #ifdef RESOURCE_LED1_CONF_LED rest_activate_resource(&resource_led1, (char *)"led/1"); #endif #endif rest_activate_resource(&resource_ipv6_neighbors, (char *)"ipv6/neighbors"); rest_activate_resource(&resource_rpl_info, (char *)"rpl-info"); rest_activate_resource(&resource_rpl_parent, (char *)"rpl-info/parent"); rest_activate_resource(&resource_rpl_rank, (char *)"rpl-info/rank"); rest_activate_resource(&resource_rpl_link_metric, (char *)"rpl-info/link-metric"); #if PLATFORM_HAS_SLIDE_SWITCH SENSORS_ACTIVATE(slide_switch_sensor); #endif #if PLATFORM_HAS_BUTTON SENSORS_ACTIVATE(button_sensor); rest_activate_resource(&resource_push_button_event, (char *)"push-button"); #endif #if PLATFORM_HAS_SENSORS rest_activate_resource(&resource_temperature, (char *)"temperature"); #endif PROCESS_PAUSE(); #if WITH_WEBSERVER process_start(&node_webserver_simple_process, NULL); #endif #if WITH_IPSO /* Initialize the OMA LWM2M engine */ lwm2m_engine_init(); /* Register default LWM2M objects */ lwm2m_engine_register_default_objects(); /* Register default IPSO objects */ ipso_objects_init(); setup_lwm2m_servers(); #endif while(1) { etimer_set(&timer, CLOCK_SECOND * 5); PROCESS_WAIT_EVENT(); #if PLATFORM_HAS_BUTTON if(ev == sensors_event && data == &button_sensor) { resource_push_button_event.trigger(); PRINTF("Button pressed!\n"); } #endif #if PLATFORM_HAS_SLIDE_SWITCH if(ev == sensors_event && data == &slide_switch_sensor) { PRINTF("Sliding switch is %s\n", slide_switch_sensor.value(0) ? "on" : "off"); } #endif } PROCESS_END(); }