include ../../Makefile.properties
-CONTIKI_PROJECT=led_remote_control_rime
+CONTIKI_PROJECT=led_remote_control pwnage
all: $(CONTIKI_PROJECT)
--- /dev/null
+#include <contiki.h>
+#include <leds.h>
+#include <stdio.h>
+#include <button-sensor.h>
+#include <net/rime.h>
+
+PROCESS(led_remote_control_rime, "binary LED counter via button over Rime");
+AUTOSTART_PROCESSES(&led_remote_control_rime);
+
+void recv(struct broadcast_conn *ptr, const rimeaddr_t * sender) {
+ char * val = (char *) packetbuf_dataptr();
+ printf("node %d: recv from %d: %d\n", rimeaddr_node_addr, *sender, *val);
+ // FIXME
+ if(*val % 2) {
+ leds_toggle(LEDS_GREEN);
+ }
+ leds_toggle(LEDS_YELLOW);
+ printf("toggled LEDs\n");
+}
+
+static struct broadcast_conn bc;
+static const struct broadcast_callbacks bccb = { recv };
+
+PROCESS_THREAD(led_remote_control_rime, ev, data) {
+ PROCESS_EXITHANDLER(broadcast_close(&bc));
+
+ PROCESS_BEGIN();
+
+ leds_init();
+ leds_off(LEDS_ALL);
+
+ SENSORS_ACTIVATE(button_sensor);
+
+ broadcast_open(&bc, 129, &bccb);
+
+ static struct etimer timer;
+ static char i;
+ for(i = 0; 1; i++) {
+ PROCESS_WAIT_EVENT_UNTIL(ev == sensors_event && data == &button_sensor);
+
+ // debounce for 250 ms
+ etimer_set(&timer, CLOCK_SECOND * 0.25);
+ PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&timer));
+
+ packetbuf_copyfrom(&i, sizeof(i));
+ broadcast_send(&bc);
+ printf("node %d: broadcast sent: %d\n", rimeaddr_node_addr, i);
+ }
+
+ PROCESS_END();
+}
+++ /dev/null
-#include <contiki.h>
-#include <leds.h>
-#include <stdio.h>
-#include <button-sensor.h>
-#include <net/rime.h>
-
-PROCESS(led_remote_control_rime, "binary LED counter via button over Rime");
-AUTOSTART_PROCESSES(&led_remote_control_rime);
-
-void recv(struct broadcast_conn *ptr, const rimeaddr_t * sender) {
- char * val = (char *) packetbuf_dataptr();
- printf("node %d: recv from %d: %d\n", rimeaddr_node_addr, *sender, *val);
- // FIXME
- if(*val % 2) {
- leds_toggle(LEDS_GREEN);
- }
- leds_toggle(LEDS_YELLOW);
- printf("toggled LEDs\n");
-}
-
-static struct broadcast_conn bc;
-static const struct broadcast_callbacks bccb = { recv };
-
-PROCESS_THREAD(led_remote_control_rime, ev, data) {
- PROCESS_EXITHANDLER(broadcast_close(&bc));
-
- PROCESS_BEGIN();
-
- leds_init();
- leds_off(LEDS_ALL);
-
- SENSORS_ACTIVATE(button_sensor);
-
- broadcast_open(&bc, 129, &bccb);
-
- static struct etimer timer;
- static char i;
- for(i = 0; 1; i++) {
- PROCESS_WAIT_EVENT_UNTIL(ev == sensors_event && data == &button_sensor);
-
- // debounce for 250 ms
- etimer_set(&timer, CLOCK_SECOND * 0.25);
- PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&timer));
-
- packetbuf_copyfrom(&i, sizeof(i));
- broadcast_send(&bc);
- printf("node %d: broadcast sent: %d\n", rimeaddr_node_addr, i);
- }
-
- PROCESS_END();
-}
--- /dev/null
+#include <contiki.h>
+#include <leds.h>
+#include <stdio.h>
+#include <button-sensor.h>
+#include <net/rime.h>
+
+PROCESS(pwnage, "total pwnage!");
+AUTOSTART_PROCESSES(&pwnage);
+
+void recv(struct broadcast_conn *ptr, const rimeaddr_t * sender) {
+ char * val = (char *) packetbuf_dataptr();
+ printf("node %d: recv from %d: %s\n", rimeaddr_node_addr, *sender, val);
+}
+
+static struct broadcast_conn bc;
+static const struct broadcast_callbacks bccb = { recv };
+
+PROCESS_THREAD(pwnage, ev, data) {
+ PROCESS_EXITHANDLER(broadcast_close(&bc));
+
+ PROCESS_BEGIN();
+
+ leds_init();
+ leds_off(LEDS_ALL);
+
+ SENSORS_ACTIVATE(button_sensor);
+
+ broadcast_open(&bc, 129, &bccb);
+
+ static struct etimer timer;
+ static char i;
+ for(i = 0; 1; i++) {
+ PROCESS_WAIT_EVENT_UNTIL(ev == sensors_event && data == &button_sensor);
+
+ // debounce for 250 ms
+ etimer_set(&timer, CLOCK_SECOND * 0.25);
+ PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&timer));
+
+ char foo[] = "Spam, Spam, Wonderful Spam!";
+ packetbuf_copyfrom(foo, sizeof(foo));
+ broadcast_send(&bc);
+ printf("node %d: broadcast sent\n", rimeaddr_node_addr, i);
+ }
+
+ PROCESS_END();
+}