PROCESS_THREAD(coap_client_example, ev, data) { PROCESS_BEGIN(); SERVER_NODE(&server_ipaddr); /* new connection with server */ client_conn = udp_new(&server_ipaddr, UIP_HTONS(REMOTE_PORT), NULL); udp_bind(client_conn, UIP_HTONS(LOCAL_PORT)); PRINTF("Created a connection with the server "); PRINT6ADDR(&client_conn->ripaddr); PRINTF(" local/remote port %u/%u\n", UIP_HTONS(client_conn->lport), UIP_HTONS(client_conn->rport)); etimer_set(&et, 5 * CLOCK_SECOND); while(1) { PROCESS_YIELD(); if (etimer_expired(&et)) { send_data(); etimer_reset(&et); } else if (ev == tcpip_event) { handle_incoming_data(); } } PROCESS_END(); }
/*-----------------------------------------------------------------------------------*/ PROCESS_THREAD(coap_receiver, ev, data) { PROCESS_BEGIN(); PRINTF("Starting CoAP-03 receiver...\n"); rest_activate_resource(&resource_well_known_core); coap_register_as_transaction_handler(); coap_init_connection(SERVER_LISTEN_PORT); while(1) { PROCESS_YIELD(); if(ev == tcpip_event) { handle_incoming_data(); } else if (ev == PROCESS_EVENT_TIMER) { /* retransmissions are handled here */ coap_check_transactions(); } } /* while (1) */ PROCESS_END(); }