/*---------------------------------------------------------------------------*/ void leds_blink(void) { /* Blink all leds. */ unsigned char inv; inv = ~(leds ^ invert); leds_invert(inv); clock_delay(400); leds_invert(inv); }
char loop(struct rtimer* t, void *ptr){ PT_BEGIN(&pt); uint8_t packet[TIMESTAMP_BIT]; int packet_len = 0; sclock_init(&sclk, TYPE_CLOCK); ntp_init(&ntp, &sclk); static struct timestamp second; timestamp_init(&second); second.sec = 1; while(1) { sclock_etimer_set(&sclk, &et, &second); PT_YIELD_UNTIL(&pt,etimer_expired(&et)); leds_invert(LEDS_RED); #if REQUEST packet_len = ntp_make_request(&ntp, packet); packetbuf_copyfrom(packet, packet_len); abc_send(&abc); #endif } PT_END(&pt); }
PROCESS_THREAD(blink_process, ev , data) { static struct etimer timer; PROCESS_BEGIN(); etimer_set(&timer, CLOCK_SECOND/2); while(1) { PROCESS_WAIT_EVENT_UNTIL(ev == PROCESS_EVENT_EXIT || ev== PROCESS_EVENT_TIMER); if (ev == PROCESS_EVENT_EXIT) break; leds_invert(LEDS_RED); #if 0 { DISABLE_FIFOP_INT(); printf("FSMSTATE: %04x",cc2420_getreg(CC2420_FSMSTATE)); ENABLE_FIFOP_INT(); if (SFD_IS_1) printf(" SFD"); if (FIFO_IS_1) printf(" FIFO"); if (FIFOP_IS_1) printf(" FIFOP"); putchar('\n'); } #endif etimer_reset(&timer); } printf("Ended process\n"); PROCESS_END(); }
PROCESS_THREAD(beeper_process, ev, data) { PROCESS_BEGIN(); etimer_set(&etimer, CLOCK_SECOND / 2); PT_INIT(&beeper_pt); button_sensor.configure(SENSORS_ACTIVE, 1); while(1) { beeper_thread(&beeper_pt); PROCESS_WAIT_EVENT(); if(ev == PROCESS_EVENT_EXIT) { break; } else if(ev == sensors_event && data == &button_sensor) { leds_invert(LEDS_YELLOW); } } PROCESS_END(); }
static PT_THREAD(beeper_thread(struct pt *pt)) { PT_BEGIN(pt); while(1) { PT_WAIT_UNTIL(pt, etimer_expired(&etimer)); etimer_reset(&etimer); leds_invert(LEDS_RED); beep(); PT_WAIT_UNTIL(pt, etimer_expired(&etimer)); etimer_reset(&etimer); leds_invert(LEDS_RED); } PT_END(pt); }
uint8_t tcpip_output(const uip_lladdr_t *a) { if(outputfunc != NULL) { outputfunc(a); /* printf("pppp o %u tx %u rx %u\n", UIP_IP_BUF->proto, packetbuf_attr(PACKETBUF_ATTR_TRANSMIT_TIME), packetbuf_attr(PACKETBUF_ATTR_LISTEN_TIME));*/ leds_invert(LEDS_GREEN); } return 0; }
PROCESS_THREAD(blink_process, ev , data) { static struct etimer timer; PROCESS_BEGIN(); etimer_set(&timer, CLOCK_SECOND/2); while(1) { PROCESS_WAIT_EVENT_UNTIL(ev == PROCESS_EVENT_EXIT || ev== PROCESS_EVENT_TIMER); if (ev == PROCESS_EVENT_EXIT) break; leds_invert(LEDS_RED); etimer_reset(&timer); } PROCESS_END(); }
/* Packet from SICSLoWPAN */ void tcpip_input(void) { if(uip_len > 0) { mac_LowpanToEthernet(); if(uip_len > 0) { /* printf("pppp i %u tx %u rx %u\n", UIP_IP_BUF->proto, packetbuf_attr(PACKETBUF_ATTR_TRANSMIT_TIME), packetbuf_attr(PACKETBUF_ATTR_LISTEN_TIME));*/ slip_write(uip_buf, uip_len); leds_invert(LEDS_RED); uip_len = 0; } } }
/*---------------------------------------------------------------------------*/ PROCESS_THREAD(sensor_output_process, ev, data) { struct sensors_sensor *s; PROCESS_BEGIN(); /* Activate some sensors to get sensor events */ button_sensor.configure(SENSORS_ACTIVE, 1); pir_sensor.configure(SENSORS_ACTIVE, 1); vib_sensor.configure(SENSORS_ACTIVE, 1); while(1) { PROCESS_WAIT_EVENT_UNTIL(ev == sensors_event); s = (struct sensors_sensor *)data; printf("%s %d\n", s->type, s->value(0)); if (data == &button_sensor) leds_invert(LEDS_YELLOW); if (data == &pir_sensor) leds_invert(LEDS_GREEN); if (data == &vib_sensor) leds_invert(LEDS_RED); } PROCESS_END(); }
PROCESS_THREAD(test_receiver_process, ev, data) { static struct uip_udp_conn *conn; PROCESS_BEGIN(); conn = udp_broadcast_new(HTONS(PORT), NULL); while(1) { PROCESS_WAIT_EVENT_UNTIL(ev == tcpip_event && uip_newdata()); leds_invert(LEDS_YELLOW); /* Make sure the message is null terminated */ ((char *) uip_appdata)[uip_datalen()] = 0; printf("RECV: %s\n", (char *) uip_appdata); } PROCESS_END(); }
/*---------------------------------------------------------------------------*/ void leds_toggle(unsigned char ledv) { leds_invert(ledv); }
/*---------------------------------------------------------------------------*/ static void slip_activity(void) { leds_invert(LEDS_BLUE); }